On 08/13/2013 03:25 PM, Daniel-Constantin Mierla wrote:
Can you get a ngrep trace for a registration as well (for the phone using tcp)?
Ok! I'll use pjsua from my local machine connecting in the same way as the TCP client was doing. The TCP client it's an iPhone using the same pjlib library.
Daniel
On 8/13/13 3:23 PM, Roberto Fichera wrote:
On 08/13/2013 03:15 PM, Roberto Fichera wrote:
On 08/13/2013 02:33 PM, Daniel-Constantin Mierla wrote:
Hello,
On 8/13/13 1:10 PM, Roberto Fichera wrote:
On 08/13/2013 12:03 PM, Daniel-Constantin Mierla wrote:
Hello,
you should grab the ngrep for such call to understand better what happens. Also, dumping the location records will be useful (kamctl ul show).
Also, be sure that tcp connection lifetime is long enough to survive re-registration. To avoid trying to open connections behind nat, use set_forward_no_connect() for calls involving nat traversal.
I'm using the default conf coming from fedora rpm. So, mainly the problem seems related to kamailio which doesn't reuse the TCP port used by NATed clients. I've also notice that the received field isn't set at all, so this means that the contact will not get aliased at all.
I would really like to have a look to a working cfg file for TCP NATed clients that reuse the TCP port. Even better if the configuration is based on the fedora default rpm.
if received is not set, then means the register was not detected as coming from behind nat. Is the phone using stun?
I'm testing with a normal rtpproxy configuration. BTW udp -> udp work perfectly.
Again, put here the ngrep for registration and a call to see if something is wrong with signaling. There is no help that we can provide otherwise. The default config works fine for tcp and natted clients, I use it everywhere for this case without issues.
I tried the default cfg enabling both NAT and RTPproxy, but seems that kamailio doesn't reuse TCP ports. Anyway, this is a call from UDP (512) -> TCP (526) both behind the same NAT, from kamailio point of view
I forgot to say that the received field is now present because I've changed the route[NATDETECT] in the default configuration as
route[NATDETECT] { #!ifdef WITH_NAT force_rport();
-->>> if (nat_uac_test("19") || proto != UDP) { if (is_method("REGISTER")) { fix_nated_register(); } else { fix_nated_contact(); } setflag(FLT_NATS); } #!endif return; }
[root@proxy ~]# kamctl ul show 526 Contact:: sip:526@94.94.X.X:1238;transport=TCP;ob;q=;expires=537;flags=0x0;cflags=0x40;state=0;socket=tcp:178.79.x.x:5060;methods=0x1FDF;received=sip:94.94.X.X:61922;transport=TCP;user_agent=<DICE
Smartphone 1.0/iPhone>;reg-id=0 [root@proxy ~]# kamctl ul show 512 Contact:: sip:512@94.94.X.X:5060;q=;expires=32;flags=0x0;cflags=0x40;state=0;socket=udp:178.79.x.x:5060;methods=0xFFFFFFFF;received=sip:94.94.X.X:1025;user_agent=<DICE
1.8.20.1>;reg-id=0 [root@proxy ~]#
U 94.94.X.X:1025 -> 178.79.x.x:5060 INVITE sip:526@test.domain:5060 SIP/2.0. Via: SIP/2.0/UDP 94.94.X.X:5060;branch=z9hG4bK4a420cee;rport. Max-Forwards: 70. From: "asterisk" sip:512@test.domain;tag=as76007db0. To: sip:526@test.domain:5060. Contact: sip:512@94.94.X.X:5060. Call-ID: 068a5a23639785a7583d952d6f9bca84@test.domain. CSeq: 102 INVITE. User-Agent: DICE 1.8.20.1. Date: Tue, 13 Aug 2013 13:04:30 GMT. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH. Supported: replaces, timer. Content-Type: application/sdp. Content-Length: 264. . v=0. o=root 1263161426 1263161426 IN IP4 94.94.X.X. s=Asterisk PBX 11.3.0. c=IN IP4 94.94.X.X. t=0 0. m=audio 10782 RTP/AVP 0 110 101. a=rtpmap:0 PCMU/8000. a=rtpmap:110 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-16. a=ptime:20. a=sendrecv.
# U 178.79.x.x:5060 -> 94.94.X.X:1025 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 94.94.X.X:5060;branch=z9hG4bK4a420cee;rport=1025. From: "asterisk" sip:512@test.domain;tag=as76007db0. To: sip:526@test.domain:5060;tag=333a0370df4a40d5d5a0c21bb156e2a6.4a00. Call-ID: 068a5a23639785a7583d952d6f9bca84@test.domain. CSeq: 102 INVITE. Proxy-Authenticate: Digest realm="test.domain", nonce="UgowYFIKLzQXDSUWUpy4xlhdXZ7WNjPt". Server: kamailio (4.0.2 (x86_64/linux)). Content-Length: 0. .
# U 94.94.X.X:1025 -> 178.79.x.x:5060 INVITE sip:526@test.domain:5060 SIP/2.0. Via: SIP/2.0/UDP 94.94.X.X:5060;branch=z9hG4bK4a420cee;rport. Max-Forwards: 70. From: "asterisk" sip:512@test.domain;tag=as76007db0. To: sip:526@test.domain:5060. Contact: sip:512@94.94.X.X:5060. Call-ID: 068a5a23639785a7583d952d6f9bca84@test.domain. CSeq: 102 INVITE. User-Agent: DICE 1.8.20.1. Date: Tue, 13 Aug 2013 13:04:30 GMT. Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY, INFO, PUBLISH. Supported: replaces, timer. Content-Type: application/sdp. Content-Length: 264. . v=0. o=root 1263161426 1263161426 IN IP4 94.94.X.X. s=Asterisk PBX 11.3.0. c=IN IP4 94.94.X.X. t=0 0. m=audio 10782 RTP/AVP 0 110 101. a=rtpmap:0 PCMU/8000. a=rtpmap:110 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-16. a=ptime:20. a=sendrecv.
# U 178.79.x.x:5060 -> 94.94.X.X:1025 SIP/2.0 407 Proxy Authentication Required. Via: SIP/2.0/UDP 94.94.X.X:5060;branch=z9hG4bK4a420cee;rport=1025. From: "asterisk" sip:512@test.domain;tag=as76007db0. To: sip:526@test.domain:5060;tag=333a0370df4a40d5d5a0c21bb156e2a6.4a00. Call-ID: 068a5a23639785a7583d952d6f9bca84@test.domain. CSeq: 102 INVITE. Proxy-Authenticate: Digest realm="test.domain", nonce="UgowYFIKLzQXDSUWUpy4xlhdXZ7WNjPt". Server: kamailio (4.0.2 (x86_64/linux)). Content-Length: 0. .
# U 94.94.X.X:1025 -> 178.79.x.x:5060 ACK sip:526@test.domain:5060 SIP/2.0. Via: SIP/2.0/UDP 94.94.X.X:5060;branch=z9hG4bK4a420cee;rport. Max-Forwards: 70. From: "asterisk" sip:512@test.domain;tag=as76007db0. To: sip:526@test.domain:5060;tag=333a0370df4a40d5d5a0c21bb156e2a6.4a00. Contact: sip:512@94.94.X.X:5060. Call-ID: 068a5a23639785a7583d952d6f9bca84@test.domain. CSeq: 102 ACK. User-Agent: DICE 1.8.20.1. Content-Length: 0. .
# U 94.94.X.X:1025 -> 178.79.x.x:5060 ACK sip:526@test.domain:5060 SIP/2.0. Via: SIP/2.0/UDP 94.94.X.X:5060;branch=z9hG4bK4a420cee;rport. Max-Forwards: 70. From: "asterisk" sip:512@test.domain;tag=as76007db0. To: sip:526@test.domain:5060. Contact: sip:512@94.94.X.X:5060. Call-ID: 068a5a23639785a7583d952d6f9bca84@test.domain. CSeq: 102 ACK. User-Agent: DICE 1.8.20.1. Content-Length: 0. .
# T 178.79.x.x:5060 -> 94.94.X.X:61922 [AP] ACK sip:526@94.94.X.X:1238;transport=TCP;ob SIP/2.0. Via: SIP/2.0/TCP 178.79.x.x;branch=z9hG4bKcydzigwkX. Via: SIP/2.0/UDP 94.94.X.X:5060;branch=z9hG4bK4a420cee;rport=1025. Max-Forwards: 16. From: "asterisk" sip:512@test.domain;tag=as76007db0. To: sip:526@test.domain:5060. Contact: sip:512@94.94.X.X:1025. Call-ID: 068a5a23639785a7583d952d6f9bca84@test.domain. CSeq: 102 ACK. User-Agent: DICE 1.8.20.1. Content-Length: 0. .
# T 178.79.x.x:5060 -> 94.94.X.X:61922 [AP] ACK sip:526@94.94.X.X:1238;transport=TCP;ob SIP/2.0. Via: SIP/2.0/TCP 178.79.x.x;branch=z9hG4bKcydzigwkX. Via: SIP/2.0/UDP 94.94.X.X:5060;branch=z9hG4bK4a420cee;rport=1025. Max-Forwards: 16. From: "asterisk" sip:512@test.domain;tag=as76007db0. To: sip:526@test.domain:5060. Contact: sip:512@94.94.X.X:1025. Call-ID: 068a5a23639785a7583d952d6f9bca84@test.domain. CSeq: 102 ACK. User-Agent: DICE 1.8.20.1. Content-Length: 0. .
Cheers, Daniel
Cheers, Roberto Fichera.
Cheers, Daniel
On 7/30/13 6:44 PM, Roberto Fichera wrote: > Hi All, > > Sorry for cross-posting this email to PJLIB, but maybe there are some things related. > Anyhow! I'm having problems on kamailio v4.0.2 under Fedora 18 64bit and TCP client like iPhone using PJSIP as SIP > library. > Basically once the iPhone side in close the call (TCP->UDP) I'm getting the error below. Kamailio is running under > a VPS > without > NATed network so it uses a real public address. Furthermore, note that tcp_main is answering to a 192.168.2.98 ip > address > which is the iPhone client. This looks really strange to me since it should answer directly to the public/port used > for > the registration > and not to a such kind of reserved address. The kamilio configuration is basically the default with a very few > changes > like NAT, rtpproxy and postgresql backend. > > This problems doesn't happen at all when using UDP->UDP calls. But I cannot use it because as you certain know UDP > connection under iPhone will not work when the application run in background mode. > > Can someone suggest how to solve this issue or maybe suggest a TCP working solution for iPhone? > > Thanks in advance. > Roberto Fichera. > > Jul 30 16:21:53 proxy /usr/sbin/kamailio[9502]: ERROR: <core> [tcp_main.c:4432]: tcpconn_main_timeout(): connect > 192.168.2.98:5060 failed (timeout) > Jul 30 16:21:55 proxy rtpproxy[2262]: DBUG:get_command: received command "9483_9 D > 12d1d19926c4ff742a52f0c855b1bb83@94.94.x.x:5060 as74e0c388 GROahimCK6KTrl5CkYEg7nuoPIIXZ8cj" > Jul 30 16:21:55 proxy rtpproxy[2262]: INFO:handle_delete: forcefully deleting session 1 on ports 15604/17354 > Jul 30 16:21:55 proxy rtpproxy[2262]: INFO:remove_session: RTP stats: 354 in from callee, 603 in from caller, 957 > relayed, 0 dropped > Jul 30 16:21:55 proxy rtpproxy[2262]: INFO:remove_session: RTCP stats: 5 in from callee, 2 in from caller, 7 > relayed, 0 > dropped > Jul 30 16:21:55 proxy rtpproxy[2262]: INFO:remove_session: session on ports 15604/17354 is cleaned up > Jul 30 16:21:55 proxy rtpproxy[2262]: DBUG:doreply: sending reply "9483_9 0 > Jul 30 16:21:55 proxy rtpproxy[2262]: " > Jul 30 16:22:04 proxy /usr/sbin/kamailio[9502]: ERROR: <core> [tcp_main.c:4432]: tcpconn_main_timeout(): connect > 192.168.2.98:5060 failed (timeout) > Jul 30 16:22:14 proxy rtpproxy[2262]: DBUG:get_command: received command "9496_16 D > 12d1d19926c4ff742a52f0c855b1bb83@94.94.x.x:5060 GROahimCK6KTrl5CkYEg7nuoPIIXZ8cj as74e0c388" > Jul 30 16:22:14 proxy rtpproxy[2262]: INFO:handle_command: delete request failed: session > 12d1d19926c4ff742a52f0c855b1bb83@94.94.x.x:5060, tags GROahimCK6KTrl5CkYEg7nuoPIIXZ8cj/as74e0c388 not found > Jul 30 16:22:14 proxy rtpproxy[2262]: DBUG:doreply: sending reply "9496_16 E8 > Jul 30 16:22:14 proxy rtpproxy[2262]: " > > > _______________________________________________ > SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list > sr-users@lists.sip-router.org > http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users