commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jocke eriksson <jock...@gmail.com>
Subject Re: [SCXML ]Re: Need some guidance in making a SIP application using commons-SCXML
Date Tue, 03 Feb 2009 07:53:37 GMT
Well the task that you describing is a bit big to handle over the E-mail
list. But I will try to make a sample application that you could look at,
but it will take some time though. But the basic idé is that you create a
statemachine with your custom events when you get an INVITE then you start
fire events that ocurre as your script progress. Pleas look at the CCXML
spec to get a grip of the custom actions that this script use.

This script contains the custom actions accept createcall and join, And
could be a good start for your project. Pleas stay tuned .

<?xml version="1.0" encoding="UTF-8"?>

<scxml:scxml  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
   xmlns:scxml='http://www.w3.org/2005/07/scxml'
   xmlns:cc='http://www.w3.org/2002/09/ccxml'
   xsi:schemaLocation='http://www.w3.org/2005/07/scxml scxml.xsd
   http://www.w3.org/2002/09/ccxml ccxml.xsd' initialstate="start">

    <scxml:datamodel>
        <scxml:data name="callerId"/>
    </scxml:datamodel>

    <scxml:state id="start" >
        <scxml:onentry>
            <scxml:log label="joinTest" expr="'Entering state: start'" />
        </scxml:onentry>

        <scxml:transition event="ccxml.loaded">
            <scxml:log label="joinTest"  expr="'The doc was loaded'" />
        </scxml:transition>

        <scxml:transition event="connection.alerting" >
            <scxml:log label="joinTest" expr="'call is alerting'"  />
            <scxml:assign name="callerId" expr="_eventdata.connectionid" />
            <cc:accept />
        </scxml:transition>

        <scxml:transition event="connection.connected">
            <scxml:log label="joinTest" expr="'connection is connected'" />
            <cc:createcall connectionid="'calleeId'"
callerid="sip:ccxml@localhost" dest="sip:sipp@localhost" />
        </scxml:transition>

        <scxml:transition event="connection.progressing" target="join">
            <scxml:log label="joinTest" expr="'connection is progressing'"
/>
            <scxml:log label="joinTest" expr="'CalleeId: ' + calleeId" />
            <scxml:log label="joinTest" expr="'CallerId: ' + callerId" />
        </scxml:transition>
    </scxml:state>

    <scxml:state id="join">
        <scxml:onentry>
            <scxml:log label="joinTest" expr="'Entering state: join'" />
        </scxml:onentry>

        <scxml:transition event="connection.connected">
            <scxml:log label="joinTest" expr="'connected'" />
            <cc:join id1="callerId" id2="calleeId" />
        </scxml:transition>

        <scxml:transition event="conference.joined">
            <scxml:log label="joinTest" expr="'Conference joined - test
succesfull!'" />
        </scxml:transition>

        <scxml:transition event="connection.disconnected">
            <scxml:log label="joinTest" expr="'Disconnected'" />

        </scxml:transition>
    </scxml:state>
</scxml:scxml>

PS: are you a maven user or netbeans user?

2009/2/3 Saurabh Agarwal <sagarwal1981@gmail.com>

