HI Rik,

I removed the all flags and it worked i got audio straight away i then
re-added flags one by one to find the culprit seems the 
re-packetization was the issue when i add "z20" there is that delay in
audio,

The debugs dont show much see below

The issue is i really need RTP going to UAS to be at 20ms payload due to
a vendor restriction, at least know i know where to look at i will dig
into the re-packetization flag to see if i can learn more on why it
would do this
if you have any ideas please let me know.



DBUG:get_command: received command "16653_6 UIEZ20c18,4,8,100,118
SDurfbb02-1ceee8fa17f07cf66cdcc9b4c851f49c-ctvvfv3 UAC_IP 53266
SDurfbb02-55B0B333-1D600C7-0ADE2C1B;1"
INFO:handle_command: new session
SDurfbb02-1ceee8fa17f07cf66cdcc9b4c851f49c-ctvvfv3, tag
SDurfbb02-55B0B333-1D600C7-0ADE2C1B;1 requested, type strong
INFO:handle_command: new session on a port 57596 created, tag
SDurfbb02-55B0B333-1D600C7-0ADE2C1B;1
INFO:handle_command: pre-filling caller's address with 10.10.16.34:53266
INFO:handle_command: RTP packets from caller will be resized to 20
milliseconds
DBUG:doreply: sending reply "16653_6 57596 EXT_IP
"
DBUG:get_command: received command "16663_8 LEIZ20c18
SDurfbb02-1ceee8fa17f07cf66cdcc9b4c851f49c-ctvvfv3 UAS_IP 54274
SDurfbb02-55B0B333-1D600C7-0ADE2C1B;1 g56jcvtppqn2wxef.i;1"
INFO:handle_command: lookup on ports 57596/33858, session timer restarted
INFO:handle_command: pre-filling callee's address with 196.2.126.52:54274
INFO:handle_command: RTP packets from callee will be resized to 20
milliseconds
DBUG:doreply: sending reply "16663_8 33858 INT_IP
"
DBUG:get_command: received command "16660_5 LEIZ20c18,100
SDurfbb02-1ceee8fa17f07cf66cdcc9b4c851f49c-ctvvfv3 UAS_IP 53680
SDurfbb02-55B0B333-1D600C7-0ADE2C1B;1 g56jcvtppqn2wxef.i;1"
INFO:handle_command: lookup on ports 57596/33858, session timer restarted
INFO:handle_command: pre-filling callee's address with 196.2.126.52:53680
INFO:handle_command: RTP packets from callee will be resized to 20
milliseconds
DBUG:doreply: sending reply "16660_5 33858 INT_IP
"
DBUG:get_command: received command "16663_9 LEIZ20c18,8,100
SDurfbb02-1ceee8fa17f07cf66cdcc9b4c851f49c-ctvvfv3 UAS_IP 36606
SDurfbb02-55B0B333-1D600C7-0ADE2C1B;1 g56jcvtppqn2wxef.i;1"
INFO:handle_command: lookup on ports 57596/33858, session timer restarted
INFO:handle_command: pre-filling callee's address with 196.2.126.52:36606
INFO:handle_command: RTP packets from callee will be resized to 20
milliseconds
DBUG:doreply: sending reply "16663_9 33858 INT_IP
"
DBUG:get_command: received command "16658_5 D
SDurfbb02-1ceee8fa17f07cf66cdcc9b4c851f49c-ctvvfv3
SDurfbb02-55B0B333-1D600C7-0ADE2C1B g56jcvtppqn2wxef.i"
INFO:handle_delete: forcefully deleting session 1 on ports 57596/33858
INFO:remove_session: RTP stats: 991 in from callee, 388 in from caller,
1781 relayed, 0 dropped
INFO:remove_session: RTCP stats: 2 in from callee, 5 in from caller, 7
relayed, 0 dropped
INFO:remove_session: session on ports 57596/33858 is cleaned up
DBUG:doreply: sending reply "16658_5 0


Regards
Trevor Steyn

