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

Определить номер кому позвонили на очередь

Добавлено: 08 июн 2015, 13:07
viktor1986
Здравствуйте. Есть небольшая проблема. Возможно я зашёл не с той стороны для её решения. Ситуация такая

Астериск 11 версии.

Есть очередь 952 IT отдела. вот код:

exten => _952,1,Answer
exten => _952,n,Set(fname=${STRFTIME(${EPOCH},,%H%M%S)}-${CALLERID(number)}-${EXTEN})
exten => _952,n,MixMonitor(/var/spool/asterisk/monitor/${fname}.wav)
exten => _952,n,Queue(it)
exten => _952,h,n,Set(fname2=${CDR(dstchannel)})
exten => _952,n,MixMonitor(/var/spool/asterisk/monitor/${fname2}.wav)
exten => _952,n,Hangup

Мне нужно чтобы в имени файла хоть как-то появился номер телефона который поднял трубку, а получается всегда одно и тоже 130236-1211-952.wav

Тот кусок что я представил хотя бы просто для того чтобы отобразить номер кто поднял трубку.

CDR у меня соответственно работает.

Подскажите пожалуйста как решить проблему. Причём не важно насколько изощренным способом.

Re: Определить номер кому позвонили на очередь

Добавлено: 08 июн 2015, 13:27
Wapo
Абсолютно стандартная ошибка - формирование имени файла ДО ответа агента очереди. Есть в параметрах очереди ключик m с помощью которого вызывается макрос в момент ответа агента. Вот и пользуйтесь.

Re: Определить номер кому позвонили на очередь

Добавлено: 09 июн 2015, 08:01
virus_net
Wapo писал(а):Есть в параметрах очереди ключик m
Все же поправлю:
Там есть ключ macro:
Queue(queuename[,options[,URL[,announceoverride[,timeout[,AGI[,macro[,gosub[,rule[,position]]]]]]]]])
А так же есть gosub, который так же можно использовать в данном случае. Либо macro, либо gosub - без разницы.

Re: Определить номер кому позвонили на очередь

Добавлено: 09 июн 2015, 10:32
Wapo
Соглашусь - перепутал Dial и Queue.
Но вот ЭТО:

Код: Выделить всё

exten => _952,h,n,Set(fname2=${CDR(dstchannel)})
exten => _952,n,MixMonitor(/var/spool/asterisk/monitor/${fname2}.wav)
exten => _952,n,Hangup
веселит до чертиков.