[pjsip] Create conf port with incoming RTP stream

Hubert Langevin hubertlangevin at gmail.com
Mon Apr 28 18:58:38 EDT 2008


Thank you so much Nanang,

I tried it your way and everything looks clearer now... and it works
too... I am getting the RTP stream on port 4002. I had to disable RTCP
because my audio device only supports RTP.

So far I have just one problem left. I can't change the volume of the
conf port associated with that RTP stream. The stream does get muted
if i put the speaker level to 0 but that's about it. I can change the
volume from 1 to 10 with no noticeable difference at all to the actual
voice. The only thing that seems to change is I pick up much more
background noise. But the volume of the voice does not change.

Not sure where the problem lies but I'll keep working at it. I did
specify the codec and clock-rate to match the incoming RTP stream.

Anyway thank you again for your help, I really appreciate it.

Best Regards,

Hubert Langevin

On Tue, Apr 29, 2008 at 4:35 AM, Nanang Izzuddin <nanang at pjsip.org> wrote:
> Hi Hubert,
>
>  It seems you are using PJSUA and you need to receive an RTP stream on
>  port 4002, then pass the stream to conference bridge without call
>  signaling at the first place.
>
>  Since there is no call signaling, I think you better use your own
>  media transport and don't need to deal with pjmedia session. So the
>  steps should be around:
>
>  1. create a UDP pjmedia transport listening on port 4002.
>  2. create stream port with the above pjmedia transport.
>  3. add the stream port to conference bridge (use
>  pjsua_conf_add_port(), instead of pjmedia_conf_add_port(), since you
>  are using pjsua)
>  4. connect the stream port to other port(s), e.g: sound device, or
>  other stream ports.
>
>  You should only use the API and not modifying any parts of the
>  library, something rather strange/'illegal' in your code snippet
>  (well, actually not directly related to the problem):
>  - accessing member of pjmedia_session while this struct is opaque.
>  - calling create_conf_port(), not API.
>  - manage the pjsua's conference manually instead of using PJSUA API
>  pjsua_conf_add_port().
>
>
>  Regards,
>  nanang
>
>
>
>
>  On 27/04/2008, Hubert Langevin <hubertlangevin at gmail.com> wrote:
>  > Hi everyone,
>  >
>  >  I just had an enquiry. I have a separate audio device that transmits
>  >  an RTP stream (with no RTCP) to my PC running PJSIP on port 4002. I
>  >  would like to convert that incoming RTP stream into a conference port
>  >  in PJSIP so I can use it for conferencing purposes.
>  >
>  >  Here is a little bit of what i did so far:
>  >
>  >  =================================================
>  >
>  >  pj_str_t port_name = pj_str("Stream from Radio 1");
>  >  pj_str_t codec = pj_str("PCMU/8000/1");
>  >
>  >  pool = pjmedia_endpt_create_pool( pjsua_var.med_endpt, "session",
>  >  PJMEDIA_SESSION_SIZE, PJMEDIA_SESSION_INC);
>  >
>  >  session = PJ_POOL_ZALLOC_T(pool, pjmedia_session);
>  >  session->pool = pool;
>  >  session->endpt = pjsua_var.med_endpt;
>  >  session->stream_cnt = 1;
>  >  session->user_data = call;
>  >
>  >  session->stream_info[0].dir = PJMEDIA_DIR_ENCODING_DECODING;
>  >  session->stream_info[0].type = PJMEDIA_TYPE_AUDIO;
>  >  session->stream_info[0].fmt.clock_rate = 8000;
>  >  session->stream_info[0].fmt.type = PJMEDIA_TYPE_AUDIO;
>  >  session->stream_info[0].fmt.channel_cnt = 2;
>  >  session->stream_info[0].fmt.encoding_name = codec;
>  >  session->stream_info[0].rem_addr = addr_RTP;
>  >
>  >  pjmedia_stream_create(pjsua_var.med_endpt,
>  >  session->pool,&session->stream_info[0],
>  >  call->med_tp, session, &session->stream[0]);
>  >
>  >  pjmedia_stream_start(session->stream[0]);
>  >
>  >  pjmedia_session_get_port(session, 0, &media_port);
>  >
>  >  create_conf_port(pjsua_var.pool, pjsua_var.mconf,
>  >  media_port, &port_name, &conf_port);
>  >
>  >  pjsua_var.mconf->ports[1] = conf_port;
>  >  pjsua_var.mconf->port_cnt++;
>  >
>  >  =================================================
>  >
>  >  I do receive the stream on the right port, but I can't seem to get the
>  >  audio out of the conf port.
>  >
>  >  Any ideas of what i might be doing wrong?
>  >
>  >  Thank you so much in advance,
>  >
>  >  Best Regards,
>  >
>  >  Hubert Langevin.
>  >
>  >  _______________________________________________
>  >  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
>  >
>
>  _______________________________________________
>  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
>




More information about the pjsip mailing list