summaryrefslogtreecommitdiff
path: root/src/pbx_rose.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/pbx_rose.erl')
-rw-r--r--src/pbx_rose.erl24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/pbx_rose.erl b/src/pbx_rose.erl
index ab73064..76cb89e 100644
--- a/src/pbx_rose.erl
+++ b/src/pbx_rose.erl
@@ -81,24 +81,25 @@ decode(<<Data/binary>>) ->
%%%
init(_Args) ->
- io:format("Init rose~n"),
- {ok, []}.
+ {ok, {present, 0}}.
-handle_event({invoke, Invoke = #'Invoke'{}}, State) ->
+handle_event({invoke, Invoke = #'Invoke'{}}, _State) ->
io:format("Invoke ~p~n", [Invoke]),
- {ok, State};
-handle_event({returnResult, ReturnResult = #'ReturnResult'{}}, State) ->
+ {ok, Invoke#'Invoke'.invokeId};
+handle_event({returnResult, ReturnResult = #'ReturnResult'{}}, _State) ->
io:format("ReturnResult ~p~n", [ReturnResult]),
- {ok, State};
-handle_event({returnError, ReturnError = #'ReturnError'{}}, State) ->
+ {ok, ReturnResult#'ReturnResult'.invokeId};
+handle_event({returnError, ReturnError = #'ReturnError'{}}, _State) ->
io:format("ReturnError ~p~n", [ReturnError]),
- {ok, State};
-handle_event({reject, Reject = #'Reject'{}}, State) ->
+ {ok, ReturnError#'ReturnError'.invokeId};
+handle_event({reject, Reject = #'Reject'{}}, _State) ->
io:format("Reject ~p~n", [Reject]),
- {ok, State};
+ {ok, Reject#'Reject'.invokeId};
handle_event(_Event, State) ->
{ok, State}.
+handle_call(nextInvoke, State) ->
+ {ok, next(State), next(State)};
handle_call(_Request, State) ->
{ok, ok, State}.
@@ -110,3 +111,6 @@ terminate(_Reason, _State) ->
code_change(_OldVsn, State, _Extra) ->
{ok, State}.
+
+next({present, N}) ->
+ {present, N+1}.