24 сент. 2020 г.

Asterisk black list

same => n,ExecIf($["${CALLERID(num)}" = "9113223232"]?Hangup())

or

same => n,ExecIf($[${REGEX("^(921|981)" ${CALLERID(num)})}]?Hangup())

13 авг. 2020 г.

Передача информации в CRM при снятии трубки оператором очереди в Asterisk

Задача: Отдавать Web-based CRM информацию о звонке в очередь в момент снятия трубки. Решение: Макрос, вызываемый при соединении агента. Указывается либо в параметрах очереди (параметр membermacro или membergosub) или в вызове приложения queue(). У меня заработало в макросе, указанном в вызове приложения. 
Отдавать нужно: 
1. Номер того, кто звонит 
2. Номер того, кто снял трубку. 
3. Уникальный ID звонка. 
Если с 2-м и 3-м параметрами все хорошо, они в макросе определены, причем определены для конкретного канала, то callerid(num) неожиданно возвращает номер агента очереди. Вероятно, это выглядит как исходящий звонок агенту. Но нам нужен callerid(num), который был установлен, когда звонок поступил в очередь. Делаем в 2 этапа, через так называемые Variable inheritance - https://wiki.asterisk.org/wiki/display/AST/Variable+Inheritance 

1.Контекст очереди: 

same => n,Set(_MYCID=${CALLERID(num)}) 
same => n,Queue(free,t,,,1800,,HookCRM) 

2.Контекст макроса: 

[macro-HookCRM] 
exten => s,1,Verbose("membername - ${MEMBERNAME},uniqueid - ${UNIQUEID},callerid - ${MYCID}") 
same => n,Verbose(0,${CURL(http://192.168.0.1/api/call?operator_id=${MEMBERNAME}&call_number=${MYCID}&call_id=${UNIQUEID})})

10 мар. 2020 г.

Asterisk queue - cбросить канал

Проблема - не идут звонки на телефон после регистрации в очереди.
По команде queue show показывает, что телефон в агентах очереди, но "In use"
По команде sip show channels видим, что хотя звонка нет, есть зависший канал на этот телефон.
Поэтому очередь определяет его как все время занятый.

Лечение:
sip show channels
Peer User/ANR Call ID Format Hold Last Message Expiry Peer
192.168.10.175 225 80BDD706-AAB8-E (alaw) No Rx: ACK 225
Смотрим Call ID, находим по нему канал -
sip show channel 80BDD706-AAB8-E
SIP Call
Curr. trans. direction: Incoming
Call-ID: 80BDD706-AAB8-E311-A43F-BA0FA64CD691@192.168.10.175
Owner channel ID: SIP/225-0001c666
Our Codec Capability: (gsm|ulaw|alaw|g729)
Non-Codec Capability (DTMF): 1
Their Codec Capability: (gsm|ulaw|alaw|g726|speex|speex16|ilbc|g722)
Joint Codec Capability: (gsm|ulaw|alaw)
Format: (alaw)
Убиваем канал -
channel request hangup SIP/225-0001c666
При необходимости перегружаем очередь -
queue reload

Взято отсюда