From aa16f939b782de5b965c6236f60d2a429a144101 Mon Sep 17 00:00:00 2001 From: Andrew Thompson Date: Wed, 4 Aug 2010 11:24:39 -0400 Subject: [PATCH] Add some wrapper functions for the new session event filter stuff --- .../mod_erlang_event/freeswitch.erl | 38 +++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/src/mod/event_handlers/mod_erlang_event/freeswitch.erl b/src/mod/event_handlers/mod_erlang_event/freeswitch.erl index b508a70f44..9a08d88ae2 100644 --- a/src/mod/event_handlers/mod_erlang_event/freeswitch.erl +++ b/src/mod/event_handlers/mod_erlang_event/freeswitch.erl @@ -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,