<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'DejaVu Sans'; font-size:9pt; font-weight:400; font-style:normal;">Hello everybody, for those who are not in holidays under the sun...<br>
I have already checked, on no previous exchange on the mailing list seems to answer to this problem..<br /><br>
My version of OpenSIPs is OpenSIPS (1.4.5-notls (x86_64/linux))<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>I have a problem when a 200 OK of a re-INVITE. Indeed, I use a route(2) to handle NAT correction, I have put the route(2) at the beginning of main route, on onreply_route, on failure_route, and on branch_route. So, for each packets, it should go inside the route(2)...<br /><br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>So usually I get SIP headers Contact rewritten when it's necessary like for the 1st 200 OK before a re-INVITE. Once it has been rewritten, ACK messages are correctly routed using the Route and Contact Header!<br>
But after the re-INVITE, for the 200 OK SIP message, route(2) is not triggered anymore, so Contact Header remains with a Private IP, and so ACK message is not routed correctly! So I'm wondering which route is used... To be able to rewrite the Contact Header with fax_nated_contact()<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Thanks for your help!!<span style=" font-weight:600;"><br /></span><br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><span style=" font-weight:600;">Debug 6 is below with route(2) in bold characters:</span><br /><br>
ul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_msg: SIP Reply  (status):<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_msg:  version: &lt;SIP/2.0&gt;<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_msg:  status:  &lt;200&gt;<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_msg:  reason:  &lt;OK&gt;<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: flags=2<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_via_param: found param type 232, &lt;branch&gt; = &lt;z9hG4bKeaa5.f2c33656.0&gt;; state=16<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_via: end of header reached, state=5<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: via found, flags=2<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: this is the first via<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:receive_msg: After parse_msg...<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:forward_reply: found module nathelper, passing reply to it<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: flags=4<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_via_param: found param type 234, &lt;received&gt; = &lt;212.147.46.81&gt;; state=6<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_via_param: found param type 232, &lt;branch&gt; = &lt;z9hG4bK7d4078d1&gt;; state=16<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_via: end of header reached, state=5<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: via found, flags=4<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: parse_headers: this is the second via<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:forward_reply: found module tm, passing reply to it<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:t_check: start=0xffffffffffffffff<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: flags=22<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_to_param: tag=FJkNzIDMBJE<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_to: end of header reached, state=29<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_to: display={}, ruri={sip:0245667945@212.147.0.191:3844}<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:get_hdr_field: &lt;To&gt; [53]; uri=[sip:0245667945@212.147.0.191:3844]<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:get_hdr_field: to body [&lt;sip:0245667945@212.147.0.191:3844&gt;]<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:get_hdr_field: cseq &lt;CSeq&gt;: &lt;102&gt; &lt;INVITE&gt;<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: flags=8<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:t_reply_matching: hash 23214 label 1701002287 branch 0<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:t_reply_matching: REF_UNSAFE: after is 1<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:t_reply_matching: reply matched (T=0x2b6d744f4c78)!<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: flags=8<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:run_trans_callbacks: trans=0x2b6d744f4c78, callback type 2, id 2 entered<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: flags=8<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:run_trans_callbacks: trans=0x2b6d744f4c78, callback type 2, id 0 entered<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_to_param: tag=as540161fe<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_to: end of header reached, state=29<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_to: display={"0227077410"}, ruri={sip:0227077410@212.147.46.90}<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:uac:restore_from_reply: removing &lt;From: "0227077410" &lt;sip:0227077410@212.147.46.90&gt;;tag=as540161fe^M &gt;<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:uac:restore_from_reply: inserting &lt;From: "0227077410" &lt;sip:0227077410@212.147.46.81&gt;;tag=as540161fe^M &gt;<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:t_check: end=0x2b6d744f4c78<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:reply_received: org. status uas=180, uac[0]=180 local=0 is_invite=1)<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: <span style=" font-weight:600;">Default - Incoming Reply</span><br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: <span style=" font-weight:600;">STARTING TEST NAT^M</span><br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: flags=80<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: <span style=" font-weight:600;">NAT Detected - Fixing Contact &lt;sip:0245667945@192.168.1.47:5060&gt;^M</span><br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: flags=80<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:parse_headers: flags=20<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:t_should_relay_response: T_code=180, new_code=200<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:relay_reply: branch=0, save=0, relay=0<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:tm:run_trans_callbacks: trans=0x2b6d744f4c78, callback type 16, id 1 entered<br />Jul 30 15:33:11 zue-tix-vp-pro-02 /usr/sbin/opensips[9560]: DBG:core:build_res_buf_from_sip_res:  old size: 793, new size: 732<br /><br>
<br /><br>
<br /><br>
<span style=" font-weight:600;">But after the re-INVITE, for the 200 OK, route(2) is not triggered, so I'm wondering which route is used...<br /></span><br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><br /><br>
Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9564]: DBG:core:receive_msg: cleaning up<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_msg: SIP Reply  (status):<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_msg:  version: &lt;SIP/2.0&gt;<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_msg:  status:  &lt;200&gt;<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_msg:  reason:  &lt;OK&gt;<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_headers: flags=2<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_via_param: found param type 232, &lt;branch&gt; = &lt;z9hG4bKfaa5.4ac6bfe5.0&gt;; state=16<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_via: end of header reached, state=5<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_headers: via found, flags=2<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_headers: this is the first via<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:receive_msg: After parse_msg...<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:forward_reply: found module nathelper, passing reply to it<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_headers: flags=4<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_via_param: found param type 234, &lt;received&gt; = &lt;212.147.46.81&gt;; state=6<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_via_param: found param type 232, &lt;branch&gt; = &lt;z9hG4bK7ee0d618&gt;; state=16<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_via: end of header reached, state=5<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_headers: via found, flags=4<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_headers: parse_headers: this is the second via<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:forward_reply: found module tm, passing reply to it<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:tm:t_check: start=0xffffffffffffffff<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_headers: flags=22<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_to_param: tag=FJkNzIDMBJE<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_to: end of header reached, state=29<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_to: display={}, ruri={sip:0245667945@212.147.0.191:3844}<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:get_hdr_field: &lt;To&gt; [53]; uri=[sip:0245667945@212.147.0.191:3844]<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:get_hdr_field: to body [&lt;sip:0245667945@212.147.0.191:3844&gt;]<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:get_hdr_field: cseq &lt;CSeq&gt;: &lt;103&gt; &lt;INVITE&gt;<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_headers: flags=8<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:tm:t_reply_matching: hash 23215 label 1593535652 branch 0<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:tm:t_reply_matching: REF_UNSAFE: after is 1<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:tm:t_reply_matching: reply matched (T=0x2b6d744f4c78)!<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:tm:run_trans_callbacks: trans=0x2b6d744f4c78, callback type 2, id 0 entered<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_to_param: tag=as540161fe<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_to: end of header reached, state=29<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:parse_to: display={"0227077410"}, ruri={sip:0227077410@212.147.46.90}<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:uac:restore_from_reply: removing &lt;From: "0227077410" &lt;sip:0227077410@212.147.46.90&gt;;tag=as540161fe^M &gt;<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:uac:restore_from_reply: inserting &lt;From: "0227077410" &lt;sip:0227077410@212.147.46.81&gt;;tag=as540161fe^M &gt;<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:tm:t_check: end=0x2b6d744f4c78<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:tm:reply_received: org. status uas=100, uac[0]=0 local=0 is_invite=1)<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:tm:t_should_relay_response: T_code=100, new_code=200<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:tm:relay_reply: branch=0, save=0, relay=0<br />Jul 30 15:33:16 zue-tix-vp-pro-02 /usr/sbin/opensips[9548]: DBG:core:build_res_buf_from_sip_res:  old size: 863, new size: 801<br /><br>
<br /><br>
The only difference I have seen is that on the first 200OK, I have <br>
        DBG:tm:reply_received: org. status uas=180, uac[0]=180 local=0 is_invite=1)<br>
and on the second one, I have:<br>
        DBG:tm:reply_received: org. status uas=100, uac[0]=0 local=0 is_invite=1)<br>
so second 200 OK is answered without any previous 100 or 180 SIP message<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>And CallId is the same for the all SIP exchange! Of course!<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><span style=" font-weight:600;">Here is my route(2)</span><br /><br>
route[2]{<br />        xlog("L_DBG", "STARTING TEST NAT\r\n");<br />        if (nat_uac_test("19")) {<br />                force_rport();<br /><br>
                xlog("L_DBG", "NAT Detected - Fixing Contact $ct\r\n");<br />               fix_nated_contact();<br /><br>
                if (is_method("REGISTER")) {<br />                        fix_nated_register();   # Creates a URI consisting of the source IP, port, and protocol appended as "received" parameter to Contact<br />                        setflag(6);             # Mark user as NAT'ed to start branch ping<br />                };<br />        };<br />}<br /><br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><span style=" font-weight:600;">and all my other routes:</span><br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0; font-weight:600;"><br></p># main request routing logic<br>
route{<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>        # Reject Packet if SIP TTL is too low<br>
        if (!mf_process_maxfwd_header("10")) {<br>
                sl_send_reply("483","Too Many Hops");<br>
                exit;<br>
        }<br>
        # Test NATed contact<br>
      <span style=" font-weight:600;">  route(2);</span><br>
        if (has_totag()) {      # Check To Header field uri contains tag parameter.<br>
                # sequential request withing a dialog should<br>
                # take the path determined by record-routing<br>
                if (loose_route()) {    # The function performs routing of SIP requests which contain a route set.<br>
                        if (is_method("BYE")) {<br>
                                setflag(1); # do accounting ...<br>
                                setflag(3); # ... even if the transaction fails<br>
                        } else if (is_method("INVITE")) {<br>
                                # even if in most of the cases is useless, do RR for<br>
                                # re-INVITEs alos, as some buggy clients do change route set<br>
                                # during the dialog.<br>
                                record_route();<br>
...<br>
...<br>
}<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0; font-weight:600;"><br></p>branch_route[1] {<br>
        xlog("L_DBG", "Default - New Branch $rm At $ru from $si\n");<br>
        # Test NATed contact<br>
        route(2);<br>
}<br>
onreply_route[1] {<br>
        xlog("L_DBG", "Default - Incoming Reply\n");<br>
        # Test NATed contact<br>
       <span style=" font-weight:600;"> route(2);</span><br>
}<br>
failure_route[1] {<br>
        xlog("L_DBG", "Default - Failure Route $rm\n");<br>
        # Test NATed contact<br>
        <span style=" font-weight:600;">route(2);</span><br>
        if (t_was_cancelled()) {<br>
                exit;<br>
        }<br>
}<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><span style=" font-weight:600;">Here is the first 200 OK before and after the proxy without SDP section. You will notice that the Contact Header is rewritten:</span><br>
SIP/2.0 200 OK<br>
Via: SIP/2.0/UDP 212.147.46.90;branch=z9hG4bKeaa5.f2c33656.0<br>
Via: SIP/2.0/UDP 212.147.46.81:5060;received=212.147.46.81;branch=z9hG4bK7d4078d1<br>
To: &lt;sip:0245667945@212.147.0.191:3844&gt;;tag=FJkNzIDMBJE<br>
From: "0227077410" &lt;sip:0227077410@212.147.46.90&gt;;tag=as540161fe<br>
Call-ID: 685c98e92c885ae33d8ab4e51779a2a2@212.147.46.81<br>
CSeq: 102 INVITE<br>
Record-Route: &lt;sip:212.147.46.90;lr=on;ftag=as540161fe;vsf=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQ--;did=799.50d5763&gt;<br>
<span style=" font-weight:600;">Contact: &lt;sip:0245667945@192.168.1.47:5060&gt;</span><br>
Content-Type: application/sdp<br>
Content-Length: 217<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>SIP/2.0 200 OK<br>
Via: SIP/2.0/UDP 212.147.46.81:5060;received=212.147.46.81;branch=z9hG4bK7d4078d1<br>
To: &lt;sip:0245667945@212.147.0.191:3844&gt;;tag=FJkNzIDMBJE<br>
From: "0227077410" &lt;sip:0227077410@212.147.46.81&gt;;tag=as540161fe<br>
Call-ID: 685c98e92c885ae33d8ab4e51779a2a2@212.147.46.81<br>
CSeq: 102 INVITE<br>
Record-Route: &lt;sip:212.147.46.90;lr=on;ftag=as540161fe;vsf=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQ--;did=799.50d5763&gt;<br>
<span style=" font-weight:600;">Contact: &lt;sip:0245667945@212.147.0.191:3844&gt;</span><br>
Content-Type: application/sdp<br>
Content-Length: 217<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><span style=" font-weight:600;">and here is the second 200 OK after re-INVITE, before and after the proxy. and Contact is not rewritten:</span><br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>SIP/2.0 200 OK<br>
Via: SIP/2.0/UDP 212.147.46.90;branch=z9hG4bKfaa5.4ac6bfe5.0<br>
Via: SIP/2.0/UDP 212.147.46.81:5060;received=212.147.46.81;branch=z9hG4bK7ee0d618<br>
To: &lt;sip:0245667945@212.147.0.191:3844&gt;;tag=FJkNzIDMBJE<br>
From: "0227077410" &lt;sip:0227077410@212.147.46.90&gt;;tag=as540161fe<br>
Call-ID: 685c98e92c885ae33d8ab4e51779a2a2@212.147.46.81<br>
CSeq: 103 INVITE<br>
Record-Route: &lt;sip:212.147.46.90;lr=on;ftag=as540161fe&gt;<br>
<span style=" font-weight:600;">Contact: &lt;sip:0245667945@192.168.1.47:5060&gt;</span><br>
Content-Type: application/sdp<br>
Content-Length: 348<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>SIP/2.0 200 OK<br>
Via: SIP/2.0/UDP 212.147.46.81:5060;received=212.147.46.81;branch=z9hG4bK7ee0d618<br>
To: &lt;sip:0245667945@212.147.0.191:3844&gt;;tag=FJkNzIDMBJE<br>
From: "0227077410" &lt;sip:0227077410@212.147.46.81&gt;;tag=as540161fe<br>
Call-ID: 685c98e92c885ae33d8ab4e51779a2a2@212.147.46.81<br>
CSeq: 103 INVITE<br>
Record-Route: &lt;sip:212.147.46.90;lr=on;ftag=as540161fe&gt;<br>
<span style=" font-weight:600;">Contact: &lt;sip:0245667945@192.168.1.47:5060&gt;</span><br>
Content-Type: application/sdp<br>
Content-Length: 348<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p><p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Thank you for your help if you have read this message until here....<br>
Have a nice day!<br /><br>
<br />-- <br />-- --<br />Marc LEURENT<br />lftsy@leurent.eu<br /><br>
<br /></p></body></html>