[Freeswitch-dev] question about CNG on late packages

Xijing Dai dxj19831029 at gmail.com
Sat Feb 16 14:51:39 MSK 2013


How to let freeswitch send late packets? I tried in following way, but the
call is missing ACK in freeswitch end when the client sent 200 OK back.

Any suggestions?

The changed code is: (I simply go to sleep 1ms and then try to read again)


                if (check || (bytes && !switch_test_flag(rtp_session,
SWITCH_RTP_FLAG_USE_TIMER))) {
if (!bytes && switch_test_flag(rtp_session, SWITCH_RTP_FLAG_USE_TIMER)) { /*
We're late! We're Late! */
if (!switch_test_flag(rtp_session, SWITCH_RTP_FLAG_NOBLOCK) && status ==
SWITCH_STATUS_BREAK) {
switch_cond_next();
continue;
}

//return_cng_frame();  <------- comment this lane and directly go to sleep
and read again
                                goto do_continue;
}
}

On Wed, Feb 6, 2013 at 12:52 AM, Bing LI <enst.bupt at gmail.com> wrote:

> In my experience suppress_cng did work but only prevented sending CNG
> packet.
> freeswitch would ignore the late packets because it thought the cng packet
> had been sent out. it makes a hole in the seq number in B-leg.
>
> So later I modified the switch_rtp.c to change this mechanism.
>
>
>
> On Tue, Feb 5, 2013 at 11:32 AM, Xijing Dai <dxj19831029 at gmail.com> wrote:
>
>> I see.
>>
>>
>> I did set it suppress_cng=true, and it did not help. No difference at all.
>>
>> This happens inside LAN.
>>
>> When talking about the jitter buffer, we want to enable it on client, and
>> disable it inside freeswitch.
>> Therefore, in this case, should freeswitch do nothing?
>>
>>
>> Cheers
>>
>>
>>
>>
>> On Tue, Feb 5, 2013 at 11:35 PM, Anthony Minessale <
>> anthony.minessale at gmail.com> wrote:
>>
>>> Don't negotiate CNG in the SDP and it won't use it or disable it with
>>> suppress_cng=true in your channel or global vars.
>>>
>>>
>>>
>>> On Tue, Feb 5, 2013 at 4:32 AM, Steven Ayre <steveayre at gmail.com> wrote:
>>>
>>>> Because if a RTP packet is due and hasn't arrived yet you need
>>>> something to play. Audio isn't like TCP where you dropped packets can be
>>>> retransmitted, if it hasn't arrived by the time you want to play it it's
>>>> too late and you have to play silence to handle it.
>>>>
>>>> Your audio problems are more likely due to packet loss or jitter which
>>>> is why the RTP packet is overdue, not the CNG itself.
>>>>
>>>> It jitter's the problem enabling the jitterbuffer might help (at the
>>>> expense of increased lag). If loss is the problem there's no way to handle
>>>> that except as silence for the missing interval, you need to fix whatever
>>>> is causing the loss.
>>>>
>>>> -Steve
>>>>
>>>>
>>>> On 5 February 2013 10:23, Xijing Dai <dxj19831029 at gmail.com> wrote:
>>>>
>>>>> Hey all,
>>>>>
>>>>>
>>>>> Inside code
>>>>>
>>>>> switch_rtp.c file:
>>>>>
>>>>>    static int rtp_common_read(switch_rtp_t *rtp_session,
>>>>> switch_payload_t *payload_type, switch_frame_flag_t *flags,
>>>>> switch_io_flag_t io_flags)
>>>>>                  ................
>>>>>                  if (check || (bytes && !switch_test_flag(rtp_session,
>>>>> SWITCH_RTP_FLAG_USE_TIMER))) {
>>>>> if (!bytes && switch_test_flag(rtp_session,
>>>>> SWITCH_RTP_FLAG_USE_TIMER)) { /* We're late! We're Late! */
>>>>>  if (!switch_test_flag(rtp_session, SWITCH_RTP_FLAG_NOBLOCK) &&
>>>>> status == SWITCH_STATUS_BREAK) {
>>>>> switch_cond_next();
>>>>>  continue;
>>>>> }
>>>>>
>>>>> return_cng_frame();  <------- this lane to return cng frame if late.
>>>>>  }
>>>>> }
>>>>>
>>>>>
>>>>> Could someone explain why we want to return cng frame when package is
>>>>> late? this is caused for me to hear very bad noise audio.
>>>>>
>>>>> Can I disable return CNG frame?
>>>>>
>>>>>
>>>>> Cheers
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _________________________________________________________________________
>>>>> Professional FreeSWITCH Consulting Services:
>>>>> consulting at freeswitch.org
>>>>> http://www.freeswitchsolutions.com
>>>>>
>>>>> 
>>>>> 
>>>>>
>>>>> Official FreeSWITCH Sites
>>>>> http://www.freeswitch.org
>>>>> http://wiki.freeswitch.org
>>>>> http://www.cluecon.com
>>>>>
>>>>> FreeSWITCH-dev mailing list
>>>>> FreeSWITCH-dev at lists.freeswitch.org
>>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>>>>> http://www.freeswitch.org
>>>>>
>>>>>
>>>>
>>>>
>>>> _________________________________________________________________________
>>>> Professional FreeSWITCH Consulting Services:
>>>> consulting at freeswitch.org
>>>> http://www.freeswitchsolutions.com
>>>>
>>>> 
>>>> 
>>>>
>>>> Official FreeSWITCH Sites
>>>> http://www.freeswitch.org
>>>> http://wiki.freeswitch.org
>>>> http://www.cluecon.com
>>>>
>>>> FreeSWITCH-dev mailing list
>>>> FreeSWITCH-dev at lists.freeswitch.org
>>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>>>> http://www.freeswitch.org
>>>>
>>>>
>>>
>>>
>>> --
>>> Anthony Minessale II
>>>
>>> FreeSWITCH http://www.freeswitch.org/
>>> ClueCon http://www.cluecon.com/
>>> Twitter: http://twitter.com/FreeSWITCH_wire
>>>
>>> AIM: anthm
>>> MSN:anthony_minessale at hotmail.com
>>> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com
>>> IRC: irc.freenode.net #freeswitch
>>>
>>> FreeSWITCH Developer Conference
>>> sip:888 at conference.freeswitch.org
>>> googletalk:conf+888 at conference.freeswitch.org
>>> pstn:+19193869900
>>>
>>> _________________________________________________________________________
>>> Professional FreeSWITCH Consulting Services:
>>> consulting at freeswitch.org
>>> http://www.freeswitchsolutions.com
>>>
>>> 
>>> 
>>>
>>> Official FreeSWITCH Sites
>>> http://www.freeswitch.org
>>> http://wiki.freeswitch.org
>>> http://www.cluecon.com
>>>
>>> FreeSWITCH-dev mailing list
>>> FreeSWITCH-dev at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>>> http://www.freeswitch.org
>>>
>>>
>>
>> _________________________________________________________________________
>> Professional FreeSWITCH Consulting Services:
>> consulting at freeswitch.org
>> http://www.freeswitchsolutions.com
>>
>> 
>> 
>>
>> Official FreeSWITCH Sites
>> http://www.freeswitch.org
>> http://wiki.freeswitch.org
>> http://www.cluecon.com
>>
>> FreeSWITCH-dev mailing list
>> FreeSWITCH-dev at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
>> http://www.freeswitch.org
>>
>>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
> 
> 
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://wiki.freeswitch.org
> http://www.cluecon.com
>
> FreeSWITCH-dev mailing list
> FreeSWITCH-dev at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev
> http://www.freeswitch.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20130216/cd4458a0/attachment-0001.html 


Join us at ClueCon 2011 Aug 9-11, 2011
More information about the FreeSWITCH-dev mailing list