The Source for Java Technology Collaboration


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

Comparison with CallBlockingForwardingVoicemail service

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

Topic CallForwardBlock . { Edit | Ref-By | Printable | Diffs r2 < r1 | More }
 XML java.net RSS

Revision r2 - 07 Jul 2006 - 14:09:54 - Main.hoichin
Parents: MobicentsExamples