Answer()ing A Local Originate Takes 500ms!?

Home » Asterisk Users » Answer()ing A Local Originate Takes 500ms!?
Asterisk Users 3 Comments

Hi.

Asterisk 16.2.1

I have a dialplan where one context (named “inbound”) performs:

Originate(Local/${Target}@inOrig,exten,inbound,${EXTEN},208)

The idea is that this command will spawn a “call” to the context “inOrig” on the same machine, and then return to the “inbound” context at priority 208.

Priority 208 is simply a NoOp(Returned from inOrig)

The “inOrig” context does:

NoOp(Answering inbound call)
Answer()
NoOp(Returned to inbound context)
Originate(Local/${EXTEN}@dialout,exten,BridgIt,${EXTEN},1)

It’s all doing what I want / expect, but I am seeing, completely consistently, a 500ms delay in the Answer() application.

So, I get the following sequence of timings:

08:41:49.514918 inbound:201 Originate(…..)
08:41:49.516459 inOrig:1 NoOp(Answering inbound call)
08:41:49.517016 inOrig:2 Answer()
08:41:49.517489 inbound:208 NoOp(Returned from inOrig)
08:41:50.017454 inOrig:3 NoOp(Returned to inbound context)

I have analysed dozens of calls and there is always a ~500ms delay between when the Answer() has clearly completed (because control returns to priority
208 of the “inbound” context), and when the inOrig context continues with the following NoOp.

https://wiki.asterisk.org/wiki/display/AST/Application_Answer tells me that the Answer() application takes an optional parameter which causes Asterisk to wait that number of milliseconds before returning to the dialplan after answering the call.

Does this undocumentedly default to 500?

Are the results I’m seeing expected, is there something wrong with my dialplans, is there some way to eliminate this delay?

Thanks for any insight.

Antony.


3 logicians walk into a bar. The bartender asks “Do you all want a drink?”
The first logician says “I don’t know.”
The second logician says “I don’t know.”
The third logician says “Yes!”

Please reply to the list;
please *don’t* CC me.

3 thoughts on - Answer()ing A Local Originate Takes 500ms!?

  • There is a hard coded minimum of 500 milliseconds for media to flow. You’d have to modify the code to remove it.

  • Urgh!

    Is there _anything_ I can do in either the Originate() or the Answer() to avoid this, without having to rebuild Asterisk?

    And, separately, please can I request that:

    a) this minimum is documented

    b) it can be over-ridden at the user’s own risk if the supplied parameter is lower than 500.

    Thanks,

    Antony.


    A good conversation is like a miniskirt;
    short enought to retain interest, but long enough to cover the subject.

    – Celeste Headlee

    Please reply to the list;
    please *don’t* CC me.