[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