Сервер sip телефонии своими руками

Обновлено: 04.07.2024

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

Что необходимо для IP-телефонии

Устройства IP-телефонии

IP-телефония позволяет совершать голосовые и видеозвонки через интернет

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

К серверному оборудованию относятся:

  • VoIP-шлюз – многоканальное устройство с маршрутизатором и коммутатором. В шлюзе хранятся все пользовательские данные и настройки, а специальные программы в нем отвечают за управление связью. Шлюз может быть аппаратным, то есть подключенным к АТС, либо работающим с мобильной сотовой сетью.
  • IP-АТС – аппаратное или программное устройство, к которому через компьютерную сеть подключаются VoIP-терминалы.
  • Сетевой коммутатор – устройство для соединения узлов сети: шлюзов, компьютеров, IP-телефонов и прочего. Коммутатор содержит софтсвич – специальную программу, которой управляет сетевая ОС. Софтсвич можно гибко настроить под любую логику действий, а при необходимости – доработать или удалить ошибки. – облачное решение для IP-телефонии, оно не требует установки стационарного оборудования на стороне заказчика.

Клиентское оборудование – это набор устройств, которые подключаются к серверу. Именно они являются источниками аналогового сигнала. К этой группе оборудования относятся:

  • IP-телефоны – аппараты со встроенным ethernet-портом для подключения телефона к интернету, средствами создания IP-адреса и поддержкой протоколов связи SIP и H.323. Могут также оснащаться экранами для видеосвязи.
  • SIP-DECT-телефоны – беспроводные устройства с базой DECT, которая подключается к протоколам цифровой телефонии.
  • Виртуальный телефон – программа для ПК или мобильное приложение, по сути, цифровой IP-терминал. Для работы с ним оператору необходимы наушники и микрофон. Как правило, виртуальная телефония используется в кол-центрах и службах клиентской поддержки. Возможности виртуального телефона легко масштабируются под задачи клиента. В программу можно добавить, например, передачу файлов, видеоконференцию и текстовый чат.
  • USB-телефон – аппаратное устройство, подключается к виртуальному телефону через USB-порт ПК или ноутбука.

В крупных кол-центрах удобнее всего использовать виртуальные телефон и гарнитуру для связи

Принцип работы IP-телефонии достаточно прост. Один абонент соединяется с другим по IP-телефону, который подключен к VoIP-шлюзу. Сервер переводит аналоговый сигнал в цифровой, обрабатывает его, упаковывает в пакеты данных и отправляет в сеть с помощью IP-протоколов. На другом конце происходит обратный процесс: прием, распаковка, преобразование. При этом абоненты могут находится друг от друга на расстоянии в тысячи километров – высокоскоростные сети обеспечивают мгновенную передачу пакетов информации.

Схемы организации IP-телефонии

Типовая сеть IP-телефонии

Типовая сеть IP-телефонии

К схеме IP-телефонии можно добавить рабочую станцию оператора международного переговорного пункта. В этом случае достаточно подключить клиента к тарифу – система самостоятельно будет насчитывать суммы по всем звонкам. При этом оператор способен в реальном времени вести и анализировать статистику звонков.

IP-телефония с оператором

IP-телефония с оператором

Для компании, которая работает на местном и международном рынке, будет удобно организовать IP-телефонию с разделением трафика данных между российскими и зарубежными абонентами. Для распределения используется офисная миниАТС. В первом случае голосовые пакеты направляются в городские телефонные сети общего пользования, во втором – в IP-терминал через VoIP-сеть.

IP-телефония между удаленными офисами

IP-телефония между удаленными офисами

Если компания располагает офисами в разных городах, удобнее всего в этом случае использовать схему единой телефонной сети, подключенной к выделенному VoIP-каналу. Для этого в каждом офисе оборудуется телефонная станция из клиентских устройств, шлюза и АТС. Все станции объединяются под единым номером и управлением. Таким образом можно быстро перевести звонок в нужный офис, насколько бы удален тот не был.

