AW: [sip-comm-dev] Exception after receiving 200/OK


#1

Hello,

I just managed to get the called party adding a tag to the To header!
And now the 200/OK response is successfully processed and ACKed by
sip-communicator. It's just as Ranga assumed.
I tried the "old" (last week's) sip-communicator version.

Btw:
Can anyone tell me the reason for tagging the To header
from the protocol's point of view? What is it good for?
For dialog/call identification there is the Call-ID.
For transaction identification there is the "branch" parameter in Via header.

Best regards,
Thomas

···

-----Ursprüngliche Nachricht-----
Von: Emil Ivov [mailto:emil_ivov@yahoo.com]
Gesendet: Dienstag, 1. Juni 2004 19:47
An: mranga@nist.gov
Cc: dev@sip-communicator.dev.java.net; Thomas Ackermann
Betreff: Re: AW: [sip-comm-dev] Exception after receiving 200/OK

Hello, Ranga, Thomas

I have always tried to keep the stack as fresh as possible in the
sip-communicator repository. And this is still the case (last commit was
this morning).

So, Thomas you may wish to redownload and see whether this fixes ur problem.

Cheers
Emil

M. Ranganathan wrote:

Emil,

Now that I think of it, I believe this is the same problem sombeody
else had reported in interacting with an asterix server (you were in on
that email exchange). I think this has to do with the server not
assigning tags. I have fixed this in the stack some time ago. You may
want to update to the latest stack and see if the problem happens again.

Regards

Ranga

Emil Ivov wrote:

Hello Ranga,

It seems there's a small discrepancy in the method comment of

DialogImpl.createRequest(String method)

Lines 1109 through 1111 go as follows

* This
* method should not be used for Ack, that is the application should
* create the Ack from the MessageFactory.

Don't think this is relevant. Or is it?

The report came from Thomas Ackermann.

Tom, back to ur original problem. Could I please c a tcpdump/ethereal
trace and sip-comm logs if possible?

Cheers
Emil

Thomas Ackermann wrote:

Hello Emil,

I got me the source code archive "nist-sip-1.2.src.zip"
from http://snad.ncsl.nist.gov/proj/iptel/nist-sip-downloads.html.

In jain-sip/src/gov/nist/javax/sip/stack/DialogImpl.java at line 1120
you'll find the javax.sip.Dialog.createRequest() implementation with
its comment header stating that it is not to be used to create ACK msg.

Is this the right version of source code I've looked at?

Best regards,
Thomas

-----Ursprüngliche Nachricht-----
Von: Emil Ivov [mailto:emil_ivov@yahoo.com]
Gesendet: Sonntag, 30. Mai 2004 18:53
An: dev@sip-communicator.dev.java.net
Betreff: Re: [sip-comm-dev] Exception after receiving 200/OK

Hello Thomas,

This seems to be a transaction problem of some sort. A
tcpdump/ethereal trace would help.

> According to the functions comment header this function is not to be
> used to create the ACK request! messageFactory.createRequest() is to
> be used instead!

Hm. Sounds strange. Where exactly did u read that?

Cheers
Emil

Thomas Ackermann wrote:

Hi all,

I found the sip-communicator receiving calls with no problems.
But when making calls I always get an Exception after receiving
the 200/OK response for INVITE.
After checking the source code of sip-communicator and jain-sip
stack I probably found the reason for that.

Function CallProcessing.processInviteOK() tries to create
the ACK request by calling the dialog (!) function:

   Request ack = (Request)
clientTransaction.getDialog().createRequest(Request.ACK);

And here the Exception occurs because the dialog's state is null:

   "Dialog ... not yet established or terminated null"

According to the functions comment header this function is not to be
used to create the ACK request! messageFactory.createRequest() is to
be used instead!

Any comments from your side?

Best regads,
Thomas

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

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

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


#2

The tag is used for dialog identification. The To header address alone is not enough to identify the dialog when the call is forked to multiple destinations. Consider forking a call through a proxy server where the To address refers to a person that may have registered from multiple IP addresses. The call thus gets forked to different IP addresses, each with its own tag. The To address is the same on each fork but the tag is different. The call is answered from one of those locations and which is uniquely identified by the assigned tag from that location. ( Note that the To address is a logical address. i.e it is not an IP address or at least is not supposed to be treated as an IP address. )

One might argue that the Contact address may be used for this but the contact address may change during the dialog whereas the tag does not.

Hope this clarifies things.

Ranga.

Thomas Ackermann wrote:

···

Hello,

I just managed to get the called party adding a tag to the To header!
And now the 200/OK response is successfully processed and ACKed by
sip-communicator. It's just as Ranga assumed.
I tried the "old" (last week's) sip-communicator version.

Btw:
Can anyone tell me the reason for tagging the To header
from the protocol's point of view? What is it good for?
For dialog/call identification there is the Call-ID.
For transaction identification there is the "branch" parameter in Via header.

Best regards,
Thomas

-----Urspr�ngliche Nachricht-----
Von: Emil Ivov [mailto:emil_ivov@yahoo.com]
Gesendet: Dienstag, 1. Juni 2004 19:47
An: mranga@nist.gov
Cc: dev@sip-communicator.dev.java.net; Thomas Ackermann
Betreff: Re: AW: [sip-comm-dev] Exception after receiving 200/OK

Hello, Ranga, Thomas

I have always tried to keep the stack as fresh as possible in the sip-communicator repository. And this is still the case (last commit was this morning).

So, Thomas you may wish to redownload and see whether this fixes ur problem.

Cheers
Emil

M. Ranganathan wrote:

Emil,

Now that I think of it, I believe this is the same problem sombeody else had reported in interacting with an asterix server (you were in on that email exchange). I think this has to do with the server not assigning tags. I have fixed this in the stack some time ago. You may want to update to the latest stack and see if the problem happens again.

Regards

Ranga

Emil Ivov wrote:

Hello Ranga,

It seems there's a small discrepancy in the method comment of

DialogImpl.createRequest(String method)

Lines 1109 through 1111 go as follows

* This
* method should not be used for Ack, that is the application should
* create the Ack from the MessageFactory.

Don't think this is relevant. Or is it?

The report came from Thomas Ackermann.

Tom, back to ur original problem. Could I please c a tcpdump/ethereal trace and sip-comm logs if possible?

Cheers
Emil

Thomas Ackermann wrote:

Hello Emil,

I got me the source code archive "nist-sip-1.2.src.zip"
from http://snad.ncsl.nist.gov/proj/iptel/nist-sip-downloads.html.

In jain-sip/src/gov/nist/javax/sip/stack/DialogImpl.java at line 1120
you'll find the javax.sip.Dialog.createRequest() implementation with
its comment header stating that it is not to be used to create ACK msg.

Is this the right version of source code I've looked at?

Best regards,
Thomas

-----Urspr�ngliche Nachricht-----
Von: Emil Ivov [mailto:emil_ivov@yahoo.com]
Gesendet: Sonntag, 30. Mai 2004 18:53
An: dev@sip-communicator.dev.java.net
Betreff: Re: [sip-comm-dev] Exception after receiving 200/OK

Hello Thomas,

This seems to be a transaction problem of some sort. A tcpdump/ethereal trace would help.

> According to the functions comment header this function is not to be
> used to create the ACK request! messageFactory.createRequest() is to
> be used instead!

Hm. Sounds strange. Where exactly did u read that?

Cheers
Emil

Thomas Ackermann wrote:

Hi all,

I found the sip-communicator receiving calls with no problems.
But when making calls I always get an Exception after receiving
the 200/OK response for INVITE.
After checking the source code of sip-communicator and jain-sip
stack I probably found the reason for that.

Function CallProcessing.processInviteOK() tries to create
the ACK request by calling the dialog (!) function:

  Request ack = (Request) clientTransaction.getDialog().createRequest(Request.ACK);

And here the Exception occurs because the dialog's state is null:

  "Dialog ... not yet established or terminated null"

According to the functions comment header this function is not to be
used to create the ACK request! messageFactory.createRequest() is to
be used instead!

Any comments from your side?

Best regads,
Thomas

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

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

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

--
M. Ranganathan

Advanced Networking Technologies Divsion,
National Institute of Standards and Technology (NIST),
100 Bureau Drive, Stop 8920, Gaithersburg, MD 20899. tel:301 975 3664 , fax:301 590 0932 http://w3.antd.nist.gov/
Advanced Networking Technologies For the People!


#3

Hi guys,

Any pointers where to start? I've searched with limited success, anyone know any freely available algorithms to capture DTMF tones. It would be great to integrate into SipCommunicator, like a MediaDTMFListener.

Best Regards.

Matt

···

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


#4

Hello Matt,

Implementing dtmf tones is really very interesting. I'd be more than happy to integrate it should you decide to contribute. You should look through the archives or ask on the JMF-INTEREST list. Think there's sth on JMF that might help you. Let me know if that's not the case and we'll look together

Cheers
Emil

Matt wrote:

···

Hi guys,

Any pointers where to start? I've searched with limited success, anyone know any freely available algorithms to capture DTMF tones. It would be great to integrate into SipCommunicator, like a MediaDTMFListener.

Best Regards.

Matt

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

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