• Использование режима DND с возможностью переадресации на Asterisk 16 + FreePBX 14

    Многие пользователи просили сделать возможность переадресации вызовов на мобильный при установке DND (do not disturb) режима на рабочем телефоне. Так как DND режим не предполагает переадресации, то пришлось свою обработку для этого режима.

     

    Все ниже описанные действия производились на Asterisk 16 + FreePBX 14.

     

    В итоге добавлена возможность активации\де-активации DND режима по звонку самому себе (на всякий слушай, вдруг кому будет так удобней), возможность задание переадресации для конкретных внутренних номеров (не всем пользователям нужно такое поведение DND режима).

     

    В файл /etc/asterisk/extentions_custom.conf добавляем (постарался подробно описать что делает и как работают секции):

    [from-internal-custom]
    include => dnd-on-off
    include => dnd-transfer-check
    
    exten => _XXXX,1,GoSub(dnd-on-off,s,1,(${EXTEN}))
    exten => _XXXX,n,GoSub(dnd-transfer-check,s,1,(${EXTEN}))
    exten => _XXXX,n,Goto(from-internal-additional,${EXTEN},1)
    
    
    [dnd-on-off]
    ; --------------------------------------------------------------------------
    ; Включение\Отключение режима DND по звонку самому себе
    ;
    ; -- Инструкция:
    ; При звонке на свой внутренний номер, включается или отключается режим DND.
    ; --------------------------------------------------------------------------
    ;
    exten => s,1,NoOp(DND - Activate\Deactivate)
    exten => s,n,ExecIf($["${CALLERID(number)}" = "${ARG1}"]?Goto(app-dnd-toggle,*76,1))
    exten => s,n,Return()
    
    
    [dnd-transfer-check]
    ; --------------------------------------------------------------------------------------------
    ; Задание необходимой переадресации на мобильный телефон в DND режиме.
    ;
    ; -- Инструкция:
    ; В условии REGEX("^()" в () указываем внутренние номера для которых необходимо перенаправлять
    ; входящие на мобильные при активном режиме DND. Прим. - REGEX("^(1100|1101)"
    ; --------------------------------------------------------------------------------------------
    ;
    exten => s,1,NoOp(DND transfer call)
    exten => s,n,ExecIf($[${REGEX("^(1100)" ${ARG1})}]?GoSub(dnd-transfer-call,s,1(${ARG1})))
    exten => s,n,Return()
    
    
    [dnd-transfer-call]
    ; ------------------------------------------------------------------------------------------------
    ; Проверка на включенный режим DND и указание номера для переадресации.
    ;
    ; -- Инструкция:
    ; Под указателем "insert DND transfer rule below" добавляем строку вида:
    ; exten => s-XXXX,1,Goto(outbound-allroutes,8XXXXXXXXXX,1), где вместо s-XXXX указываем внутренний 
    ; номер абонента, а вместо 8XXXXXXXXXX номер мобильного для переадресации.
    ;
    ; Прим. - exten => s-1100,1,Goto(outbound-allroutes,8800000000,1)
    ; ------------------------------------------------------------------------------------------------
    ;
    exten => s,1,NoOp(Transfer Call on DND activate)
    exten => s,n,GotoIf($["${DB(DND/${ARG1})}" != ""]?s-${ARG1},1)
    exten => s,n,Return()
    
    ; insert DND transfer rule below
    ;exten => s-XXXX,1,Goto(outbound-allroutes,8XXXXXXXXXX,1)

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
    Загрузка...
  • Динамические конференции на Asterisk 16 + FreePBX 14

    В порядке рабочей необходимости поставилась задача по реализации динамических конференций на FreePBX. Из функционала должна быть возможность перевода активного разговора в конференцию, возможность приглашать новых участников в созданную динамическую конференцию находясь в ней, а так же возможность самостоятельному подключения к активной динамической конференции.

     

    В интернете есть несколько примеров реализации подобного рода задачи, но я решил реализовать по своему и так как мне нужно. Итак все ниже описанные действия производились на Asterisk 16 + FreePBX 14 + phpAGI.

    ИНФОРМАЦИЯ. По-умолчанию phpAGI задействован в FreePBX и дополнительных манипуляций по его настройки не требуется. Если ниже описанные действия будут применяться к голому Asterisk, то как настроить на нем phpAGI можно прочитать из этой статьи.

     

    — Техническое задание:
    • В активном разговоре нажать *7 — создание и перевод участников разговора в конференцию.
    • В конференции нажать *7 — после гудка набрать номер кого хотим пригласить в конференцию и нажимаем #.
    • Набрать внутренний номер с префиксом *7 (прим. *71100) — если конференция с набранным номером (прим. 1100) существует, то будет присоединение к ней, в противном случае будет создана новая конференция.

    Читать далее…

    БесполезноСлабоватоПриемлемоОтличноПревосходно (3 голос(ов), в среднем: 3,67 из 5)
    Загрузка...
© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика