Hello
I am working on making my app support NAT64 on iOS and connect to an IPv4
SIP Server
Following wiki instructions and the proxy workaround, I was able to connect
to the SIP server using NAT64.
https://trac.pjsip.org/repos/wiki/IPv6
SIP messages are properly exchanged between NAT64'ed SIP server and IPV6
iOS PJSIP
However, the media session does not work, I guess this is because the
INVITE message sent by the server contains the IPv4 of the server and there
is no mechanism to deal with it.
19:20:42.648 pjsua_call.c !Answering call 0: code=200
19:20:42.648 inv0x16cad664 ..SDP negotiation done, status=0
19:20:42.648 pjsua_call.c ...Call 0: remote NAT type is 0 (Unknown)
19:20:42.648 pjsua_media.c ...Call 0: updating media..
19:20:42.648 pjsua_media.c ....pjmedia_stream_info_from_sdp() failed for
call_id 0 media 0: Unsupported address family (PJ_EAFNOTSUP)
19:20:42.649 pjsua_media.c ....Error updating media call00:0: Unsupported
address family (PJ_EAFNOTSUP)
19:20:42.649 pjsua_call.c ...Unable to create media session: No active
media stream after negotiation (PJMEDIA_SDPNEG_ENOMEDIA) [status=220048]
19:20:42.649 inv0x16cad664 ....Sending Response msg
488/INVITE/cseq=91632755 (tdta0x16528600)
19:20:42.649 dlg0x16cad664 .....Sending Response msg
488/INVITE/cseq=91632755 (tdta0x16528600)
19:20:42.649 tsx0x16c5fe64 .....Sending Response msg
488/INVITE/cseq=91632755 (tdta0x16528600) in state Proceeding
19:20:42.650 pjsua_core.c ......TX 498 bytes Response msg
488/INVITE/cseq=91632755 (tdta0x16528600)
SIP/2.0 488 Not Acceptable Here
Is there some workaround I could use to force media address, or should I
follow the changes that are happening right now in this ticket dedicated to
NAT64 ?
http://trac.pjsip.org/repos/ticket/1922
regards
J.G.
I was able to work around this media issue by implementing a pjsip_module that rewrites the SDP - replacing the IP4 addresses with IP6 on incoming messages and replacing IP6 with IP4 on outgoing messages.
With this module in place, my app is able to make and receive calls when connected over a NAT64 network.
Hope that helps,
Nick
On 23 May 2016, at 07:11, John Gathm john.gathm@gmail.com wrote:
Hello
I am working on making my app support NAT64 on iOS and connect to an IPv4 SIP Server
Following wiki instructions and the proxy workaround, I was able to connect to the SIP server using NAT64.
https://trac.pjsip.org/repos/wiki/IPv6 https://trac.pjsip.org/repos/wiki/IPv6
SIP messages are properly exchanged between NAT64'ed SIP server and IPV6 iOS PJSIP
However, the media session does not work, I guess this is because the INVITE message sent by the server contains the IPv4 of the server and there is no mechanism to deal with it.
19:20:42.648 pjsua_call.c !Answering call 0: code=200
19:20:42.648 inv0x16cad664 ..SDP negotiation done, status=0
19:20:42.648 pjsua_call.c ...Call 0: remote NAT type is 0 (Unknown)
19:20:42.648 pjsua_media.c ...Call 0: updating media..
19:20:42.648 pjsua_media.c ....pjmedia_stream_info_from_sdp() failed for call_id 0 media 0: Unsupported address family (PJ_EAFNOTSUP)
19:20:42.649 pjsua_media.c ....Error updating media call00:0: Unsupported address family (PJ_EAFNOTSUP)
19:20:42.649 pjsua_call.c ...Unable to create media session: No active media stream after negotiation (PJMEDIA_SDPNEG_ENOMEDIA) [status=220048]
19:20:42.649 inv0x16cad664 ....Sending Response msg 488/INVITE/cseq=91632755 (tdta0x16528600)
19:20:42.649 dlg0x16cad664 .....Sending Response msg 488/INVITE/cseq=91632755 (tdta0x16528600)
19:20:42.649 tsx0x16c5fe64 .....Sending Response msg 488/INVITE/cseq=91632755 (tdta0x16528600) in state Proceeding
19:20:42.650 pjsua_core.c ......TX 498 bytes Response msg 488/INVITE/cseq=91632755 (tdta0x16528600)
SIP/2.0 488 Not Acceptable Here
Is there some workaround I could use to force media address, or should I follow the changes that are happening right now in this ticket dedicated to NAT64 ?
http://trac.pjsip.org/repos/ticket/1922 http://trac.pjsip.org/repos/ticket/1922
regards
J.G.
Visit our blog: http://blog.pjsip.org
pjsip mailing list
pjsip@lists.pjsip.org
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org
Hi Nick
Thanks for your answer.
I will be digging into that.
Any chance you can share some code/hints ?
Btw there seems to be an RFC specifically dealing with SIP and NAT64 clients
https://tools.ietf.org/html/rfc7225#section-5.2
J.G.
On Monday, May 23, 2016, Nick Dowell nick@nickdowell.com wrote:
I was able to work around this media issue by implementing a pjsip_module
that rewrites the SDP - replacing the IP4 addresses with IP6 on incoming
messages and replacing IP6 with IP4 on outgoing messages.
With this module in place, my app is able to make and receive calls when
connected over a NAT64 network.
Hope that helps,
Nick
On 23 May 2016, at 07:11, John Gathm <john.gathm@gmail.com
javascript:_e(%7B%7D,'cvml','john.gathm@gmail.com');> wrote:
Hello
I am working on making my app support NAT64 on iOS and connect to an IPv4
SIP Server
Following wiki instructions and the proxy workaround, I was able to
connect to the SIP server using NAT64.
https://trac.pjsip.org/repos/wiki/IPv6
SIP messages are properly exchanged between NAT64'ed SIP server and IPV6
iOS PJSIP
However, the media session does not work, I guess this is because the
INVITE message sent by the server contains the IPv4 of the server and there
is no mechanism to deal with it.
19:20:42.648 pjsua_call.c !Answering call 0: code=200
19:20:42.648 inv0x16cad664 ..SDP negotiation done, status=0
19:20:42.648 pjsua_call.c ...Call 0: remote NAT type is 0 (Unknown)
19:20:42.648 pjsua_media.c ...Call 0: updating media..
19:20:42.648 pjsua_media.c ....pjmedia_stream_info_from_sdp() failed for
call_id 0 media 0: Unsupported address family (PJ_EAFNOTSUP)
19:20:42.649 pjsua_media.c ....Error updating media call00:0:
Unsupported address family (PJ_EAFNOTSUP)
19:20:42.649 pjsua_call.c ...Unable to create media session: No active
media stream after negotiation (PJMEDIA_SDPNEG_ENOMEDIA) [status=220048]
19:20:42.649 inv0x16cad664 ....Sending Response msg
488/INVITE/cseq=91632755 (tdta0x16528600)
19:20:42.649 dlg0x16cad664 .....Sending Response msg
488/INVITE/cseq=91632755 (tdta0x16528600)
19:20:42.649 tsx0x16c5fe64 .....Sending Response msg
488/INVITE/cseq=91632755 (tdta0x16528600) in state Proceeding
19:20:42.650 pjsua_core.c ......TX 498 bytes Response msg
488/INVITE/cseq=91632755 (tdta0x16528600)
SIP/2.0 488 Not Acceptable Here
Is there some workaround I could use to force media address, or should I
follow the changes that are happening right now in this ticket dedicated to
NAT64 ?
http://trac.pjsip.org/repos/ticket/1922
regards
J.G.
Visit our blog: http://blog.pjsip.org
pjsip mailing list
pjsip@lists.pjsip.org
javascript:_e(%7B%7D,'cvml','pjsip@lists.pjsip.org');
http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org