Re: Redirection with TCP

"M. Ranganathan" <[email protected]>
Newsgroups gmane.comp.voip.nist-sip
Message-ID <[email protected]>
Verena,

Your Contact header should indicate the transport explicitly 
(transport=tcp on the request URI). If nothing is indicated, UDP is assumed.

Ranga

Verena Kahmann wrote:

> Hi Ranga,
>
> thanks for the code work, I've tried it, but got the following issue 
> with the Shootist in the example I've sent you:
>
> ...
> Sending ACK
> javax.sip.SipException: No listening point for this provider 
> registered at 127.0.0.1:5070/udp
>    at gov.nist.javax.sip.stack.SIPDialog.sendAck(SIPDialog.java:1228)
>    at gov.nist.javax.sip.stack.SIPDialog.sendAck(SIPDialog.java:1161)
>    at Shootist.processResponse(Shootist.java:107)
>    at gov.nist.javax.sip.EventScanner.deliverEvent(EventScanner.java:244)
>    at gov.nist.javax.sip.EventScanner.run(EventScanner.java:416)
>    at java.lang.Thread.run(Thread.java:595)
>
> Somehow, the stack tries to get the next hop for the ACK as a UDP 
> transport, but there is no listener available, since I want to have 
> TCP listeners only.
>
> Maybe you can help me on with that.
>
> Regards,
> Verena
>
> M. Rangnathan wrote:
>
>> Verena,
>>
>> This problem has been fixed and the cvs repository has been updated. 
>> Give it a spin and let me know if it bombs.
>>
>> Ranga
>>
>> Verena Kahmann wrote:
>>
>>> Ranga,
>>> I've made up the example with shootist/shootme, actually it has the 
>>> same problems, using UDP works but TCP does not. I give you the code 
>>> (it's just a quick hack, sorry, but I think you'll get the meaning 
>>> out of it) and all traces with udp/tcp. Maybe you can give it a try 
>>> yourself or you'll see what is getting wrong. It's a little 
>>> difficult to exactly mark where the problem is, since nothing 
>>> happens for the second INVITE with TCP whereas with UDP things just 
>>> work.
>>>
>>> Thanks and Regards,
>>> Verena
>>>
>>>
>>> M. Rangnathan wrote:
>>>
>>>> Verena,
>>>>
>>>> I am afraid I dont understand the scenario. Are you saying you 
>>>> cannot see second invite via TCP?  Can you perhaps make up a really 
>>>> simple example along the lines of  examples.busy.Shootist.java / 
>>>> Shootme.java  (should be realively simple to modify and would save 
>>>> me some time) so I can debug the problem and revert back to you 
>>>> quickly. Please annotate the problem as comments in your code.
>>>>
>>>> Thanks
>>>>
>>>> Regards
>>>>
>>>> Ranga
>>>>
>>>> Verena Kahmann wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I've made up a little conferencing service which issues a 302 
>>>>> Moved Temporarily to a certain conferencing URI after being 
>>>>> invited. The client then sends an INVITE to this URI. This works 
>>>>> if UDP is used, and also worked with TCP using the "old" 1.1, but 
>>>>> with the new version from CVS it doesn't work with TCP. The new 
>>>>> INVITE packet arrives at the conferencing host and is acked by 
>>>>> TCP, but it doesn't seem to arrive at the stack.
>>>>>
>>>>> Below is an excerpt from the debug log. The client stack has sent 
>>>>> an ACK to the 302 Moved (which is correct behavior, I think). The 
>>>>> server stack seems to fire a timer, but I cannot make more out of 
>>>>> the debug log, sorry..
>>>>>
>>>>> Maybe you can help me out of this. Should the new INVITE be sent 
>>>>> to a different TCP connection to be successful? Or is there any 
>>>>> other thing that must be kept in mind when using TCP?
>>>>>
>>>>> I may also send more information about the single messages 
>>>>> exchanged, if you're interested.
>>>>>
>>>>> Best regards,
>>>>> Verena
>>>>>
>>>>>
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.TCPMessageChannel.processMessage(TCPMessageChannel.java:428) 
>>>>> [----Processing Message---]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransactionStack.newSIPServerRequest(SIPTransactionStack.java:821) 
>>>>> [newSIPServerRequest( 
>>>>> ACK:z9hG4bKb497f3feb691f9b7d6b750ebb2bb8186):gov.nist.javax.sip.stack.SIPServerTransaction 
>>>>>
>>>>> @1d2f8935]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.NistSipMessageFactoryImpl.newSIPServerRequest(NistSipMessageFactoryImpl.java:62) 
>>>>> [Returning request interface for ACK sip:134.169.34.40:5074 SIP/2.0^M
>>>>> gov.nist.javax.sip.NistSipMessageHandlerImpl@49d67c messageChannel 
>>>>> = gov.nist.javax.sip.stack.SIPServerTransaction@1d2f8935]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransaction.fireTimer(SIPTransaction.java:568) 
>>>>> [fireTimer gov.nist.javax.sip.stack.SIPServerTransaction@1d2f8935 
>>>>> retransmissionTicks -1]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPClientTransaction$TransactionTimer.run(SIPClientTransaction.java:176) 
>>>>> [removing  = 
>>>>> gov.nist.javax.sip.stack.SIPClientTransaction@af8a64de isReliable 
>>>>> true]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransactionStack.removeTransaction(SIPTransactionStack.java:1044) 
>>>>> [Removing Transaction = z9hg4bk7f78052b5a170311d23df3dbf13bb23d]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.SipProviderImpl.handleEvent(SipProviderImpl.java:91) 
>>>>> [handleEvent 
>>>>> javax.sip.TransactionTerminatedEvent[source=gov.nist.javax.sip.SipProviderImpl@b8f8eb]currentTransaction 
>>>>> = gov.nist.javax.
>>>>> [email protected] = 
>>>>> [email protected] = 
>>>>> gov.nist.javax.sip.SipProviderImpl@b8f8eb]
>>>>> DEBUG - gov.nist.core.LogWriter.logStackTrace(LogWriter.java:102) 
>>>>> [[SipProviderImpl.java:103][SIPTransactionStack.java:1076][SIPClientTransaction.java:182][Timer.java:512][Timer.java:462]] 
>>>>>
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPClientTransaction$TransactionTimer.run(SIPClientTransaction.java:242) 
>>>>> [Client Use Count = 3]
>>>>> DEBUG - gov.nist.javax.sip.EventScanner.run(EventScanner.java:396) 
>>>>> [Processing gov.nist.javax.sip.EventWrapper@1a06e38nevents 1]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.EventScanner.deliverEvent(EventScanner.java:325) 
>>>>> [About to deliver transactionTerminatedEvent]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransaction.fireTimer(SIPTransaction.java:568) 
>>>>> [fireTimer gov.nist.javax.sip.stack.SIPServerTransaction@1d2f8935 
>>>>> retransmissionTicks -1]
>>>>> ... many more ..
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPServerTransaction.fireTimeoutTimer(SIPServerTransaction.java:963) 
>>>>> [SIPServerTransaction.fireTimeoutTimer Completed Transaction 
>>>>> method = INVITE]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransactionStack.isDialogCreated(SIPTransactionStack.java:312) 
>>>>> [isDialogCreated : INVITE returning true]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.SipProviderImpl.handleEvent(SipProviderImpl.java:91) 
>>>>> [handleEvent 
>>>>> javax.sip.TimeoutEvent[source=gov.nist.javax.sip.SipProviderImpl@b8f8eb]currentTransaction 
>>>>> = gov.nist.javax.sip.stack.SIPS
>>>>> [email protected] = 
>>>>> [email protected] = 
>>>>> gov.nist.javax.sip.SipProviderImpl@b8f8eb]
>>>>> DEBUG - gov.nist.core.LogWriter.logStackTrace(LogWriter.java:102) 
>>>>> [[SipProviderImpl.java:103][SipProviderImpl.java:854][SIPTransaction.java:757][SIPServerTransaction.java:981][SIPTransaction.java:577][SIPServerTrans 
>>>>>
>>>>> action.java:290][Timer.java:512][Timer.java:462]]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransaction.setState(SIPTransaction.java:492) 
>>>>> [Transaction:setState Terminated Transaction 
>>>>> gov.nist.javax.sip.stack.SIPServerTransaction@1d2f8935 branchID = 
>>>>> z9hG4bKb497f3feb691f9b
>>>>> 7d6b750ebb2bb8186 isClient = false]
>>>>> DEBUG - gov.nist.core.LogWriter.logStackTrace(LogWriter.java:102) 
>>>>> [[SIPTransaction.java:495][SIPServerTransaction.java:1175][SIPTransaction.java:767][SIPServerTransaction.java:981][SIPTransaction.java:577][SIPServer 
>>>>>
>>>>> Transaction.java:290][Timer.java:512][Timer.java:462]]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransaction.setState(SIPTransaction.java:492) 
>>>>> [Transaction:setState Terminated Transaction 
>>>>> gov.nist.javax.sip.stack.SIPServerTransaction@1d2f8935 branchID = 
>>>>> z9hG4bKb497f3feb691f9b
>>>>> 7d6b750ebb2bb8186 isClient = false]
>>>>> DEBUG - gov.nist.core.LogWriter.logStackTrace(LogWriter.java:102) 
>>>>> [[SIPTransaction.java:495][SIPServerTransaction.java:1175][SIPServerTransaction.java:983][SIPTransaction.java:577][SIPServerTransaction.java:290][Tim 
>>>>>
>>>>> er.java:512][Timer.java:462]]
>>>>> DEBUG - gov.nist.javax.sip.EventScanner.run(EventScanner.java:396) 
>>>>> [Processing gov.nist.javax.sip.EventWrapper@12a55aanevents 1]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransaction$LingerTimer.<init>(SIPTransaction.java:229) 
>>>>> [LingerTimer : 
>>>>> gov.nist.javax.sip.stack.SIPServerTransaction@1d2f8935]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransaction$LingerTimer.run(SIPTransaction.java:238) 
>>>>> [LingerTimer: run() : 
>>>>> gov.nist.javax.sip.stack.SIPServerTransaction@1d2f8935]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransaction$LingerTimer.run(SIPTransaction.java:246) 
>>>>> [removinggov.nist.javax.sip.stack.SIPServerTransaction@1d2f8935]
>>>>> DEBUG - 
>>>>> gov.nist.javax.sip.stack.SIPTransactionStack.removeTransaction(SIPTransactionStack.java:1044) 
>>>>> [Removing Transaction = z9hg4bkb497f3feb691f9b7d6b750ebb2bb8186]
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> nist-sip mailing list
>>>>> [email protected]
>>>>> http://www-x.antd.nist.gov/mailman/listinfo/nist-sip
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>
>>
>
> _______________________________________________
> nist-sip mailing list
> [email protected]
> http://www-x.antd.nist.gov/mailman/listinfo/nist-sip
>


-- 
M. Ranganathan 

Advanced Networking Technologies Division,
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!
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.