John Todd
2003-May-09 11:45 UTC
[Asterisk-Users] Pingtel softphones, SIP proxies: experiences/summary
In the past two days, I've been experimenting with the Pingtel SIP softphones and Asterisk, which one of my customers has been using. A few notes: 1) The "insecure=1" setting in SIP peers now works, from my limited experiments. Mark put this in for SIP servers that don't send requests in with a return port of 5060. This flag essentially takes any request inbound _to_ port 5060 and sends it back out to the port from which it was requested. Previous behavior was to send the reply to port 5060 on the originating host, regardless of requesting port. (Mark, correct me if I'm wrong on this statement, but that's what I gathered from the tcpdump output.) This makes authentication based on IP address possible for some SIP proxies which exhibit this port usage behavior, if you are using Asterisk as simply a PSTN gateway. ("Accept all SIP calls proxied from this host and forward them into the dialplan.") 2) As previously noted, the use of "nat=1" in sip.conf does not make a difference to the Pingtel softphones, or perhaps even breaks their behavior. Pingtel should really follow Cisco's example on the "Via:" header re-INVITE or re-REGISTER - it's a very clever method. 3) Pingtel phones behind NAT, even if configured with the "outside" IP address manually in their configs, still don't work too well. Call setup takes a long time, and the phones seem to not "see" the replies that Asterisk makes to them. However, we made several test calls, and at least half of them got through (after delays ranging from 4-20 seconds.) Interestingly enough, the called party received sometimes two or three "empty" calls during the delay (nobody at the other end) and then on the last call the RTP session was established correctly. I think this is due to the INVITE re-transmissions and cancellations. I am uncertain if the call lag and re-INVITEs are due to a misbehaving firewall/NAT device, or inappropriate Pingtel programming. I'm also interested to see that the Pingtels will resort to TCP connections for SIP if they don't "see" a response to UDP requests (after six tries, they switch to TCP.) That's a neat feature, but not supported in Asterisk yet. 4) Pingtel softphones that are not behind NAT seem to work without any special settings. 5) Here's some debug from a NAT'ed Pingtel, with manually configured "outside" addresses. While I use RFC1918 addresses below, that is simply due to my desire to hide the "real" addresses of the hosts. All networks were "real" IP addresses during the test. I submit the following information in the hopes that some Pingtel engineer will read it and take a stab at making their code a bit more friendly. Though I have no idea where "192.168.1.3" came from - no clue at all. That is repeated in each test call in the same spots, so it's not just a fluke of this particular call. Is this Asterisk parsing something from inside the SIP message? Output of "tcpdump ip port 5060" on the Asterisk server. Asterisk is 10.0.1.39 and Pingtel is 172.16.9.39. User ID on the Pingtel is 2219. My sip.conf looks like this: [foo4] host=172.16.9.39 type=friend context=foo canreinvite=no insecure=1 1046.210483 172.16.9.39 -> 10.0.1.39 SIP/SDP Request: INVITE sip:17035551212@10.0.1.39:5060, with session description 1046.220483 10.0.1.39 -> 172.16.9.39 SIP Status: 100 Trying 1046.230483 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 183 Session Progress, with session description 1047.810453 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1047.940450 172.16.9.39 -> 10.0.1.39 SIP/SDP Request: INVITE sip:17035551212@10.0.1.39:5060, with session description 1047.940450 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1048.820434 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1048.960431 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1049.840414 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1049.970412 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1050.060410 172.16.9.39 -> 10.0.1.39 SIP/SDP Request: INVITE sip:17035551212@10.0.1.39:5060, with session description 1050.060410 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1050.850395 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1050.980393 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1051.070391 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1051.870376 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1051.990374 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1052.080372 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1052.890357 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1053.000354 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1053.090353 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1053.920337 10.0.1.39 -> 68.48.30.120 SIP Request: BYE sip:2219@68.48.30.120 1053.960336 68.48.30.120 -> 10.0.1.39 SIP Status: 481 Call Leg/Transaction Does Not Exist 1054.140333 172.16.9.39 -> 10.0.1.39 SIP/SDP Request: INVITE sip:17035551212@10.0.1.39:5060, with session description 1054.140333 10.0.1.39 -> 172.16.9.39 SIP Status: 100 Trying 1054.150333 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 183 Session Progress, with session description 1055.650304 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1056.670285 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1057.680266 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1058.250255 172.16.9.39 -> 10.0.1.39 SIP/SDP Request: INVITE sip:17035551212@10.0.1.39:5060, with session description 1058.250255 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1058.690247 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1059.270236 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1059.700228 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1060.290216 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1060.710208 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1061.310197 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1061.730189 10.0.1.39 -> 68.48.30.120 SIP Request: BYE sip:2219@68.48.30.120 1061.770188 68.48.30.120 -> 10.0.1.39 SIP Status: 481 Call Leg/Transaction Does Not Exist 1062.320178 10.0.1.39 -> 68.48.30.120 SIP/SDP Status: 200 OK, with session description 1062.370177 172.16.9.39 -> 10.0.1.39 SIP/SDP Request: INVITE sip:17035551212@10.0.1.39:5060, with session description 1062.860168 172.16.9.39 -> 10.0.1.39 SIP/SDP Request: INVITE sip:17035551212@10.0.1.39:5060, with session description 1063.330159 10.0.1.39 -> 68.48.30.120 SIP/SDP Status: 200 OK, with session description 1063.870149 172.16.9.39 -> 10.0.1.39 SIP/SDP Request: INVITE sip:17035551212@10.0.1.39:5060, with session description 1065.860111 172.16.9.39 -> 10.0.1.39 SIP/SDP Request: INVITE sip:17035551212@10.0.1.39:5060, with session description 1065.870111 10.0.1.39 -> 172.16.9.39 SIP Status: 100 Trying 1065.870111 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 183 Session Progress, with session description 1067.460081 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1068.480061 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1069.490042 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1070.500023 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1071.510004 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1072.519985 10.0.1.39 -> 172.16.9.39 SIP/SDP Status: 200 OK, with session description 1073.539965 10.0.1.39 -> 68.48.30.120 SIP Request: BYE sip:2219@68.48.30.120 1073.579965 68.48.30.120 -> 10.0.1.39 SIP Status: 481 Call Leg/Transaction Does Not Exist