ICE is changing IP in SDP , from private to public. It seems wrong.

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

 




Hi.


I'm facing a problem with PJSIP, a SIP server (OpenSIPS) and the router of my network.

I have a local network with one router, one SIP server and two peers (softphones SF1 and SF2). Sip server and peers are in the same domain, and the SIP server and one of the peers (SF2) run in the same machine.

When SF1 calls SF2, the SF2 answers with the following SDP in a SIP OK :

Jan 01 18:02:22 colibri-imx6 opensips[545]: Content-Length:   286
Jan 01 18:02:22 colibri-imx6 opensips[545]: v=0
Jan 01 18:02:22 colibri-imx6 opensips[545]: o=- 2209053734 2209053735 IN IP4 XXX.YYY.ZZZ.71   <<--- Public IP come here.
Jan 01 18:02:22 colibri-imx6 opensips[545]: s=pjmedia
Jan 01 18:02:22 colibri-imx6 opensips[545]: b=AS:25
Jan 01 18:02:22 colibri-imx6 opensips[545]: t=0 0
Jan 01 18:02:22 colibri-imx6 opensips[545]: a=X-nat:1                                                                 <<---- it means that exists a NAT. Where is such NAT, if every peers is in the same local network?
Jan 01 18:02:22 colibri-imx6 opensips[545]: m=audio 56311 RTP/AVP 110 101
Jan 01 18:02:22 colibri-imx6 opensips[545]: c=IN IP4 XXX.YYY.ZZZ.71                                   <<--- Public IP come here.
Jan 01 18:02:22 colibri-imx6 opensips[545]: b=TIAS:8000
Jan 01 18:02:22 colibri-imx6 opensips[545]: a=rtcp:49946 IN IP4 XXX.YYY.ZZZ.71               <<--- Public IP come here.
Jan 01 18:02:22 colibri-imx6 opensips[545]: a=sendrecv
Jan 01 18:02:22 colibri-imx6 opensips[545]: a=rtpmap:110 speex/8000
Jan 01 18:02:22 colibri-imx6 opensips[545]: a=rtpmap:101 telephone-event/8000
Jan 01 18:02:22 colibri-imx6 opensips[545]: a=fmtp:101 0-16



The IP XXX.YYY.ZZZ.71 is a public IP for my domain and anyone can reach the router by means of such IP.
But, when the caller SF1 receives such IP, it cann't send media to the SF2. I still don't know why.
As long as every peer is in the same network, I think that such IP should be the local one (192.168.0.84), not the public one. That is, the private IP sould appear in the SDP, shouldn't it?
But, I guess ICE is changing such IP for some reason.

What could cause ICE to take this kind of decision?

When I reset the router, then bingo! The private IP starts to be used in this SIP OK. So, the SDP starts to use 192.168.0.84. In this case, it seems that ICE give up of using public IP, but just for a while. In some moment in the future the problem rises again.

What is happening here ??

Any hint will be very helpful!


Example of a SDP that works fine, from the SIP OK:

Jan 01 21:57:00 colibri-imx6 opensips[11864]: Content-Length:   280
Jan 01 21:57:00 colibri-imx6 opensips[11864]: v=0
Jan 01 21:57:00 colibri-imx6 opensips[11864]: o=- 2209067817 2209067818 IN IP4 192.168.0.84
Jan 01 21:57:00 colibri-imx6 opensips[11864]: s=pjmedia
Jan 01 21:57:00 colibri-imx6 opensips[11864]: b=AS:25
Jan 01 21:57:00 colibri-imx6 opensips[11864]: t=0 0
Jan 01 21:57:00 colibri-imx6 opensips[11864]: a=X-nat:0                                                                      <<---- Did the NAT desappear? Is it possible ??
Jan 01 21:57:00 colibri-imx6 opensips[11864]: m=audio 54449 RTP/AVP 110 101
Jan 01 21:57:00 colibri-imx6 opensips[11864]: c=IN IP4 192.168.0.84
Jan 01 21:57:00 colibri-imx6 opensips[11864]: b=TIAS:8000
Jan 01 21:57:00 colibri-imx6 opensips[11864]: a=rtcp:42760 IN IP4 192.168.0.84
Jan 01 21:57:00 colibri-imx6 opensips[11864]: a=sendrecv
Jan 01 21:57:00 colibri-imx6 opensips[11864]: a=rtpmap:110 speex/8000
Jan 01 21:57:00 colibri-imx6 opensips[11864]: a=rtpmap:101 telephone-event/8000
Jan 01 21:57:00 colibri-imx6 opensips[11864]: a=fmtp:101 0-16




Best regards.


RODRIGO PIMENTA CARVALHO
Inatel Competence Center
Software
Ph: +55 35 3471 9200 RAMAL 979
_______________________________________________
Visit our blog: http://blog.pjsip.org

pjsip mailing list
pjsip@xxxxxxxxxxxxxxx
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org

[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