[pjsip] Using more than one ETH device

Benny Prijono bennylp at pjsip.org
Tue Nov 13 08:31:50 EST 2007

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
>> pjsua_media_transports_attach()
>> 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
>> account.
>>   -benny

More information about the pjsip mailing list