On Friday 31 January 2014 06:17:35 Daniel-Constantin Mierla wrote:
But to my
suprise the 401 doesn't end up in the failure_route but in the
onreply_route. Why? What am I missing?
if you don't drop it in the onreply route, then you should have the
failure route executed as well. Also, in case there are many branches,
the failure route is executed only when all branches fail and the branch
with the response code having the highest priority is executed. 401 is
among ones with high priority, but there are others over it, like
redirects, transaction cancelled...
That is what I thought, except I'm not seeing anything happening in the
failure route.
For the initial invite in route[RELAY]:
if (is_method("INVITE|SUBSCRIBE|UPDATE")) {
xlog("t_on_failure(MANAGE_BRANCH)");
if(!t_is_set("branch_route"))
t_on_branch("MANAGE_BRANCH");
}
if (is_method("INVITE|SUBSCRIBE|UPDATE")) {
xlog("t_on_failure(MANAGE_REPLY)");
if(!t_is_set("onreply_route"))
t_on_reply("MANAGE_REPLY");
}
if (is_method("INVITE")) {
xlog("t_on_failure(MANAGE_FAILURE)");
if(!t_is_set("failure_route"))
t_on_failure("MANAGE_FAILURE");
}
xlog("RELAY: ru: $ru");
Which I see being applied in syslog:
Jan 31 10:50:22 ALERT: <script>: AUTHENTICATE[1]: INVITE from sip:test@test to
sip:0880100705@test (IP:109.235.34.226:5071)
Jan 31 10:50:22 ERROR: <script>: t_on_failure(MANAGE_BRANCH)
Jan 31 10:50:22 ERROR: <script>: t_on_failure(MANAGE_REPLY)
Jan 31 10:50:22 ERROR: <script>: t_on_failure(MANAGE_FAILURE)
Jan 31 10:50:22 ERROR: <script>: RELAY: ru: sip:
+31880100705@sip.pocos.nl:5060;transport=udp
The 401 comes back and gets logged in MANAGE_REPLY:
onreply_route[MANAGE_REPLY] {
xlog("onreply: $rs $rr");
if(status=~"[12][0-9][0-9]")
route(NATMANAGE);
}
failure_route[MANAGE_FAILURE] {
xlog("failure: $rs $rr");
...
}
event_route[dialog:failed]
{
xlog("===== noanswer of dialog [$dlg(h_entry):$dlg(h_id)]\n");
}
Jan 31 10:50:22 ERROR: <script>: onreply: 401 Unauthorized
Jan 31 10:50:22 ERROR: <script>: ===== noanswer of dialog [2990:9928]
Jan 31 10:50:22 ERROR: <script>: route[WITHINDLG]
Jan 31 10:50:22 ERROR: <script>: route[WITHINDLG]
Jan 31 10:50:22 ALERT: <script>: AUTHENTICATE[-1]: INVITE from sip:test@test
to sip:0880100705@test (IP:109.235.34.226:5071)
Jan 31 10:50:22 ALERT: <script>: AUTHENTICATE: INVITE from sip:test@test to
sip:0880100705@test (IP:109.235.34.226:5071)
So the 401 triggers a dialog failed event and then is handled WITHINDLG which
is only called from the request_route.
SIP traffic:
T 109.235.34.226:5071 -> 109.235.36.148:5060 [A]
INVITE sip:0880100705@test SIP/2.0.
Via: SIP/2.0/TCP 10.0.3.175:5071;branch=z9hG4bK-4dfd0797.
From: "test" <sip:test@test>;tag=ade412afb1ed2f55o0.
To: <sip:0880100705@test>.
Call-ID: 634f5137-8573c26d(a)10.0.3.175.
CSeq: 101 INVITE.
Max-Forwards: 70.
Contact: "test" <sip:test@10.0.3.175:5071;transport=tcp>.
Expires: 240.
User-Agent: Linksys/SPA962-6.1.3(a).
Content-Length: 198.
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER.
Supported: replaces.
Content-Type: application/sdp.
.
v=0.
o=- 1977 1977 IN IP4 10.0.3.175.
s=-.
c=IN IP4 10.0.3.175.
t=0 0.
m=audio 16384 RTP/AVP 8 101.
a=rtpmap:8 PCMA/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=ptime:30.
a=sendrecv.
#
T 109.235.36.148:5060 -> 109.235.34.226:5071 [AP]
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/TCP
10.0.3.175:5071;branch=z9hG4bK-4dfd0797;rport=5071;received=109.235.34.226.
From: "test" <sip:test@test>;tag=ade412afb1ed2f55o0.
To: <sip:0880100705@test>;tag=09ad8b5e6adf88220a126c2faf3dd6ad.e41d.
Call-ID: 634f5137-8573c26d(a)10.0.3.175.
CSeq: 101 INVITE.
WWW-Authenticate: Digest realm="test",
nonce="UutzClLrcd4DHPyXRQqbkGiV9IG0O775", qop="auth".
Content-Length: 0.
.
#
T 109.235.34.226:5071 -> 109.235.36.148:5060 [A]
ACK sip:0880100705@test SIP/2.0.
Via: SIP/2.0/TCP 10.0.3.175:5071;branch=z9hG4bK-4dfd0797.
From: "test" <sip:test@test>;tag=ade412afb1ed2f55o0.
To: <sip:0880100705@test>;tag=09ad8b5e6adf88220a126c2faf3dd6ad.e41d.
Call-ID: 634f5137-8573c26d(a)10.0.3.175.
CSeq: 101 ACK.
Max-Forwards: 70.
Contact: "test" <sip:test@10.0.3.175:5071;transport=tcp>.
User-Agent: Linksys/SPA962-6.1.3(a).
Content-Length: 0.
.
##
T 109.235.34.226:5071 -> 109.235.36.148:5060 [AP]
INVITE sip:0880100705@test SIP/2.0.
Via: SIP/2.0/TCP 10.0.3.175:5071;branch=z9hG4bK-c94437af.
From: "test" <sip:test@test>;tag=ade412afb1ed2f55o0.
To: <sip:0880100705@test>.
Call-ID: 634f5137-8573c26d(a)10.0.3.175.
CSeq: 102 INVITE.
Max-Forwards: 70.
Authorization: Digest
username="test",realm="test",nonce="UutzClLrcd4DHPyXRQqbkGiV9IG0O775",uri="sip:0880100705@test",algorithm=MD5,response="0f1879f1bb7fb047290949077b9ed4e8",qop=auth,nc=00000001,cnonce="b10a7f95".
Contact: "test" <sip:test@10.0.3.175:5071;transport=tcp>.
Expires: 240.
User-Agent: Linksys/SPA962-6.1.3(a).
Content-Length: 198.
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER.
Supported: replaces.
Content-Type: application/sdp.
.
v=0.
o=- 1977 1977 IN IP4 10.0.3.175.
s=-.
c=IN IP4 10.0.3.175.
t=0 0.
m=audio 16384 RTP/AVP 8 101.
a=rtpmap:8 PCMA/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=ptime:30.
a=sendrecv.
##
T 109.235.36.148:5060 -> 109.235.34.226:5071 [AP]
SIP/2.0 100 trying -- your call is important to us.
Via: SIP/2.0/TCP 10.0.3.175:5071;branch=z9hG4bK-
c94437af;rport=5071;received=109.235.34.226.
From: "test" <sip:test@test>;tag=ade412afb1ed2f55o0.
To: <sip:0880100705@test>.
Call-ID: 634f5137-8573c26d(a)10.0.3.175.
CSeq: 102 INVITE.
Content-Length: 0.
.
#
U 109.235.36.148:5060 -> 109.235.32.40:5060
INVITE sip:+31880100705@sip.pocos.nl:5060;transport=udp SIP/2.0.
Record-Route:
<sip:109.235.36.148;r2=on;lr=on;ftag=ade412afb1ed2f55o0;did=eab.8c62;vsf=AAAAAEBfUFpDCXdLWkEZXy8LAR9dGgocRgEfdGVkLm5s;nat=yes>.
Record-Route:
<sip:109.235.36.148;transport=tcp;r2=on;lr=on;ftag=ade412afb1ed2f55o0;did=eab.8c62;vsf=AAAAAEBfUFpDCXdLWkEZXy8LAR9dGgocRgEfdGVkLm5s;nat=yes>.
Via: SIP/2.0/UDP
109.235.36.148;branch=z9hG4bKe7af.0b8e50b08945d2c51c44b38bb2a6f840.0;i=1.
Via: SIP/2.0/TCP
10.0.3.175:5071;rport=5071;received=109.235.34.226;branch=z9hG4bK-c94437af.
From: "test" <sip:test@test>;tag=ade412afb1ed2f55o0.
To: <sip:0880100705@test>.
Call-ID: 634f5137-8573c26d(a)10.0.3.175.
CSeq: 102 INVITE.
Max-Forwards: 16.
Contact: "test"
<sip:test@10.0.3.175:5071;alias=109.235.34.226~5071~2;transport=tcp>.
Expires: 240.
Content-Length: 224.
Allow: ACK, BYE, CANCEL, INFO, INVITE, NOTIFY, OPTIONS, REFER.
Supported: replaces.
Content-Type: application/sdp.
.
v=0.
o=- 1977 1977 IN IP4 109.235.36.148.
s=-.
c=IN IP4 109.235.36.148.
t=0 0.
m=audio 55224 RTP/AVP 8 101.
a=rtpmap:8 PCMA/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-15.
a=ptime:30.
a=sendrecv.
a=nortpproxy:yes.
#
U 109.235.32.40:5060 -> 109.235.36.148:5060
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/UDP
109.235.36.148;branch=z9hG4bKe7af.0b8e50b08945d2c51c44b38bb2a6f840.0;i=1;rport=5060.
Via: SIP/2.0/TCP
10.0.3.175:5071;rport=5071;received=109.235.34.226;branch=z9hG4bK-c94437af.
From: "test" <sip:test@test>;tag=ade412afb1ed2f55o0.
To: <sip:0880100705@test>;tag=47dc960d0aec89efc47228ca957df0ae.2208.
Call-ID: 634f5137-8573c26d(a)10.0.3.175.
CSeq: 102 INVITE.
WWW-Authenticate: Digest realm="test",
nonce="UutzClLrcd7HrDEFx7D1Zd3UyDMMfekY", qop="auth".
Content-Length: 0.
.
#
U 109.235.36.148:5060 -> 109.235.32.40:5060
ACK sip:+31880100705@sip.pocos.nl:5060;transport=udp SIP/2.0.
Via: SIP/2.0/UDP
109.235.36.148;branch=z9hG4bKe7af.0b8e50b08945d2c51c44b38bb2a6f840.0;i=1.
From: "test" <sip:test@test>;tag=ade412afb1ed2f55o0.
To: <sip:0880100705@test>;tag=47dc960d0aec89efc47228ca957df0ae.2208.
Call-ID: 634f5137-8573c26d(a)10.0.3.175.
CSeq: 102 ACK.
Max-Forwards: 16.
Content-Length: 0.
.
#
T 109.235.36.148:5060 -> 109.235.34.226:5071 [AP]
SIP/2.0 401 Unauthorized.
Via: SIP/2.0/TCP
10.0.3.175:5071;rport=5071;received=109.235.34.226;branch=z9hG4bK-c94437af.
From: "test" <sip:test@test>;tag=ade412afb1ed2f55o0.
To: <sip:0880100705@test>;tag=47dc960d0aec89efc47228ca957df0ae.2208.
Call-ID: 634f5137-8573c26d(a)10.0.3.175.
CSeq: 102 INVITE.
WWW-Authenticate: Digest realm="test",
nonce="UutzClLrcd7HrDEFx7D1Zd3UyDMMfekY", qop="auth".
Content-Length: 0.
.
--
POCOS B.V. - Croy 9c - 5653 LC Eindhoven
Telefoon: 040 293 8661 - Fax: 040 293 8658
http://www.pocos.nl/ -
http://www.sipo.nl/
K.v.K. Eindhoven 17097024