]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
Add some wrapper functions for the new session event filter stuff
authorAndrew Thompson <andrew@hijacked.us>
Wed, 4 Aug 2010 15:24:39 +0000 (11:24 -0400)
committerAndrew Thompson <andrew@hijacked.us>
Wed, 4 Aug 2010 15:28:53 +0000 (11:28 -0400)
src/mod/event_handlers/mod_erlang_event/freeswitch.erl

index b508a70f44df4966e72c12734b6c352afd9ea77d..9a08d88ae2c2d3d73b29d377cfd512855812bb8a 100644 (file)
@@ -14,8 +14,8 @@
 
 -module(freeswitch).
 
--export([send/2, api/3, api/2, bgapi/3, bgapi/4, event/2,
-               nixevent/2, noevents/1, close/1,
+-export([send/2, api/3, api/2, bgapi/3, bgapi/4, event/2, session_event/2,
+               nixevent/2, session_nixevent/2, noevents/1, session_noevents/1, close/1,
                get_event_header/2, get_event_body/1,
                get_event_name/1, getpid/1, sendmsg/3,
                sendevent/3, sendevent_custom/3, handlecall/2, handlecall/3, start_fetch_handler/5,
@@ -173,17 +173,40 @@ event(Node, Events) when is_list(Events) ->
 event(Node, Event) when is_atom(Event) ->
        event(Node, [Event]).
 
+session_event(Node, Events) when is_list(Events) ->
+       {session_event, Node} ! list_to_tuple([session_event | Events]),
+       receive
+               ok -> ok;
+               {error, Reason} -> {error, Reason}
+       after ?TIMEOUT ->
+                       timeout
+       end;
+session_event(Node, Event) when is_atom(Event) ->
+       session_event(Node, [Event]).
+
 %% @doc Stop receiving any events in the list `Events' from `Node'.
 nixevent(Node, Events) when is_list(Events) ->
        {nixevent, Node} ! list_to_tuple(lists:append([nixevent], Events)),
        receive
-               X -> X
+               ok -> ok;
+               {error, Reason} -> {error, Reason}
        after ?TIMEOUT ->
                timeout
        end;
 nixevent(Node, Event) when is_atom(Event) ->
        nixevent(Node, [Event]).
 
+session_nixevent(Node, Events) when is_list(Events) ->
+       {session_nixevent, Node} ! list_to_tuple([session_nixevent | Events]),
+       receive
+               ok -> ok;
+               {error, Reason} -> {error, Reason}
+       after ?TIMEOUT ->
+               timeout
+       end;
+session_nixevent(Node, Event) when is_atom(Event) ->
+       session_nixevent(Node, [Event]).
+
 %% @doc Stop receiving any events from `Node'.
 noevents(Node) ->
        {noevents, Node} ! noevents,
@@ -194,6 +217,15 @@ noevents(Node) ->
                timeout
        end.
 
+session_noevents(Node) ->
+       {session_noevents, Node} ! session_noevents,
+       receive
+               ok -> ok;
+               {error, Reason} -> {error, Reason}
+       after ?TIMEOUT ->
+                       timeout
+       end.
+
 %% @doc Close the connection to `Node'.
 close(Node) ->
        {close, Node} ! exit,