Greger Viken Teigre wrote:
Ok, Frank. You have told me that you don't want me to respond,
Actually I was hoping to nudge people who knew the answer to actually provide the answer. The last dozen or so questions asked here over the past several months have pretty-much received no useful answers, although the one where I provided a code fix saw the change quietly introduced into a new release of that piece of software with no comment.
It seems that when I gave lots of detail, someone was bound to say I needed to simplify the question because they didn't have time to read it all, but if I reduced it to an A, B, C case, someone would say they needed every SIP message and the .cfg file. Can't seem to win, so I elected to provide what was requested. :-)
Anyway, here are the pieces you asked about. If you need more, just ask. I realize how much you are getting paid for your assistance (nearly some).
If the PSTN switch really is making a mistake in this scenario (the "BYE" seems okay and because of the presence of the Record-Route it is only sent to the Record-Route address), please indicate where it violates RFC so I can start the long process of getting them to investigate and with luck I would have a fix in a year... :-(
The original INVITE, as sent from a test Asterisk box. IP addresses and phone numbers have been globally changed to protect the innocent.
Our players in this sample: 66.77.88.99 Asterisk box originating the call 206.33.44.55 SER box in the middle 10.100.20.30 PSTN gateway (SIP is really handled at a 10.x.x.x address, all others public) The SIP Phone placing the call is 3796661000 Someone out on the PSTN is the phone 9615551212 that answers the call and goes on hook first, so the PSTN switch receives a SS7 REL message and causes it to emit the BYE back to SER.
U 2009/09/28 03:47:10.060467 66.77.88.99:5060 -> 206.33.44.55:5060 INVITE sip:9615551212@206.33.44.55 SIP/2.0 Via: SIP/2.0/UDP 66.77.88.99:5060;branch=z9hG4bK2a748d20;rport From: "TEST PHONE 1000" sip:3796661000@66.77.88.99;tag=as6e0e68d0 To: sip:9615551212@206.33.44.55 Contact: sip:3796661000@66.77.88.99 Call-ID: 106cc02230e60e47223b9e643eee9f37@66.77.88.99 CSeq: 102 INVITE User-Agent: Asterisk PBX Max-Forwards: 70 Date: Mon, 28 Sep 2009 03:47:10 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: 415
v=0 o=root 45142 45142 IN IP4 66.77.88.99 s=session c=IN IP4 66.77.88.99 t=0 0 m=audio 10918 RTP/AVP 0 3 8 112 5 10 7 97 111 a=rtpmap:0 PCMU/8000 a=rtpmap:3 GSM/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:112 AAL2-G726-32/8000 a=rtpmap:5 DVI4/8000 a=rtpmap:10 L16/8000 a=rtpmap:7 LPC/8000 a=rtpmap:97 iLBC/8000 a=fmtp:97 mode=30 a=rtpmap:111 G726-32/8000 a=silenceSupp:off - - - - a=ptime:20 a=sendrecv
Here is the INVITE that SER sent on to the PSTN gateway:
U 2009/09/28 03:47:10.061905 206.33.44.55:5060 -> 10.100.20.30:5060 INVITE sip:9615551212@10.100.20.30 SIP/2.0 Record-Route: sip:206.33.44.55;ftag=as6e0e68d0;lr=on Via: SIP/2.0/UDP 206.33.44.55;branch=z9hG4bKd151.5aa15121b87cf2215ad100fd89896056.0 Via: SIP/2.0/UDP 66.77.88.99:5060;branch=z9hG4bK2a748d20;rport=5060 From: "TEST PHONE 1000" sip:3796661000@66.77.88.99;tag=as6e0e68d0 To: sip:9615551212@206.33.44.55 Contact: sip:3796661000@206.33.44.55:5060 Call-ID: 106cc02230e60e47223b9e643eee9f37@66.77.88.99 CSeq: 102 INVITE User-Agent: Asterisk PBX Max-Forwards: 16 Date: Mon, 28 Sep 2009 03:47:10 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY Supported: replaces Content-Type: application/sdp Content-Length: 435
v=0 o=root 45142 45142 IN IP4 66.77.88.99 s=session c=IN IP4 66.77.88.99 t=0 0 m=audio 31768 RTP/AVP 0 3 8 112 5 10 7 97 111 a=rtpmap:0 PCMU/8000 a=rtpmap:3 GSM/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:112 AAL2-G726-32/8000 a=rtpmap:5 DVI4/8000 a=rtpmap:10 L16/8000 a=rtpmap:7 LPC/8000 a=rtpmap:97 iLBC/8000 a=fmtp:97 mode=30 a=rtpmap:111 G726-32/8000 a=silenceSupp:off - - - - a=ptime:20 a=sendrecv a=nortpproxy:yes
Now, here is the BYE coming from the PSTN switch to SER, which it would be really nice if SER sent on to the calling asterisk box:
U 2009/09/28 03:47:27.619185 10.100.20.30:5060 -> 206.33.44.55:5060 BYE sip:3796661000@206.33.44.55:5060 SIP/2.0 Via: SIP/2.0/UDP 10.100.20.30;branch=z9hG4bK+2403b90cbb5388c3a1fbf676690bb105+000a0283+1 Max-Forwards: 70 Call-ID: 106cc02230e60e47223b9e643eee9f37@66.77.88.99 From: sip:9615551212@206.33.44.55;tag=000a0283+1+4906002d+2fd2af7a To: "TEST PHONE 1000" sip:3796661000@66.77.88.99;tag=as6e0e68d0 CSeq: 969167137 BYE Route: sip:206.33.44.55;ftag=as6e0e68d0;lr=on Supported: timer Content-Length: 0
and here is the BYE that SER sends right back to the PSTN switch, which wonders why it was sent this junk:
U 2009/09/28 03:47:27.627511 206.33.44.55:5060 -> 10.100.20.30:5060 BYE sip:3796661000@10.100.20.30:5060 SIP/2.0 Record-Route: sip:206.33.44.55;ftag=000a0283+1+4906002d+2fd2af7a;lr=on Record-Route: sip:206.33.44.55;ftag=000a0283+1+4906002d+2fd2af7a;lr=on Via: SIP/2.0/UDP 206.33.44.55;branch=z9hG4bK9f22.8367f454f9911340deec0901b216f326.0 Via: SIP/2.0/UDP 206.33.44.55;branch=z9hG4bK9f22.55530ed60f502428f904e8008519abec.0 Via: SIP/2.0/UDP 10.100.20.30;branch=z9hG4bK+2403b90cbb5388c3a1fbf676690bb105+000a0283+1 Max-Forwards: 15 Call-ID: 106cc02230e60e47223b9e643eee9f37@66.77.88.99 From: sip:9615551212@206.33.44.55;tag=000a0283+1+4906002d+2fd2af7a To: "TEST PHONE 1000" sip:3796661000@66.77.88.99;tag=as6e0e68d0 CSeq: 969167137 BYE Supported: timer Content-Length: 0
and of course, the PSTN switch replies "Huh?":
U 2009/09/28 03:47:27.629429 10.100.20.30:5060 -> 206.33.44.55:5060 SIP/2.0 481 Call/Transaction Does Not Exist Record-Route: sip:206.33.44.55;ftag=000a0283+1+4906002d+2fd2af7a;lr=on Record-Route: sip:206.33.44.55;ftag=000a0283+1+4906002d+2fd2af7a;lr=on Via: SIP/2.0/UDP 206.33.44.55;branch=z9hG4bK9f22.8367f454f9911340deec0901b216f326.0 Via: SIP/2.0/UDP 206.33.44.55;branch=z9hG4bK9f22.55530ed60f502428f904e8008519abec.0 Via: SIP/2.0/UDP 10.100.20.30;branch=z9hG4bK+2403b90cbb5388c3a1fbf676690bb105+000a0283+1 Max-Forwards: 15 Call-ID: 106cc02230e60e47223b9e643eee9f37@66.77.88.99 From: sip:9615551212@206.33.44.55;tag=000a0283+1+4906002d+2fd2af7a To: "TEST PHONE 1000" sip:3796661000@66.77.88.99;tag=as6e0e68d0 CSeq: 969167137 BYE Supported: timer Content-Length: 0
and SER responds right back with "Double-Huh?"
U 2009/09/28 03:47:27.629558 206.33.44.55:5060 -> 10.100.20.30:5060 SIP/2.0 481 Call/Transaction Does Not Exist Record-Route: sip:206.33.44.55;ftag=000a0283+1+4906002d+2fd2af7a;lr=on Record-Route: sip:206.33.44.55;ftag=000a0283+1+4906002d+2fd2af7a;lr=on Via: SIP/2.0/UDP 10.100.20.30;branch=z9hG4bK+2403b90cbb5388c3a1fbf676690bb105+000a0283+1 Max-Forwards: 15 Call-ID: 106cc02230e60e47223b9e643eee9f37@66.77.88.99 From: sip:9615551212@206.33.44.55;tag=000a0283+1+4906002d+2fd2af7a To: "TEST PHONE 1000" sip:3796661000@66.77.88.99;tag=as6e0e68d0 CSeq: 969167137 BYE Supported: timer Content-Length: 0
and so on...
Thanks for looking!