Login | Register


About -> News -> B2BUA in OpenSIPS

Back-to-Back User Agent in OpenSIPS

A new feature has been added to OpenSIPS: a signaling B2BUA implementation. This implementation gives OpenSIPS power over the calls and makes possible building some PBX specific services. It is not a full B2BUA as it does not handle media, but only creates and controls media sessions.

B2BUA in OpenSIPS is an implementation of the behavior of a B2BUA as defined in RFC 3261 that offers the possibility to build certain services on top of it. It consists of two modules:

  • b2b_entities - the bottom half, implementing the behavior of UAC and UAS (B2BUA)
  • b2b_logic - the upper half, implementing a logic for analyzing and applying services scenarios to achieve the desired B2BUA specific services.

The reason for which the architecture has two parts is to allow extensions and integration with other system that might implement their own logic interpretor. Instead of the b2b_logic module, another module with a different logic interpretor or scenario source can be added and use the interface that the b2b_entities module offers to build quickly a new B2BUA implementation. The b2b_entities role in the processing is an independent one that is required in any B2B implementation and it is therefore encoded in a separate module. It offer an upper level library that will make the implementation of another logic interpreter and applier much easier.

The services are defined in scenario documents that are XML documents with a structure that allows describing many services described in detail here.

There are two means to trigger a B2BUA service:

  • when a SIP message is received, by calling a function from the script
  • by sending an MI command

When a certain service should be initiated is left at the decision of the administrator.

In the documentation page you can find two services examples with their corresponding scenario documents

  • Prepaid service triggered from the script.
  • Marketing service triggered with an MI command.

Other services can also be defined as long as the document format permits describing the needed actions. This implementation is only an initial version and it can be extended to support other services definitions if they will be requested for.

You can read more here. Also you can check out the modules documentation: b2b_entities and b2b_logic.

Page last modified on May 09, 2013, at 04:34 PM