Я не могу включить завершение вызова на занятом подписчике (CCBS) на звездочке, поскольку это часть дополнительных услуг завершения вызова (CCSS), как и функция завершения вызова при отсутствии ответа (CCNR).
Вот сценарий: Марк берет свой телефон (1000) и набирает Ричарда, набрав 2000. Ричард в данный момент разговаривает по телефону, поэтому Марк слышит сигнал «занято». Затем Марк кладет трубку, берет трубку и набирает 30, чтобы вызвать приложение CallCompletionRequest. Через некоторое время Ричард заканчивает разговор и кладет трубку. Марку автоматически перезвонит Asterisk. Когда Марк снимает трубку, Asterisk набирает для него добавочный номер 2000.
Согласно документации, я должен добавить cc_agent_policy и cc_monitor_policy в соответствии с моими потребностями (общий), добавить расширение CCSS enable в диалплан и включить его после набора номера занятого телефона. Что я и сделал.
Дело в том, что CCBS, который используется, когда добавочные номера заняты, не работает, поскольку ничего не происходит при наборе добавочного номера 30 для включения мониторинга на ранее занятом добавочном номере, что немного расстраивает, поскольку другая функция, CCNR, тот, который использовался для мониторинга неотзывчивых расширений, работает нормально.
Может кто-нибудь сказать мне, чего не хватает?
Вот файлы конфигурации:
/etc/asterisk/sip.conf
[1000]
context=default
cc_agent_policy=generic
cc_monitor_policy=generic
[2000]
context=default
cc_agent_policy=generic
cc_monitor_policy=generic
/etc/asterisk/extensions.conf
[default]
exten => 1000,1,Dial(SIP/1000,20)
exten => 1000,n,Hangup
exten => 2000,1,Dial(SIP/2000,20)
exten => 2000,n,Hangup
exten => 30,1,CallCompletionRequest
exten => 30,n,Hangup
exten => 31,1,CallCompletionCancel
exten => 31,n,Hangup
Вот состояние отчета CC в CLI после вызова телефона, который не ответил на вызов, и включения добавочного номера CCSS 30:
Core ID Caller Status
----------------------------------------------------------------------------
0 SIP/1000 CC accepted by callee
|-->2000@default
|-->SIP/2000(CCNR)
И после звонка на занятый телефон (думаю, он должен показывать статус CC) и попытки включить добавочный номер CCSS 30:
CLI> There are currently no active call completion transactions
Системная информация:
Чтобы Asterisk включил CCBS после CallCompletionRequest, занятое устройство должно ответить на SIP INVITE ответом 486 Busy Here. То есть Asterisk должен набирать добавочный номер, даже если у него внутренний статус «InUse», а на устройстве должна быть отключена функция «Call Waiting». В моем контексте, где я поддерживаю дистрибутив Elastix, мне пришлось включить «Ожидание вызова» для всех устройств, чтобы Asterisk набирала добавочный номер, даже если он занят. А затем, когда на устройстве отключен «Ожидание вызова», оно отвечает сообщением SIP 486.
В чистом Asterisk этого можно добиться, установив
busylevel = 2
в sip.conf для расширений. Asterisk будет набирать добавочный номер, даже если он находится в состоянии вызова, а при отключенной функции «Ожидание вызова» он ответит 486.
Ссылка на sip.conf.sample с доступными конфигурациями для пира / пользователя / друга: https://github.com/asterisk/asterisk/blob/13.26/configs/samples/sip.conf.sample