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:
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 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
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.