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.erl26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/pbx_rose.erl b/src/pbx_rose.erl
index 17d6dba..d7e4185 100644
--- a/src/pbx_rose.erl
+++ b/src/pbx_rose.erl
@@ -1,13 +1,10 @@
-module(pbx_rose).
--export([decode/1, invoke/2, dispatch/1]).
+-export([decode/1, invoke/2]).
-include("opcodes.hrl").
-include("Remote-Operations-Generic-ROS-PDUs.hrl").
-decode(Data) ->
- 'Remote-Operations-Generic-ROS-PDUs':decode('ROS', Data).
-
return(Id, Op, {ok, Data}) ->
'Remote-Operations-Generic-ROS-PDUs':encode('ROS', {returnResult,
#'ReturnResult'{invokeId = Id,
@@ -18,7 +15,7 @@ invoke(Op, {ok, Data}) ->
'Remote-Operations-Generic-ROS-PDUs':encode('ROS', {invoke,
#'Invoke'{invokeId = Id, opcode = Op, argument = Data}}).
-dispatch({invoke, #'Invoke'{invokeId = Id, opcode = Op, argument = Data}}) ->
+decode({invoke, #'Invoke'{invokeId = Id, opcode = Op, argument = Data}}) ->
pbx_invoke:set(Id),
case Op of
?MAKECALL ->
@@ -41,12 +38,10 @@ dispatch({invoke, #'Invoke'{invokeId = Id, opcode = Op, argument = Data}}) ->
_ ->
error
end;
-
-dispatch({returnResult, #'ReturnResult'{invokeId = Id, result = Data}}) ->
+decode({returnResult, #'ReturnResult'{invokeId = Id, result = Data}}) ->
pbx_invoke:set(Id),
- dispatch(Data);
-
-dispatch({returnError, #'ReturnError'{invokeId = Id, errcode = Op, parameter = Data}}) ->
+ decode(Data);
+decode({returnError, #'ReturnError'{invokeId = Id, errcode = Op, parameter = Data}}) ->
pbx_invoke:set(Id),
case Op of
?ERROR ->
@@ -54,13 +49,11 @@ dispatch({returnError, #'ReturnError'{invokeId = Id, errcode = Op, parameter = D
io:format("Error: ~p~n", [Error])
end,
error;
-
-dispatch({reject, #'Reject'{invokeId = Id, problem = Problem}}) ->
+decode({reject, #'Reject'{invokeId = Id, problem = Problem}}) ->
pbx_invoke:set(Id),
io:format("Problem: ~p~n", [Problem]),
error;
-
-dispatch(#'ReturnResult_result'{opcode = Op, result = Data}) ->
+decode(#'ReturnResult_result'{opcode = Op, result = Data}) ->
case Op of
?MAKECALL ->
{ok, Result} = pbx_dial:decode(Data),
@@ -77,4 +70,7 @@ dispatch(#'ReturnResult_result'{opcode = Op, result = Data}) ->
_ ->
io:format("Result: ~p~n", [Data])
end,
- ok.
+ ok;
+decode(Data) ->
+ {ok, Pdu} = 'Remote-Operations-Generic-ROS-PDUs':decode('ROS', Data),
+ decode(Pdu).