Как передать переменные между диалпланом и скриптом agi в звездочке

Я хочу иметь возможность передать расширение, введенное вызывающим абонентом, в сценарий agi, и после его обработки я хотел бы, чтобы сценарий agi отправил результат обратно в абонентскую группу в качестве переменной. Может ли кто-нибудь дать мне пример того, как добиться этого на любом языке диалплана


person Community    schedule 19.08.2011    source источник


Ответы (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