[OpenSIPS-Users] B2BUA help

Anca Vamanu anca at opensips.org
Thu Feb 11 16:50:02 CET 2010


Hi Brian,

I have thought about this problem and discussed with Bogdan and he come 
up with the simplest solution - take the Cseq from the received Invite. 
And your scenario should be solved.
I will make this change and let you know when to update from svn.

Regards,

-- 
Anca Vamanu
www.voice-system.ro



opensipslist at encambio.com wrote:
> 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
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>   



More information about the Users mailing list