Компания New-Tel поможет создать на предприятии IP-телефонию любой сложности с учетом бизнес-задач. Мы предлагаем широкий ассортимент оборудования для цифровой связи, гибкую систему тарифов и техническую помощь на каждом этапе работы.

Как подключить ip телефонию самостоятельно

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

Хотите принимать звонки прямо на мобильный телефон? Попробуйте LPTracker — это CRM cистема для бизнеса, которая увеличивает конверсию в продажи. IP телефония, CRM, виджеты на сайт, аналитика рекламы, Callback, прием звонков на мобильные и бесплатные SIP сим карты. Все функции от 900руб./месяц. При регистрации вы получаете бесплатно номер телефона вашего региона, 100 минут на разговоры, конструктор сайтов. Я могу предоставить вам 14 дней бесплатного использования, чтобы их получить напишите мне с этой страницы.

Выгода ip телефонии при переезде

Если организация арендует помещение под офис, то как правило арендодатель предлагает свои телефонные номера подключенные к местной телефонной станции, казалось бы вопрос подключения телефонии решен, но бывает , что компания активно растет ей становится нужно больше места, возникает необходимость переезда. Как правило при переезде организации пытаются сохранить за собой номер телефона, вот тут то и могут возникнуть проблемы. Современные телефонные станции имеют возможность перенести номер телефона, но пока что не по всему городу(Санкт-Петербург и Москва), а следовательно вы можете оказаться в такой ситуации, что номер перевезти нельзя.

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

Процесс организации IP телефонии

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

Выбор телефонных линий

Первым делом нужно определиться сколько внешних и внутренних телефонных линий (номеров) вам необходимо, от этого будет зависеть сложность этапа подбора и настройки оборудования.

Внешний номер — номер телефона полученный у провайдера (пример: 8 (812) 333-33-33).

Внутренний номер — все добавочные номера внутри организации.

Выбор схемы подключения IP телефонии

Следующим этапом является выбор схемы для организации IP телефонии. От выбора схемы зависит стоимость будущей телефонии. Что бы было более понятно давайте сначала рассмотрим схемы подключения одного внешнего номера к одному оператору:

  1. Схема подключения одного номера к ПК. На компьютер устанавливается приложение, которое предоставляется провайдером телефонии (софтофон). RJ45 — обычный сетевой кабель.
  2. Схема подключения одного номера к IP телефону. Не все IP телефоны имеют возможность соединения по WIFI.
  3. Схема подключения одного номера к обычному телефону. Подключение происходит через IP шлюз. Как правило к одному такому ip шлюзу можно подключить 2 обычных телефона(1 ip шлюз заменяет 2 ip телефона). RJ11 — обычный телефонный кабель. Вместо RJ11 вы можете использовать любые две жили RJ45, главное чтобы они были одинаковыми с обоих сторон, то есть если с одной стороны взяли оранжевый и зеленый, с другой стороны тоже обжимайте так же. Обычно для подключения телефонов используют синие жилы.

Теперь когда мы разобрались с подключением IP телефонии к одному оператору, давайте рассмотрим схемы подключения нескольких внешних и внутренних номеров:

Схемa подключения IP телефонии с использованием облачной АТС

Схема подключения облачной АТС

Облачная АТС — автоматическая телефонная станция предоставляемая провайдером IP телефонии. Основное преимущество данного способа является простота организации телефонии и низкая сумма начального взноса. Фактически получается , что вам нужно сделать два звонка оператору и в магазин, что бы заказать телефоны. Вся необходимая настойка и перенастройка самой АТС и всего необходимого оборудования осуществляется провайдером, в том случае если вы заказываете оборудование у него, вам лишь нужно будет заполнить немного документов, выбрать внешний номер, подробно описать ему как вы хотите настроить будущую телефонную сеть. В том случае если вы решите выбирать и настраивать ip шлюзы или телефоны сами, вы несомненно сэкономите, но в этом случае провайдер не гарантирует вам исправную работу и в случае сбоев может ссылаться на неизвестное оборудование, которое он не предоставляет. Я в свое время решил заказать и настроить шлюзы самостоятельно и благодаря небольшой помощи тех. поддержки оператора, успешно справился с этой задачей, шлюзы исправно работают уже больше года. К недостаткам этого способа подключения телефонии можно отнести обязательство ежемесячно выплачивать определенную сумму оператору связи помимо разговоров, а сколько именно зависит уже от кол-ва внутренних номеров.

Схема подключения IP телефонии с использованием IP шлюза(адаптера), аналоговой мини АТС и обычных(аналоговых) телефонов

В отличие от предыдущего способа организации телефонии, настройку АТС придется делать самому или заказывать у компании которая продает АТС, сумма первоначальных вложений будет выше, вам нужно будет сделать на одни звонок больше(Оператору, в магазин АТС, магазин телефонов) и заполнить немного больше документов. Шлюз вы так же можете заказать у оператора связи или настроить своими силами. Главным преимуществом этой схемы является разовое вложение, то есть сначала вкладываете деньги в оборудование, а затем исправно используете и оплачиваете лишь за то сколько наговорите.

Схема подключения IP телефонии с использованием IP мини АТС

Схема подключения IP АТС

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

Итак мы рассмотрели возможные варианты организации IP телефонии с использованием различных АТС. Будем считать что с оператором связи мы уже определились, теперь вы готовы перейти к выбору оборудования.

Выбор оборудования для подключения IP телефонии

Ранее мы рассматривали схемы с использованием мини АТС и ip шлюзов. То какое оборудование вам необходимо во многом зависит от кол-ва внешних и внутренних номеров.

Ip шлюзы(адаптеры) различаются лишь кол-вом аналоговых портов, то есть внутренних абонентов, как правило минимальное кол-во таких портов на адаптерах 2, максимальное кол-во портов 48 ( из тех адаптеров которые я встречал)

Как правило у самых маленьких офисных мини атс количество портов для внешних номеров начинается от 3, а кол-во портов для внутренних номеров от 8, то есть к самой маленькой АТС можно подключить до 3 внешних и до 8 внутренних номеров.

Выбирайте АТС исходя из того количество номеров которое вам необходимо. Большой популярностью пользуются АТС компании Panasonic.

Настройка оборудования

После выбора и покупки оборудования остается лишь подключить и настроить его.

Подключаете оборудование в соответствие с выбранной схемой подключения IP телефонии.

Настройка оборудования зависит от производителя и модели выбранной АТС, какую вы ее выберете я не знаю, поэтому опишу основные используемые возможности АТС при организации IP телефонии:

Можно ли подключить IP телефонию через yota

Yota обходится дешевле для юр. лиц. У нас в офисе, через Yota питаются интернетом 8 компов, а так же через нее мы благополучно общаемся с клиентами с помощью IP телефонии, поэтому я могу смело сказать, что они дружат(Yota и телефония) и работают без нареканий. Иногда бывают обрывы связи, но в том же Ulmart они имеют место присутствовать.

Если есть возможность использовать нормальный интернет, то лучше используйте его.

Заключение

