xuedezhang / php-sip

Automatically exported from code.google.com/p/php-sip
0 stars 0 forks source link

Record-Routes not handled correctly #15

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
I am trying to perform click-to-dial and the ACK replies aren't being routed 
correctly

Route
php-sip <-> Proxy1 <-> Proxy2 <-> Caller and Callee

What is the expected output? What do you see instead?
When php-sip receives a 200OK or a 180/183 it sees the Record-Route headers and 
adds then to php-sip's route set.  The problem is that when php-sip sends the 
ACK the Route headers order haven't been flipped so that it takes the correct 
route back.

What version of the product are you using? On what operating system?

Please provide any additional information below.

#
U 2012/07/18 22:13:52.563121 50.57.75.54:5065 -> 50.57.54.156:5060
INVITE sip:9016726924@irock.com SIP/2.0.
Via: SIP/2.0/UDP 50.57.75.54:5065;rport;branch=z9hG4bK234146.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: <sip:9016726924@irock.com>.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 20 INVITE.
Contact: <sip:c2c@50.57.75.54:5065>.
Content-Type: application/sdp.
Max-Forwards: 70.
User-Agent: PHP SIP.
Subject: click2call.
Content-Length: 221.
.
v=0.
o=click2dial 0 0 IN IP4 50.57.75.54.
s=click2dial call.
c=IN IP4 50.57.75.54.
t=0 0.
m=audio 8000 RTP/AVP 0 8 18 3 4 97 98.
a=rtpmap:0 PCMU/8000.
a=rtpmap:18 G729/8000.
a=rtpmap:97 ilbc/8000.
a=rtpmap:98 speex/8000.

#
U 2012/07/18 22:13:52.580332 50.57.54.156:5060 -> 50.57.75.54:5065
SIP/2.0 100 Giving a try.
Via: SIP/2.0/UDP 
50.57.75.54:5065;received=50.57.75.54;rport=5065;branch=z9hG4bK234146.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: <sip:9016726924@irock.com>.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 20 INVITE.
Server: Aethercommunications SIP Proxy.
Content-Length: 0.
.

#
U 2012/07/18 22:13:52.580570 50.57.54.156:5060 -> 99.114.204.161:5060
INVITE sip:9016726924@192.168.88.13:3072;line=g2hfphrk SIP/2.0.
Record-Route: 
<sip:50.57.54.156;lr;ftag=18824;vst=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;did=bc1.29f
56745>.
Via: SIP/2.0/UDP 50.57.54.156;branch=z9hG4bK846b.175658c5.0.
Via: SIP/2.0/UDP 
50.57.75.54:5065;received=50.57.75.54;rport=5065;branch=z9hG4bK234146.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: <sip:9016726924@irock.com>.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 20 INVITE.
Contact: <sip:c2c@50.57.75.54:5065>.
Content-Type: application/sdp.
Max-Forwards: 69.
User-Agent: PHP SIP.
Subject: click2call.
Content-Length: 225.
P-hint: outbound->inbound .
P-hint: Route[6]: mediaproxy .
.
v=0.
o=click2dial 0 0 IN IP4 50.57.75.54.
s=click2dial call.
c=IN IP4 173.203.81.111.
t=0 0.
m=audio 12442 RTP/AVP 0 8 18 3 4 97 98.
a=rtpmap:0 PCMU/8000.
a=rtpmap:18 G729/8000.
a=rtpmap:97 ilbc/8000.
a=rtpmap:98 speex/8000.

#
U 2012/07/18 22:13:52.637490 99.114.204.161:5060 -> 50.57.54.156:5060
SIP/2.0 100 Giving a try.
Via: SIP/2.0/UDP 50.57.54.156;branch=z9hG4bK846b.175658c5.0.
Via: SIP/2.0/UDP 
50.57.75.54:5065;received=50.57.75.54;rport=5065;branch=z9hG4bK234146.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: <sip:9016726924@irock.com>.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 20 INVITE.
Server: OpenSIPS (1.8.0-notls (x86_64/linux)).
Content-Length: 0.
.

