commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Saurabh Agarwal <sagarwal1...@gmail.com>
Subject Re: [SCXML ]Re: Need some guidance in making a SIP application using commons-SCXML
Date Tue, 03 Feb 2009 15:39:16 GMT
Thanks all for all the help and guidance .

This is what I have understood and achieved ( a pretty big word just a hello
world :) ) and need you help in the following:


1. I made a SIP servlet and in doInvite method I am Calling StopClock ( I am
using the default example ) and starting its state machine using
stopClock.fireEvent .

So I was able to start and stop the state machine based on some SIP mesages
( So integration of SIP and commons-scxml is done to an extent ) .


Now I want to do the following and need your help in moving forward ( I know
I can read and expirnent  more about it but actually I have pretty strict
deadline for the prototyping so need some urgent inputs , Thanks for the
patience and help ).

1. I want to pass the SIP message to the state machine:
    As far as I can understand I have to use Context to pass the SIP message
to the State machine , Am I correct on that or I have some better option .

2. I want to do a good amount of SIP Mesage change like removing some
headers , adding some etc , How can I do that .
    As far as I understand I can use JEXL etc for it , what will be my best
option .
   How can I access the SIP message in the SCXML .

Any code pointers will help a lot .



Thanks a lot

Thanks & Regards
Saurabh
On Tue, Feb 3, 2009 at 1:33 PM, Saurabh Agarwal <sagarwal1981@gmail.com>wrote:

> Thanks Jocke for taking the pain :)
>
> Actually I am not clear how my java code will be called when the state
> machine executes , Can you please show some code snippet for that .
>
> I use netbeans  for development .
>
> Thanks & Regards
> Saurabh
>
>
> On Tue, Feb 3, 2009 at 1:23 PM, jocke eriksson <jocke29@gmail.com> wrote:
>
>> 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
>> >
>>
>
>
>
> --
>
> "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