Если вы используете план набора номеров 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.