#
U 2012/07/18 22:13:52.671265 99.114.204.161:5060 -> 50.57.54.156:5060
SIP/2.0 180 Ringing.
Via: SIP/2.0/UDP 50.57.54.156;branch=z9hG4bK846b.175658c5.0.
Via: SIP/2.0/UDP 
50.57.75.54:5065;received=50.57.75.54;rport=5065;branch=z9hG4bK234146.
Record-Route: <sip:192.168.88.1;r2=on;lr>.
Record-Route: <sip:99.114.204.161;r2=on;lr>.
Record-Route: 
<sip:50.57.54.156;lr;ftag=18824;vst=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;did=bc1.29f
56745>.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: "1000 - 672-6924" <sip:9016726924@irock.com>;tag=1w6iab72bu.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 20 INVITE.
Contact: <sip:9016726924@192.168.88.13:3072;line=g2hfphrk>;reg-id=1.
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, 
MESSAGE, INFO, UPDATE.
Allow-Events: talk, hold, refer, call-info.
Content-Length: 0.
.

#
U 2012/07/18 22:13:52.671802 50.57.54.156:5060 -> 50.57.75.54:5065
SIP/2.0 180 Ringing.
Via: SIP/2.0/UDP 
50.57.75.54:5065;received=50.57.75.54;rport=5065;branch=z9hG4bK234146.
Record-Route: <sip:192.168.88.1;r2=on;lr>.
Record-Route: <sip:99.114.204.161;r2=on;lr>.
Record-Route: 
<sip:50.57.54.156;lr;ftag=18824;vst=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;did=bc1.29f
56745>.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: <sip:9016726924@irock.com>;tag=1w6iab72bu.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 20 INVITE.
Contact: <sip:9016726924@192.168.88.13:3072;line=g2hfphrk>;reg-id=1.
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, 
MESSAGE, INFO, UPDATE.
Allow-Events: talk, hold, refer, call-info.
Content-Length: 0.
P-hint: Onreply-route - fixcontact .
.

#
U 2012/07/18 22:13:54.362476 99.114.204.161:5060 -> 50.57.54.156:5060
SIP/2.0 200 Ok.
Via: SIP/2.0/UDP 50.57.54.156;branch=z9hG4bK846b.175658c5.0.
Via: SIP/2.0/UDP 
50.57.75.54:5065;received=50.57.75.54;rport=5065;branch=z9hG4bK234146.
Record-Route: <sip:192.168.88.1;r2=on;lr>.
Record-Route: <sip:99.114.204.161;r2=on;lr>.
Record-Route: 
<sip:50.57.54.156;lr;ftag=18824;vst=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;did=bc1.29f
56745>.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: "1000 - 672-6924" <sip:9016726924@irock.com>;tag=1w6iab72bu.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 20 INVITE.
Contact: <sip:9016726924@192.168.88.13:3072;line=g2hfphrk>;reg-id=1.
User-Agent: snom821/8.4.35.
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, 
MESSAGE, INFO, UPDATE.
Allow-Events: talk, hold, refer, call-info.
Supported: timer, replaces, from-change.
Content-Type: application/sdp.
Content-Length: 248.
.
v=0.
o=root 1468301988 1468301989 IN IP4 192.168.88.13.
s=call.
c=IN IP4 192.168.88.13.
t=0 0.
m=audio 14122 RTP/AVP 0 18 3 4.
a=rtpmap:0 PCMU/8000.
a=rtpmap:18 G729/8000.
a=fmtp:18 annexb=no.
a=rtpmap:3 GSM/8000.
a=rtpmap:4 G723/8000.
a=sendrecv.

#
U 2012/07/18 22:13:54.371208 50.57.54.156:5060 -> 50.57.75.54:5065
SIP/2.0 200 Ok.
Via: SIP/2.0/UDP 
50.57.75.54:5065;received=50.57.75.54;rport=5065;branch=z9hG4bK234146.
Record-Route: <sip:192.168.88.1;r2=on;lr>.
Record-Route: <sip:99.114.204.161;r2=on;lr>.
Record-Route: 
<sip:50.57.54.156;lr;ftag=18824;vst=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;did=bc1.29f
56745>.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: <sip:9016726924@irock.com>;tag=1w6iab72bu.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 20 INVITE.
Contact: <sip:9016726924@192.168.88.13:3072;line=g2hfphrk>;reg-id=1.
User-Agent: snom821/8.4.35.
Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, SUBSCRIBE, PRACK, 
MESSAGE, INFO, UPDATE.
Allow-Events: talk, hold, refer, call-info.
Supported: timer, replaces, from-change.
Content-Type: application/sdp.
Content-Length: 249.
P-hint: Onreply-route - fixcontact .
.
v=0.
o=root 1468301988 1468301989 IN IP4 192.168.88.13.
s=call.
c=IN IP4 173.203.81.111.
t=0 0.
m=audio 12440 RTP/AVP 0 18 3 4.
a=rtpmap:0 PCMU/8000.
a=rtpmap:18 G729/8000.
a=fmtp:18 annexb=no.
a=rtpmap:3 GSM/8000.
a=rtpmap:4 G723/8000.
a=sendrecv.

#
U 2012/07/18 22:13:54.382781 50.57.75.54:5065 -> 50.57.54.156:5060
ACK sip:9016726924@192.168.88.13:3072 SIP/2.0.
Via: SIP/2.0/UDP 50.57.75.54:5065;rport;branch=z9hG4bK234146.
Route: <sip:192.168.88.1;r2=on;lr>.
Route: <sip:99.114.204.161;r2=on;lr>.
Route: 
<sip:50.57.54.156;lr;ftag=18824;vst=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;did=bc1.29f
56745>.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: <sip:9016726924@irock.com>;tag=1w6iab72bu.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 20 ACK.
Max-Forwards: 70.
User-Agent: PHP SIP.
Content-Length: 0.
.

#
U 2012/07/18 22:13:54.384067 50.57.54.156:5060 -> 192.168.88.1:5060
ACK sip:9016726924@192.168.88.13:3072 SIP/2.0.
Record-Route: <sip:50.57.54.156;lr;ftag=18824>.
Via: SIP/2.0/UDP 50.57.54.156;branch=z9hG4bK846b.175658c5.2.
Via: SIP/2.0/UDP 
50.57.75.54:5065;received=50.57.75.54;rport=5065;branch=z9hG4bK234146.
Route: <sip:192.168.88.1;r2=on;lr>.
Route: <sip:99.114.204.161;r2=on;lr>.
Route: 
<sip:50.57.54.156;lr;ftag=18824;vst=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;did=bc1.29f
56745>.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: <sip:9016726924@irock.com>;tag=1w6iab72bu.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 20 ACK.
Max-Forwards: 69.
User-Agent: PHP SIP.
Content-Length: 0.
.

#
U 2012/07/18 22:13:54.393631 50.57.75.54:5065 -> 50.57.54.156:5060
REFER sip:9016726924@192.168.88.13:3072 SIP/2.0.
Via: SIP/2.0/UDP 50.57.75.54:5065;rport;branch=z9hG4bK165462.
Route: <sip:192.168.88.1;r2=on;lr>.
Route: <sip:99.114.204.161;r2=on;lr>.
Route: 
<sip:50.57.54.156;lr;ftag=18824;vst=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;did=bc1.29f
56745>.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: <sip:9016726924@irock.com>;tag=1w6iab72bu.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 21 REFER.
Contact: <sip:c2c@50.57.75.54:5065>.
Content-Type: application/sdp.
Max-Forwards: 70.
User-Agent: PHP SIP.
Refer-to: sip:9013003546@irock.com.
Referred-By: sip:c2c@50.57.75.54.
Content-Length: 0.
.

#
U 2012/07/18 22:13:54.394621 50.57.54.156:5060 -> 192.168.88.13:3072
REFER sip:9016726924@192.168.88.13:3072 SIP/2.0.
Via: SIP/2.0/UDP 50.57.54.156;branch=z9hG4bK946b.e51e5253.0.
Via: SIP/2.0/UDP 
50.57.75.54:5065;received=50.57.75.54;rport=5065;branch=z9hG4bK165462.
Route: <sip:192.168.88.1;r2=on;lr>.
Route: <sip:99.114.204.161;r2=on;lr>.
Route: 
<sip:50.57.54.156;lr;ftag=18824;vst=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;did=bc1.29f
56745>.
From: <sip:c2c@50.57.75.54>;tag=18824.
To: <sip:9016726924@irock.com>;tag=1w6iab72bu.
Call-ID: aa6c07d0b4bb30a77aa7673aa3856938@50.57.75.54.
CSeq: 21 REFER.
Contact: <sip:c2c@50.57.75.54:5065>.
Content-Type: application/sdp.
Max-Forwards: 70.
User-Agent: PHP SIP.
Refer-to: sip:9013003546@irock.com.
Referred-By: sip:c2c@50.57.75.54.
Content-Length: 0.
.

Original issue reported on code.google.com by duane.la...@gmail.com on 19 Jul 2012 at 4:16