Я хочу иметь возможность передать расширение, введенное вызывающим абонентом, в сценарий agi, и после его обработки я хотел бы, чтобы сценарий agi отправил результат обратно в абонентскую группу в качестве переменной. Может ли кто-нибудь дать мне пример того, как добиться этого на любом языке диалплана
Как передать переменные между диалпланом и скриптом agi в звездочке
Ответы (1)
Если вы используете диалплан Asterisk (extensions.conf) для входа в AGI, то получить расширение можно с помощью переменной канала ${EXTEN}. Чтобы вернуть информацию в диалплан, вы можете установить любую переменную канала, но будьте осторожны, чтобы избежать переменных канала, которые используются самой Asterisk.
Вот краткий пример использования Adhearsion:
В расширениях Asterisk.conf:
exten => s,1,Background(enter-your-extension-now)
exten => _X.,1,AGI(agi://localhost/stuff)
exten => _X.,n,NoOp(Returned new extension: ${NewExten})
В диалплане Adhearsion.rb:
stuff {
exten = get_variable('EXTEN')
# Do stuff to figure out what the new extension should be
newexten = '12345'
set_variable('NewExten', newexten)
}
Приведенный выше код установит для переменной канала ${NewExten} значение «12345» и запишет ее в консоль Asterisk.
person
Ben Klang
schedule
20.08.2011