On 23/07/2015 10:28, Rik Broers wrote:
> Try it with only the ie flags, wz20 only adds more complexity in 
> troubleshooting.
> What do the rtpproxy logs tell you? 
>
>
> -----Oorspronkelijk bericht-----
> Van: users-boun...@lists.opensips.org 
> [mailto:users-boun...@lists.opensips.org] Namens Trevor Steyn
> Verzonden: woensdag 22 juli 2015 21:04
> Aan: users@lists.opensips.org
> Onderwerp: Re: [OpenSIPS-Users] RTP Delay when changing RTP Source port
>
> Hi Rik
>
> I have tried using rtpproxy_offer/answer functions with the same results,
>
>         if (has_body("application/sdp")) {
>                 if (rtpproxy_offer('iewz20')) {
>                         t_on_reply("1");
>                 } else {
>                         t_on_reply("2");
>                 }
>         }
>
>         t_on_failure("GW_FAILOVER");
>         route(RELAY);
> }
>
> onreply_route[1]
> {
>     if (has_body("application/sdp"))
>         rtpproxy_answer('eiwz20');
> }
>
> onreply_route[2]
> {
>     if (has_body("application/sdp"))
>         rtpproxy_offer('iewz20');
> }
>
> below you can see that Signalling and RTP flows.
>
> You will see rtpproxy only starts relaying packets ~10seconds later after the 
> 200OK even though Callee is sending RTP
>
> http://salamander.iburst.co.za:8000/personal/signalling.txt
>
> Seems the issue here is when RTP stream is already established (183 with
> SDP) and the 200OK comes along with different source port it takes some time 
> before RTP proxy relays the packets to caller.
>
> Regards
> Trevor
>
> On 22/07/2015 13:30, Rik Broers wrote:
>> I think rtpproxy_engage doesnt work correct with the fact that you bridge 
>> internal to external. Also says in docs:
>> "... Note that when used in bridge mode, this function might advertise wrong 
>> interfaces in SDP (due to the fact that OpenSIPS is not aware of the 
>> RTPProxy configuration), so you might face an undefined behavior."
>>
>> You could try and use the rtpproxy_offer and answer functions. put in the 
>> reply route an if (has_body("application/sdp")) to also catch the 183 with 
>> sdp .The docs have examples on how to use them and how to trigger on reply 
>> routes.
>>
>> Regards,
>> Rik
>>
>> -----Oorspronkelijk bericht-----
>> Van: users-boun...@lists.opensips.org 
>> [mailto:users-boun...@lists.opensips.org] Namens Trevor Steyn
>> Verzonden: woensdag 22 juli 2015 9:52
>> Aan: users@lists.opensips.org
>> Onderwerp: [OpenSIPS-Users] RTP Delay when changing RTP Source port
>>
>> Hi, All
>>
>> Still quite new to opensips I have the following configuration running 
>> on
>>
>> version: opensips 2.1.0 (x86_64/linux)
>> flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC, F_MALLOC, 
>> FAST_LOCK-ADAPTIVE_WAIT ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 
>> 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535 poll method 
>> support: poll, epoll_lt, epoll_et, sigio_rt, select.
>> main.c compiled on 06:22:03 May  8 2015 with gcc 4.4.7
>>
>>
>>                                     (Topology Hiding)
>> UAC -------> Opensips(Internal)    Opensips(External) ----> UAS
>>                                    (RTP PROXY BRIDGE)
>>
>>
>>
>> what i am experiencing is the following call is setup between UAC and UAS 
>> through opensips UAS sets up RTP with a 183 Session Progress message with 
>> SDP Shortly after we get a 180 ringing (i understand this is not correct but 
>> cannot be changed), When a 200OK is eventually sent the Source Port is 
>> different to what was in the SDP on the 183 message.
>>
>> Media starts flowing from UAS to opensips External from the new source port 
>> but for the first 7 seconds or so opensips/rtpproxy does not pass on this 
>> media to UAC from Internal.
>>
>> I run rtp proxy as follows
>>
>> rtpproxy -l <Internal IP>/<External IP> -s udp:127.0.0.1:12221 -m 
>> 25000 -M 65000 -F -d DBUG:LOCAL1
>>
>> route{
>>         #script_trace( 3, "$rm from $si, ruri=$ru", "me");
>>    
>>     if (!mf_process_maxfwd_header("10")) {
>>         sl_send_reply("483","Too Many Hops");
>>         exit;
>>     }
>>
>>     if ( check_source_address("1","$avp(trunk_attrs)") ) {
>>         # request comes from trunks
>>         setflag(IS_TRUNK);
>>     } else if ( is_from_gw() ) {
>>         # request comes from GWs
>>     } else {
>>         send_reply("403","Forbidden");
>>         exit;
>>     }
>>
>>     if (has_totag()) {
>>         # sequential request withing a dialog should
>>         # take the path determined by record-routing
>>         if(topology_hiding_match()) {
>>             # validate the sequential request against dialog
>>             if ( $DLG_status!=NULL && !validate_dialog() ) {
>>                 xlog("In-Dialog $rm from $si (callid=$ci) is not valid 
>> according to dialog\n");
>>                 ## exit;
>>             }
>>            
>>             if (is_method("BYE")) {
>>                 setflag(ACC_DO); # do accounting ...
>>                 setflag(ACC_FAILED); # ... even if the transaction fails
>>             } else if (is_method("INVITE")) {
>>                 # even if in most of the cases is useless, do RR for
>>                 # re-INVITEs alos, as some buggy clients do change route set
>>                 # during the dialog.
>>                 record_route();
>>             }
>>             route(RELAY);
>>         } else {
>>             if ( is_method("ACK") ) {
>>                 if ( t_check_trans() ) {
>>                     # non loose-route, but stateful ACK; must be an ACK after
>>                     # a 487 or e.g. 404 from upstream server
>>                     t_relay();
>>                     exit;
>>                 } else {
>>                     # ACK without matching transaction ->
>>                     # ignore and discard
>>                     exit;
>>                 }
>>             }
>>             sl_send_reply("404","Not here");
>>         }
>>         exit;
>>     }
>>
>>     #### INITIAL REQUESTS
>>
>>     if ( !isflagset(IS_TRUNK) ) {
>>         ## accept new calls only from trunks
>>         send_reply("403","Not from trunk");
>>         exit;
>>     }
>>
>>     # CANCEL processing
>>     if (is_method("CANCEL")) {
>>         if (t_check_trans())
>>             t_relay();
>>         exit;
>>     } else if (!is_method("INVITE")) {
>>         send_reply("405","Method Not Allowed");
>>         exit;
>>     }
>>
>>     if ($rU==NULL) {
>>         # request with no Username in RURI
>>         sl_send_reply("484","Address Incomplete");
>>         exit;
>>     }
>>
>>     t_check_trans();
>>
>>     # preloaded route checking
>>     if (loose_route()) {
>>         xlog("L_ERR",
>>         "Attempt to route with preloaded Route's [$fu/$tu/$ru/$ci]");
>>         if (!is_method("ACK"))
>>             sl_send_reply("403","Preload Route denied");
>>         exit;
>>     }
>>
>>     # record routing
>>     record_route();
>>
>>     setflag(ACC_DO); # do accounting
>>
>>    
>>     # create dialog with timeout
>>     if ( !create_dialog("B") ) {
>>         send_reply("500","Internal Server Error");
>>         exit;
>>     }
>>
>>    
>>     dp_translate("1","$rU/$rU");   
>>
>>     # route calls based on prefix
>>     if ( !do_routing("1",,,,"$var(gw_attributes)") ) {
>>         send_reply("404","No Route found");
>>         exit;
>>     }
>>         if (is_method("INVITE")) {
>>                         force_send_socket(udp:<EXternal IP:5060);
>>                         rtpproxy_engage('ierz20');
>>                         #rtpproxy_engage();
>>                         topology_hiding();
>>         }
>>
>>
>>     t_on_failure("GW_FAILOVER");
>>     route(RELAY);
>> }
>>
>>
>> route[RELAY] {
>>     if (!t_relay()) {
>>         sl_reply_error();
>>     };
>>     exit;
>> }
>>
>>
>> failure_route[GW_FAILOVER] {
>>     if (t_was_cancelled()) {
>>         exit;
>>     }
>>
>>     # detect failure and redirect to next available GW
>>     if (t_check_status("(408)|([56][0-9][0-9])")) {
>>         xlog("Failed GW $rd detected \n");
>>
>>         if ( use_next_gw() ) {
>>             t_on_failure("GW_FAILOVER");
>>             t_relay();
>>             exit;
>>         }
>>        
>>         send_reply("500","All GW are down");
>>     }
>> }
>>
>>
>> local_route {
>>     if (is_method("BYE") && $DLG_dir=="UPSTREAM") {
>>        
>>         acc_log_request("200 Dialog Timeout");
>>        
>>     }
>> }
>>
>>
>> Below you can see the call flow
>>
>> http://salamander.iburst.co.za:8000/personal/signalling.txt
>>
>> I have tried a most of the options on rtpproxy_engage with no luck
>>
>> Regards
>> Trevor Steyn
>>
>>
>> _______________________________________________
>> Users mailing list
>> Users@lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>
>> _______________________________________________
>> Users mailing list
>> Users@lists.opensips.org
>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
> _______________________________________________
> Users mailing list
> Users@lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
> _______________________________________________
> Users mailing list
> Users@lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users


_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to