I have been tracking a problem for some time regarding
CANCELs that the switch beyond SER was randomly ignoring.
There appear to be a number of issues, but one that was
identified is caused by SER unexpectedly emitting a branch
tag on the Via: header of the CANCEL with a value that
isn't identical to the value that appeared in the
INVITE message.
When the CANCEL arrives at the destination switch with a
different branch tag than what was shown in the INVITE,
the destination switch correctly rejects the CANCEL with
a 481, saying it never heard of this call. So the call
doesn't really end. They say they are following RFC 3261,
and that does state that the Via: header MUST exactly
match.
This variance of the branch tag that SER emits doesn't happen
every time and is infrequent and random, occurring, perhaps
1% of the time. 99% of the time, the same branch
value appears in both INVITE and CANCEL messages. This
occasional mismatch is being seen in 2.0.0-rc1 on FreeBSD,
Server: SER (2.0.0-rc1 (x86_64/freebsd))
syn_branch=0 is set because branches of zero in ACKs
were a really bad thing too.
Based on a number of these that have been reviewed, the
branch tag generated by SER has three parts,
eg branch=STRING1.STRING2.0
I note that STRING1 remains the same but when the
malfunction occurs, STRING2 is completely different, as in:
FROM INVITE branch=z9hG4bK7314.6082c3659eb65543a8e2788f54c11079.0
FROM CANCEL branch=z9hG4bK7314.b4c66001f96f5dd30ddbf6536fd34935.0
Below is a sample call showing one of these events.
Any suggestions on what the problem might be or if this is a
known bug (hopefully with a patch) are appreciated.
- - - - - - - - - - - - - - - - - -
Here is a sample call. IP addresses and phone numbers have
been altered, but call ID and branch tags are untouched:
CALL ARRIVES AT SER
U 2009/10/05 23:00:45.616070 216.0.0.1:5060 -> 208.9.10.11:5060
INVITE sip:9615551212@208.9.10.11:5060;user=phone SIP/2.0
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
P-Asserted-Identity: <sip:8881112222@216.0.0.1:5060>
To: sip:9615551212@208.9.10.11:5060
Contact: <sip:8881112222@216.0.0.1:5060>
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 INVITE
Max-Forwards: 70
Content-Length: 281
Allow: INVITE, ACK, CANCEL, BYE
Content-Type: application/sdp
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
v=0
o=SIPUAC_1.92.1.8 2077471748 1 IN IP4 55.66.77.88
s=call
c=IN IP4 55.66.77.88
t=0 0
m=audio 21356 RTP/AVP 18 0 8 101
a=rtpmap:18 G729/8000/1
a=rtpmap:0 PCMU/8000/1
a=rtpmap:8 PCMA/8000/1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
a=maxptime:30
SER SENDS TRYING BACK TO CALLING SWITCH
U 2009/10/05 23:00:45.626174 208.9.10.11:5060 -> 216.0.0.1:5060
SIP/2.0 100 trying -- your call is important to us
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: sip:9615551212@208.9.10.11:5060
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 INVITE
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
Server: SER (2.0.0-rc1 (x86_64/freebsd))
Content-Length: 0
SER SENDS CALL ON TO PSTN SWITCH
U 2009/10/05 23:00:45.626192 10.100.20.42:5060 -> 10.133.44.55:5060
INVITE sip:9615551212@10.133.44.55:5060;user=phone SIP/2.0
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
P-Asserted-Identity: <sip:8881112222@216.0.0.1:5060>
To: sip:9615551212@208.9.10.11:5060
Contact: <sip:8881112222@216.0.0.1:5060>
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 INVITE
Max-Forwards: 16
Content-Length: 301
Allow: INVITE, ACK, CANCEL, BYE
Content-Type: application/sdp
Via: SIP/2.0/UDP
10.100.20.42;branch=z9hG4bK7314.6082c3659eb65543a8e2788f54c1107
9.0
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
v=0
o=SIPUAC_1.92.1.8 2077471748 1 IN IP4 55.66.77.88
s=call
c=IN IP4 55.66.77.88
t=0 0
m=audio 55878 RTP/AVP 18 0 8 101
a=rtpmap:18 G729/8000/1
a=rtpmap:0 PCMU/8000/1
a=rtpmap:8 PCMA/8000/1
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
a=maxptime:30
a=nortpproxy:yes
CALLING SWITCH TELLS SER IT IS TRYING
U 2009/10/05 23:00:45.629000 10.133.44.55:5060 -> 10.100.20.42:5060
SIP/2.0 100 Trying
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 INVITE
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>;tag=000a0285+1+21a4018b+2cd8ce96
Via: SIP/2.0/UDP
10.100.20.42;branch=z9hG4bK7314.6082c3659eb65543a8e2788f54c1107
9.0
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
Server: DC-SIP/2.0
Content-Length: 0
CALLING PARTY CHANGES MIND - GOES ON-HOOK
U 2009/10/05 23:00:50.579059 216.0.0.1:5060 -> 208.9.10.11:5060
CANCEL sip:9615551212@208.9.10.11:5060;user=phone SIP/2.0
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 CANCEL
Max-Forwards: 70
Content-Length: 0
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
SER SENDS CANCEL TO PSTN SWITCH, BUT BRANCH TAGS DON'T MATCH:
U 2009/10/05 23:00:50.590039 10.100.20.42:5060 -> 10.133.44.55:5060
CANCEL sip:9615551212@10.133.44.55:5060;user=phone SIP/2.0
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 CANCEL
Max-Forwards: 16
Content-Length: 0
Via: SIP/2.0/UDP
10.100.20.42;branch=z9hG4bK7314.b4c66001f96f5dd30ddbf6536fd3493
5.0
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
NOTE BRANCH MISMATCH:
FROM INVITE branch=z9hG4bK7314.6082c3659eb65543a8e2788f54c11079.0
FROM CANCEL branch=z9hG4bK7314.b4c66001f96f5dd30ddbf6536fd34935.0
SER SENDS 200 CANCELING BACK TO CALLING SWITCH
U 2009/10/05 23:00:50.590054 208.9.10.11:5060 -> 216.0.0.1:5060
SIP/2.0 200 canceling
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To:
<sip:9615551212@208.9.10.11:5060>;tag=68cf7f6b22161b0d4dc719dbc13e05af-90a6
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 CANCEL
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
Server: SER (2.0.0-rc1 (x86_64/freebsd))
Content-Length: 0
PSTN SWITCH REJECTS CANCEL, NOT RECOGNIZING THE CALL
PSTN NETWORK CONTINUES TO PROCESS CALL DESPITE CALLER
NOW BEING ON-HOOK
U 2009/10/05 23:00:50.591489 10.133.44.55:5060 -> 10.100.20.42:5060
SIP/2.0 481 Call/Transaction Does Not Exist
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 CANCEL
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>;tag=000a0285+1+0+b6afb3ac
Via: SIP/2.0/UDP
10.100.20.42;branch=z9hG4bK7314.b4c66001f96f5dd30ddbf6536fd3493
5.0
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
Server: DC-SIP/2.0
Content-Length: 0
PSTN SWITCH SENDS BACK ACM/183 Session Progress TO SER
U 2009/10/05 23:00:52.619487 10.133.44.55:5060 -> 10.100.20.42:5060
SIP/2.0 183 Session Progress
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 INVITE
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>;tag=000a0285+1+21a4018b+2cd8ce96
Via: SIP/2.0/UDP
10.100.20.42;branch=z9hG4bK7314.6082c3659eb65543a8e2788f54c1107
9.0
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
Server: DC-SIP/2.0
Contact: <sip:9615551212@10.133.44.55:5060;user=phone>
Content-Type: application/sdp
Content-Length: 223
v=0
o=- 3463772452 3463772517 IN IP4 10.133.44.55
s=-
c=IN IP4 10.200.20.40
t=0 0
m=audio 50924 RTP/AVP 18 101
a=sendrecv
a=ptime:20
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=fmtp:18 annexb=no
SER SENDS 183 SESSION PROGRESS BACK TO CALLING SWITCH
U 2009/10/05 23:00:52.629924 208.9.10.11:5060 -> 216.0.0.1:5060
SIP/2.0 183 Session Progress
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 INVITE
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>;tag=000a0285+1+21a4018b+2cd8ce96
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
Server: DC-SIP/2.0
Contact: <sip:9615551212@208.9.10.11:5060;user=phone>
Content-Type: application/sdp
Content-Length: 223
v=0
o=- 3463772452 3463772517 IN IP4 10.133.44.55
s=-
c=IN IP4 10.200.20.40
t=0 0
m=audio 50924 RTP/AVP 18 101
a=sendrecv
a=ptime:20
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=fmtp:18 annexb=no
SER RECEIVES 200 OK FROM PSTN SWITCH
U 2009/10/05 23:00:58.129670 10.133.44.55:5060 -> 10.100.20.42:5060
SIP/2.0 200 OK
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 INVITE
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>;tag=000a0285+1+21a4018b+2cd8ce96
Via: SIP/2.0/UDP
10.100.20.42;branch=z9hG4bK7314.6082c3659eb65543a8e2788f54c1107
9.0
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
Server: DC-SIP/2.0
Contact: <sip:9615551212@10.133.44.55:5060;user=phone>
Content-Type: application/sdp
Content-Length: 223
v=0
o=- 3463772452 3463772517 IN IP4 10.133.44.55
s=-
c=IN IP4 10.200.20.40
t=0 0
m=audio 50924 RTP/AVP 18 101
a=sendrecv
a=ptime:20
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=fmtp:18 annexb=no
SER PASSES 200 OK ON TO CALLING SWITCH
U 2009/10/05 23:00:58.137724 208.9.10.11:5060 -> 216.0.0.1:5060
SIP/2.0 200 OK
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 INVITE
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>;tag=000a0285+1+21a4018b+2cd8ce96
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
Server: DC-SIP/2.0
Contact: <sip:9615551212@208.9.10.11:5060;user=phone>
Content-Type: application/sdp
Content-Length: 223
v=0
o=- 3463772452 3463772517 IN IP4 10.133.44.55
s=-
c=IN IP4 10.200.20.40
t=0 0
m=audio 50924 RTP/AVP 18 101
a=sendrecv
a=ptime:20
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=fmtp:18 annexb=no
BECAUSE OF NO RESPONSE TO 200 OK, PSTN SWITCH SENDS IT AGAIN
U 2009/10/05 23:00:58.629267 10.133.44.55:5060 -> 10.100.20.42:5060
SIP/2.0 200 OK
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 INVITE
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>;tag=000a0285+1+21a4018b+2cd8ce96
Via: SIP/2.0/UDP
10.100.20.42;branch=z9hG4bK7314.6082c3659eb65543a8e2788f54c1107
9.0
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
Server: DC-SIP/2.0
Contact: <sip:9615551212@10.133.44.55:5060;user=phone>
Content-Type: application/sdp
Content-Length: 223
v=0
o=- 3463772452 3463772517 IN IP4 10.133.44.55
s=-
c=IN IP4 10.200.20.40
t=0 0
m=audio 50924 RTP/AVP 18 101
a=sendrecv
a=ptime:20
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=fmtp:18 annexb=no
U 2009/10/05 23:00:58.639701 208.9.10.11:5060 -> 216.0.0.1:5060
SIP/2.0 200 OK
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 INVITE
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>;tag=000a0285+1+21a4018b+2cd8ce96
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_1
Server: DC-SIP/2.0
Contact: <sip:9615551212@208.9.10.11:5060;user=phone>
Content-Type: application/sdp
Content-Length: 223
v=0
o=- 3463772452 3463772517 IN IP4 10.133.44.55
s=-
c=IN IP4 10.200.20.40
t=0 0
m=audio 50924 RTP/AVP 18 101
a=sendrecv
a=ptime:20
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=fmtp:18 annexb=no
CALLING SWITCH FINALLY SENDS AN ACK TO SER TO GET RETRIES TO STOP.
U 2009/10/05 23:00:58.690296 216.0.0.1:5060 -> 208.9.10.11:5060
ACK sip:9615551212@208.9.10.11:5060;user=phone SIP/2.0
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>;tag=000a0285+1+21a4018b+2cd8ce96
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 ACK
Max-Forwards: 70
Content-Length: 0
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_2
SER FORWARDS ACK TO PSTN SWITCH.
PSTN NETWORK THINKS CALL IS ALIVE, VOIP NETWORK KNOWS CALL IS DEAD.
U 2009/10/05 23:00:58.690355 10.100.20.42:5060 -> 10.133.44.55:5060
ACK sip:9615551212@10.133.44.55:5060;user=phone SIP/2.0
From: <sip:8881112222@216.0.0.1:5060>;tag=2077471748_C
To: <sip:9615551212@208.9.10.11:5060>;tag=000a0285+1+21a4018b+2cd8ce96
Call-ID:
sbcsipuac.2_11.22.33.44_b09sb07_1_2009100519004555_2077471748_716911
CSeq: 1005 ACK
Max-Forwards: 16
Content-Length: 0
Via: SIP/2.0/UDP
10.100.20.42;branch=z9hG4bK7314.1fc8626bef702f1428ad6fd4fd2aa7a
f.0
Via: SIP/2.0/UDP 216.0.0.1:5060;branch=z9hG4bK_2077471748_2110_2
....
So the called party has answered the call and can't hear
anything. Depending on whether a human or automation was
called, this call could remain active on the PSTN for some
time.
Show replies by date