Сообщение об ошибке

  • Deprecated function: Function create_function() is deprecated в функции _geshifilter_prepare() (строка 126 в файле /var/www/lsoft/sites/all/modules/geshifilter/geshifilter.pages.inc).
  • Deprecated function: Function create_function() is deprecated в функции _geshifilter_prepare() (строка 131 в файле /var/www/lsoft/sites/all/modules/geshifilter/geshifilter.pages.inc).
  • Deprecated function: Function create_function() is deprecated в функции _geshifilter_process() (строка 231 в файле /var/www/lsoft/sites/all/modules/geshifilter/geshifilter.pages.inc).

VoIP: Дешево, стабильно и правильно? Сделаем сами!(Asterisk+MySQL=Realtime SIP, CDR, VoiceMail, IVR)

test

Привет, дорогой читатель!

В этой статье я в кратце расскажу тебе об VoIP и что он не такой страшный как его рисуют. Эта статья является вводной в цикл статей об настройке VoIP сервера Asterisk, подключение его к БД MySQL, создание интерактивного голосового меню(IVR), голосовой почты, и приведение его к виду RealTime, чтобы все нужные изменения мы вносили не в файлы, а в базу данных. Статьи будут легкими и с избыточным пояснением чтобы было понятно что и как работает.
Приятного чтения!

VoIP

Если Вы еще не выбрали VPS/VDS

Список неплохих конфигураций можно найти и заказать тут.

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

Для контроля на работоспособность вашего сервера используйте следующий сервис ping-admin

Содержание.

Что такое VoIP?

VoIP (англ. Voice over IP; IP-телефония, произносится «во айпи») — общее название коммуникационных протоколов, технологий и методов, обеспечивающих передачу речевого сигнала по сети Интернет или по любым другим IP-сетям. Сигнал по каналу связи передаётся в цифровом виде и, как правило, перед передачей преобразовывается (сжимается) с тем, чтобы удалить избыточность.(c)Wikipedia
Другими словами, использование телефонной связи являясь оператором для самого себя. Единственное на что Вы тратите деньги - интернет и сам сервер.

Что нам нужно?

Вам нужно голосовое общение через интернет созданное на базе собственного сервера в сети, так как оно дешевле чем если платить оператору, у которого затраты на поддержку своего персонала и оборудования выливаются в копеечку. Или же причиной может быть желание чтобы трафик шел только через свой сервер и никто не имел доступа к потокам голосовой передачи. Свой сервер позволяет в большинстве избежать атаки вида Men In the middle, то есть Вы - прослушка - сервер(прослушка) - прослушка - второй абонент. Как видите, есть аж три места для осуществления такой атаки. Более того, хорошо настроенный сервер требует минимума времени на поддержание, а значит не нужно тратить много времени и денег на подбор и контроль персонала. Что еще можно отметить? Ну хотя бы то что Вы возможно хотите просто внутренний сервер VoIP внутри компании.

Нужно ли иметь обязательно для этого телефон или есть программы?

Есть программы, их просто достаточно уметь устанавливать и настраивать. В этой статье я настраивал программный телефон Ekiga.

Что есть сейчас на рынке VoIP?

Услуг предоставляется достаточно много. Специалистов тоже хватает. Программные продукты тоже есть. Есть Asterisk который пока остается стандартом де-факто VoIP, но и альтернативы у него тоже имеются. Но все-таки отточенный, отлаженный и имеющий уже много документации, статей и опытных специалистов является все же достаточно яркой звездочкой.

Что такое Asterisk?

Asterisk — свободное решение компьютерной телефонии (в том числе, VoIP) с открытым исходным кодом от компании Digium, первоначально разработанное Марком Спенсером. Приложение работает на операционных системах Linux, FreeBSD, OpenBSD и Solaris. Имя проекта произошло от названия символа «*» (англ. asterisk — «звездочка»).
Asterisk в комплексе с необходимым оборудованием обладает всеми возможностями классической АТС, поддерживает множество VoIP-протоколов и предоставляет богатые функции управления звонками, среди них:
Голосовая почта.
Конференции.
Интерактивное голосовое меню (IVR).
Центр обработки вызовов (постановка звонков в очередь и распределение их по агентам используя различные алгоритмы).
Запись (Call Detail Record).
Для создания дополнительной функциональности можно воспользоваться собственным языком Asterisk для написания плана нумерации, написав модуль на языке Си, либо воспользовавшись AGI — гибким и универсальным интерфейсом для интеграции с внешними системами обработки данных. Модули, выполняющиеся через AGI, могут быть написаны на любом языке программирования.(c)Wikipedia.org

