提交 aa16f939 authored 作者: Andrew Thompson's avatar Andrew Thompson

Add some wrapper functions for the new session event filter stuff

上级 6b91d451
...@@ -14,8 +14,8 @@ ...@@ -14,8 +14,8 @@
-module(freeswitch). -module(freeswitch).
-export([send/2, api/3, api/2, bgapi/3, bgapi/4, event/2, -export([send/2, api/3, api/2, bgapi/3, bgapi/4, event/2, session_event/2,
nixevent/2, noevents/1, close/1, nixevent/2, session_nixevent/2, noevents/1, session_noevents/1, close/1,
get_event_header/2, get_event_body/1, get_event_header/2, get_event_body/1,
get_event_name/1, getpid/1, sendmsg/3, get_event_name/1, getpid/1, sendmsg/3,
sendevent/3, sendevent_custom/3, handlecall/2, handlecall/3, start_fetch_handler/5, sendevent/3, sendevent_custom/3, handlecall/2, handlecall/3, start_fetch_handler/5,
...@@ -173,17 +173,40 @@ event(Node, Events) when is_list(Events) -> ...@@ -173,17 +173,40 @@ event(Node, Events) when is_list(Events) ->
event(Node, Event) when is_atom(Event) -> event(Node, Event) when is_atom(Event) ->
event(Node, [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'. %% @doc Stop receiving any events in the list `Events' from `Node'.
nixevent(Node, Events) when is_list(Events) -> nixevent(Node, Events) when is_list(Events) ->
{nixevent, Node} ! list_to_tuple(lists:append([nixevent], Events)), {nixevent, Node} ! list_to_tuple(lists:append([nixevent], Events)),
receive receive
X -> X ok -> ok;
{error, Reason} -> {error, Reason}
after ?TIMEOUT -> after ?TIMEOUT ->
timeout timeout
end; end;
nixevent(Node, Event) when is_atom(Event) -> nixevent(Node, Event) when is_atom(Event) ->
nixevent(Node, [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'. %% @doc Stop receiving any events from `Node'.
noevents(Node) -> noevents(Node) ->
{noevents, Node} ! noevents, {noevents, Node} ! noevents,
...@@ -194,6 +217,15 @@ noevents(Node) -> ...@@ -194,6 +217,15 @@ noevents(Node) ->
timeout timeout
end. 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'. %% @doc Close the connection to `Node'.
close(Node) -> close(Node) ->
{close, Node} ! exit, {close, Node} ! exit,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论