> Thanks Jocke,
>
> As of now I want to make a simple application that will recieve INVITE do
> some pattern matching like see for text named search in uri and search the
> user in database and send INVITE to it ,if there are multiple users then
> fork INVITES.
>
> Since I am new to commons-xml can you please help me in understanding when
> an INVITE comes on sailfin, "doInvite" of my  servlet gets called .
>
> Can you please tell me how to integrate commons-scxml from there so that
> the
> SIP request goes to the SCXML state machine and using that I can put some
> pattern matching in the state machine and do some processing like forking
> INVITES etc .
>
> Any code snippet will be really helpful.
>
> Thanks a lot .
>
> Saurabh
>
>
>
> On Mon, Feb 2, 2009 at 11:20 PM, jocke eriksson <jocke29@gmail.com> wrote:
>
> > Well I have one implementation based on Sailfin and Commons SCXML and it
> > works great. If you could be a bit more specific about what you want to
> do
> > then pleas let me know and I will help. Our implementation is close to
> > CCXML.
> >
> > Regards Jocke.
> >
> > 2009/2/2 Saurabh Agarwal <sagarwal1981@gmail.com>
> >
> > > Thanks Rahul,
> > >
> > > Sorry for posting on dev list but I would request you to please end my
> > > discussion on this list from any subsequent post I will use user list
> ,I
> > > just dont want to loose context , Hope you will understand.
> > >
> > >
> > >
> > > I have one more simple question is anybody aware of any SCXML editors (
> > if
> > > possible free or open source ) , Rahut are you aware wich software is
> > used
> > > in the slides you mailed me .
> > >
> > > Thanks & Regards
> > > Saurabhj
> > >
> > > On Mon, Feb 2, 2009 at 10:05 PM, Rahul Akolkar <
> rahul.akolkar@gmail.com
> > > >wrote:
> > >
> > > > I've responded below, but if there are subsequent posts, please
> > > > continue this discussion on the user list, which suits this topic
> > > > better. If you change the email subject, please prefix with [SCXML].
> > > >
> > > > With respect to SIP and SCXML, I'm aware there have been integration
> > > > efforts, though there isn't any code I can point you to. As a brief
> > > > conceptual example, see slides 20 and 21 from this WWW07
> presentation:
> > > >
> > > >  http://www.w3.org/2007/Talks/www2007-SCXML.pdf
> > > >
> > > > More inline ...
> > > >
> > > > On Mon, Feb 2, 2009 at 10:42 AM, Saurabh Agarwal <
> > sagarwal1981@gmail.com
> > > >
> > > > wrote:
> > > > > Thanks Siegfried ,
> > > > > Yes I am aware that in Sip Servlet spec  SIP messgages are treated
> as
> > > > Java
> > > > > Classes etc .
> > > > >
> > > > > What I intended to ask that how can I use Commons-SCXML with SIP
,
> > > > Actually
> > > > > this is waht i want to do .
> > > > >
> > > > > 1. I want to make a SIP application server that will recieve some
> SIP
> > > > > messages ( INVITE , REFER etc ) and do some processing etc on it
> like
> > > > check
> > > > > some headers , fork SIP messages etc .
> > > > >
> > > > > I want to do this with the help of Sailfin and SIP Servelts .
> > > > >
> > > > > 2. Now what I want now is also use SCXML as my state machine may
> > change
> > > > very
> > > > > dynamically as per client requirments so I want to use SCXML so
> that
> > we
> > > > dont
> > > > > have to go on changing code frequenly and can concentrate on
> buisness
> > > > logic.
> > > > >
> > > > <snip/>
> > > >
> > > > Sounds similar to the example I point out above.
> > > >
> > > >
> > > > > Can anybody help me the following:
> > > > >
> > > > > 1. How can I integrate SIP servlet ( running inside sailfin )  with
> > > > > commons-scxml.
> > > > <snap/>
> > > >
> > > > There isn't anything special about sailfin in the client environment
> > > > for Commons SCXML sense.
> > > >
> > > >
> > > > > 2. How can I pass the SIP message to the state machine defined in
> > SCXML
> > > > and
> > > > > is it possible to easily modify headers in it .
> > > > >
> > > > <snip/>
> > > >
> > > > The basic idea in most use cases is to convert incoming requests or
> > > > messages (here, SIP related) to events that get fired on the state
> > > > machine. The state machine context needs to be populated with all the
> > > > information needed for the state machine to make the necessary
> > > > transitions and thereby, execute the necessary actions (the context
> > > > can be programmatically populated, or payloads can be attached to
> > > > events as might make sense for a particular usecase). Client specific
> > > > interactions (clients of Commons SCXML) are carried out with custom
> > > > actions or using the external communications module.
> > > >
> > > > I'd say give the SCXML spec a quick read if you haven't already. Then
> > > > check out the Commons SCXML user guide [1], particularly the items on
> > > > contexts [2], event payloads [3] and custom actions [4].
> > > >
> > > > -Rahul
> > > >
> > > > [1] http://commons.apache.org/scxml/guide.html
> > > > [2] http://commons.apache.org/scxml/guide/contexts-evaluators.html
> > > > [3] http://commons.apache.org/scxml/guide/core-events.html
> > > > [4] http://commons.apache.org/scxml/guide/custom-actions.html
> > > >
> > > >
> > > > >
> > > > > Any help is highly appreciated .
> > > > >
> > > > > Thanks
> > > > > Saurabh
> > > > >
> > > > > On Mon, Feb 2, 2009 at 7:09 PM, Siegfried Goeschl <
> > > > > siegfried.goeschl@it20one.at> wrote:
> > > > >
> > > > >> Hi,
> > > > >>
> > > > >> I don't know  SCXML but worked with SIP
> > > > >>
> > > > >> +) a SIP message is not a ASCII message but a Java data structure
> > very
> > > > >> similiar to ServletRequest and ServletResponce (afaik
> > > SipServletRequest
> > > > >> and SipServletResponse)
> > > > >> +) depending on your requirements you have to parse the SDP's
> > > > >>
> > > > >> Cheers
> > > > >>
> > > > >> Siegfried Goeschl
> > > > >>
> > > > >>
> > > > >> Saurabh Agarwal wrote:
> > > > >> > Hi All,
> > > > >> >
> > > > >> > I am new to commons-SCXML and I am trying to make SIP
> application
> > > > using
> > > > >> > sailfin ( Leveraging SIP Servlets ).
> > > > >> >
> > > > >> > I came across SCXML and thought it can be of great use ,
As far
> as
> > I
> > > > had
> > > > >> > understood I can write the state machines iusing scxml and
dont
> > have
> > > > >> > to write much java code except some helper functions.
> > > > >> >
> > > > >> > I have couple of questions which I am not able to understand
yet
> :
> > > > >> >
> > > > >> > 1. How to integrate SIP Servlet and Commons-scxml ( I tried
to
> > > > understand
> > > > >> > shale but unable to do so ).
> > > > >> > 2. Can Commons-scxml parse and do some logic on a SIP message
(
> > > Ascii
> > > > >> messge
> > > > >> > ) and give me results.
> > > > >> >
> > > > >> > Any pointers are highly appreciated.
> > > > >> >
> > > > >> > Please help
> > > > >> >
> > > > >> > Thanks
> > > > >> > Saurabh Agarwal
> > > > >> >
> > > > >> >
> > > > >
> > > > >
> > > > > --
> > > > >
> > > > > "Successful people make more mistakes because they do more "
> > > > > Thanks
> > > > > Saurabh Agarwal
> > > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
> > > > For additional commands, e-mail: dev-help@commons.apache.org
> > > >
> > > >
> > >
> > >
> > > --
> > >
> > > "Successful people make more mistakes because they do more "
> > > Thanks
> > > Saurabh Agarwal
> > >
> >
>
>
>
> --
>
> "Successful people make more mistakes because they do more "
> Thanks
> Saurabh Agarwal
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message