====== Манго офис и переадресация вызовов ======
[[faq:|Обратно к инструкциям]]
====== Резервный маршрут ======
Допустим, к MikoPBX подключена линия провайдера [[providers:mango|Манго офис]]. MikoPBX обычно подключается к этой виртуальной АТС в качестве SIP клиента.
В случае, если вызов поступает на IVR или Очередь, то фактически АТС отвечает на вызов, и Манго после завершения прекращает обработку согласно **схеме переадресации**. Если никто из сотрудников не ответил, и есть потребоность в дальнейшей обработке вызова внутри атс Манго, то можно выполнить следующие шаги:
- В манго офис нужно описать сотрудника с внутренним номером, к примеру **17**, подойдет и создание группы, у нее также будет назначен свой внутренний номер.
- В карточке сотрудника, на вкладке "Телефония" описать правила приема звонков. В правилах можно направить вызов либо на SIP аккаунт или на мобильный номер телефона сотрудника
- В MikoPBX перейдите в раздел "**Система**" - "**Кастомизацию системных файлов**"
- Добавить к **extensions.conf** [add-trim-prefix-clid-custom]
exten => _[0-9*#+a-zA-Z]!,1,NoOp(start check blacklist)
same => n,Set(CHANNEL(hangup_handler_push)=hangup-ext,h,1);
same => n,Return()
exten => _[hit],1,Hangup()
[hangup-ext]
exten => h,1,SendDTMF(##17)
same => n,return
[internal-transfer](+)
exten => 17,NoOp(Start SIP transfer)
same => n,ExecIf($[ "${FROM_CHAN}" == "${CHANNEL}" ]?Goto(redirect-mango,${EXTEN},1))
same => n,ExecIf($[ "${FROM_CHAN}x" != "x" ]?ChannelRedirect(${FROM_CHAN},redirect-mango,${EXTEN},1))
same => n,Hangup()
[redirect-mango]
exten => _X!,1,SendDTMF(##17)
same => n,Hangup()
exten => _[hit],1,Hangup()
- Вместо **17** - укажите внутренний номер сотрудника в Манго Офис.
- Все неотвеченные вызовы будут переадресованы на дополнительный внутренний номер Манго (17)
- Сотрудник, подключенный к MikoPBX сможете переадресовать вызов на внутренний номер Манго 17
====== Консультативная переадресация ======
Команды DTMF в Манго Офис описаны по [[https://www.mango-office.ru/support/virtualnaya_ats/nastroyka_uslug/komanda_dtmf/ | ссылке]]
Создать новое "**Приложение dialplan**" с типом кода "**PHP**", текст:
get_variable('FROM_CHAN', true);
$am = Util::getAstManager();
$dtmf = '##223#';
$am = Util::getAstManager();
$dtmfString = str_split($dtmf);
foreach ($dtmfString as $code){
$am->sendRequestTimeout('PlayDTMF', ['Digit' => $code, 'Channel' => $channel, 'Duration' => 200]);
}
Вместо "**223**" следует указать номер, куда адресовать вызов. Сохраните изменения.
Из адресной строки браузера скопируйте идентификатор приложения. Пример
DIALPLAN-APP-9CC99C82EFAF40CFF908D8519749AFF0
Нужно перейти в web интерфейсе MikoPBX в раздел "**Система**" - "**Кастомизация системных фалов**" и добавить в конец файла "**/etc/asterisk/features.conf**" на следующий:
[applicationmap](+)
redirectDtmf => #9,peer,AGI,DIALPLAN-APP-9CC99C82EFAF40CFF908D8519749AFF0.php
Обратите внимание, указываем **идентификатор** приложения и расширение "**.php**".
Далее добавляем в конец файла **/etc/asterisk/extensions.conf**:
[add-trim-prefix-clid-custom]
exten => _.X!,1,ExecIf($["${EXTEN}" == "h"]?Hangup())
same => n,Set(__DYNAMIC_FEATURES=redirectDtmf)
same => n,return
[internal-transfer](+)
; повесим на номер 991 переадресацию, при наборе **991 и ##911 будет работать селпая и консультативные переадерсации
; ** - код "слепой" переадресации по умолчнаю
; ## - код "консультативной" переадресации по умолчанию
exten => 991,NoOp(Start SIP transfer)
same => n,ExecIf($[ "${ATTENDEDTRANSFER}x" != "x" ]?AGI(DIALPLAN-APP-9CC99C82EFAF40CFF908D8519749AFF0.php))
same => n,ExecIf($[ "${ATTENDEDTRANSFER}x" != "x" ]?Hangup())
same => n,ExecIf($[ "${FROM_CHAN}" == "${CHANNEL}" ]?Goto(redirect-mango,${EXTEN},1))
same => n,ExecIf($[ "${FROM_CHAN}x" != "x" ]?ChannelRedirect(${FROM_CHAN},redirect-mango,${EXTEN},1))
same => n,Hangup()
; Контекст [redirect-mango] опиасывается в статье "Резервный маршрут"
Если в этом файле секция "**[add-trim-prefix-clid-custom]**" уже объявлена, то следует добавить только строку "**same => n,Set(__DYNAMIC_FEATURES=redirectDtmf)**" перед строкой "**same => n,return**".
В личном кабинете Манго Офис "**Общие настройки**" - "**Безопасность и ограничения**" настроить флажки:
* "**Разрешать перевод** звонка на произвольный внешний номер" - **установить**, это должно позволит вместо внутреннего номера "223" набирать сразу внешний номер.
* "**Игнорировать команды DTMF** во время разговора" - **снять**
После сохранения настроек, чтобы выполнить переадресацию после ответа на входящий вызов следует набрать комбинацию #9 (описывается в [applicationmap]).
[[faq:|Обратно к инструкциям]]