RTP PT change and custom RTP PT rx/tx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andreas,

By default, pjmedia stream and SDP negotiation only allow single real
audio payload type (and telephone events, if any) to be used in an
audio session. For the pjmedia stream port, you can always 'wrap' it
(or even replace it) with your own pjmedia port so you can send/recv
RTP packets with any payload types in that session (see
on_stream_created() & on_stream_destroyed() pjsua callbacks). But for
SDP negotiation, unfortunately there is no such customization
mechanism.

FYI, the default stream behaviour on silence:
- if VAD is enabled:
  + if codec has native VAD (such as AMR, Speex): periodic CN packets
will be sent/received (with its PT) at some interval (codec
dependent).
  + otherwise: periodic keep-alive packets will be sent/received (with
its PT) with interval of PJMEDIA_CODEC_MAX_SILENCE_PERIOD.
- if VAD is disabled: normal RTP packets is sent continuously (as if
there is no silence).

BR,
nanang


On Wed, May 2, 2012 at 8:46 PM, Andreas Wehrmann
<a.wehrmann at centersystems.com> wrote:
> Good day everyone!
>
> I have a few questions regarding the use of pjproject.
> I'm currently undecided about which version to use (1.14 or 2.0-rc)
> but am tending towards the stable release branch (1.x).
>
> These are my questions:
>
>
> 1. Can I switch from audio to comfort noise (change RTP payload type)?
>
> Say I have an outgoing RTP stream and don't want to send silence but change
> the RTP payload type to CN if I don't have useful audio to send, how would I
> do it?
>
> I did notice that there seems to be a "comfort noise generation" feature,
> but I didn't find anything on how to use it.
>
>
> 2. Can I send RTP packets with my own (dynamic) payload type
> "on demand" using an existing stream?
>
> Imagine I have an outgoing RTP stream on which I send real audio or silence
> (CN).
> I'd like to be able to send requests (payload of the RTP packet would be the
> naked request) to the remote peer at any time using a payload type from the
> dynamic payload type range.
>
> My expectation is that this request will be send immediately in between the
> regular RTP audio packets.
>
> Is it possible to do this without any changes to pjproject?
> If so, examples and/or pointers to the documentation would be greatly
> appreciated.
>
>
> 3. Can I receive RTP packets with my own payload type?
>
> Question 2. leads to the question of how I could receive
> my "RTP request packets".
> The reception of such a packet should result in a function being called to
> deliver the payload and stream or call ID (to identify from which
> stream/call the packet came) to the application.
>
> I did find the codec manager API and figured that it might to the job if I'd
> just registered my "codec" to pjsua that way. Would it work?
>
>
> Regards,
>
> Andreas
>
> --
> Dipl.-Ing. (FH) Andreas Wehrmann
> Software Development
> --------------------------------------------------------------
> Center Communication Systems GmbH
> A-1210 Wien, Ignaz-K?ck-Stra?e 19
> Sitz in Wien
> FN 796 88p, Firmenbuchgericht Wien
> www.centersystems.com
>
> Tel.: +43 (0) 190 199 - 3616
> Mobile: +43 (0) 664 884 75916
> Fax: +43 (0) 190 199 - 2110
> E-Mail: a.wehrmann at centersystems.com
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip at lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org



[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux