Маршрутизация телефонных звонков

Заказчик

Компания RedSky Technologies, Inc. разрабатывает и внедряет распределённые высоконагруженные решения для маршрутизации телефонных звонков на номера экстренных служб.

Задача

Создание маршрутизирующего прокси-сервера для телефонных звонков на номера экстренных служб. Сервер должен принимать входящий звонок, эмулируя один или несколько кол-центров экстренных служб, определять положение звонившего, используя основной или один из резервных серверов LIS, и перенаправлять звонок на ближайший к абоненту или наименее загруженный кол-центр – в зависимости от текущего набора правил маршрутизации.

Такой прокси-сервер, в соответствии со стандартом NENA (Национальная ассоциация провайдеров номеров экстренных служб), является частью архитектуры Emergency Services IP Network (ESInet).

Решение

  • Обработка запроса
  • Административные линии
  • Конфигурация политики управления
  • Конфигурация сигнала

Надёжность и скорость

Одной из основных задач было обеспечить масштабируемость сервера и возможность маршрутизировать входящие SIP-звонки с минимальной задержкой, независимо от их количества и частоты. Для этого приложение было спроектировано с возможностью развёртывания в отказоустойчивом кластерном окружении, работающем под управлением Corosync и DRBD. Распределение входящей нагрузки между параллельно работающими узлами кластера JBoss гарантирует малое время отклика и равномерную загруженность инфраструктуры. Репликация раздела с данными средствами DRBD на системном уровне обеспечивает высокую надёжность хранения как настроек приложения, так и логов аудита всех обрабатываемых звонков.

Конфигурируемость

Сервер должен был обеспечивать настройку правил маршрутизации и обработки входящих звонков, а также редактирование списка серверов, на которые перенаправляются входящие звонки, и списка серверов, определяющих положение абонента. Для этого была разработана консоль управления, оформленная как веб-приложение и развёрнутая на том же кластере JBoss, что и основное приложение маршрутизатора. В консоли предусмотрено несколько уровней доступа, в зависимости от роли пользователя. Права доступа и идентичность пользователя определяются по сертификату, устанавливаемому в клиентский браузер. Пользовательский интерфейс был выполнен на GWT.

Гибкость и универсальность

В ходе выполнения проекта клиент рассматривал различные варианты развёртывания приложения для тестирования и «боевого» использования. В результате изменились требования к операционной системе, на основе которой строилось решение. Поскольку при начальном проектировании мы старались максимально отвязать решение как от физической инфраструктуры, так и от особенностей операционных систем, переход с Debian на CentOS прошёл без неожиданностей и достаточно быстро.

Технологии

Базовые технологии
Java, JBoss Application Server, PostgreSQL
IP-телефония
Mobicents, SIP
Геолокация абонентов
LIS, LoST
Управление кластером
Corosync, Pacemaker, DRBD
Веб-интерфейс
Google Web Toolkit
Мы найдем лучшее решение вашей задачи!

Совпадений: 0