Asterisk app: Originate
Команда Asterisk Originate создает вызов. Проще говоря, вы можете набрать номер, а Asterisk вызовет и соединит два других екстеншена или приложения.
Описание
Приложение создает исходящий вызов и соединяет его с указанными екстеншенами или приложениями. Выполнение диалплана блокируется, пока приложение не вернет статус вызова, неудачный или отвеченный, а затем выполнение диалплана продолжается. Приложение возвращает переменную канала ${ORIGINATE_STATUS}: следующие значения возможны.
- FAILED
- SUCCESS
- BUSY
- CONGESTION
- HANGUP
- RINGING
синтаксис
Originate(tech_data,type,arg1[,arg2[,arg3[,timeout]]])
Аргументы
- tech_data - технология вызываемого первоначально канала и его данные, например SIP/1234.
- type - это может быть либо 'app', либо 'exten', зависит от того, что вы хотите вызвать затем - екстеншен (номер из диалплана) или приложение (например ConfBridge или Queue), чтобы соединить с каналом из tech_data.
- arg1 - если тип 'app' это будет имя приложения (например ConfBridge или Queue), если екстеншен, то контекст в котором он определен.
- arg2 - если тип 'app', то это данные приложения (например имя_очереди для приложения Queue), если 'exten', то расширение которое должно быть вызвано.
- arg3 - если тип 'exten', то здесь назначается приоритет в для вызываемого расширения в контексте. если 'app', то данный параметр игнорируется.
- timeout - Таймаут. По умолчанию 30 сек.
примеры
Автоматический сбор конференции из БД, средствами диалплана, при помощи команд While() и Originate().
Добавим номера во внутреннюю бд asterisk в формате <FAMILY> <NUMBER> <VALUE(любое)>
cli> database put WCONFBRIDGE 2666 1
cli> database put WCONFBRIDGE 2667 1
exten => _4886,1,noop(conf autodial) same => n,set(list=${DB_KEYS(WCONFBRIDGE)}) same => n,While($[${list}]) ; пока есть что-то. same => n,set(num=${POP(list)}) same => n,originate(Local/${num}@from-internal,app,confbridge,test) same => n,EndWhile