Asterisk
Asterisk - это программная АТС с открытыми исходными кодами, создана она конторой Digium, и постоянно развивается пользователями и сообществом разработчиков. Компания Digium вложилась как в разработку программного обеспечения для Asterisk, так и в разработку дешевого аппаратного обеспечения телефонии, которое может работать с Asterisk. Сервер Asterisk может работать на Linux и на других платформах Unix как используя, так и не используя аппаратное обеспечение, с помощью которого Ваш сервер соединяется с сетями традиционной телефонии PSTN.
Asterisk дает возможность в реальном времени работать как с телефонной сетью общего пользования (ТфОп - PSTN анг.), так и с VoIP сетями
С помощью Asterisk в роли платформы для коммутации вашей телефонии - АТС, Вы получите не только высококлассную замену традиционной мини АТС. Сервер Asterisk имеет намного больше возможностей, по сравнению с обычной мини АТС. используя Asterisk в вашей сети, Вы выведете вашу телефонию на совсем другой уровень возможностей. Вы сможете:- Подключить Ваших работников, работающих из дома, к офисной АТС, по широкополосным каналам связи
- Соединить офисы, вне зависимости от их удаленности, через VoIP, Интернет или через приватную IP сеть
- Ваши работники получат возможность пользоваться голосовой почтой, интегрированной с Web приложениями и E-mail
- Даст возможность создавать интерактивные голосовые меню, для доступа абонентов, например, со службой продаж или с другими подразделениями компании
- Даст возможность доступа к вашей корпоративной АТС работникам, находящимся в командировке, соединяясь с использованием VPN из гостиницы или аэропортов, где есть беспроводные WLAN точки доступа
- ...и многое другое
Сервер Asterisk включает в себя множество возможностей, которые можно найти только в очень навороченных системах обработки вызовов, например:
- Музыка ожидания (Music-on-hold) для абонентов ждущих ответа в очереди вызовов, поддерживается как потоковое воспроизведение, так и проигрывание MP3 музыки
- Очереди вызовов, где агенты совместно отвечают на входящие вызовы и мониторят эти очереди
- Интеграция с системой синтеза речи (Можно обеспечить интеграцию с системой Festival)
- Ведет записи учета звонков (CDR) для интеграции с билинговыми системами
- Интеграция с системой распознавания речи (например, с Sphinx Open Source voice recognition software)
- Имеет интерфейсы для работы со стандартными телефонными линиями, а также для работы с интерфейсами ISDN BRI и PRI
Этот Документ - только введение в архитектуру Asterisk, которое просто описывает возможности, которые Вы можете получить, используя это программное обеспечение с открытым исходным кодом.
Каналы - телефонные соединения с АТС
Каналы Asterisk - это драйвера для различных типов соединений, как для протоколов VoIP, например, SIP, IAX, MGCP и H.323, так и для аппаратного обеспечения, которое используется для соединения с публичными сетями телефонии (PSTN), например, Zaptel, ISDN BRI и PRI и с другими устройствами.Аппаратные и программные телефоны подключаются к каналам. Некоторые из них авторизируются в системе или "регистрируются", чтобы система знала, что эти телефоны или линии связи доступны для использования. Для исходящих соединений каналы, через которые осуществляются соединения, так же должны быть зарегистрированы на удаленном VoIP сервере, например, SIP каналы в сети Free World Dialup или на других SIP провайдерах, типа Nufone, Vonage и Siphone, или по протоколу IAX на сервере IAXtel.com.
Дополнительная информация:
- Обзор каналов используемых в Asterisk
- Asterisk H323 channels: Канал H.323
- Asterisk IAX channels: Канал IAX Inter-Asterisk-Exchange, для соединения Asterisk серверов
- Asterisk SIP channels: Канал SIP
- Asterisk Features: Brief Explanation
Протоколы - основа передачи голоса по сетям IP и Интернет технологий
Сервер Asterisk поддерживает множество протоколов для передачи речи по сетям IP. Сервер включает в себя поддержку, как протоколов сигнализации, например, H.323 и SIP, так и протокол передачи мультимедийной информации, типа RTP. Каждый канал связи поддерживает один или несколько протоколов. Поток с мультимедиа данными, в общем случае голос, передаваемый через сеть, может быть закодирован с помощью множества различных алгоритмов, начиная с alaw/ulaw (G.711), заканчивая GSM или ILBC.Приложения и команды
Для того, чтобы соединить входящий вызов с удаленным абонентом или с любым другим локальным пользователем АТС, в asterisk существует множество функций, команд, с помощью которых и делается полноценная мини АТС. Начиная с простеньких команд, типа goto, заканчивая законченными функциональными модулями, например, голосовая почта и конференциями.Дополнительная информация:
Как куда звонить - план набора (Dial plan)
План набора обычно хранится в текстовом файле, в файле конфигурации extensions.conf. В этом файле описываются действия, совершаемые над вызовами, для соединения их с заданным екстеншеном. Каждый екстеншен содержится в определенном контексте, например, или в контексте по умолчанию или в любом другом, созданном Вами, например, в контексте для входящих вызовов по протоколу sip, для исходящих международных вызовов через публичную телефонную сеть, для локальных вызовов, для вызовов между офисами и любых других вызовов. Все пользователи, когда соединяются с asterisk, попадают в соответствующий контекст (описанный в конфигурации для каждого канала), где asterisk смотрит, как ему обработать вызов, поступивший от этого пользователя, проверяет есть ли право у него воспользоваться платными каналами связи, с различными наборами правил для локальных пользователей и для вызовов, поступающих из внешних каналов связи.В плане набора, вы описываете все действия и ситуации, которые должна обработать ваша АТС. Мы можете описать контекст, который будет обрабатывать вызовы только ночью или только в определенные часы каждого дня. Вы можете включать один контекст в другой и упростить или сделать довольно сложным Ваш план набора...
Некоторые примеры из того, что можно сделать:
- Соединить вызывающего с голосовым ящиком, если пользователь не ответил на вызов с основного или дополнительного телефонного аппарата, например, в течении 20 секунд
- Соединить поступающий вызов с многопользовательской конференцией
- Перевести вызовы на другой сервер Asterisk
- Заблокировать вызовы от неопределенных или нежелательных абонентов
- Получить данные о звонящем, запросом из базы данных по номеру вызывающего абонента (callerID), и принять решение какая группа телефонисток (менеджеров или агентов) должна ответить на этот вызов
- Создать очереди вызовов и посадить толпу телефонисток для обслуживания входящих вызовов
Дополнительная информация:
Управление сервером asterisk - manager интерфейс
Сервер Asterisk обычно работает в фоновом режиме на операционных системах Linux или Unix системах FreeBSD или OpenBSD. Множество из возможностей, на сегодняшний момент, ориентировано на Linux. Как администратор, Вы можете подключиться к работающему серверу Asterisk и получить доступ к консоли, или можете использовать некоторые графические интерфейсы, предназначенные для управления Asterisk.Интерфейс CLI дает администратору следующие возможности:
- отслеживать в реальном времени, что происходит в Вашей АТС
- Отлаживать различные протоколы, при поступающих соединениях и исходящих звонках
- Просматривать активных пользователей и текущие вызовы
- Изменять данные во внутренней базе данных asterisk
- Перегружать конфигурацию без перезапуска АТС
В сервере также предусмотрен интерфейс, базирующийся на протоколе TCP/IP, для управления сервером, который является дополнительным модулем для Asterisk. Он дает возможность администратору или пользователям видеть, что происходит на сервере Asterisk в режиме реального времени, отслеживать поступающие вызовы и моменты их завершения, а так же дает возможность совершать исходящие вызовы.
Дополнительная информация:
Asterisk - как платформа для телефонии маштаба предприятия
В сервере Asterisk существует возможность создания транковых соединений между различными офисами, используя специальный протокол IAX (Inter-Asterisk exchange протокол). Этот протокол поддерживает множество одновременных соединений и очень хорошо работает с сетями, находящимися за NAT. Используя эту возможность, вы можете создать систему поиска маршрута для вызовов, на основе минимальной стоимости канала связи, и создать систему с распределенной нагрузкой между серверами Asterisk в Вашей сети.Конфигурация сервера Asterisk
Все настройки сервера Asterisk обычно хранятся в текстовых файлах, все файлы конфигурации Asterisk, располагаются в директории /etc/asterisk, при стандартной инсталляции. В стандартный дистрибутив входят файлы с примерами конфигураций, которые хорошо документируют использование почти всех параметров конфигурации.Дополнительная информация:
- Asterisk config files: Обзор файлов конфигурации
- Asterisk config extensions.conf: План набора - ключевая настройка всей функциональности в АТС
- Конфигурации различных каналов: sip.conf, iax.conf, mgcp.conf и т. д. ...
- Конфигурации приложений: voicemail, meetme conferencing и т. д.
Дальнейшее развитие возможностей и скрипты в Asterisk
Если Вам необходимо что-то добавить в функциональность Asterisk, существует множество способов сделать это.- Используя приложения в плане набора, для достижения нужного вам результата. Существует некоторое количество команд, которые помогут создать Вам нужный скрипт в плане набора, например, gotoif. Можно использовать переменные для хранения и проверки результатов, а также функции, работающие со строками, для обработки процесса вызова абонента.
- agi: Интерфейс с внешними приложениями, расширяющий возможности Вашего плана набора, при помощи приложений на любом языке программирования по Вашему усмотрению - PHP, Perl, C, Java, Unix Shell и другие
- manager: API интерфейса администрирования, с помощью которого Ваши приложения могут подсоединяться к Asterisk
- И, конечно, C API, документированное в исходный кодах
Обратите внимание, что Asterisk лицензирован компанией Digium под лицензией GPL. Это означает, что Вы можете свободно модифицировать исходный код и публиковать Ваши решения остальному сообществу, но вы должны сделать все Ваши модификации доступными под лицензией GPL. Если Вы хотите модифицировать часть кода самого Asterisk, то Вам необходимо отказаться от своих эксклюзивных прав на эту модификацию в пользу Digium. Множество разработчиков со всего мира работают над улучшениями в Asterisk и Вы также можете к ним присоединиться. Так как компания Digium получила все права на весь исходный код Asterisk и , если Вам необходимо модифицировать код так, что он не может использоваться с лицензией GPL, но эти изменения необходимы Вашим клиентам, Вы можете связаться с представителями компании Digium для получения специальной лицензии.
Дополнительная информация:
- Asterisk.org: Документация, IRC, bug tracker, ссылки, cvs download information
- Digium: Железки, лицензии, комерческая поддержка, ссылки на комерческих партнеров