[asterisk-users] pjsip transport and dynamic WAN IP address (not: NAT)
Michael Maier
m1278468 at mailbox.org
Sat May 1 00:13:33 CDT 2021
Hello all!
I'm actually wondering about how to achieve fast fail handling for the pjsip
transport if underlying WAN IP address changes.
Following scenario:
Asterisk runs on a device holding ppp0, which provides the interface for outbound
registration to ISP trunks (transport acts as client) and therefore the WAN IP.
If WAN IP changes after restarting ppp0 (and ppp0 device completely disappeared
for some time), it takes pretty long until the transport realizes, that the WAN IP
changed.
I tried dnsmanager to always provide correct external IP address in SIP requests
like this
external_media_address : external.mydom.org
external_signaling_address : external.mydom.org
local_net : 192.168.0.0/255.255.0.0
and I can see, that after IP address change, the SIP requests (Register e.g.)
provide the correct WAN IP - but transport didn't realize the change on low level.
NOTICE[4061] dnsmgr.c: dnssrv: host 'external.mydom.org' changed from 46.r.x.y:0
to 79.t.a.b:0
It takes quite some long time (~13 minutes), until pjsip / asterisk detects a
timeout or a network unreachable.
tlsc0x7ffa800203a8 TLS transport destroyed with reason 120110: Connection timed out
After this point has been reached, the transport is destroyed and a new transport
is generated - from now on, things are working fine again.
I added a global logging rule in iptables at first place in OUTPUT to see any
packages which are handled - but I couldn't see any - therefore I think things are
breaking even earlier.
My question: is there any possibility to programmatically force the restart of a
given transport (I don't want to restart all transports)? This could be easily
done in ppp up scripts. Or is there a configuration option to reduce the timeout
until restart of the individual transport? Maybe in pjsip (connection timeout
detection)?
Another idea would be to restart the relevant transports based on dnsmgr detecting
new external IP.
Thanks
Michael
More information about the asterisk-users
mailing list