Problem using TCP as transport with ";transport=tcp"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello All,

I am developing a SIP User Agent application using pjsip.
I am following the instructions given in the the PJSIP Developer's guide.
For learning, I chose core pjsip over the pjsua library abstraction.

For the User Agent, I prefer TCP transport for listening and making outgoing
calls. This is where my problem comes in.

For TCP, I have promptly added ";transport=tcp" to the remote and target uri
as per the FAQ http://trac.pjsip.org/repos/wiki/FAQ#tcp

PJSIP uses TCP for sending invite to remote party. I get 180 ringing and 200
OK responses from the remote which are fine.
But, the ACK to 200 OK is not sent in TCP.

I get an error saying, the type is unspecified which pjsip defaults to UDP.
I dont use any callback method to send ack from my application. PJSIP sends
the ACK by itself.

With wireshark sniffer, I could notice no ACK getting transmitted on wire.

Do I need to specify anyother thing besides ";transport=tcp"?
I have pasted the pjsip log below. Please help.
If you require some more details, please let me know.
Thanks in advance.

*Some Details:*
pjsip version: 1.10
OS: Linux

*Log:*

/* Initialization */
 15:18:57.019 os_core_unix.c  pjlib 1.10.0 for POSIX initialized
 15:18:57.019 sip_endpoint.c  Creating endpoint instance...
 15:18:57.019          pjlib  select() I/O Queue created (0x8f9610)
 15:18:57.019 sip_endpoint.c  Module "mod-msg-print" registered
 15:18:57.019 sip_transport.  Transport manager created.
 15:18:57.019    tcplis:5260  SIP TCP listener ready for incoming
connections at 127.0.0.1:5260
 15:18:57.019 sip_endpoint.c  Module "mod-tsx-layer" registered
 15:18:57.019 sip_endpoint.c  Module "mod-stateful-util" registered
 15:18:57.019 sip_endpoint.c  Module "mod-ua" registered
 15:18:57.019 sip_endpoint.c  Module "mod-100rel" registered
 15:18:57.019 sip_endpoint.c  Module "mod-invite" registered
 15:18:57.019 sip_endpoint.c  Module "mod-mysip-ua" registered

/* UAC Dialog creation and making a call */
 15:18:59.020    dlg0x906628  UAC dialog created
 15:18:59.020    dlg0x906628  Module mod-invite added as dialog usage,
data=0x908628
 15:18:59.020    dlg0x906628  Session count inc to 2 by mod-invite
 15:18:59.020    dlg0x906628  Module mod-100rel added as dialog usage,
data=0x90aa40
 15:18:59.020    dlg0x906628  100rel module attached
 15:18:59.020    inv0x906628  UAC invite session created for dialog
dlg0x906628
 15:18:59.020       endpoint  Request msg INVITE/cseq=125 (tdta0x90aa90)
created.
 15:18:59.020    inv0x906628  Sending Request msg INVITE/cseq=125
(tdta0x90aa90)
 15:18:59.020    dlg0x906628  Sending Request msg INVITE/cseq=125
(tdta0x90aa90)
 15:18:59.020    tsx0x90daa8  Transaction created for Request msg
INVITE/cseq=124 (tdta0x90aa90)
 15:18:59.020    tsx0x90daa8  Sending Request msg INVITE/cseq=124
(tdta0x90aa90) in state Null
 15:18:59.020  sip_resolve.c  Target '127.0.0.1:0' type=TCP resolved to '
127.0.0.1:5060' type=TCP (TCP transport)
 15:18:59.020   tcpc0x90e448  TCP client transport created
 15:18:59.020   tcpc0x90e448  TCP transport 127.0.0.1:59402 is connecting to
127.0.0.1:5060...
 15:18:59.020    tsx0x90daa8  State changed from Null to Calling,
event=TX_MSG
 15:18:59.020    dlg0x906628  Transaction tsx0x90daa8 state changed to
Calling

/* Receiving 180 ringing */
 15:18:59.021   tcpc0x90e448  TCP transport 127.0.0.1:59402 is connected to
127.0.0.1:5060
 15:18:59.022 sip_endpoint.c  Processing incoming message: Response msg
180/INVITE/cseq=124 (rdata0x90e728)
 15:18:59.022    tsx0x90daa8  Incoming Response msg 180/INVITE/cseq=124
(rdata0x90e728) in state Calling
 15:18:59.022    tsx0x90daa8  State changed from Calling to Proceeding,
event=RX_MSG
 15:18:59.022    dlg0x906628  Received Response msg 180/INVITE/cseq=124
(rdata0x90e728)
 15:18:59.022    dlg0x906628  Route-set updated
 15:18:59.022    dlg0x906628  Transaction tsx0x90daa8 state changed to
Proceeding

/* Receiving 200 OK */
 15:19:05.668 sip_endpoint.c  Processing incoming message: Response msg
