[pjsip] Changing codec parameter dynamically

JOHAN LANTZ johan.lantz at telefonica.com
Sat Dec 3 06:36:00 EST 2016

Have you thought about something like:

  *   When you are talking or when the other peer is talking, use the sound card as always
  *   When there is silence, call pjsua_set_null_snd. This way you do not block the sound device for other apps needing it and you do not consume any unnecessary power. The call stays active though and the null sound maintains the timing for the rtp flow.
  *   When the user presses the PTT button or when you detect incoming rtp you call pjsua_set_snd_dev to activate the sound card again and so on.
  *   Pjsip by default does rtp and rtcp keep alive. You can configure both the content of the keep alive packets and the frequency through compiler switches easily. That way you can configure rtp keep alive to be done every 200 msec with an empty packet. (By default when you have audio, you send audio frames every 20 msec).


From: pjsip on behalf of Gang Liu
Reply-To: pjsip list
Date: Saturday, 3 December 2016 at 04:16
To: pjsip list
Subject: Re: [pjsip] Changing codec parameter dynamically

you can do it at your custom transport adapter.
for example I guess you have some application flag "without audio". when this flag enabled, drop some rtp frames and send only 200 ms. only things you need to do is
rewrite rtp seq and rtp timestamp correctly at your adapter if remote peer don't like big big packet loss.
VAD work for some codec, some wouldn't because some like "SID"  frames still sending out.

On Sat, Dec 3, 2016 at 7:12 AM, <301 at free.fr<mailto:301 at free.fr>> wrote:

In my project where I simulate some kind of push to talk, I need to be able to have no payload in the RTP packets when the PTT is off. I succeeded to do that by removing the payload in a custom transport adapter and the transport_send_rtp callback (but is it the best way to do that?).
Anyway my second need is to change the frequency of RTP packets when I remove the payload (PTT off). For example:
with audio: RTP frame every 20ms
without audio: RTP frame every 200ms
So I was thinking of dynamically changing the ptime of the codec in use, but I don't figure out how to do that (again this may not be the right way to do it, any other suggestion welcome then).
Could anybody give me an hint?


Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip at lists.pjsip.org<mailto:pjsip at lists.pjsip.org>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20161203/60df09ec/attachment.html>

More information about the pjsip mailing list