• Уведомление о занятости абонента при входящем звонке на занятую линию с включенным Call Waiting в FreePBX 14

    В качестве памятки опишу способ доработки функции второй линии (Call Waiting) в FreePBX 14.

     

    По-умолчанию механизм работы второй линии не предполагает никаких уведомлений звонящему в случае если вызываемый абонент уже с кем то разговаривает, а просто воспроизводятся стандартные гудки дозвона. Это создает впечатление у звонящего что вызываемый абонент не хочет брать трубку..

     

    Было бы куда информативнее проигрывать звонящему информационное сообщение, о том что абонент разговаривает, оставайтесь на линии или перезвоните позднее..

     

    Как оказалось в FreePBX есть определенная обработка macro-dialout-one-predial-hook описанная в /etc/asterisk/extensions.conf и которая срабатывает до момента непосредственного звонка абоненту. В этой обработке можно проверить статус выдываемого абонента и в случае если статус линии занят, то проигрывать звонящему сообщение и продолжить вызов.

     

    В файл конфигурации /etc/asterisk/extensions_custom.conf в секцию [from-internal-custom] добавляем:

    [from-internal-custom]
    
    ;----- Playback Wait for answer in INUSE line -----
    [macro-dialout-one-predial-hook]
    exten => s,1,Noop(DEVICE STATE - ${DEVICE_STATE(${DSTRING})})
    exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Playback(custom/wait_for_answer))
    exten => s,n,ExecIf($["${DEVICE_STATE(${DSTRING})}" = "INUSE"]?Set(D_OPTIONS=Ttm))
    ПОЯСНЕНИЕ. Возможные варианты состояния линии (DEVICE_STATE) — UNKNOWN, NOT_INUSE, INUSE, BUSY, INVALID, UNAVAILABLE, RINGING, RINGINUSE, ONHOLD (более подробно можно почитать в оф. документации)
    ИНФОРМАЦИЯ. По-умолчанию FreePBX смотрит каталог со звукам по пути — /var/lib/asterisk/sounds/ru

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

    БесполезноСлабоватоПриемлемоОтличноПревосходно (1 голос(ов), в среднем: 4,00 из 5)
    Загрузка...
  • Блокировка исходящих звонков на определенные номера или номера из заданного списка в FreePBX 14

    От коллеги по цеху поступила просьба помочь с реализацией интересной задачи, которая заключается во исполнении №152-ФЗ (Федеральный закон «О персональных данных») по которому необходимо блокировать исходящие звонки на номера клиентов, который дали отказ на них.

     

    Но нужно не просто блокировать исходящий звонок на определенный номер, но перед этим необходимо оператору проиграть сообщение и если после или в процессе сообщения нажать кнопку 1, то все же совершить звонок клиенту.

     

    Я увидел решение задачи несколькими способами, рассмотрим этим варианты реализации.

     

    Исходные данные:

    • Debian 9 Strech
    • Asterisk 16 + FreePBX 14
    • Номерная маска операторов — _146XX

     

    Вариант #1

    В файл конфигурации /etc/asterisk/extensions_custom.conf добавляем следующую обработку:

    [from-internal-custom]
    exten => _89858887766/_146XX,1,GoSub(sub-marketing-block,s,1)
    exten => _89855554433/_146XX,1,GoSub(sub-marketing-block,s,1)
    exten => _89852221100/_146XX,1,GoSub(sub-marketing-block,s,1)
    ; -- УКАЗЫВАЕМ ОСТАЛЬНЫЕ НОМЕРА КОТОРЫЕ ПОД ЗАПРЕТОМ --
    
    [sub-marketing-block]
    exten => s,1,Background(custom/message)
    exten => s,2,WaitExten(3)
    exten => 1,1,Goto(s,5)
    exten => i,1,Goto(s,6)
    exten => t,1,Goto(s,6)
    exten => s,5,Return()
    exten => s,6,Hangup()

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

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