johanlantz / pj-nat64

Helpers for NAT64 handling pending official solutions from pjsip
MIT License
16 stars 4 forks source link

on_reg_state callback activation #6

Open jgathm opened 7 years ago

jgathm commented 7 years ago

Hi

I'm trying to activate the nat64 module the way you recommend it, by checking the transport type in registration callback.

However, I cannot get pjsua to connect to IPv6 without explicitly specifying the IPv6 transport to the account doing like the pjsip wiki, acc_cfg.transport_id = tcp6_tp_id before adding account

Do you manage to get pjsip to smart automatically select the IPv6 (or IPv4) transport ?

johanlantz commented 7 years ago

I do not have access to that code anymore so I do not recall the exact details. However if I am not mistaken, I created transports for both IPv4 and IPv6 (TCP+TLS) when configuring pjsua. Then pjsip automatically choose the appropriate transport after resolving the dns name. iirc this is not something you have to do manually.

jgathm commented 7 years ago

I finally got it working. I was using IP and not host name. Using IP made the correct use of synthetised IP address but not automatic transport selection.

On another feature, do you remember if you tested successfully IPv6 <-> IPv4 network handover during a call ?

So far I got it working in regular IPv4 to IPv4 but in 6 to 4 scenario, I reconnect the SIP session on 4-socket but the re invite fails.

johanlantz commented 7 years ago

For handover, sorry I did not test that.

As for using IP in the proxy name, I think you should at least point this out on the mailing list, that a IPv4 address synthesized into IPv6 does not correctly manage transport selection. I think they are considering NAT64 support for the coming release and maybe this is something they could take into consideration.

jgathm commented 7 years ago

The DNS issue is actually explained in a ticket so that's how I came to the solution.

For the NAT 64 part they still have not provided an official SDP rewrite module so you are still the most used implementation :-)