Почему RealTime?

RealTime означает что сам сервер VoIP будет за данными обращаться не к файлам, а к базе данных. Это несколько увеличивает скорость работы, но основной уклон все же в том что Real Time означает внесение изменений в режиме реального времени. Вам не нужно редактировать файлы постоянно чтобы включить или отключить пользователя, сменить ему пароль и после этого заставлять сервер перечитывать конфигурационные файлы. Достаточно изменить значение в базе данных. Так же статистика будет храниться в базе данных что позволит получать к ней более удобный доступ чем к файлам лежащим "все время забываю где они", он сразу будет удобно структурирована и детализирована.

Почему MySQL?

Для Asterisk MySQL мы можем использовать так же легко как и PostgreSQL, odbc, sqlite или любую другую систему управления базой данных. Но, так как MySQL сейчас более распространена и представляет достаточно удобный инструментарий, при отсутствии достаточно существенных минусов, будем использовать именно ее.

Windows или Linux на сервере?

Если для Вас хотя бы 1-2 голосовых канала, затраты на лицензию и честность при использовании чужих программных продуктов имеет значение, то и выбор для вас так же очевиден. Во всех своих материалах я использую Debian GNU\Linux. Это касается и VoIP сервера на базе Asterisk. Потому что Linux позволяет использовать множество дополнительного программного обеспечения для серверов, оптимизацию системы и ее гибкую настройку.

Интеграция VoIP Asterisk и другого программного обеспечения.

На базе Linux не должно возникать никаких сложностей в обьединении VoIP Asterisk с другим программным обеспечением, таким как веб-сервер Apache, почтовые сервера Sendmail или Exim, СуБД MySQL, PostgreSQL, sqlite, odbc и другими программными продуктами. При знании все это осуществляется очень быстро и просто.

Использование биллинговой системы для VoIP на базе Asterisk

Биллинговая система используется для контроля времени, звонокв, пользователей, тарифов и просмотра статистики. Есть уже готовые системы биллинга для Asterisk, с некоторыми он идет в сборке в некоторых дистрибутивах. Нужны ли они? Поначалу чтобы понять всю систему функционирования стоит установить Asterisk и настроить его для работы в RealTime, так как любая биллинговая система в основном работает с базой данных. Потом можно прикрутить биллинговую систему или же написать свою, в чем тоже не будет особой сложности если есть знания хотя PHP+HTML+JS. Биллинговая система может быть так же написана на других языках программирования, вся суть ее сводиться к изменению данных в базе данных. После этого Asterisk будет по настроенным параметрам обращаться к базе данных и считывать оттуда все что ему нужно.

Как работает Asterisk?

Для работы он использует определенный протокол соединения и передачи данных, а так же кодеки для кодирования и декодирования звука. Одним из таких протоколов является SIP:
SIP (англ. Session Initiation Protocol — протокол установления сеанса) — протокол передачи данных, который описывает способ установления и завершения пользовательского интернет-сеанса, включающего обмен мультимедийным содержимым (видео- и аудиоконференция, мгновенные сообщения, онлайн-игры).
В модели взаимодействия открытых систем SIP является сетевым протоколом прикладного уровня.
Протокол описывает, каким образом клиентское приложение (например, софтфон) может запросить начало соединения у другого, возможно, физически удалённого клиента, находящегося в той же сети, используя его уникальное имя. Протокол определяет способ согласования между клиентами об открытии каналов обмена на основе других протоколов, которые могут использоваться для непосредственной передачи информации (например, RTP). Допускается добавление или удаление таких каналов в течение установленного сеанса, а также подключение и отключение дополнительных клиентов (то есть допускается участие в обмене более двух сторон — конференц-связь). Протокол также определяет порядок завершения сеанса.

Есть и другие протоколы, но это один из наиболее часто используемых.

Что делать если я хочу VoIP сервер но не умею его настраивать?

Для этого Вам нужно научиться его настраивать, что не является сильной проблемой если у Вас достаточно времени и стремления. Недостаточно? Есть деньги? Наймите адекватного специалиста и он сам Вам все настроит.

Если Вы попали на эту статью, то скорее всего Вам понадобилось голосовое общение через интернет(VoIP).
Сперва я написал две статьи по настройке RealTime(работающего с базой данных) MySQL сервера VoIP Asterisk:

Эта статья является немного запоздавшим введением к выше указанным.

Категория: 
Share/Save

Делитесь с друзьями в социальных сетях! Оставляйте комментарии!

Share/Save

Это Вам так же может быть интересно!