====== Манго офис и переадресация вызовов ====== [[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:|Обратно к инструкциям]]