aboutsummaryrefslogtreecommitdiff
path: root/src/mod_sip.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_sip.erl')
-rw-r--r--src/mod_sip.erl21
1 files changed, 8 insertions, 13 deletions
diff --git a/src/mod_sip.erl b/src/mod_sip.erl
index 8ed4ed8cf..4b733c623 100644
--- a/src/mod_sip.erl
+++ b/src/mod_sip.erl
@@ -12,7 +12,7 @@
-behaviour(esip).
%% API
--export([start/2, stop/1, prepare_request/1, make_response/2, at_my_host/1]).
+-export([start/2, stop/1, make_response/2, is_my_host/1, at_my_host/1]).
%% esip_callbacks
-export([data_in/2, data_out/2, message_in/2, message_out/2,
@@ -77,6 +77,13 @@ message_out(_, _) ->
response(_Resp, _SIPSock) ->
ok.
+request(#sip{method = <<"ACK">>} = Req, SIPSock) ->
+ case action(Req, SIPSock) of
+ {relay, LServer} ->
+ mod_sip_proxy:route(Req, LServer, []);
+ _ ->
+ error
+ end;
request(_Req, _SIPSock) ->
error.
@@ -251,18 +258,6 @@ process(Req, _) ->
make_response(Req, #sip{type = response, status = 405,
hdrs = [{'allow', allow()}]}).
-prepare_request(#sip{hdrs = Hdrs1} = Req) ->
- MF = esip:get_hdr('max-forwards', Hdrs1),
- Hdrs2 = esip:set_hdr('max-forwards', MF-1, Hdrs1),
- Hdrs3 = lists:filter(
- fun({'proxy-authorization', {_, Params}}) ->
- Realm = esip:unquote(esip:get_param(<<"realm">>, Params)),
- not is_my_host(jlib:nameprep(Realm));
- (_) ->
- true
- end, Hdrs2),
- Req#sip{hdrs = Hdrs3}.
-
make_auth_hdr(LServer) ->
Realm = jlib:nameprep(LServer),
{<<"Digest">>, [{<<"realm">>, esip:quote(Realm)},