200/INVITE/cseq=124 (rdata0x90e728)
 15:19:05.668    tsx0x90daa8  Incoming Response msg 200/INVITE/cseq=124
(rdata0x90e728) in state Proceeding
 15:19:05.668    tsx0x90daa8  State changed from Proceeding to Terminated,
event=RX_MSG
 15:19:05.668    dlg0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728)
 15:19:05.668    dlg0x906628  Route-set updated
 15:19:05.668    dlg0x906628  Route-set frozen
 15:19:05.668    dlg0x906628  Transaction tsx0x90daa8 state changed to
Terminated

/* PJSIP sends ACK for the 200 OK */
 15:19:05.668    inv0x906628  Got SDP answer in Response msg
200/INVITE/cseq=124 (rdata0x90e728)
 15:19:05.668    inv0x906628  SDP negotiation done, status=0
 15:19:05.668    inv0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728), sending ACK
 15:19:05.668       endpoint  Request msg ACK/cseq=124 (tdta0x9150e0)
created.
 15:19:05.668    dlg0x906628  Sending Request msg ACK/cseq=124
(tdta0x9150e0)
 *15:19:05.668  sip_resolve.c  Target '127.0.0.1:0' type=Unspecified
resolved to '127.0.0.1:5060' type=UDP (UDP transport) *
<< Here is the problem

/* Retransmission */
 15:19:05.668    tsx0x90daa8  Timeout timer event
 15:19:05.668    tsx0x90daa8  State changed from Terminated to Destroyed,
event=TIMER
 15:19:05.668   tdta0x90aa90  Destroying txdata Request msg INVITE/cseq=124
(tdta0x90aa90)
 15:19:05.668    tsx0x90daa8  Transaction destroyed!
 15:19:06.168 sip_endpoint.c  Processing incoming message: Response msg
200/INVITE/cseq=124 (rdata0x90e728)
 15:19:06.168    dlg0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728)
 15:19:06.168    inv0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728), sending ACK
 15:19:06.168    dlg0x906628  Sending Request msg ACK/cseq=124
(tdta0x9150e0)
 15:19:06.168       endpoint  Request msg ACK/cseq=124 (tdta0x9150e0):
skipping target resolution because address is already set
 15:19:07.168 sip_endpoint.c  Processing incoming message: Response msg
200/INVITE/cseq=124 (rdata0x90e728)
 15:19:07.168    dlg0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728)
 15:19:07.168    inv0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728), sending ACK
 15:19:07.168    dlg0x906628  Sending Request msg ACK/cseq=124
(tdta0x9150e0)
 15:19:07.168       endpoint  Request msg ACK/cseq=124 (tdta0x9150e0):
skipping target resolution because address is already set
 15:19:09.168 sip_endpoint.c  Processing incoming message: Response msg
200/INVITE/cseq=124 (rdata0x90e728)
 15:19:09.168    dlg0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728)
 15:19:09.168    inv0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728), sending ACK
 15:19:09.168    dlg0x906628  Sending Request msg ACK/cseq=124
(tdta0x9150e0)
 15:19:09.168       endpoint  Request msg ACK/cseq=124 (tdta0x9150e0):
skipping target resolution because address is already set
 15:19:13.168 sip_endpoint.c  Processing incoming message: Response msg
200/INVITE/cseq=124 (rdata0x90e728)
 15:19:13.168    dlg0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728)
 15:19:13.168    inv0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728), sending ACK
 15:19:13.168    dlg0x906628  Sending Request msg ACK/cseq=124
(tdta0x9150e0)
 15:19:13.168       endpoint  Request msg ACK/cseq=124 (tdta0x9150e0):
skipping target resolution because address is already set
 15:19:17.168 sip_endpoint.c  Processing incoming message: Response msg
200/INVITE/cseq=124 (rdata0x90e728)
 15:19:17.168    dlg0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728)
 15:19:17.168    inv0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728), sending ACK
 15:19:17.168    dlg0x906628  Sending Request msg ACK/cseq=124
(tdta0x9150e0)
 15:19:17.168       endpoint  Request msg ACK/cseq=124 (tdta0x9150e0):
skipping target resolution because address is already set
 15:19:21.168 sip_endpoint.c  Processing incoming message: Response msg
200/INVITE/cseq=124 (rdata0x90e728)
 15:19:21.168    dlg0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728)
 15:19:21.168    inv0x906628  Received Response msg 200/INVITE/cseq=124
(rdata0x90e728), sending ACK
 15:19:21.168    dlg0x906628  Sending Request msg ACK/cseq=124
(tdta0x9150e0)
 15:19:21.168       endpoint  Request msg ACK/cseq=124 (tdta0x9150e0):
skipping target resolution because address is already set

PS: Sorry if this mail appears twice in the mailing list. I forgot to
subscribe before posting!

Regards,
Sundar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20111007/9cec31db/attachment-0001.html>


[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux