[OpenSIPS-Users] B2BUA help
Anca Vamanu
anca at opensips.org
Fri Feb 5 11:35:11 CET 2010
Hi Brian,
opensipslist at encambio.com wrote:
> Hello Anca,
>
> An ven., janv 29, 2010, Anca Vamanu schrieb:
>
>> opensipslist at encambio.com wrote:
>>
>>> An lun., janv 04, 2010, Anca Vamanu schrieb:
>>>
>>>> I see that you say that the prepaid scenario does not work for you.
>>>> What version are you testing with?
>>>>
>>>>
>>> Solaris 11 x86 (nv-b91)
>>> OpenSIPS 1.6.0 with TLS
>>>
>>> I've copied the example 'prepaid.xml' word for word from the URL:
>>>
>>> http://www.opensips.org/Resources/B2buaTutorial16
>>>
>>> Here are the relevant parts of the route script:
>>>
>>> listen = udp:name.host.tld:5060
>>> listen = tls:name.host.tld:5061
>>>
>>> modparam("tm", "pass_provisional_replies", 1)
>>> modparam("b2b_entities", "server_address", "sip:b2bua at name.host.tld")
>>> modparam("b2b_logic", "script_scenario", "/pfx/etc/opensips/b2bua/prepaid.xml")
>>>
>>> if (has_totag()) {
>>> if (loose_route()) {
>>> # code here
>>> }
>>> }
>>>
>>> if (!is_method("REGISTER|MESSAGE")) {
>>> record_route();
>>> }
>>>
>>> if (is_method("INVITE") && src_ip != myself) { # Start of B2BUA
>>> if (!t_newtran()) { # logic block, do
>>> sl_reply_error(); # media announcements
>>> exit; # to users
>>> }
>>> b2b_init_request("prepaid", "sip:playsound at name.host.tld:5080", "sip:playsound at name.host.tld:5080");
>>> exit;
>>> }
>>>
>>> if (src_ip != myself) {
>>> if ($hdr(P-hint) != "outbound") {
>>> append_hf("P-hint: outbound\r\n");
>>> }
>>> }
>>>
>>> Does that look like it should work? Is 't_newtran' necessary?
>>>
>>>
>> t_newtran is necessary because b2b should not handle retransmissions.
>> And yes, the configuration file seems correct and should work. If it
>> doesn't, try to find the exact problem. Check if there are errors in
>> opensips log and watch the network traffic.
>>
>>
> I've changed the parameters to:
>
> b2b_init_request("prepaid", "sip:playsound at name.host.tld:5080;transport=tcp", "sip:playsound at name.host.tld:5080;transport=tcp");
>
> ...because name.host.tld is listening on TCP port 5080. Before,
> the B2BUA modules were sending over TLS, which is how the original
> INVITE from the UAC is sent. Is there a better way to tell the B2BUA
> modules to use TCP rather than another transport?
>
>
No, unfortunately there is no other way to tell b2b to use other protocol.
> My main question now, is that the host name.host.tld is getting the
> message, but challenging the B2BUA logic with a WWW-Authenticate 401
> message. This gets passed implicitly back to the UAC which sent the
> INVITE, however it seems that the B2BUA modules strip the WWW-
> Authenticate header so that the UAC only sees a 'sanitized'
> 401 SIP message and cannot authenticate.
>
> How can I adjust the prepaid scenario to accommodate 401 challenges?
>
>
If you use the trunk svn branch, you have a parameter in b2b_logic
module - "custom_headers". You can set it to "WWW-Authenticate,
Authorization" and the content of these headers will be passed on the
other side.
> Regards,
> Brian
>
>
Regards,
--
Anca Vamanu
www.voice-system.ro
More information about the Users
mailing list