Страница 1 из 1

hangup request, как получить номер канала

Добавлено: 16 апр 2014, 15:08
handbrake
Всем привет.
Помогите, пожалуйста.
С телефона вводится номер экстеншена, хочу для введенного номера ext_num сделать hangup request
exten => 999,n,Read(ext_num,please-enter-your&extension,3)

Но для hangup нужен не экстеншен, а номер канала вида SIP/180-0000193a
Номер канала мне скажет core show channels.
Но я не знаю, как это всё сделать внутри extensions.conf - не понимаю, как распарсить ответ и извлечь номер канала в переменную.
Можно ли так вообще или придется вызывать внешний скрипт?

Re: hangup request, как получить номер канала

Добавлено: 17 апр 2014, 08:03
virus_net
Asterisk Detailed Variable List
${CHANNEL} * Current channel name
${CDR(channel)} Channel name

Re: hangup request, как получить номер канала

Добавлено: 17 апр 2014, 08:12
handbrake
Спасибо)

Re: hangup request, как получить номер канала

Добавлено: 17 апр 2014, 08:47
handbrake
В общем, если кому не лениво, вопрос остается.

Нужно в диалплане получить список активных каналов и получить в переменную имя канала, который начинается с SIP/200
Как тут применить CDR(channel) я не понял, увы.

Re: hangup request, как получить номер канала

Добавлено: 17 апр 2014, 09:36
gosha
только через внешний скрипт.

exten => 123,1,Set(mychan=${SHELL( asterisk -rx 'core show channels concise' | grep '^SIP/200-' | head -1 | awk -F '!' '{print $1}' )})


экранирование спецсимволов и чистка переводов строк это уже второй вопрос. можно и agi сделать простой.

Re: hangup request, как получить номер канала

Добавлено: 17 апр 2014, 10:32
handbrake
Спасибо, направление понял. Пробую через phpagi.

Re: hangup request, как получить номер канала

Добавлено: 17 апр 2014, 23:37
virus_net
virus_net писал(а):Asterisk Detailed Variable List
упсс, звиняйте, изначально не допЭтрил суть задачи, хотя вроде прочел даже два раза, т.к. с первого тоже не осознал :)