[sip-comm-dev] SipStackSharing and dispatching transactions to ProtocolProviderServiceSipImpl


#1

Hello - I apologize if this is the wrong forum but I am trying to get up to
speed on how SC works

The only thing I am not quite sure I understand is how the SipStackSharing
dispatches transactions via processResponse/Request to the main
ProtocolProviderServiceSipImpl (PPSSI)

I know once it gets to the PPSSI it uses its processResponse/Request and
sends it to a 'MethodProcessor' for the various methods - REGISTER or dialog
sets invite - etc.

However from the main SipStackSharing it gets confusing - how do we get the
PPSSI object out of the transaction 'data'? It looks through the
SipApplicationData object seeking the PPSSI object - but how does that
relate to the transaction? is it because it exists within the
transaction/container because the client request originated from the
ProtocolProviderServiceSipImpl?

Anyone who could point me in the right direction would be appreciated. I
tried looking through the SC dev docs but it was too high level.


#2

Ok so I found the 'set/get ApplicationData' method which belongs to the
transaction type of the JAIN SIP library - however I cannot find, for my
life, where the ProtocolProviderServiceSipImpl object is set inside the
transaction with this method - I just cannot find it.

One main question lingers - why is it necessary to match the incomming sip
request / response to a ProtocolProvicerServiceSipImpl? I am not getting
the multiplicity factor here - in other words, how many can there be? If
this is a sip account then there would only be one protocol provider right?
Why the need to 'look' for one?

Again I apologize if this isnt the right forum for these questions but I
could not find an appropriate place to find this information - I figured the
developers would be the best place to go - and by the way this seems to me a
very very well written and documented code base.

···

On Wed, May 19, 2010 at 11:07 AM, Matthew Ishii <matthewrishii@gmail.com>wrote:

Hello - I apologize if this is the wrong forum but I am trying to get up to
speed on how SC works

The only thing I am not quite sure I understand is how the SipStackSharing
dispatches transactions via processResponse/Request to the main
ProtocolProviderServiceSipImpl (PPSSI)

I know once it gets to the PPSSI it uses its processResponse/Request and
sends it to a 'MethodProcessor' for the various methods - REGISTER or dialog
sets invite - etc.

However from the main SipStackSharing it gets confusing - how do we get the
PPSSI object out of the transaction 'data'? It looks through the
SipApplicationData object seeking the PPSSI object - but how does that
relate to the transaction? is it because it exists within the
transaction/container because the client request originated from the
ProtocolProviderServiceSipImpl?

Anyone who could point me in the right direction would be appreciated. I
tried looking through the SC dev docs but it was too high level.


#3

Hi,

search for setApplicationData, there are few places where its used but
the most important I think is SipMessageFactory which is per protocol
provider. SipStackSharing is used in order all the available accounts
can share one sip stack and respectively the same sip port. So for
every sip account we have a ProtocolProviderServiceSipImpl is created
which is set in the messages/objects it uses - SIPMessage, Transaction
or Dialog.

Cheers
damencho

···

On Thu, May 20, 2010 at 8:55 AM, Matthew Ishii <matthewrishii@gmail.com> wrote:

Ok so I found the 'set/get ApplicationData' method which belongs to the
transaction type of the JAIN SIP library - however I cannot find, for my
life, where the ProtocolProviderServiceSipImpl object is set inside the
transaction with this method - I just cannot find it.

One main question lingers - why is it necessary to match the incomming sip
request / response to a ProtocolProvicerServiceSipImpl? I am not getting
the multiplicity factor here - in other words, how many can there be? If
this is a sip account then there would only be one protocol provider right?
Why the need to 'look' for one?

Again I apologize if this isnt the right forum for these questions but I
could not find an appropriate place to find this information - I figured the
developers would be the best place to go - and by the way this seems to me a
very very well written and documented code base.

On Wed, May 19, 2010 at 11:07 AM, Matthew Ishii <matthewrishii@gmail.com> > wrote:

Hello - I apologize if this is the wrong forum but I am trying to get up
to speed on how SC works

The only thing I am not quite sure I understand is how the SipStackSharing
dispatches transactions via processResponse/Request to the main
ProtocolProviderServiceSipImpl (PPSSI)

I know once it gets to the PPSSI it uses its processResponse/Request and
sends it to a 'MethodProcessor' for the various methods - REGISTER or dialog
sets invite - etc.

However from the main SipStackSharing it gets confusing - how do we get
the PPSSI object out of the transaction 'data'? It looks through the
SipApplicationData object seeking the PPSSI object - but how does that
relate to the transaction? is it because it exists within the
transaction/container because the client request originated from the
ProtocolProviderServiceSipImpl?

Anyone who could point me in the right direction would be appreciated. I
tried looking through the SC dev docs but it was too high level.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net


#4

Beautiful - that makes sense now -

I find this code amazing - it looks like it was made from a single block of
steel. Of course it evolved but the overall planning and design is
inspiring - very excellent OO design.

···

On Wed, May 19, 2010 at 11:33 PM, Damian Minkov < damencho@sip-communicator.org> wrote:

Hi,

search for setApplicationData, there are few places where its used but
the most important I think is SipMessageFactory which is per protocol
provider. SipStackSharing is used in order all the available accounts
can share one sip stack and respectively the same sip port. So for
every sip account we have a ProtocolProviderServiceSipImpl is created
which is set in the messages/objects it uses - SIPMessage, Transaction
or Dialog.

Cheers
damencho

On Thu, May 20, 2010 at 8:55 AM, Matthew Ishii <matthewrishii@gmail.com> > wrote:
> Ok so I found the 'set/get ApplicationData' method which belongs to the
> transaction type of the JAIN SIP library - however I cannot find, for my
> life, where the ProtocolProviderServiceSipImpl object is set inside the
> transaction with this method - I just cannot find it.
>
> One main question lingers - why is it necessary to match the incomming
sip
> request / response to a ProtocolProvicerServiceSipImpl? I am not getting
> the multiplicity factor here - in other words, how many can there be? If
> this is a sip account then there would only be one protocol provider
right?
> Why the need to 'look' for one?
>
> Again I apologize if this isnt the right forum for these questions but I
> could not find an appropriate place to find this information - I figured
the
> developers would be the best place to go - and by the way this seems to
me a
> very very well written and documented code base.
>
> On Wed, May 19, 2010 at 11:07 AM, Matthew Ishii <matthewrishii@gmail.com > > > > wrote:
>>
>> Hello - I apologize if this is the wrong forum but I am trying to get up
>> to speed on how SC works
>>
>> The only thing I am not quite sure I understand is how the
SipStackSharing
>> dispatches transactions via processResponse/Request to the main
>> ProtocolProviderServiceSipImpl (PPSSI)
>>
>> I know once it gets to the PPSSI it uses its processResponse/Request and
>> sends it to a 'MethodProcessor' for the various methods - REGISTER or
dialog
>> sets invite - etc.
>>
>> However from the main SipStackSharing it gets confusing - how do we get
>> the PPSSI object out of the transaction 'data'? It looks through the
>> SipApplicationData object seeking the PPSSI object - but how does that
>> relate to the transaction? is it because it exists within the
>> transaction/container because the client request originated from the
>> ProtocolProviderServiceSipImpl?
>>
>> Anyone who could point me in the right direction would be appreciated.
I
>> tried looking through the SC dev docs but it was too high level.
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@sip-communicator.dev.java.net
For additional commands, e-mail: dev-help@sip-communicator.dev.java.net