Я хочу выполнить скрипт AGI для вызывающей стороны после того, как вызываемая сторона повесится. Например, для проведения опроса для клиентов я собираюсь запустить скрипт AGI после того, как агент зависает. К сожалению, когда скрипты AGI запускают отладочный вывод agi, он говорит: «511: команда не может быть выполнена на мертвом канале» Я использую такие команды, как «ANSWER» или «STREAM FILE» в моем скрипте agi, которому нужен канал для запуска на. Я знаю, что вызывающий канал зависает, как только вызываемая сторона зависает. Я попробовал DeadAGI вместо AGI, а также опцию «g» в команде набора, но ни одна из них не работает. Итак, я думаю, что мне нужно найти решение, которое поддерживает вызывающий канал, чтобы я мог запустить свой сценарий. Любое предложение, пожалуйста?Продолжить вызов канала после того, как вызываемый канал зависает в Asterisk
0
A
ответ
0
Вы не должны использовать параметр «g» для этого случая, потому что это зависание CALLER. Вы должны использовать «F»
F([[context^]exten^]priority): When the caller hangs up, transfer
the *called* party to the specified destination and *start* execution
at that location.
NOTE: Any channel variables you want the called channel to inherit
from the caller channel must be prefixed with one or two underbars ('_').
F: When the caller hangs up, transfer the *called* party to the next
priority of the current extension and *start* execution at that location.
NOTE: Any channel variables you want the called channel to inherit
from the caller channel must be prefixed with one or two underbars ('_').
NOTE: Using this option from a Macro() or GoSub() might not make
sense as there would be no return points.
g: Proceed with dialplan execution at the next priority in the current
extension if the destination channel hangs up.
0
Наконец-то я нашел ответ. Проблема в том, что нам не нужно выполнять скрипт agi в h-расширении, иначе мы получим ошибку для некоторых функций, таких как answer или streamfile в agi. мы должны перенаправить вызов на некоторое расширение до расширения h, и для этого в elastix мне пришлось изменить extensions.conf.
На самом деле я хочу сделать этот сценарий для входящих вызовов, поэтому я хочу сделать что-то для внешнего звонящего после того, как внутри вызываемого абонента зависает. как вы упомянули здесь, опция «F» предназначена для разблокировки звонящего. Это другое – Amir
Нет проблем, если CALLED party hangup. Вариант g и аналогичные параметры для очередей работают нормально, см. Пример в файле extensions.conf.sample Вероятно, вы просто ничего не делаете. – arheops
Я работаю с elastix 2.3. Я написал очень простой код: '[test] exten => 22,1, dial (sip/100) exten => h, 1, воспроизведение (до свидания)' Он должен воспроизводить звук прощания после 100 зависаний, но он не делает .Это действительно странно – Amir