Skip to main content

MSCML RA

13 replies [Last post]
jplmelanson
Offline
Joined: 2006-05-01

Hello everyone,
I have been using mobicents regularly for a month now as I got to build an AS prototype for my company. Now I have to write a MSCML Resource Adapter to use within my application. I have been reading carefully to discussions about MGCP RA and the great RA tutorial from Maretzke.

However, I would like to know if my design is right for this RA. I will use the SIP stack with SipListener in my MSCMLResourceAdaptor.java and have a method to send MSCML Request message. This method will create an activity for this message. When I will receive the MSCML response message into a SIP INFO, I will retrieve this activity and deliver it on a new fired event.

Exemple: MSCML defines a PlayCollect to play a prompt and collect digits.
I will have something like mscmlra.sendPlayCollect("prompt.wav") in a part of my code.

RA will store an activity with a UniqueID in a HashMap.

Later, I got a SIP INFO with MSCML Response.
I parse it, create object, retrieve activity and fires to my SBB on a silver plate.

Do you think this is right?

Thank you!
Phil

Message was edited by: jplmelanson

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
jplmelanson
Offline
Joined: 2006-05-01

Hello,
For your first post Henry, I don't see it as inconvenient. Correct me if I'm wrong, but SIP INFO message can carry anything, not just MSCML, so we would eventually have INFO events fired by sipra and onPlayResponse events fired by mscmlra. In your example, I don't see how exactly SBB_A would receive events fired by mscmlra, that is part of the sbb layer. Maybe SBB_A would receive SIP INFO and SBB_B would receive onPlay events.

I know, for the moment, it is not the ideal solution, because I have to use the SIP stack of the SIP RA inside MSCML RA. This is no good design. I haven't tried my code yet, so maybe it's totally irrevelant here. But I'll keep you up to date.

For your second post, I considered that idea too. But how would you manage your mscml activities vs your sip activities inside this "super" sip ra? Because SipResourceAdaptor implements ResourceAdaptor and must define getActivity(). As I'm not too much familiar with the SLEE code, I wonder if this could be a problem?

Eduardo, your help is much appreciated!
Do you know if anyone is currently working on this SIP stack sharing issue? I would gladly contribute if I had the time, for the moment I just HAVE to make it works...

Thank you.
Phil

ivelin
Offline
Joined: 2003-07-13

> Do you know if anyone is currently working on this
> SIP stack sharing issue?

See my latest post. Your discussion on this thread made me form a new position on the issue.
http://forums.java.net/jive/thread.jspa?messageID=124167&#124167

hoichin
Offline
Joined: 2004-12-03

Read your post about having a RA define a specific vendor, transport, address and port. Sounds like a better approach. I would assume this be defined in deployment descriptor. I am wondering if transport and address really required. From a deployment perspective I would find it awkward change the deployment descriptor every time I install my RA on a new machine. As for the transport, depending on the implementation some scenarios may require sips as oppose to regular sip. For example, in an IVR with media server it may require user to enter PIN. In this case I would want sips instead.

Regards,
Henry.

ivelin
Offline
Joined: 2003-07-13

The configuration of SIP stack can be done via the RA deployment descriptor. By design it is intended to be changed for the specific deployment environment:


...

…

host


java.lang.String


localhost


…

hoichin
Offline
Joined: 2004-12-03

sorry, but I am confused. I do not see where element is defined in slee-resource-adaptor-jar.dtd file.

Regards,
Henry.

ivelin
Offline
Joined: 2003-07-13

> sorry, but I am confused. I do not see where
> element is defined in
> slee-resource-adaptor-jar.dtd file.
>
> Regards,
> Henry.

see jslee 1.1 edr

hoichin
Offline
Joined: 2004-12-03

Am I correct in understanding that the discussion on "Multiple RA using Jain SIP stack" is proposing to implement the a new SIPRA based on jslee 1.1 RA spec.

If so, then for the purpose of MSCMLRA using the current Mobicents implementation, to call SipFactory.resetFactory() and then create a new SipProvider using a different ListeningPoint(newport, transport).

This way I can still have the current SIPRA deployed with a new MSCMLRA, both have its own sip stack running on SLEE.

hoichin
Offline
Joined: 2004-12-03

I started to new wiki to help bring ideas on MSCML RA, check it out: http://wiki.java.net/bin/view/Communications/MobicentsMSCML

hoichin
Offline
Joined: 2004-12-03

Hi jplmelanson,
I am also thinking of developing a MSCML RA, I have jotted a note about this in a wiki page (http://wiki.java.net/bin/view/Communications/CallForwardBlock).

Are you planning to release this RA as part of mobicents? I am planning on working on a similar RA (just need time).

About your design, seems about right. Have you thought about support dialogs within RA. There has been some discussion in the forums about SIP RA supporting dialogs. Will this one support it, or more general question should it support dialogs?
Another question, how are you planning on structuring the events?

Regards,
Henry.

jplmelanson
Offline
Joined: 2006-05-01

Hi,
I am currently trying to implements this MSCML RA and I am now encountering one major difficulty :
http://forums.java.net/jive/thread.jspa?threadID=14928&tstart=0
However, I wonder if that would be OK to design it that way. It's not elegant, but satifying for now.
1-The sip RA receive data onProcess___(args).
2-The mscml RA have a method receiveFromSipRa(args).
3-My sip RA is modified so that onProcess___(args) forward the same data to the receiveFromSipRa(args) method via a ctx.lookup retrieval of the mscml RA.

This way, the mscml ra can reveive an exact data copy.

For your question on the release of our MSCML RA, we currently have discussions in our company about the subject. The point is that the MS we have doesn't follow the RFC for MSCML. Maybe I would give some contributions after my contract ends.

Cordialement,
Phil

hoichin
Offline
Joined: 2004-12-03

Yes I know about the "Multiple RA using Jain SIP stack" issue. I was thinking about this after I posted my message. I am not sure what the status of the Mulitple RA issue.

If I understand your approach, you modified SIP RA so that it forks the same message to MSCML RA. Does this mean that your version of SIP RA will also fire the same event up to the SLEE (i.e. SBBs will receive the event). So if I have SBB_A that is register with SIP RA and SBB_B register with MSCML RA, then is it possible that SBB_A will receive events related to MSCML RA? I see potential problems with this.

Another thing to consider is that, since you modified the SIP RA, it is no longer compatible with Mobicents.

Regards,
Henry.

hoichin
Offline
Joined: 2004-12-03

One more comment, the "Multiple RA using Jain SIP stack" issue steams from the fact that RA is meant to be protocol specific adaptor, not sure if the spec ever intended to support multiple RA supporting the same protocol.

I am thinking, instead of creating a separate RA for MSCML that uses the same Jain SIP stack, why not just extend the existing SIP RA by adding new events. Call this new RA MSCML-SIP Resource Adaptor. That way you get around the issue of multiple RA using JAIN SIP stack and the base SIP RA is still intact. Deployment is simple just deploy MSCML-SIP RA only. SBBs that just want SIP or MSCML events would register with this new RA.

Regards,
Henry.

eduardomartins
Offline
Joined: 2005-10-10

I am willing to join efforts to create a component (either RA or Service, after analysis) to deal with MRF servers in the IMS network, if that's your goal.

Eduardo Martins
PT Inovação