Reviewing some more packet captures, I don’t think the local/non-routable IP in SDP is the issue as the packet still gets through at the UDP level and that payload just tells it the address of the device. I compared it to a packet capture of a direct call out and that also has the internal address and works without issue, so that is not the likely problem, it appears to be somewhere else. It is interesting that the external_media_address
configuration parameter passes through as null, confirmed it is in the cached config file, so have no idea why it does not pass through.
I did some more testing and set up some completely different lines and groups just to confirm things were clean, as follows:
- Setup a new
CUSTOM
user/line/extension to connect to an external number, with the line interfaceLocal/1xxxxxxxxxx@default
, with extension730
- Created a new incall DID that maps to a spare trunk DID and made the destination extension
730
- Dialed
730
from a local extension - external phone rang, I answered, two way audio - Called the trunk did from another mobile phone, the external phone rang, I answered, no audio
I also ran packet captures during both calls and on a side-by-side comparison, they appear very similar, the only immediate standout (other than no RTP packets) I noticed is the “successful” call has a 183 Session Progress
packet between INVITE
and Ringing
, while the other call does not.
I have some more side-by-side packet walking to do, but so far nothing is standing out as the issue and until I figure a way to dump the caller side packets to capture the missing RTP side, I am not sure I am going to pinpoint the issue.