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 [email protected] 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 [email protected] 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 [email protected] 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 [email protected] 208.93.41.140 61616 5a142640;1 
gK0c00bce5;1














_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to