I am running Asterisk 13.18.3 with PJSIP channel driver on a multi-homed server. Some enpoints are roaming between external and internal network, and they need to be operational regardless of the network they currently reside. However, it is not clear how to implement this scenario.
- If I specify transport in pjsip.conf, endpoints are operational from one network only (this is expected).
- If I omit transport, registration initially succeeds, but then Asterisk sends OPTIONS and INVITEs to the endpoint from a different IP, not respecting the IP recevied in the initial REGISTER message.
- If I specify transport as ‘0.0.0.0-udp’ binding IP address 0.0.0.0, I end up with the following error:
Unable to retrieve PJSIP transport '0.0.0.0-udp'
My suggestion is that if transport is not specified, it should be selected based on the IP of an endpoint. However, it is not the case as you can see.
So, I have the following questions:
- What is the correct way to get SIP endpoints operational in a multi-homed environment?
- What is the transport selection logic if transport is not set explicitly? From here (3a), it is not clear how hashing mechanism works.
- What does transport 0.0.0.0 mean (it is provided in sample configs and available in FreePBX) and why it is not working?