Flexisip server является продуктом компании Belledonne Communications, известной своими открытыми проектами для VoIP-телефонии. Flexisip представляет собой решение, позволяющее развернуть полноценный SIP-сервер, обладающей простотой управления, конфигурирования, масштабирования и достаточной гибкостью для адаптации под различные задачи на слабом железе. Сервер Flexisip помимо основных возможностей SIP-телефонии может быть использован в качестве SIP-прокси сервера, сервера Push-уведомлений (для использования с […]

SIP-сервер FlexiSIP

Flexisip server является продуктом компании Belledonne Communications, известной своими открытыми проектами для VoIP-телефонии. Flexisip представляет собой решение, позволяющее развернуть полноценный SIP-сервер, обладающей простотой управления, конфигурирования, масштабирования и достаточной гибкостью для адаптации под различные задачи на слабом железе. Сервер Flexisip помимо основных возможностей SIP-телефонии может быть использован в качестве SIP-прокси сервера, сервера Push-уведомлений (для использования с мобильными устройствами), а так же как облачная платформа для взаимодействия SIP-устройств.

Перечень достоинств

Проект Flexisip написан на С++ и успешно используется в качестве SIP-сервера в проекте Linphone c 2011 года. Благодаря своей легковесности и лояльности к аппаратным ресурсам Листинг конфигурации Flexisip может быть развернут на встроенных системах, небольших аппаратных модулях, виртуальных и облачных платформах. Помимо небольших платформ, Flexisip поддерживает возможность кластеризации (используется бекенд Redis для синхронизации нод) и множественного масштабирования. Таким образом, Flexisip представляет собой весьма гибкий и универсальный продукт для различного рода задач.

Перечислим достоинства системы Flexisip:

  • легковесность и нетребовательность к аппаратным ресурсам;
  • простота установки и конфигурирования;
  • модульность, возможность размещения модулей на различных физических серверах;
  • возможность использования в качестве сервера push-уведомлений;
  • аутентификация абонентов по хеш-сумме или TLS-сертификатам;
  • возможность кластеризации и масштабирования встроенными средствами.

Структура сервера Flexisip

Flexisip разработан на основе концепции модулей, отвечающих за определенную функцию приложения: аутентификацию, регистрацию, медиа-ретрансляцию, маршрутизацию и т.д. Все запросы и ответы проходят через цепочку модулей для обработки. Модули выполняются на трех отдельных бекендах, объеденных в АТС Flexisip: сервер присутствия, сервер конференций и SIP-прокси сервер.Обработка базовой сигнализаций SIP в системе Flexisip, основана на использовании открытой библиотеки Sofia-SIP.

В список модулей входят следующие компоненты:

  • Authentication — модуль аутентификации и авторизации SIP-абонентов с помощью SIP-имени либо с использованием сертификата TLS;
  • DoSProtection -модуль обеспечения безопасности, ограничивает максимальное количество запросов от абонента;
  • Forward — модуль маршрутизации вызовов;
  • GarbageIn — модуль сборки мусора и предотвращения его дальнейшей обработки;
  • MediaRelay — модуль маршрутизации RTP-трафика, включает в себя средства обработки NAT. Обеспечивает гарантированную доставку RTP-пакетов получателю;
  • NatHelper — модуль, обеспечивающий прохождение SIP-трафика через NAT;
  • Presence — модуль, обеспечивающий публикацию, уведомления и подписку на сервере присутствия;
  • PushNotification — модуль пересылки и обработки push-уведомлений для взаимодействия с софтфонами на устройствах ios/android;
  • Redirect — модуль перенаправления запросов;
  • Registrar — модуль регистрации и разрешения запросов маршрутизации;
  • Router — модуль обработки запросов маршрутизации и их выполнения;
  • SanityChecker — модуль проверки корректности SIP-запросов;
  • StatisticsCollector — модуль сбора и обработки статистики;
  • Transcoder — модуль транскодирования голосовых данных.


Структура системы Flexisip

SIP-proxy сервер

SIP-прокси сервер в инфраструктуре Flexisip является инструментом для сбора различной информации об абонентах и передачи ее на последующие уровни обработки (серверу присутствия и серверу конференций). Он является проксирующим SIP-сервером с сохранением состояний абонентов. Основная задача SIP-прокси — аутентификация абонентов, обеспечение безопасности на уровне SIP, проверке целостности запросов, проверка активности сессий.

Сервер присутствия

Одним из компонентов системы Flexisip является сервер присутствия (Flexisip Presence). Общее поведение этого сервера довольно простое: он обрабатывает запросы от абонентов, которые хотят получать информацию о присутствии для отдельного URI контакта или списка URI-адресов. Сервер присутствия опрашивает целевые URI, для которых запрашивается информация и и генерирует запрос SIP NOTIFY, содержащим информацию о присутствии искомого URI.

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

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

Рассмотрим конкретный пример:

  1. A подписывается на присутствие B, но B не подписывается на присутствие A. Тогда A не получит никакой информации о присутствии B.
  2. B решает подписаться на информацию о присутствии для A. A и B теперь взаимно подписываются на присутствие друг друга, и сервер присутствия уведомляет о присутствии B о A, а также о присутствии A B.

Это правило работает как для долгосрочного, так и для краткосрочного присутствия.

Сервер конференций

Сервер конференций Flexisip работает как пользовательский агент SIP для создания и обработки конференций. В настоящее время он поддерживает только IM-конференции (текстовый групповой чат). Тем не менее, поскольку создание и управление конференциями в рамках SIP не зависит от передаваемого по RTP медиа-потока, разработчиками Flexisip планируется расширить его для поддержки всех видов конференций, включая аудио, видео, текст, независимо или совместно.

С системной точки зрения сервер конференций работает как демон в своем собственном процессе и, не влияет на другие бэкенды Flexisip. Его можно запустить, остановить, перезапустить, используя обычные команды systemd, например:

Запуск сервера осуществляется командой:

Конфигурация сервера конференции по умолчанию хранится в файле /etc/flexisip/flexisip.conf, в разделе [conference-server].

Серверу конференций требуется постоянная связь с базой данных сервера присутствия Flexisip. Это необходимо для реализации следующих механизмов:

  • создание новых конференций и разрешение маршрутизации по URI-адресам внутри конференций;
  • отслеживание активных абонентов в уже созданных конференциях и создание динамической SIP-маршрутизации.

Поскольку IM-конференции (групповые чаты) могут длиться годами, требуется постоянное хранилище для хранения состояния конференций (участники, устройства, URI конференций). Этим хранилищем выступает база данных сервера присутствия.

Сервер Push-уведомлений

Сервер Push-уведомлений (push-шлюз) это дополнительная надстройка над SIP-прокси сервером, которая отвечает за маршрутизацию INVITE-запросов заинтересованным абонентам и рассылает им push-уведомления о входящих звонках. Абонентами сервера push-уведомлений являются мобильные клиенты (софтфоны, установленные на мобильные устройства), для которых push-уведомления являются механизмом перевода устройства из режима экономии батареи в активный режим. В работу данного сервера не входит аутентификация пользователей, этой задачей занимается непосредственно сам SIP-прокси.

Как только запрос REGISTER поступает в push-шлюз, он пересылается на SIP-прокси сервер путем разрешения доменного имени URI запроса. Перед пересылкой push-шлюз заменяет домен контактного URI своим собственным IP-адресом и заменяет все параметры URI уникальным параметром CtRt , содержащим имя домена, в котором расположен сервер. Случайный ключ генерируется при запуске Flexisip и не изменяется в течение установленной сессии между push-шлюзом и sip-прокси. В этот момент оригинальный URI абонента сохраняется в кеше, пока sip-прокси сервер не отправит ответ на запрос REGISTER.

Затем sip-прокси получает запрос REGISTER, поступающий от push-шлюза. Он выполняет регистрацию, связывая идентификатор SIP с маскируемым URI абонента. Таким образом, когда sip-прокси получает запросы INVITE, адресованные этому идентификатору SIP, он перенаправляет их на push-шлюз.

Как только регистрация завершена, sip-прокси отправит ответ “200 OK” на push-шлюз. При получении этого ответа push-шлюз обновляет свою базу данных регистрации, связывая идентификатор SIP абонента с URI контакта с информацией push-уведомления, которую он сохранил ранее. Затем он передает ответ “200 OK” пользовательскому агенту, чтобы уведомить его об успешной регистрации.


Схема работы сервера push-уведомлений

Режим push-шлюза flexisip работает при условии, что внутренний SIP-сервер удовлетворяет некоторым требованиям:

Установка сервера Flexisip

Установка сервера Flexisip возможна двумя методами: сборка из исходных кодов, либо через менеджер пакетов, подключая дополнительные репозитории. Рассмотрим оба метода:

Установка из репозиториев. Для Centos 7 подключаем репозиторий epel-release:

затем добавляем конфигурацию репозитория Belledonne Communications в файл /etc/yum.repos.d/BelledonneCom.repo

Обновляем список пакетов:

Сборка из исходных кодов. Для успешной установки сервера Flexisip необходимо наличие в системе следующих зависимостей:

  • sofia-sip
  • ortp
  • bctoolbox
  • hiredis (опционально)

Произведем установку зависимостей:

После установки зависимостей копируем исходники из git:

Производим компиляцию исходных кодов:

После установки сервера выполним его первичную конфигурацию:

Запуск сервера: по-умолчанию, установка Flexisip происходит в каталоге /opt/belledonne-communications/bin/flexisip. Запуск его без каких-либо аргументов заставит Flexisip вести себя как SIP-прокси, но он может предоставлять другие виды услуг. Их запуск осуществляется из командной строки передачей параметра —server, который принимает три значения:

  • proxy: запуск Flexisip в качестве SIP-прокси (поведение по умолчанию).
  • presence: запустить Flexisip в качестве сервера присутствия.
  • conference: запустить Flexisip в качестве сервера конференции (групповой чат).

Конфигурация сервера Flexisip


Файл конфигурации /etc/flexisip/flexisip.conf

Интерфейсы и порт, который прослушивает Flexisip, задаются в разделе [global] для прокси-сервера и в разделах, специфичных для других серверов.

Модуль [module :: Authentication] используется для настройки параметров аутентификации. Здесь можно разграничить подключения из разных доменов, настроить проверку подлинности пользователя по хеш-сумме либо TLS-сертификатам, также указать путь к базе данных абонентов.


База данных аутентификации пользователей

Сервер Flexisip также позволяет производить конфигурирование в режиме реального времени. Для этого используется вспомогательный скрипт /opt/belledonne-communications/bin/flexisip_cli.py. Он может принимать следующие параметры:

  • REGISTRAR_CLEAR — сбросить все активные sip-подключения от абонентов;
  • CONFIG_SET — применить конфигурацию;
  • CONFIG_LIST — вывести конфигурацию на экран;
  • CONFIG_GET — прочитать конфигурацию из файла.


Листинг конфигурации Flexisip

Звезда активна
Звезда активна
Звезда активна
Звезда активна
Звезда активна

Телефонные вызовы напрямую, без АТС и мессенджеров? Это просто!

Имея подключение к сети VPNKI я решил поэкспериментировать с голосовыми вызовами.

Решил не использовать собственный сервер Asterisk и службу "Ваш SIP сервер" от VPNKI, а решил попробовать совершить телефонный вызов между двумя своими устройствами в обход любой SIP УАТС.

То есть попытаться позвонить напрямую на удаленный смартфон, набрав лишь его IP адрес.

Действительно, зачем нам SIP АТС, все должно работать и так!

К моему небольшому удивлению это вполне работает и даже через VPN соединения.

Чтобы это сделать я подключил к сети VPNKI два своих смартфона на Андроид.

Установил на оба устройства устройства приложение CSipSimple из Google Play.

При этом, одно устройство имеет адрес сети VPNKI - 172.16.x.x, а другое внутренний адрес домашней сети - 192.168.1.57

Затем проделал следующее на обоих смартфонах:

csipsimple добавить аккаунт для прямого вызова sip
csipsimple добавить аккаунт local для прямого вызова sip

Читайте также:

[module name="footer"]