Asterisk 15.x changing Record-Route set by Proxy


#1

Hello All,

I have been working on a problem for a while now where Asterisk 15.3 hangs up on calls after about 30 seconds. The calls are coming through a Proxy. I have played with many combinations of local_net,external_signaling_address, and rewrite_contract and my problems just shifts from one issue to another. Here is the confusing part, if I simply switch to Asterisk 14.6, the calls work perfectly. I started comparing tcpdump files and the first place 15.3 differs from 14.6 is in the first Record-Route in the '‘200 OK’ that asterisk returns from an “INVITE” from the Proxy. In 14.6 the first Record-Route uses the Proxies Private-IP, but Asterisk 15.3 uses the Proxies Public IP. By changing the setting I mentioned above, I just seem to move the problem around. but it ALWAYS is related to a Public vs Private IP Address. I have included the Asterisk debug file which show this happening. debug.investigate.txt (69.2 KB)

Thank you


#2

The Record-Route as provided by the proxy contains the public IP address, and Asterisk follows it per SIP:

Record-Route: <sip:45.25.100.61:443;transport=ws;r2=on;lr=on;ftag=883dba0b-c151-49fc-bd91-a7d4577e6c7f;nat=yes>
Record-Route: <sip:45.25.100.61;r2=on;lr=on;ftag=883dba0b-c151-49fc-bd91-a7d4577e6c7f;nat=yes>

#3

And this is where I am getting really confused, I know it’s an older version, but where version 14.6 has the Private-IP in the first Record Route, at it works perfectly. The only difference between the two runs is the version.

Thank you


Asterisk Pjsip changing TOP Record-Route Port Problem
#4

Asterisk isn’t putting those values in the SIP message. They are received FROM the proxy. In fact if you follow the string “6848ce6f-1c37-48e9-a2e5-12882a3a2c7f” you’ll see the entire call and see that the 200 OK to answer the call even went to the public IP address, not just the re-invite.


#5

It sounds like comparing tcpdumps between Asterisk 14.6 and Asterisk 15.3 is not the route to go. If not comparing dumps to help determine why one call works and another does not, are there any other suggestions you would have to track down such a problem?

Thanks for all of your help on this.


#6

It’s likely on the proxy side, so understanding precisely what it is doing, how it is configured, etc is what you’d have to do.

It likely worked before because it was the exact right conditions not to expose already existing problems.


#7

Thank you and I understand your point. I was not quite clear in my above statement; it is Asterisk 14.6 that changes the first Record-Route to the Proxy Private IP, even though…yes, the Proxy is sending it’s Public IP. Asterisk 15.x does not do this, and this is why Calls work with 14.6 but not 15.x.

I really do appreciate the effort you put into helping me understand what is going on.