Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

PHP + Asterisk

closed without completion
PHP


Техническое задание

на разработку PHP модуля для Asterisk

 

 

  1. Краткое описание: необходимо разработать на PHP модуль, умеющий генерировать звонки на базе Asterisk по заданным значениям и критерям. Далее по тексту - Модуль

 

  1. Полное описание задачи:Требуемый функционал

 

В общем смысле, нужно написать такой модуль на php, который был бы способен:

  1. Считывать необходимые данные из БД MySQL - задания на звонки
  2. Распознавать критерии запуска заданий - номера телефонов, количество одновременных вызовов, служебные переменные (наименование контекста, callerid для исходящего вызова и др.)
  3. Отправлять в Asterisk в соответствии с критериями команды на звонки.
  4. Отслеживать выполнение звонков - потребуется регистрация следующих параметров (статистические данные):
  • статус выполнения звонка (есть дозвон до абонента, сбросили, занято, не взяли трубку) по каждому из номеров
  • длительность звонка

 

 

    1. Особенности реализацииПри реализации должны быть задействованы следующие системы и технологии:

 

  • Языки программирования: php, при необходимости можно использовать какой-либо JS фреймворк (Node.JS например) (или иное, если обоснуете)
  • БД: MySQL (либо другая, если обоснуете)
  • Система телефонии: Asterisk
  • Модули подключения к Asterisk (клиенты):

PAMI (http://marcelog.github.io/PAMI/index.html )

PAGI (http://marcelog.github.io/PAGI/index.html )

 

      1. Предполагаемый алгоритм реализации:

 

Словесно алгоритм можно изложить следующим образом:

  1. Пользователь загружает телефонные номера (через имеющийся интерфейс системы, его разрабатывать в рамках этого задания не нужно) в БД;
  2. Модуль проверяет появившуюся информацию по следующим флагам:Проведена проверка загрузки номеров Администратором - грубо говоря, в некой табличке должен быть выставлен соответствующий флаг, разрешающий звонки.
  3. Должна быть предусмотрена проверка еще от 2 до 5 условий (флагов), после выполнения которых начинается звонок.
Модуль считывает дополнительную информацию:Путь до аудио-ролика - приветствия, которое нужно проиграть взявшему трубку абоненту.Количество одновременных вызововНомер CallerID, подставляемый при Исходящем звонкеЕсли все флаги выставлены верно, то Модуль в связке с Asterisk, генерирует звонки последовательно по каждому из загруженных номеров.По каждому из вызовов Модуль ведет статистику по параметрам:
  • статус выполнения звонка (есть дозвон до абонента, сбросили, занято, не взяли трубку) по каждому из номеров
  • временнЫе параметры звонка: длительность, момент начала набора номера, момент ответа на звонок, момент разрыва канала связи, момент ошибки звонка (сброс, занято, недоступен).

 

 

Дополнительные требования к Модулю:

  1. Модуль в местах совершения существенных операций должен содержать логирование в файл или БД.
  2. Модуль должен правильно учитывать выполнение звонка по конкретному номеру (записи в БД), чтобы не было повторных звонков.
  3. Модуль должен взаимодействовать с диалпланом Asterisk, сформированном в конфигурационных файлах (extensions.conf).
  4. Модуль также должен быть способен распознавать нажатия клавиш ответившим абонентом и совершать действия по соответствующему нажатию (соответствие номера выполняемому действию считывается из БД).
  5. Веб-интерфейса к Модулю на данном этапе не предполагается формировать, все разрабатываемые компоненты должны работать на Backend’е.

 

 

 

  1. Требования

 

  1. Качественные характеристики:
  • осмысленные имена переменных, классов, методов, функций
  • не должно быть перегрузки функций или классов по выполняемым задачам. Количество решаемых задач внутри одной функции не должно превышать 3-5.
  • К существенным блокам кода должны быть даны комментарии.
  1. В ходе работы скорее всего потребуется дорабатывать как существующую БД системы, так и возможно создавать новую. При этом совместно с нами должна быть отрисована схема БД, прописаны поля, их свойства и назначения.
  2. Разработка должна вестись с помощью Git.
  3. Желательно использование ООП.



  1.  freelancer isn't working in the service any longer
  2.  freelancer isn't working in the service any longer
  3. proposal concealed by freelancer
  4. 20 days400 ₴
    Mihail Belobrov
     187   3   0

    Добрый день.
    готов выполнить.
    можем обсудить.

    Russia Voronezh | 4 July 2017 |

Client
Project published
4 July 2017
40 views