[pjsip] Using more than one ETH device
jorge.amador at withus.pt
jorge.amador at withus.pt
Tue Nov 13 11:15:30 EST 2007
I created 2 rtp transports successfully, one each eth device. Now I
have a different problem. It seems to me that I can't have 2 calls at
the same time because only 1 stream is created. I checked the code and
I found a commentary in pjsua_media.c that says the following:
/* Create media session info based on SDP parameters.
* We only support one stream per session at the moment
Is only one RTP stream supported? Is it possible to have more?
Quoting Benny Prijono <bennylp at pjsip.org>:
> Ouch, you're right, it's not implemented yet. Sorry! But anyway this
> function does not solve your requirement, so I don't think it
> matters too much.
> In summary, currently we can't assign specific RTP transports to a
> specific account with pjsua-lib. Supporting this will require quite
> major modifications in the API, for example to move media transport
> config (and perhaps STUN settings) to account config. Maybe I will
> consider doing this in the next major release, but for sure this
> will break existing applications, so I'd rather not do this unless
> there are really important reasons to do it.
> So if you can't accept this limitation, my only suggestion for now
> is to go with using the lower level APIs (pjsip and pjmedia).
> jorge.amador at withus.pt wrote:
>> Hi Benny,
>> I've followed your suggestion but after trying to compile the project I
>> get this error message:
>> output/pjsua-i686-pc-linux-gnu/pjsua_app.o: In function `app_init':
>> output/pjsua-i686-pc-linux-gnu/pjsua_app.o(.text+0x6303): undefined
>> reference to `pjsua_media_transports_attach'
>> I've checked the code and I only found the declaration of the function
>> pjsua_media_transports_attach() in the file pjsua.h. It seems to me that
>> this function is declared but not implemented in the code. Am I missing
>> something? Thanks,
>> Jorge Amador
>> Quoting Benny Prijono <bennylp at pjsip.org>:
>>> jorge.amador at withus.pt wrote:
>>>> Hi Benny,
>>>> I've changed to 0.8.0 version. Now I can bind an account to a specific
>>>> transport (in this case 2 different ethernet devices) but after checking
>>>> with ethereal I noticed that rtp transport is binded to only one off the
>>>> ethernet devices. I tried to create 2 rtp transports, one for each
>>>> ethernet device but failed with this error:
>>>> 20:11:07.341 pjsua_media.c Unable to create RTP/RTCP socket: Cannot
>>>> assign requested address [status=120099]
>>>> Is it possible to create 2 rtp transports with the same application?
>>>> Thanks and best regards
>>> It is possible to use multiple RTP transports of course, since
>>> pjsua-lib supports multiple calls. Binding RTP transports to one
>>> specific interface is also supported.
>>> Binding different RTP transports to different IP interface can also
>>> be done, but this requires application to pre-create the RTP
>>> transports itself, and give it to pjsua-lib by calling
>>> But what is not supported is, assigning specific RTP transport to
>>> specific accounts. Currently each RTP transport will be assigned to
>>> each call instance in the call array during pjsua-lib
>>> initialization, and there's no association between RTP transport and
>>> the account (since RTP transport can be used by any accounts).
>>> So it's not possible to create specific RTP transport for specific
> Visit our blog: http://blog.pjsip.org
> pjsip mailing list
> pjsip at lists.pjsip.org
More information about the pjsip