Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/processone/ejabberd.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/ejabberd_sip.erl')
-rw-r--r--src/ejabberd_sip.erl58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/ejabberd_sip.erl b/src/ejabberd_sip.erl
new file mode 100644
index 000000000..5ee81cfa1
--- /dev/null
+++ b/src/ejabberd_sip.erl
@@ -0,0 +1,58 @@
+%%%-------------------------------------------------------------------
+%%% @author Evgeny Khramtsov <ekhramtsov@process-one.net>
+%%% Created : 30 Apr 2017 by Evgeny Khramtsov <ekhramtsov@process-one.net>
+%%%
+%%%
+%%% ejabberd, Copyright (C) 2013-2017 ProcessOne
+%%%
+%%% This program is free software; you can redistribute it and/or
+%%% modify it under the terms of the GNU General Public License as
+%%% published by the Free Software Foundation; either version 2 of the
+%%% License, or (at your option) any later version.
+%%%
+%%% This program is distributed in the hope that it will be useful,
+%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+%%% General Public License for more details.
+%%%
+%%% You should have received a copy of the GNU General Public License along
+%%% with this program; if not, write to the Free Software Foundation, Inc.,
+%%% 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+%%%
+%%%-------------------------------------------------------------------
+-module(ejabberd_sip).
+
+%% API
+-export([tcp_init/2, udp_init/2, udp_recv/5, start/2,
+ socket_type/0, listen_opt_type/1]).
+
+%%%===================================================================
+%%% API
+%%%===================================================================
+tcp_init(Socket, Opts) ->
+ ejabberd:start_app(esip),
+ esip_socket:tcp_init(Socket, Opts).
+
+udp_init(Socket, Opts) ->
+ ejabberd:start_app(esip),
+ esip_socket:udp_init(Socket, Opts).
+
+udp_recv(Sock, Addr, Port, Data, Opts) ->
+ esip_socket:udp_recv(Sock, Addr, Port, Data, Opts).
+
+start(Opaque, Opts) ->
+ esip_socket:start(Opaque, Opts).
+
+socket_type() ->
+ raw.
+
+listen_opt_type(certfile) ->
+ fun iolist_to_binary/1;
+listen_opt_type(tls) ->
+ fun(B) when is_boolean(B) -> B end;
+listen_opt_type(_) ->
+ [tls, certfile].
+
+%%%===================================================================
+%%% Internal functions
+%%%===================================================================