Моя проблема в том, что Asterisk, кажется, отвечает на телефонные звонки слишком поздно после «Привет?» чтобы функциональность AMD работала правильно, то есть AMD включается в тишине, и человек должен снова поздороваться, чтобы он знал, что там есть человек.
Мы протестировали его с помощью IAX через программный телефон и увидели более или менее такую же задержку при ответе, поэтому мы предполагаем, что это конфигурация Asterisk.
У меня более или менее ванильная установка Asterisk. Инициируем исходящие звонки по SIP через местного провайдера. Я использую часть «Менеджер» API Java Asterisk, чтобы указать Asterisk сделать вызов, а затем API Java Agi обработать его.
Часть конфигурации SIP выглядит следующим образом (sip.conf):
[my-sip-trunk]
disallow=all
allow=ulaw
allow=alaw
allow=gsm
host=<ip to our provider>
type=peer
canreinvite=no
nat=never
Данные, которые я отправляю через Менеджер на Asterisk, выглядят примерно так:
Channel: SIP/<phonenumberhere>@my-sip-trunk
Context: MyContext
Extension: 100
Priority: 1
Caller ID: <caller's caller ID>
В моем extensions.conf есть соответствующая информация и — исключительно для целей этой демонстрации — только пара команд:
[MyContext]
exten => 100,1,Answer()
exten => 100,n,Background(beep)
Что происходит, когда я беру трубку, успеваю сказать: «Привет?» и подавать звуковой сигнал вскоре после того, как я закончу говорить. Звуковой сигнал говорит мне, когда AMD должен был начать прослушивание, но поскольку он уже прошел, когда я начал говорить, он услышит только тишину.
Есть ли у кого-нибудь идеи, где и как я неправильно настроил Asterisk для такой задержки?