[OpenSIPS-Users] B2BUA help
opensipslist at encambio.com
opensipslist at encambio.com
Wed Feb 10 11:41:59 CET 2010
Hello Anca,
I'm approaching the problem from a different perspective now,
and making progress with your help. Please note the 'CSEQ'...
Caller OpenSIPS B2B Mediaserver
| | |
INVITE CSEQ 1 ------------->| INVITE CSEQ 2 ----->|
| | |
|<-- 401 WWW-Authenticate |<-------- 401 WWW-Authenticate
| | |
INVITE CSEQ 2 ------------->| INVITE CSEQ 2 ----->|
| | !!!!!! |
| | |
|<-- 401 WWW-Authenticate |<-------- 401 WWW-Authenticate
| | |
As you can see, the above scenario will not work. The B2B logic is
not increasing the CSEQ of the second incoming INVITE. This is the
real one that should actually start the dialog.
How do you recommend to correct this. Can I simply adjust your
prepaid.xml file?
My best guess is that I can insert a 'delete_entity' to try to
indicate to the B2b logic that a new dialog begins at the second
INVITE, but I don't know how to do that. Is this right?
<!-- prepaid.xml, insert a new 'request' block -->
<rules>
<request>
<invite>
<rule id="1">
<condition>
<state>1</state>
<sender>
<type>server</type>
<id>server1</id>
</sender>
</condition>
<action>
<delete_entity/>
<bridge>
<client>
<id>server1</id>
</client>
<client>
<id>client1</id>
<destination>
<value type="initial">server1</value>
</destination>
</client>
</bridge>
<state>2</state>
</action>
</rule>
Alternatively I could try changing the routing script to only call
the B2B logic at the second INVITE, but that would be very hacky.
# initial requests
if (is_method("INVITE") && src_ip != myself) { # rewrite block
if (!t_newtran()) { # to ignore any
sl_reply_error(); # INVITE request
exit; # without a Auth
} # header
b2b_init_request("prepaid", "sip:test at medsrv.host.tld:5080;transport=tcp", "sip:test at medsrv.host.tld:5080;transport=tcp");
exit;
}
I prefer doing it correctly, by adjusting your prepaid.xml scenario.
Regards,
Brian
More information about the Users
mailing list