BP
Benny Prijono
Sun, Nov 4, 2007 11:46 AM
Hi everyone,
I'm using pjsip 0.5.10.4 in an equipment that as three Ethernet
devices each one with a IP address. I want to create 2 accounts for
Eth1, 2 accounts for Eth2 and none for Eth0, using the same PJSUA. Is
it possible?
Not with 0.5.10.x, and maybe with 0.7 version (or probably the SVN
version). In 0.7.x, there is an API to "lock" account to specific
transport, with pjsua_acc_set_transport(). And since you can bind
transport to a specific interface, effectively you can control which
interface should be used by an account.
cheers,
-benny
Thanks everyone,
Jorge Amador
jorge.amador@withus.pt wrote:
> Hi everyone,
>
> I'm using pjsip 0.5.10.4 in an equipment that as three Ethernet
> devices each one with a IP address. I want to create 2 accounts for
> Eth1, 2 accounts for Eth2 and none for Eth0, using the same PJSUA. Is
> it possible?
Not with 0.5.10.x, and maybe with 0.7 version (or probably the SVN
version). In 0.7.x, there is an API to "lock" account to specific
transport, with pjsua_acc_set_transport(). And since you can bind
transport to a specific interface, effectively you can control which
interface should be used by an account.
cheers,
-benny
> Thanks everyone,
>
> Jorge Amador
JA
jorge.amador@withus.pt
Mon, Nov 5, 2007 8:40 PM
Hi Benny,
I changed to the 0.7.0 version and succeded adding udp transport on
both eth devices. However when I try to lock one account to one
transport and another account to another transport (each transport
with different IP addresses and ports) it doesn't work. Both accounts
get locked to the same transport and it is always the last transport
that I configure. I'm using pjsua_acc_set_transport() with the account
id that I want to lock to a transport id. Any idea of what is going
wrong? Thanks a lot for your help.
Best regards,
Jorge Amador
Quoting Benny Prijono bennylp@pjsip.org:
Hi everyone,
I'm using pjsip 0.5.10.4 in an equipment that as three Ethernet
devices each one with a IP address. I want to create 2 accounts for
Eth1, 2 accounts for Eth2 and none for Eth0, using the same PJSUA. Is
it possible?
Not with 0.5.10.x, and maybe with 0.7 version (or probably the SVN
version). In 0.7.x, there is an API to "lock" account to specific
transport, with pjsua_acc_set_transport(). And since you can bind
transport to a specific interface, effectively you can control which
interface should be used by an account.
cheers,
-benny
Thanks everyone,
Jorge Amador
Hi Benny,
I changed to the 0.7.0 version and succeded adding udp transport on
both eth devices. However when I try to lock one account to one
transport and another account to another transport (each transport
with different IP addresses and ports) it doesn't work. Both accounts
get locked to the same transport and it is always the last transport
that I configure. I'm using pjsua_acc_set_transport() with the account
id that I want to lock to a transport id. Any idea of what is going
wrong? Thanks a lot for your help.
Best regards,
Jorge Amador
Quoting Benny Prijono <bennylp@pjsip.org>:
> jorge.amador@withus.pt wrote:
>> Hi everyone,
>>
>> I'm using pjsip 0.5.10.4 in an equipment that as three Ethernet
>> devices each one with a IP address. I want to create 2 accounts for
>> Eth1, 2 accounts for Eth2 and none for Eth0, using the same PJSUA. Is
>> it possible?
>
> Not with 0.5.10.x, and maybe with 0.7 version (or probably the SVN
> version). In 0.7.x, there is an API to "lock" account to specific
> transport, with pjsua_acc_set_transport(). And since you can bind
> transport to a specific interface, effectively you can control which
> interface should be used by an account.
>
> cheers,
> -benny
>
>> Thanks everyone,
>>
>> Jorge Amador
>
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip@lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
BP
Benny Prijono
Thu, Nov 8, 2007 1:36 PM
Sorry for the late reply. I just tried this with pjsip SVN version
and couldn't reproduce the problem. Could you post a snippet
perhaps? Also may be better to try the SVN version instead.
cheers,
-benny
jorge.amador@withus.pt wrote:
Hi Benny,
I changed to the 0.7.0 version and succeded adding udp transport on
both eth devices. However when I try to lock one account to one
transport and another account to another transport (each transport
with different IP addresses and ports) it doesn't work. Both accounts
get locked to the same transport and it is always the last transport
that I configure. I'm using pjsua_acc_set_transport() with the account
id that I want to lock to a transport id. Any idea of what is going
wrong? Thanks a lot for your help.
Best regards,
Jorge Amador
Quoting Benny Prijono bennylp@pjsip.org:
Hi everyone,
I'm using pjsip 0.5.10.4 in an equipment that as three Ethernet
devices each one with a IP address. I want to create 2 accounts for
Eth1, 2 accounts for Eth2 and none for Eth0, using the same PJSUA. Is
it possible?
Not with 0.5.10.x, and maybe with 0.7 version (or probably the SVN
version). In 0.7.x, there is an API to "lock" account to specific
transport, with pjsua_acc_set_transport(). And since you can bind
transport to a specific interface, effectively you can control which
interface should be used by an account.
cheers,
-benny
Thanks everyone,
Jorge Amador
Sorry for the late reply. I just tried this with pjsip SVN version
and couldn't reproduce the problem. Could you post a snippet
perhaps? Also may be better to try the SVN version instead.
cheers,
-benny
jorge.amador@withus.pt wrote:
> Hi Benny,
>
> I changed to the 0.7.0 version and succeded adding udp transport on
> both eth devices. However when I try to lock one account to one
> transport and another account to another transport (each transport
> with different IP addresses and ports) it doesn't work. Both accounts
> get locked to the same transport and it is always the last transport
> that I configure. I'm using pjsua_acc_set_transport() with the account
> id that I want to lock to a transport id. Any idea of what is going
> wrong? Thanks a lot for your help.
>
> Best regards,
>
> Jorge Amador
>
> Quoting Benny Prijono <bennylp@pjsip.org>:
>
>> jorge.amador@withus.pt wrote:
>>> Hi everyone,
>>>
>>> I'm using pjsip 0.5.10.4 in an equipment that as three Ethernet
>>> devices each one with a IP address. I want to create 2 accounts for
>>> Eth1, 2 accounts for Eth2 and none for Eth0, using the same PJSUA. Is
>>> it possible?
>> Not with 0.5.10.x, and maybe with 0.7 version (or probably the SVN
>> version). In 0.7.x, there is an API to "lock" account to specific
>> transport, with pjsua_acc_set_transport(). And since you can bind
>> transport to a specific interface, effectively you can control which
>> interface should be used by an account.
>>
>> cheers,
>> -benny
>>
>>> Thanks everyone,
>>>
>>> Jorge Amador
JA
jorge.amador@withus.pt
Mon, Nov 12, 2007 8:12 PM
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
Jorge Amador
Quoting Benny Prijono bennylp@pjsip.org:
Sorry for the late reply. I just tried this with pjsip SVN version
and couldn't reproduce the problem. Could you post a snippet
perhaps? Also may be better to try the SVN version instead.
cheers,
-benny
jorge.amador@withus.pt wrote:
Hi Benny,
I changed to the 0.7.0 version and succeded adding udp transport on
both eth devices. However when I try to lock one account to one
transport and another account to another transport (each transport
with different IP addresses and ports) it doesn't work. Both accounts
get locked to the same transport and it is always the last transport
that I configure. I'm using pjsua_acc_set_transport() with the account
id that I want to lock to a transport id. Any idea of what is going
wrong? Thanks a lot for your help.
Best regards,
Jorge Amador
Quoting Benny Prijono bennylp@pjsip.org:
Hi everyone,
I'm using pjsip 0.5.10.4 in an equipment that as three Ethernet
devices each one with a IP address. I want to create 2 accounts for
Eth1, 2 accounts for Eth2 and none for Eth0, using the same PJSUA. Is
it possible?
Not with 0.5.10.x, and maybe with 0.7 version (or probably the SVN
version). In 0.7.x, there is an API to "lock" account to specific
transport, with pjsua_acc_set_transport(). And since you can bind
transport to a specific interface, effectively you can control which
interface should be used by an account.
cheers,
-benny
Thanks everyone,
Jorge Amador
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
Jorge Amador
Quoting Benny Prijono <bennylp@pjsip.org>:
>
> Sorry for the late reply. I just tried this with pjsip SVN version
> and couldn't reproduce the problem. Could you post a snippet
> perhaps? Also may be better to try the SVN version instead.
>
> cheers,
> -benny
>
>
> jorge.amador@withus.pt wrote:
>> Hi Benny,
>>
>> I changed to the 0.7.0 version and succeded adding udp transport on
>> both eth devices. However when I try to lock one account to one
>> transport and another account to another transport (each transport
>> with different IP addresses and ports) it doesn't work. Both accounts
>> get locked to the same transport and it is always the last transport
>> that I configure. I'm using pjsua_acc_set_transport() with the account
>> id that I want to lock to a transport id. Any idea of what is going
>> wrong? Thanks a lot for your help.
>>
>> Best regards,
>>
>> Jorge Amador
>>
>> Quoting Benny Prijono <bennylp@pjsip.org>:
>>
>>> jorge.amador@withus.pt wrote:
>>>> Hi everyone,
>>>>
>>>> I'm using pjsip 0.5.10.4 in an equipment that as three Ethernet
>>>> devices each one with a IP address. I want to create 2 accounts for
>>>> Eth1, 2 accounts for Eth2 and none for Eth0, using the same PJSUA. Is
>>>> it possible?
>>> Not with 0.5.10.x, and maybe with 0.7 version (or probably the SVN
>>> version). In 0.7.x, there is an API to "lock" account to specific
>>> transport, with pjsua_acc_set_transport(). And since you can bind
>>> transport to a specific interface, effectively you can control which
>>> interface should be used by an account.
>>>
>>> cheers,
>>> -benny
>>>
>>>> Thanks everyone,
>>>>
>>>> Jorge Amador
>
>
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip@lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
BP
Benny Prijono
Tue, Nov 13, 2007 12:01 AM
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
jorge.amador@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
JA
jorge.amador@withus.pt
Tue, Nov 13, 2007 11:25 AM
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@pjsip.org:
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
Visit our blog: http://blog.pjsip.org
pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
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@pjsip.org>:
> jorge.amador@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
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip@lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>
BP
Benny Prijono
Tue, Nov 13, 2007 1:30 PM
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 for now, my only suggestion is to use the lower level API (pjsip
and pjmedia).
cheers,
-benny
jorge.amador@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@pjsip.org:
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
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 for now, my only suggestion is to use the lower level API (pjsip
and pjmedia).
cheers,
-benny
jorge.amador@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@pjsip.org>:
>
>> jorge.amador@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
BP
Benny Prijono
Tue, Nov 13, 2007 1:31 PM
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).
cheers,
-benny
jorge.amador@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@pjsip.org:
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
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).
cheers,
-benny
jorge.amador@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@pjsip.org>:
>
>> jorge.amador@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
TV
Tomás Valenta
Tue, Nov 13, 2007 1:51 PM
Hi Benny,
I am reporting some problems with building pjsua as DLL in Visual Studio 8.
In VS8 solution I declare macros PJ_DLL and PJ_EXPORTING in projects whose
functions I want to use (e.g. pjlib, pjmedia and pjsua-lib). In project
pjsua-lib I set output as DLL. Macros PJ_EXPORT_DECL_SPECIFIER etc. are
automaticaly defined in cc_msvc.h.
First problem:
In the solution there are no depencies on other projects so the projects
won't be built and linked. I had to set the depencies manually to the same
ones as in pjsua app.
Second problem:
See following compiler error:
c:\pjproject-0.8.0\pjlib\src\pj\except.c(41) : error C2375:
'pj_throw_exception_' : redefinition; different linkage
c:\pjproject-0.8.0\pjlib\include\pj\except.h(302) : see declaration of
'pj_throw_exception_'
I don't know exactly what it means but commenting out the line
//#define PJ_EXPORT_DEF_SPECIFIER __declspec(dllexport)
in cc_msvc.h solves the problem.
Have a nice day.
Vali
Hi Benny,
I am reporting some problems with building pjsua as DLL in Visual Studio 8.
In VS8 solution I declare macros PJ_DLL and PJ_EXPORTING in projects whose
functions I want to use (e.g. pjlib, pjmedia and pjsua-lib). In project
pjsua-lib I set output as DLL. Macros PJ_EXPORT_DECL_SPECIFIER etc. are
automaticaly defined in cc_msvc.h.
First problem:
In the solution there are no depencies on other projects so the projects
won't be built and linked. I had to set the depencies manually to the same
ones as in pjsua app.
Second problem:
See following compiler error:
c:\pjproject-0.8.0\pjlib\src\pj\except.c(41) : error C2375:
'pj_throw_exception_' : redefinition; different linkage
c:\pjproject-0.8.0\pjlib\include\pj\except.h(302) : see declaration of
'pj_throw_exception_'
I don't know exactly what it means but commenting out the line
//#define PJ_EXPORT_DEF_SPECIFIER __declspec(dllexport)
in cc_msvc.h solves the problem.
Have a nice day.
Vali
JA
jorge.amador@withus.pt
Tue, Nov 13, 2007 2:22 PM
Hi Benny,
Thanks for the hint. I'll will try to use the lower level APIs. Best regards,
Jorge Amador
Quoting Benny Prijono bennylp@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).
cheers,
-benny
jorge.amador@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@pjsip.org:
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
Hi Benny,
Thanks for the hint. I'll will try to use the lower level APIs. Best regards,
Jorge Amador
Quoting Benny Prijono <bennylp@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).
>
> cheers,
> -benny
>
> jorge.amador@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@pjsip.org>:
>>
>>> jorge.amador@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
>
>
> _______________________________________________
> Visit our blog: http://blog.pjsip.org
>
> pjsip mailing list
> pjsip@lists.pjsip.org
> http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
>