[asterisk-users] PJSIP call Delay DNS/Realtime
Joshua C. Colp
jcolp at digium.com
Thu May 16 12:57:50 CDT 2019
On Thu, May 16, 2019, at 2:54 PM, Nick Olsen wrote:
> Hello all,
> I'm migrating a box from PJSIP with normal Flatfiles to ODBC/Realtime,
> Also 16.0.1 to 16.3.0. After adding a few peers to the new RT box, I
> noticed a delay in call processing. All I had done thus far is added a
> few endpoints for upstream carriers, And one downstream for the legacy
> PBX it was replacing. After a bit of troubleshooting I found the issue
> to be related to having the identify section matching a domain name
> (Instead of an IP). Each endpoint with match=domain.name.here (The
> specific name didn't really matter) added a bit of noticeable latency.
> Once you were up to 4-5 of them, It was a ~5 second delay from the time
> the invite came in until the time the call was routed and stood up with
> audio. Even when you were routing between unrelated (non-dns matched)
> endpoints. Looking at the debug logs, It seems like Asterisk looks
> these peers up on some kind of time interval. As well as during _every_
> inbound call. This also explains why the delay increased with every
> single DNS based endpoint I added. Each extra peer means another DNS
> lookup and process.
> To further test my theory, I stood up a local caching DNS resolver and
> this significantly improved the delay. But it was still ~1 second with
> 5 DNS based endpoints. Even with a caching resolver, This doesn't
> scale. Doing a large number (and growing with scale) of DNS lookups for
> every call (Maybe even every packet) just doesn't fly.
> So my questions are:
> 1. Anyone have any idea why asterisk does this when using realtime but
> NOT when using flatfiles?
Unless you configure caching for the objects then every time the identify object is pulled from the database it has to be looked up and resolved.
> 2. Is there not a way to cache this in Asterisk without having to do a
> DNS lookup every time?
There's nothing built in to cache this at a DNS level.
> 3. Any other tweaks I can make to asterisk to speed this up (Not really
> looking to match based on other objects, like header or username).
Joshua C. Colp
Digium - A Sangoma Company | Senior Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - US
Check us out at: www.digium.com & www.asterisk.org
More information about the asterisk-users