 |
-- Main.hoichin - 06 Jun 2006
Why another example?
The main purpose of this example is intended as a learning exercise. Over the course of this work, I discovered that other people were working on a similar service (CallBlockingForwardingVoicemail). Just so happens that both services have some design similarities.
General Design
A ControllerSbb is the root Sbb for the service. The purpose of this Sbb is to determine what lower level Sbb should be invoked based on the request.
The CallForwardSbb is a B2BUA? that performs the acutal call forwarding. I could of used the ProxySbb, but I thought I could reuse this later on so that I can develop general Sbbs for handling incoming calls and then bridging these calls.
Service Events
A service event is either a request or a response. A service takes as input service requests and produce responses. The ByeSbb demonstrates this with the ByeReqEvent. Not yet implemented is support for CallBlockReqEvent, CallBlockSuccessEvent, CallForwardEvent(s).
- B2BUA? is used for call forwarding
- Service events are used to communicate between services (see ByeReqEvent for more details)
How to deploy
- The SIP RA will need to be deploy first.
- A build.xml is provided, execute ant target deploy-controller-service. This should build, jar and deploy the service into Mobicents
- The build.xml has been integrated with in CLI interface for Mobicents.
Issues
- After the service has successfully transfer to another person. If the UA issuing the INVITE hangs up, the ByeSbb needs to look up location service to determine the destination address the call was transferred to and send bye request. The code right now only handles bye if the destination UA hangups.
Future work
General Sbb Framework and Service Creation
A set of general purpose SBBs would be useful for rapid service creation. Example set of SBBs could consist of:
- callSbb - for handling incoming or making outgoing calls
- dialogSbb - bridges two seperate dialogs together
- ByeSbb - hangups an existing dialog, dialog may be left open to connect with another UA
- mediaControllerSbb - uses other SBBs such as announcementSbb, dialogSbb, ivrSbb, conferenceSbb. Would use some sort of media resource adaptor (such as MSCML).
With this framework service creation would be easier and certainly faster for developers.
|