Динамические конференции на Asterisk 16 + FreePBX 14

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

 

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

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

 

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

 

 

Создаем скрипт /var/lib/asterisk/agi-bin/conference.php со следующим содержанием:

Выдаем права на чтение и запуск для asterisk:

 

 

Прописываем динамическую функцию запуска скрипта, по нажатию комбинации *7 из активного разговора. В файл /etc/asterisk/features_applicationmap_custom.conf добавляем:

 

Объявляем прописанную динамическую функцию в глобальные переменные. В файл /etc/asterisk/globals_custom.conf добавляем:

 

Модифицируем параметры конференции, добавим возможность приглашать новых участников, по нажатию комбинации *7 в активной конференции. В файл /etc/asterisk/confbridge_custom.conf добавляем:

 

Описываем работу динамических конференций в диалплане. В файл /etc/asterisk/extensions_custom.conf добавляем:

ИНФОРМАЦИЯ. Номерной план само собой может отличаться от моего (4-х значного), поэтом строку _*7XXXX адаптируйте под свой номерной план.

 

Перечитываем диалплан и можно проверять работу динамических конференций:

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Только один комментарий Комментировать

  1. root /

    Добрый день!
    Не удается запустить скрипт на голом астериск.
    Получаю ошибку:
    AGI Tx >> agi_request: /var/lib/asterisk/agi-bin/conference1.php
    AGI Tx >> agi_channel: PJSIP/111001-00000002
    AGI Tx >> agi_language: ru
    AGI Tx >> agi_type: PJSIP
    AGI Tx >> agi_uniqueid: 1658495905.2
    AGI Tx >> agi_version: 16.2.1~dfsg-2ubuntu1
    AGI Tx >> agi_callerid: 111001
    AGI Tx >> agi_calleridname: 111001
    AGI Tx >> agi_callingpres: 0
    AGI Tx >> agi_callingani2: 0
    AGI Tx >> agi_callington: 0
    AGI Tx >> agi_callingtns: 0
    AGI Tx >> agi_dnid: *7000
    AGI Tx >> agi_rdnis: unknown
    AGI Tx >> agi_context: from-internal
    AGI Tx >> agi_extension: *7000
    AGI Tx >> agi_priority: 2
    AGI Tx >> agi_enhanced: 0.0
    AGI Tx >> agi_accountcode:
    AGI Tx >> agi_threadid: 140293074446080
    AGI Tx >> agi_arg_1: MANUAL
    AGI Tx >>
    — AGI Script /var/lib/asterisk/agi-bin/conference1.php completed, returning 0

    в чем может быть проблема?

Оставить ответ

три + семнадцать =

© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика