[OpenSIPS-Users] RTP Proxy Port not updating on T38 reinvite

Pat Burke pat at voxtelesys.com
Wed Feb 28 22:01:18 EST 2018


We have a situation where a fax comes in, all of the negotiation looks good (ports are translated like they are supposed to be), and the interface with RTP Proxy looks correct (at least to me).  But what happens is that after the Re-INVITE for T38, the RTP Proxy continues to sent the RTP to the customer's old port.  In the example below, RTP Proxy sends the RTP to the customer on port 7186 AFTER the Re-INVITE with the new port.




SIP trace is located at https://www.4shared.com/file/wIVrkOtnei/SIP.html




>From the SIP responses, it appears that the code is performing correctly.  Not certain what to try next.  




Also, the RTP Proxy server was rebooted.




Any suggestions?




Thanks in advance,

Pat













Configuration:

    OpenSIPS 2.2.3 on Ubuntu 16.04

   

    RTP Proxy 2.2.alpha.20160822 on Ubuntu 16.04










***************************************************

*** OpenSIPS re-Invite code.




if (has_totag()) {
    if (is_method("BYE")) {
        if ($avp(call_end_seconds) == NULL) {
            $avp(bye_src_ip) := $si;
            $avp(bye_time) := $Ts;
            get_timestamp($avp(call_end_seconds),$avp(call_end_useconds));

            $json(end_recording_details) := "{}";
            $json(end_recording_details/endsec) = $avp(call_end_seconds);
            $json(end_recording_details/endusec) = $avp(call_end_useconds);

            xlog("L_INFO", "$dlg_val(rU) SCRIPT:RTPPROXY:DEBUG: End call recording callid=$ci ; ft= $ft data = $json(end_recording_details) \n");


            #async(avp_db_query("UPDATE recordings SET end_recording_details = '$json(end_recording_details)' WHERE call_id = '$ci'", ""), resume_totag);
            avp_db_query("UPDATE recordings SET end_recording_details = '$json(end_recording_details)' WHERE call_id = '$ci'", "");

        } else {
            xlog("L_INFO", "$dlg_val(rU) SCRIPT:BILLING:DEBUG: Extra BYE received.\n");
        }
    }

    if (loose_route() || match_dialog()) {
        if ( $DLG_status==NULL ) {
            if (is_method("ACK") && t_check_trans() ) {
                t_relay();
                exit;
            }
            xlog("L_WARN", "$rU SCRIPT:TRAFFIC:WARNING: - $rm is not in-dialog ( callid=$ci ; ruri=$ru ; route=$(hdr(Route)[*]) )\n");
            exit;
        } else {
            if (is_method("INVITE")) {
                record_route();
                if (stream_exists("image") && $dlg_val(t38) == "0") {
                    xlog("L_WARN", "$rU SCRIPT:FAX:DEBUG: Received RE-INVITE containing FAX, but carrier doesn't support it - rejecting $ci \n");
                    send_reply("488","Not Acceptable");
                    exit;
                }

                xlog("L_INFO", "$dlg_val(rU) SCRIPT:RTPPROXY:DEBUG: - $dlg_val(proxy_media) - $dlg_val(rtpproxy_group) - $dlg_val(customer_record)\n");
                # Setup proxy media
                if ($dlg_val(proxy_media) != NULL && $dlg_val(proxy_media) == "1") {
                    if (nat_uac_test("8")) {
                        rtpproxy_offer("co",,"$dlg_val(rtpproxy_group)", "$avp(rtpprpoxy_server)");
                    } else {
                        rtpproxy_offer("cor",,"$dlg_val(rtpproxy_group)", "$avp(rtpprpoxy_server)");
                    }

                    $avp(rtpprpoxy_server) := $(avp(rtpprpoxy_server){s.select,1,:});
                    if ($dlg_val(customer_record) == "1") {
                        rtpproxy_start_recording("$dlg_val(rtpproxy_group)");
                    }

                    xlog("L_INFO", "$dlg_val(rU) PHB - D - media = $(rb{sdp.line,c}) rtp = $avp(rtpprpoxy_server) \n");
                }

                t_on_reply("media");
            }

            t_relay();
            exit;
        }
    } else {
        if ( is_method("ACK") ) {
            if ( t_check_trans() ) {
                t_relay();
                exit;
            } else
                exit;
        }
        sl_send_reply("404","Not here");
        exit;
    }








***************************************************

*** RTP Ports in the call flow




              Carrier                               OpenSIPS                              Customer




Audio      61616 <<<<<<<<<<<<<<<<< 18986 <<<<<<<<<<

 

                                  >>>>>>>>>>>>>> 16930 >>>>>>>>>>>>>> 7186    (intial INVITE / 200 OK)




                    

                    

Image                       >>>>>>>>>>>>>> 16930 >>>>>>>>>>>>>> 7192    (Re-INVITE / 200 OK - T38)




                  61616 <<<<<<<<<<<<<<<<< 18986 <<<<<<<<<<




***************************************************

*** RTP Proxy Command TRACE




#

U 216.147.191.162:41657 -> 216.147.191.232:9992

1422_78032 Uc0,18,101 1917630487_62491918 at 208.93.41.184 208.93.41.140 61616 gK0c00bce5;1

#

U 216.147.191.232:9992 -> 216.147.191.162:41657

1422_78032 18986 216.147.191.232




#

U 216.147.191.162:41657 -> 216.147.191.232:9992

1422_78033 Lc0,101 1917630487_62491918 at 208.93.41.184 216.147.191.171 7186 gK0c00bce5;1 5a142640;1

#

U 216.147.191.232:9992 -> 216.147.191.162:41657

1422_78033 16930 216.147.191.232




#

U 216.147.191.162:41657 -> 216.147.191.232:9992

1422_78034 U 1917630487_62491918 at 208.93.41.184 216.147.191.171 7192 5a142640;1 gK0c00bce5;1

#

U 216.147.191.232:9992 -> 216.147.191.162:41657

1422_78034 16930 216.147.191.232




#

U 216.147.191.162:41657 -> 216.147.191.232:9992

1422_78035 L 1917630487_62491918 at 208.93.41.184 208.93.41.140 61616 5a142640;1 gK0c00bce5;1














-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20180228/39c9967d/attachment.html>


More information about the Users mailing list