Summary: | ASTERISK-04779: [patch] SIP over TCP project | ||
Reporter: | Hyoungjoo Lee (hjlee) | Labels: | |
Date Opened: | 2005-08-05 00:42:23 | Date Closed: | 2006-05-04 15:24:56 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | Core/General |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) siptcpchanges2.patch | |
Description: | I added TCP support to asterisk SIP channel. I put all my changes under #ifdef SIP_TCP_SUPPORT and left the original code. So if you search SIP_TCP_SUPPORT, you can find my changes very easily. My changes -Added TCP listening socket, siptcpsock. -Added securechannel, sockfd, transport field to struct sip_pvt. -Added transport, tcpsockfd field to struct sip_peer. -Added TCP read in sipsock_read(). -Added siptcp_accept() to accept an incoming TCP connection request. -Added transport, q parameter processing in Contact header parsing. -Changed the hard-coded "UDP" in Via header to copy sip_pvt.transport. -Added tcp_conenct() to make a TCP connection for outgoing message. -Added TCP transmit in __sip_xmit(). -Saved TCP connecton socket to sip_peer.tcpsockfd, copied it to sip_pvt.sockfd when OPTIONS or INVITE is sent to the peer that is using TCP. I tested it mainly xlite(UDP only free version) and Jain-SIP communicator. call signal is working well. One problem I am having is Jain-SIP communicator doesn't receive any audio, I don't know why. If any one has xlite-pro(TCP supported commercial version) or TCP supported SIP clients, I am looking forward to hear the test result. Welcome any comment. Thanks ****** ADDITIONAL INFORMATION ****** [SIP log data when registration through TCP] == Accepted TCP connection fd 7 from 67.177.208.191:1864 <-- Sip read from 67.177.208.191:1864:TCP REGISTER sip:java.cudenver.edu:5060;transport=tcp SIP/2.0 Call-ID: 646a81a0d2c4f204809de88cc4bf5402@192.168.1.110 CSeq: 1 REGISTER From: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp>;tag=10054858 To: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp> Via: SIP/2.0/TCP 192.168.1.110:5065;branch=z9hG4bK05a20d93b52ecd9bf2b13ab113e3c04b Max-Forwards: 70 Expires: 3600 Contact: "Home1" <sip:192.168.1.110:5065;transport=tcp> Content-Length: 0 --- (10 headers 0 lines)--- Using latest request as basis request Sending to 192.168.1.110 : 5065 (non-NAT) Transmitting (NAT) to 67.177.208.191:1864: SIP/2.0 100 Trying Via: SIP/2.0/TCP 192.168.1.110:5065;branch=z9hG4bK05a20d93b52ecd9bf2b13ab113e3c04b;received=67.177.208.191;rport=1864 From: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp>;tag=10054858 To: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp> Call-ID: 646a81a0d2c4f204809de88cc4bf5402@192.168.1.110 CSeq: 1 REGISTER User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Contact: <sip:home1@132.194.22.188> Content-Length: 0 --- Transmitting (NAT) to 67.177.208.191:1864: SIP/2.0 401 Unauthorized Via: SIP/2.0/TCP 192.168.1.110:5065;branch=z9hG4bK05a20d93b52ecd9bf2b13ab113e3c04b;received=67.177.208.191;rport=1864 From: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp>;tag=10054858 To: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp>;tag=as035f3b88 Call-ID: 646a81a0d2c4f204809de88cc4bf5402@192.168.1.110 CSeq: 1 REGISTER User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Contact: <sip:home1@132.194.22.188> WWW-Authenticate: Digest realm="asterisk", nonce="16a4031e" Content-Length: 0 --- Scheduling destruction of call '646a81a0d2c4f204809de88cc4bf5402@192.168.1.110' in 15000 ms Destroying call '760114b0476b67f72df26ed64db7c2cb@132.194.22.188' <-- Sip read from 67.177.208.191:1864:TCP REGISTER sip:java.cudenver.edu:5060;transport=tcp SIP/2.0 Call-ID: 646a81a0d2c4f204809de88cc4bf5402@192.168.1.110 CSeq: 2 REGISTER Via: SIP/2.0/TCP 192.168.1.110:5065;branch=z9hG4bK031ede41ad4112cec0c597d3f45f935b Max-Forwards: 70 Expires: 3600 Contact: "Home1" <sip:192.168.1.110:5065;transport=tcp> Authorization: Digest username="home1",realm="asterisk",nonce="16a4031e",uri="sip:java.cudenver.edu:5060;transport=tcp",response="80d8d3bb7e60b043b7c4220ceddb6552" From: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp>;tag=10054858 To: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp> Content-Length: 0 --- (11 headers 0 lines)--- Using latest request as basis request Sending to 192.168.1.110 : 5065 (NAT) Transmitting (NAT) to 67.177.208.191:1864: SIP/2.0 100 Trying Via: SIP/2.0/TCP 192.168.1.110:5065;branch=z9hG4bK031ede41ad4112cec0c597d3f45f935b;received=67.177.208.191;rport=1864 From: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp>;tag=10054858 To: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp> Call-ID: 646a81a0d2c4f204809de88cc4bf5402@192.168.1.110 CSeq: 2 REGISTER User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Contact: <sip:home1@132.194.22.188> Content-Length: 0 --- -- Contact header: transport tcp poking home1: transport TCP, sockfd 7 11 headers, 0 lines Reliably Transmitting (no NAT) to 67.177.208.191:1864: OPTIONS sip:@67.177.208.191:1864 SIP/2.0 Via: SIP/2.0/TCP 132.194.22.188:5060;branch=z9hG4bK57277ae7 From: "asterisk" <sip:asterisk@132.194.22.188>;tag=as64a24e83 To: <sip:@67.177.208.191:1864> Contact: <sip:asterisk@132.194.22.188> Call-ID: 14a5e6ac33780b7a3b1d1cf739886db7@132.194.22.188 CSeq: 102 OPTIONS User-Agent: Asterisk PBX Date: Thu, 04 Aug 2005 23:18:38 GMT Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Content-Length: 0 --- -- Registered SIP 'home1' at 67.177.208.191 port 1864 expires 3600 Transmitting (NAT) to 67.177.208.191:1864: SIP/2.0 200 OK Via: SIP/2.0/TCP 192.168.1.110:5065;branch=z9hG4bK031ede41ad4112cec0c597d3f45f935b;received=67.177.208.191;rport=1864 From: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp>;tag=10054858 To: "Home1" <sip:home1@cudenver.edu:5065;transport=tcp>;tag=as035f3b88 Call-ID: 646a81a0d2c4f204809de88cc4bf5402@192.168.1.110 CSeq: 2 REGISTER User-Agent: Asterisk PBX Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY Expires: 3600 Contact: <sip:192.168.1.110:5065>;expires=3600 Date: Thu, 04 Aug 2005 23:18:38 GMT Content-Length: 0 --- Scheduling destruction of call '646a81a0d2c4f204809de88cc4bf5402@192.168.1.110' in 15000 ms <-- Sip read from 67.177.208.191:1864:TCP SIP/2.0 501 Not implemented Via: SIP/2.0/TCP 132.194.22.188:5060;branch=z9hG4bK57277ae7 From: "asterisk" <sip:asterisk@132.194.22.188>;tag=as64a24e83 To: <sip:@67.177.208.191:1864>;tag=-2062486396 Call-ID: 14a5e6ac33780b7a3b1d1cf739886db7@132.194.22.188 CSeq: 102 OPTIONS Content-Length: 0 | ||
Comments: | By: Hyoungjoo Lee (hjlee) 2005-08-05 00:48:57 Sorry, I mistakenly create the same bug twice. This is same as bug ASTERISK-4778, so please close this bug. |