On 16-09 13:02, Martin Koenig wrote:
Hello,
Ngrep:
Hello,
ngrep dump:
# U 2004/09/16 12:42:01.791105 4.5.6.156:5060 -> 1.2.3.67:5070 SIP/2.0 200 OK. Via: SIP/2.0/UDP 1.2.3.67:5070;branch=z9hG4bK0a65d941. From: "tpl-dev" sip:t02@example.com;tag=0006283e0a68003a5a99de34-50ace3d6. To: sip:00358400589247@example.com;tag=1c16103. Call-ID: 0006283e-0a680037-0dc88799-351df346@1.2.3.67. CSeq: 102 INVITE. Contact: sip:00358400589247@11.22.33.66;user=phone. Record-Route: sip:+358400589247@1.2.3.68:5070;ftag=0006283e0a68003a5a99de34-50ace3d6;lr, sip:+358400589247@1.2.3.69:5070;ftag=0006283e0a68003a5a99de34-50ace3d6;lr, sip:00358400589247@4.5.6.156;ftag=0006283e0a68003a5a99de34-50ace3d6;lr. Supported: em,timer,replaces,100rel. Allow: REGISTER,OPTIONS,INVITE,ACK,CANCEL,BYE,NOTIFY,PRACK,REFER,INFO,SUBSCRIBE. Server: Audiocodes-Sip-Gateway-tpl_voip_gw1/v.4.20.354.574. Content-Type: application/sdp. Content-Length: 208. . v=0. o=AudiocodesGW 49132 44576 IN IP4 11.22.33.66. s=Phone-Call. c=IN IP4 11.22.33.66. t=0 0. m=audio 6000 RTP/AVP 8 96. a=rtpmap:8 pcma/8000. a=rtpmap:96 telephone-event/8000. a=fmtp:96 0-15. a=ptime:20.
# U 2004/09/16 12:42:02.008739 1.2.3.67:5070 -> 4.5.6.156:5060 ACK sip:00358400589247@4.5.6.156:5060;ftag=0006283e0a68003a5a99de34-50ace3d6;lr SIP/2.0. Via: SIP/2.0/UDP 1.2.3.67:5070;branch=z9hG4bK2c7403dc. From: "tpl-dev" sip:t02@example.com;tag=0006283e0a68003a5a99de34-50ace3d6. To: sip:00358400589247@example.com;tag=1c16103. Call-ID: 0006283e-0a680037-0dc88799-351df346@1.2.3.67. CSeq: 102 ACK. User-Agent: CSCO/7. Route: sip:+358400589247@1.2.3.69:5070;ftag=0006283e0a68003a5a99de34-50ace3d6;lr, sip:+358400589247@1.2.3.68:5070;ftag=0006283e0a68003a5a99de34-50ace3d6;lr, sip:00358400589247@11.22.33.66:5060;user=phone. Content-Length: 0. .
# U 2004/09/16 12:43:55.175413 1.2.3.67:5070 -> 4.5.6.156:5060 BYE sip:00358400589247@4.5.6.156:5060;ftag=0006283e0a68003a5a99de34-50ace3d6;lr SIP/2.0. Via: SIP/2.0/UDP 1.2.3.67:5070;branch=z9hG4bK6c7c16c5. From: "tpl-dev" sip:t02@example.com;tag=0006283e0a68003a5a99de34-50ace3d6. To: sip:00358400589247@example.com;tag=1c16103. Call-ID: 0006283e-0a680037-0dc88799-351df346@1.2.3.67. CSeq: 103 BYE. User-Agent: CSCO/7. Content-Length: 0. Route: sip:+358400589247@1.2.3.69:5070;ftag=0006283e0a68003a5a99de34-50ace3d6;lr, sip:+358400589247@1.2.3.68:5070;ftag=0006283e0a68003a5a99de34-50ace3d6;lr, sip:00358400589247@11.22.33.66:5060;user=phone. . end dump
1.2.3.67 is the cisco 7960 4.5.6.156 is the local proxy 1.2.3.68 and .69 are proxies along the way 11.22.33.66 is the pstn gateway
As you can see, the cisco receives an ok with record route header field, the last entry 4.5.6.156:5060. Contact 11.22.33.66:5060 is the Gateway.
In my understanding for proper loose routing the ACK and also the following bye should be sent like this:
ACK sip:00358400589247@11.22.33.66:5060 (the final destination) Route: sip:00358400589247@4.5.6.156:5060;lr,sip:+358400589247@1.2.3.69:5070;lr, sip:+358400589247@1.2.3.68:5070;lr
Which is the reverse order of the record route from the 200 ok.
But instead the Cisco sends:
ACK sip:00358400589247@4.5.6.156:5060 (the next hop) Route: sip:+358400589247@1.2.3.69:5070;lr,sip:+358400589247@1.2.3.68:5070;lr, sip:00358400589247@11.22.33.66:5060 (the final destination).
This looks like strict routing to me.
Yes that is correct, it implements strict routing (properly), there is nothing wrong with it, the proxy server can detect it and handle the message properly. Loose routers are backwards compatible with strict routers.
Jan.