Asterisk voip что это
Asterisk - это открытый программный сервер телефонии, значительно превосходящий по функционалу все другие существующие решения для организации офисных АТС, включая самые дорогие отдельные телефонные станции Enterprise класса. В сочетании с необходимым интерфейсным оборудованием, обеспечивающим подключение к компьютера к существующим телефонным сетям, Asterisk может воистину всё, что вы только способны себе представить, и даже больше. И это при том, что сам Asterisk является полностью открытым проектом - вам необходимо всего лишь купить интерфейсные платы и подходящий по мощности компьютер, и вы сможете создать АТС любого уровня и сложности. Компьютер на базе Intel Atom с пассивным охлаждением способен обслужить до 50 внутренних и внешних линий.
Голосовое меню, автоответчики, голосовая почта с доставкой аудиофайлов на email ящики, поддержка всех существующих протоколов обмена голосом и кодеков для них, видеозвонки и передача текстовой информации, возможность коммутации различных каналов, например, SIP и обычного телефона - это далеко не полный список возможностей Asterisk.
Установка из репозитория
Чтобы поставить всё необходимое достаточно просто запустить скрипт install_prereq из каталога contrib/scripts/ в исходных текстах Asterisk с параметром install . Например, вот так:
Однако этот скрипт ставит очень много по сути бесполезного мусора.
Управление сервером asterisk - manager интерфейс
Сервер Asterisk обычно работает в фоновом режиме на операционных системах Linux или Unix системах FreeBSD или OpenBSD. Множество из возможностей, на сегодняшний момент, ориентировано на Linux. Как администратор, Вы можете подключиться к работающему серверу Asterisk и получить доступ к консоли, или можете использовать некоторые графические интерфейсы, предназначенные для управления Asterisk.
- отслеживать в реальном времени, что происходит в Вашей АТС
- Отлаживать различные протоколы, при поступающих соединениях и исходящих звонках
- Просматривать активных пользователей и текущие вызовы
- Изменять данные во внутренней базе данных asterisk
- Перегружать конфигурацию без перезапуска АТС
Каналы - телефонные соединения с АТС
Каналы Asterisk - это драйвера для различных типов соединений, как для протоколов VoIP, например, SIP, IAX, MGCP и H.323, так и для аппаратного обеспечения, которое используется для соединения с публичными сетями телефонии (PSTN), например, Zaptel, ISDN BRI и PRI и с другими устройствами.
- Обзор каналов используемых в Asterisk
- Asterisk H323 channels: Канал H.323
- Asterisk IAX channels: Канал IAX Inter-Asterisk-Exchange, для соединения Asterisk серверов
- Asterisk SIP channels: Канал SIP
Постскриптум
Для ознакомления с языком программирования Asterisk, можете почитать книгу Asterisk™ - будущее телефонии. А, изучив язык программирования и структуру конфигурационных файлов Asterisk, вы будете обладать поистине безграничными возможностями «взрослой» АТС в вашем офисе. Хотя, вопреки различным оппозиционно настроенным к этому продукту людям, называть этот продукт «детской АТС» или «недостанцией», по меньшей мере, неправильно. Есть поклонники АТС Panasonis, есть Nortel. У каждой есть свои преимущества. Но нет основного, бесплатности. Тот же Panasonic берет деньги за лицензии на внешние подключения, лицензии на системный телефон, берет еще за множество вещей, которые в Asterisk уже есть. Если у вас в офисе 4-6 телефона и одна внешняя линия, тут, бесспорно, лучше взять недорогую железку, прокинуть провода и настроить АТСку как надо. При количестве телефонов больше 8, лучше уже перейти на цифру. В таких офисах уже есть, как правило, сетевая инфраструктура. Встроить в нее несколько SIP телефонов и станцию будет не сложно. О преимуществах перед аналоговой станцией говорить не приходится. Никаких подвижных контактов, коммутирующих элементов. Никаких плинтов, кроссов, если не используется аналоговая часть. Беспроблемное подключение различных VoIP и GSM шлюзов, интеграция с провайдерами IP телефонии. Объединение офисов в других городах в общее адресное пространство. Автообзвон клиентов, получение и передача данных в различные бухгалтерские и CRM системы. При всем при этом, система достаточно безопасна в пользовании при правильной настройке. Хотелось бы надеяться, что данная статья кому-то поможет установить Asterisk.
Как куда звонить - план набора (dial plan)
План набора обычно хранится в текстовом файле, в файле конфигурации extensions.conf. В этом файле описываются действия, совершаемые над вызовами, для соединения их с заданным екстеншеном. Каждый екстеншен содержится в определенном контексте, например, или в контексте по умолчанию или в любом другом, созданном Вами, например, в контексте для входящих вызовов по протоколу sip, для исходящих международных вызовов через публичную телефонную сеть, для локальных вызовов, для вызовов между офисами и любых других вызовов. Все пользователи, когда соединяются с asterisk, попадают в соответствующий контекст (описанный в конфигурации для каждого канала), где asterisk смотрит, как ему обработать вызов, поступивший от этого пользователя, проверяет есть ли право у него воспользоваться платными каналами связи, с различными наборами правил для локальных пользователей и для вызовов, поступающих из внешних каналов связи.
В плане набора, вы описываете все действия и ситуации, которые должна обработать ваша АТС. Мы можете описать контекст, который будет обрабатывать вызовы только ночью или только в определенные часы каждого дня. Вы можете включать один контекст в другой и упростить или сделать довольно сложным Ваш план набора.
- Соединить вызывающего с голосовым ящиком, если пользователь не ответил на вызов с основного или дополнительного телефонного аппарата, например, в течении 20 секунд
- Соединить поступающий вызов с многопользовательской конференцией
- Перевести вызовы на другой сервер Asterisk
- Заблокировать вызовы от неопределенных или нежелательных абонентов
- Получить данные о звонящем, запросом из базы данных по номеру вызывающего абонента (callerID), и принять решение какая группа телефонисток (менеджеров или агентов) должна ответить на этот вызов
- Создать очереди вызовов и посадить толпу телефонисток для обслуживания входящих вызовов
- Asterisk config extensions.conf
- Asterisk tips and tricks
Приложения и команды
Для того, чтобы соединить входящий вызов с удаленным абонентом или с любым другим локальным пользователем АТС, в asterisk существует множество функций, команд, с помощью которых и делается полноценная мини АТС. Начиная с простеньких команд, типа goto, заканчивая законченными функциональными модулями, например, голосовая почта и конференциями.
Протоколы - основа передачи голоса по сетям IP и Интернет технологий
Сервер Asterisk поддерживает множество протоколов для передачи речи по сетям IP. Сервер включает в себя поддержку, как протоколов сигнализации, например, H.323 и SIP, так и протокол передачи мультимедийной информации, типа RTP. Каждый канал связи поддерживает один или несколько протоколов. Поток с мультимедиа данными, в общем случае голос, передаваемый через сеть, может быть закодирован с помощью множества различных алгоритмов, начиная с alaw/ulaw (G.711), заканчивая GSM или ILBC.
С чего начать
Общие вопросы
Asterisk доступен в репозиториях Ubuntu, однако настоятельно рекомендуется всегда ставить самую последнюю версию с официального сайта, вручную компилируя её и все необходимые дополнительные модули.
Базовая установка Asterisk состоит из четырёх частей:
Библиотека LibPRI. Эта библиотека предназначена для работы с потоковыми TDM-интерфейсами ISDN: PRI (Primary Rate Interface) и BRI (Basic Rate Interface).
Ставить их необходимо именно в таком порядке. Если у вас нет никакого внешнего оборудования, то можно ограничиться установкой чистого Asterisk, однако разработчики всегда рекомендуют ставить полный пакет. Все необходимые пакеты с исходным кодом можно скачать на официальном сайте:
Имейте ввиду, модули и утилиты DAHDI можно загрузить по отдельности, а можно в виде одного пакета DAHDI Complete. При этом в названии пакета DAHDI Complete всегда содержится два номера версии - первый для включённого в него пакета модулей DAHDI Linux, а второй - для DAHDI Tools. Вообще говоря эти номера могут и не совпадать.
Для сборки Asterisk вам потребуется компилятор GCC и некоторые сопутствующие библиотеки.Минимальный же набор необходимого можно поставить командой:
Если вы собираете DAHDI кроме самого Asterisk, то так же понадобятся исходники ядра.
Конфигурация сервера Asterisk
Все настройки сервера Asterisk обычно хранятся в текстовых файлах, все файлы конфигурации Asterisk, располагаются в директории /etc/asterisk, при стандартной инсталляции. В стандартный дистрибутив входят файлы с примерами конфигураций, которые хорошо документируют использование почти всех параметров конфигурации.
- Asterisk config files: Обзор файлов конфигурации
- Asterisk config extensions.conf: План набора - ключевая настройка всей функциональности в АТС
- Конфигурации различных каналов: sip.conf, iax.conf, mgcp.conf и т. д. .
- Конфигурации приложений: voicemail, meetme conferencing и т. д.
Документация
Звонки с/на Skype
Инструкция написана для Asterisk 1.8 на Ubuntu server 9.04. Задача - привязать к астериску аккаунт скайп, чтобы принимать звонки из скайпа на SIP телефон, и звонить с SIP телефона по скайпу. Для этого существует штатное расширение Asterisk производства Digium, но оно коммерческое и лицензии стоят денег. Однако, существует свободный проект - SipToSis, позволяющий сделать то же самое.
Для запуска Skype в консольном Linux используем Xvfb (X Virtual Frame Buffer) и для настройки Skype с другой машины - x11vnc:
Для работы SipToSis необходима Java версии не ниже 1.5.
Разархивируем в /etc/siptosis и проставим chmod на исполняемый файл:
man hier не согласится с этим
Теперь настроим asterisk.
В users.conf добавим:
В extensions.conf добавим
И перезагрузим asterisk.
Теперь правим конфиг SipToSis:
Подключаемся с другой машины (в моем случае, с Windows XP через VNC Viewer), вводим в Skype логин-пароль, отключаем все лишнее.
Если все сделано правильно, SipToSis запустится и попытается подключиться к Skype. Skype выдаст вопрос - разрешить ли подключение. Разрешаем и ставим галку «запомнить».
Проверяем: набираем с подключенного к Asterisk клиента 1001 - мы должны услышать тестовый звонок Skype.
Чтобы принимать входящие звонки, в /etc/siptosis/SkypeToSipAuth.props прописываем соответствующее правило. Например:
-перенаправлять все входящие звонки Skype SIP-юзеру «user1».
Естественно, нужно создать в extensions.conf контекст « Skype », в котором разрешить звонки на этот extension.
Добрый день. На написание статьи меня сподвигла необходимость передать мои знания подчиненным, которым уже пора бы вникать в работу Asterisk.
Когда я заметил интерес к платформе с их стороны — я чрезвычайно обрадовался, но пришел в недоумение, когда все рвение остановилось на клацанье по триксбоксу и его подобным.Я ничего не имею против надстроек к Астериску, которые облегчают жизнь, но я боюсь, что скоро появился поколение администраторов Астериска, которые консоли в живую не видели ниразу.
Целью моих статей является желание показать, что астериск красив сам по себе, без дополнительных надстроек, что можно, используя минимальные, ускоряющие работу скриптовые языки — творить чудеса. Хочется показать, ищущим и желающим познать новое, людям нюансы и тонкости работы системы.
Что такое Астериск
Про астериск есть множество статей с описанием функционала и возможностей. Новичку надо знать самое главное — на начальном этапе ( в качестве обучения ) Астериск в состоянии выполнять любые задачи связанные с телефонией, ну или практически любые.
Есть ряд неудобств, либо ограничений, которые присущи работе с Астериском, постараемся их устранять в процессе ознакомления с системой.
Также стоит понимать, что высоконагруженную систему на астериске построить крайне тяжело — для этого есть другие решения.
Для простоты можно считать, что астериск целесообразно использовать в системах, где количество одновременных звонков не превышает 100.С цего начать
Честно просмотрев 10 страниц результатов поискового запроса Asterisk на хабре, понял, что начинать надо сначала, но без фанатизма. Рассказывать о установке не буду, но о структуре Астериска и тому, что нам понадобится при работе — будем говорить. Говорить мы будем о Asterisk 1.8, но принципы работают на всех версиях астериска.
Структура системы
Астериск, как любое приложение, работает на основании конфигурационных файлов, коих достаточно большое множество. Честно говоря, я до сих пор не знаю роли половины конфигов. Для нашей работы на начальном этапе нам понадобится знать и понимать настройки, хранящиеся в файлах sip.conf и extensions.conf. Отмечу, что при стандартной установке все файлы конфигов хранятся в /etc/asterisk/.
Файл sip.conf
Данный файл содержит описание базовых параметров работы протокола SIP, настройки NAT, кодеков и самое главное — учетных записей. Позже я буду рассказывать о том, каким образом хранить учетные записи в базе данных.
Дефолтный конфиг sip.conf позволяет запускать Астериск, при условии прописывания учетных записей, и он будет работать, слушая при этом входящие соединения на всех интерфейсах.
Учетные записи в sip.conf могут быть трех типов:
— user ( пользователь )
— peer ( пир )
— friend ( пользователь+пир )Я почти всегда настраиваю учетные записи как friend, по причине того, что она сочетает в себе все функции как пира так и пользователя.
Простой пример учетной записи выглядет так:
[1001]; название пира, его будем использовать в дальнейшем, для работы с правилами звонков, ;cовпадение с логином необязательно
type=friend; тип учетной записи
host=dynamic; разрешаем логин с разных IP адресов
username=1001; имя пользователя
secret=1234; пароль
context=default; контекст, о нем чуть позже
disallow=all; запрещаем все кодеки
allow=alaw; разрешаем кодек G.711a ( alaw )Такой записи достаточно, чтобы зарегистрироваться на свежем сервере с параметрами пользователя 1001 и паролем 1234.
Создаем две записи с названиями 1001 и 1002 в самом низу файла sip.conf.
Файл extensions.conf
Данный файл — ключевой файл в системе Asterisk, так как в нем описываются правила работы с любым голосовым трафиком, появившимся в системе. Это как статическая таблица маршрутизации. О хранении данных в базе данных будем говорить позже.
Структура файла вполне проста:
-внутри файла прописываются глобальные параметры, в том числе и переменные
-далее файл разбит на контексты, каждый из которых живет своей жизнью и правила работы звонков внутри каждого контекста могут быть своими.Контексты нужны, для разграничения поведения телефонного звонка и отделения одних групп пользователей и их звонков от других. Контексты позволяют в пределах одной системы создавать множество подсистем со своими правилами и пользователями (аналог виртуальных машин).
Контексты обозначаются как [НАЗВАНИЕ КОНТЕКСТА].
Структура контекста следующая:exten => МАСКА, ПОРЯДОК, ДЕЙСТВИЕ
, где
МАСКА — маска номера, либо статически заданный номер
ПОРЯДОК — порядок действия для конкретной МАСКИ (возможна последовательность действий)
ДЕЙСТВИЕ — команда, выполняемая системой в случае попадания звонка на данное правило.Наши тестовые пользователи созданы в контексте default, поэтому, если просто запустить астериск и позвонить на любой номер, можно услышать тестовое демо-меню Астериска.
Открываем на редактирование extensiond.conf, делаем поиск по [default] и в следующей после строки [default] смело вносим правило локального звонка:
Статическое правило:
exten => 1001,1,Dial(SIP/1001)
exten => 1002,1,Dial(SIP/1002)Динамическое правило:
exten => _XXXX,1,Dial(SIP/$); тут X говорит о том что будет набрана любая цифра, о способах; составления масок ( экстеншинов ) — позже.Данные правила позволят совершить локальный звонок между тестовыми пользователями.
Напоследок: Работа с консолью сервера
Сервер запускается командой asterisk из под рута, либо /usr/sbin/asterisk.
Для захода в консоль надо из под рута ввести asterisk -r, либо /usr/sbin/asterisk -r (далее, для удобства, будем использовать asterisk, подразумевая, что мы говорим о работе с испольняемым файлом сервера).Для того, чтобы Астериск перечитал конфиги из консоли достаточно выполнить reload.
Домашняя работа
Спасибо за внимание.
Огромное спасибо за отзывы и замечания.
Хочу отметить, что статья расчитана на людей, которые начинают изучать Asterisk и направлена на облегчение им жизни. В перспективе хочу учесть все замечания, и делать и писать новые статьи согласно пожеланий, при этом выдерживая общую линию развития от простых вещей к сложным.
Приятно получать критику, буду стараться, и в случае неточностей исправляться.
Спасибо.Я хочу рассказать о свободном решении для компьютерной телефонии от компании Digium. Asterisk – это ATC созданная хакерами (в первоначальном смысле этого слова), а точнее, это супер конвергентная платформа компьютерной телефонии, распространяемая по лицензии GNU GPL, изначально разрабатываемая Марком Спенсером (Mark Spenser), позже ставшим президентом и техническим директором компании Digium. Благодаря коммерческой поддержке Его компании и лицензии GNU GPL Asterisk активно развивается и поддерживается тысячами людей со всей планеты.
Протоколы
Аудио кодеки
Название Скорость передачи, Кбит/с Необходимость лицензии G.711 64 Не нужна G.726 16, 24, 32 или 40 Не нужна G.729A 8 Нужна (не нужна для транзита) GSM 13 Не нужна iLBC 13,3 (кадры по 30 мс) или 15,2 (кадры по 20 мс) Не нужна Speex Переменная между 2,15 и 22,4 Не нужна G.723.1 6.4 Кбит/с (кадр имеет размер 189 битов, дополненных до 24 байтов) и 5,3 Кбит/с (кадр имеет размер 158 битов, дополненных до 20 байтов). Режим работы может меняться динамически от кадра к кадру Нужна (не нужна для транзита) MP3 Видео кодеки
Asterisk работает с ОКС-7 (Общеканальная сигнализация №7, в Европе известной как SS7 – Signaling System №7) — это набор сигнальных телефонных протоколов, для организации мультисервисной (интеллектуальной) сети.
Производительность Asterisk систем
Опытные данные производительности систем представлены на форуме [ru] и оригинальный текст [en].
Основные рекомендации такие 1
Назначение Кол-во каналов Минимальная конфигурация Любительская система не более 5 400 MГц, 256 МБ RAM SOHO-система от 5 до 10 1 ГГц, 512 МБ RAM Малая бизнес система до 25 3 ГГц, 1 ГБ RAM Средняя или большая система более 25 2 ЦП или несколько серверов в распределенной архитектуре
Asterisk – может работать практически на любой платформе Linux плюс некоторых других ОС, таких как Solaris, BSD, MacOS X и есть даже проект Asterisk for Win32. По поводу выбора ОС для Asterisk развивать холивар не хочу и предлагаю выбрать Вам самим, при этом не мешает прочитать ветку форма посвященному этому вопросу. В заключении, скажу, что сам использую CentOS – популярный дистрибутив, используемый с Asterisk (собран из сырцов RedHat) версии 5.2.
Подробное руководство по установке CentOS 5.2 из блога Linuxoid.Иксы рекомендую не ставить, так как с Asterisk они будут конкурировать за ресурсы.
- Сам Asterisk, доступна версия 1.6.0.6;
- Драйверы телефонии DAHDI – акроним Digium Asterisk Hardware Device Interface, бывший zaptel + DAHDI Tools; – библиотеки Libpri.
ссылки на 32-bit версии, но доступны и 64–bit
Если планируется использовать только VoIP, то достаточно пакета Asterisk, но рекомендуется установить все пакеты.
Дополнительно, можно установить
-
; , содержит модули для работы с MySQL и проигрывания mp3 – файлов, ИМХО не вошло в официальный дистрибутив и не надо. К примеру, Asterisk установлен с поддержкой ODBC и при установке аддона для работы с MySQL система может не работать, поэтому одновременно рекомендуется использовать только один из драйверов и отключить другой. Проигрывание mp3 – файлов, в свою очередь, вызовет дополнительную нагрузку на систему т.к. проигрываемый файл необходимо будет разжать.
Необходимые пакеты Linux
- GCC 3.x;
- ncurses-devel;
- libtermcap-devel;
- Kernel Development Headers;
- GCC C++ 3.x;
- OpenSSL (опционально) ;
- newt-devel (опционально) ;
- zlib-devel (опционально) ;
- unixODBC; unixODBC-devel (опционально) ;
- libtool (рекомендуется) ;
- GNU make (версия 3.80 и выше).
Небольшое отступление
Против всего выше описанного, существует также программный продукт AsteriskNOW доступна бета 1.5 – это специализированный дистрибутив Linux уже включающий Asterisk со всем необходимым ПО, плюс web–based GUI. Этот дистрибутив также распространяется по лицензии GNU GPL и свободен для скачивания 32-bit и 64-bit.
Скриншоты можно посмотреть на официальном сайте.Продолжим
Загружать статью общими вопросами установки и настройки Asterisk не буду, тем более, что в сети есть замечательные статьи, подробно рассказывающие о каждом из этапов. Не смотря на то, что статьи написаны 3 – 4 года назад, поверьте, они не теряют своей актуальности, не спорю, версии сменились с 1.2 аж до 1.6, сменилось даже название телефонного драйвера и функционал существенно расширился, но Вас это не должно пугать.
Моя рекомендация – MUST READ:
-
– рассматриваются основные возможности Asterisk, настройка и работа по протоколу SIP; – рассматривается работа по протоколу H323 и обеспечение связи с ТфОП; – заключительная из этого цикла статья, рассматривающая вопросы голосовой почты, конференций и web–интерфейсов, значительно облегчающих работу, как пользователей, так и администраторов Asterisk.
Примечание: в статьях используются утилиты zaptel, который сменил название на DAHDI
ztcfg -> dahdi_cfg
ztmonitor -> dahdi_monitor
ztscan -> dahdi_scan
ztspeed -> dahdi_speed
zttest -> dahdi_test
zttool -> dahdi_tool
zapconf -> dahdi_genconf ранее известная, как genzaptelconf)Asterisk: организуем автоматическое распределение поступающих вызовов – рассматриваются вопросы организации очереди обработки вызовов, так необходимой в службах работающих с клиентами. Автор Сергей Яремчук
Марк Спенсер: «Это Asterisk привлекает пользователей к Linux, а не наоборот!»
Интервью с Марком Спенсером 2006 год, текст: Дмитрий Шурупов, фото: Йон ХоллВопросы безопасности Asterisk обсуждаются в статье Безопасный Asterisk Автор Максим Литницкий — ПРОШУ УДЕЛИТЬ ЭТОМУ БОЛЬШОЕ ВНИМАНИЕ
К сожалению, в статьи по разным причинам, не вошли важные аспекты Asterisk, поэтому попробую обратить Ваше внимание на них.
AGI, EAGI, DeadAGI и FastAGI
Наиболее популярными языками программирования для AGI являются Perl, Python и PHP.
Скажу только, то, что для этих и других языков программирования существуют “обёртки” – фрэймворки, позволяющие абстрагироваться от логики запрос-ответ AGI и программировать на более высоком уровне абстракции.Asterisk Manager Interface (AMI) – это программный интерфейс, позволяющий соединиться с Asterisk через TCP/IP и полностью контролировать Asterisk, используется для связи c CRM–системами.
Интеграция с Базами Данных
Важным моментом является способность Asterisk хранить свою конфигурацию и состояние в БД. Эта ключевая особенность позволяет строить, по истине, потрясающие распределенные телефонные системы.
Asterisk архитектуры реального времени
- Статическая – аналогична методу хранения в конфигурационных файлах, но чтение данных происходит из БД и любое изменение опций конфигурации влечет за собой необходимость перезагрузки сервера Asterisk;
- Динамическая – используется для хранения конфигураций файлов SIP, IAX2, голосовой почты и загружает данные по необходимости и соответственно не требует перезагрузки.
Хранение файлов CDR в Базе Данных
Interactive Voice Response (IVR) – это уже неотъемлемая часть любой платформы и бизнеса занимающимся обслуживанием клиентов. Стоимость коммерческих IVR систем (Avaya, Cisco, Genesys, Nortel или Dialogic) достаточна, высока, а Asterisk просто создан для этого.
К сожалению, русского женского голоса для Asterisk нет (бесплатного). После инсталляции Asterisk говорит с нами голосом Эллисон Смит (Allison Smith) — это порядка 300 промтов, плюс еще 600 в дополнении asterisk–sounds.Если Вы решитесь самостоятельно записать промты, то основное требование – это нормализация записей до -3дБ с паузами в начале и завершении записи. Для конвертации аудио файла используется утилита SoX (Sound eXchange).
- Оpen source TTS – engine Festival [ru] и [en-оригинал];
- Оpen source ASR – engine Sphinx. Описание как связать Asterisk со Sphinx [en].
Видео и Asterisk
Ссылки по работе с Видео в Asterisk [ru] и [en – оригинал].
DUNDi
Distributed Universal Number Discovery(DUNDi), создан Марком Спенсером – “это одноранговая система для поиска интернет–шлюзов в сервисы телефонии, является полностью распределенным и вообще не имеет никакой централизованной службы”. В некотором роде – это протокол маршрутизации для VoIP.
DUNDi – позволяет запрашивать у равноправных участников сети альтернативный VoIP маршрут к добавочному номеру или телефонному номеру ТфОП. DUNDi можно использовать как в локальной сети – для упрощения управления добавочными номерами в системах Asterisk крупной компании, так и в глобальной сети, но тут для доступа нужно подписать Общее Пиринговое Соглашение (General Peering Agreement — GPA), его также можно найти в подпапке исходного кода doc/. GPA имеет обязательную юридическую силу, для защиты участников сети от людей злоупотребляющих протоколом.Что такое Asterisk
Это проект с открытым исходным кодом компании Digium, первоначально начатый Марком Спенсером. Asterisk обладает всеми возможностями классической АТС, поддерживает множество VoIP протоколов и предоставляет функции голосовой почты, конференций, интерактивного голосового меню (IVR), центра обработки вызовов (постановка звонков в очередь и распределение их по агентам используя различные алгоритмы), запись CDR и прочие функции. Для создания собственной функциональности можно воспользоваться собственным языком Asterisk для написания диалплана, написав модуль на языке C, либо воспользовавшись AGI, который является гибким и универсальным интерфейсом для интеграции с внешними системами обработки данных. Выполняемое через AGI может быть написано на любом языке программирования.Asterisk распространяется по условиям двойной лицензии, благодаря которой одновременно с основным кодом, распространяемым по открытой лицензии GNU General Public License, возможно создание закрытых модулей, содержащих лицензируемый код. Например модуль для поддержки кодека G.729.
Операционные системы
Приложение работает на операционных системах GNU/Linux, FreeBSD и Solaris и предназначено для создания решений компьютерной телефонии. Имя проекта произошло от названия символа *, который в Unix и DOS операционных системах обозначает совпадение любой последовательности символов в именах файлов.Протоколы
Asterisk обеспечивает достаточное количество протоколов для поддержки соединений между традиционными системами телефонии и ИП сетями включая H.323, Session Initiation Protocol (SIP), Media Gateway Control Protocol (MGCP), and Skinny Client Control Protocol (SCCP).Разработан также специальный Inter-Asterisk eXchange (IAX) VoIP протокол для связи между серверами Asterisk, который обеспечивает передачу голоса и данных прозрачно через различные гетерогенные сети. Использование ИП-протокола позволяет Asterisk посылать различные данные, такие как URL или картинки и фото в процессе разговора, интегрируя различные виды информации.
Структура Asterisk полностью модулярна, интерфейс командной строки позволяет перегружать отдельные модули и их конфигурации не нарушая работы в целом и не разрывая установленные соединения, а также выгружать и загружать интерфейсы, файлы и кодеки. Делает прозрачным соединение между всеми поддерживаемыми интерфейсами, объединяя различные телефонные системы в единую сетевую среду.
Аппаратная часть
Asterisk не требует никакого специального оборудования для Voice over IP. Почти все устройства различных производителей VoIP оборудования можно подключить без особых проблем. Для использования цифрового и аналогового телефонного оборудования Asterisk поддерживает широкий спектр оборудования, в котором особое место занимают PCI платы Digium, содателя Asterisk.Благодаря открытой лицензии, Asterisk активно развивается и поддерживается тысячами людей со всей планеты. В течение последних двух лет Asterisk приложения активно развиваются в Соединенных Штатах и Европе. В том или ином виде Астериск занял прочное место на рынке IT-технологий (более 1000 компаний, центры поддержки, online-консультации). Многие компании применяют Asterisk в своих серийных VoIP устройствах, например компании Linksys, Nateks и т. п.
Asterisk - это программная АТС с открытыми исходными кодами, создана она конторой Digium, и постоянно развивается пользователями и сообществом разработчиков. Компания Digium вложилась как в разработку программного обеспечения для Asterisk, так и в разработку дешевого аппаратного обеспечения телефонии, которое может работать с Asterisk. Сервер Asterisk может работать на Linux и на других платформах Unix как используя, так и не используя аппаратное обеспечение, с помощью которого Ваш сервер соединяется с сетями традиционной телефонии PSTN.
Дальнейшее развитие возможностей и скрипты в Asterisk
- Используя приложения в плане набора, для достижения нужного вам результата. Существует некоторое количество команд, которые помогут создать Вам нужный скрипт в плане набора, например, gotoif. Можно использовать переменные для хранения и проверки результатов, а также функции, работающие со строками, для обработки процесса вызова абонента.
- agi: Интерфейс с внешними приложениями, расширяющий возможности Вашего плана набора, при помощи приложений на любом языке программирования по Вашему усмотрению - PHP, Perl, C, Java, Unix Shell и другие
- manager: API интерфейса администрирования, с помощью которого Ваши приложения могут подсоединяться к Asterisk
- И, конечно, C API, документированное в исходный кодах
Установка из исходников
В статье будет описан процесс установки для сервера 12.04. Начнем с установки необходимых библиотек и дополнительных пакетов.
Качаем исходники DAHDI с утилитами. Распаковываем, и входим в каталог с исходниками.
Качаем LibPRI. Распаковываем, и входим в каталог с исходниками.
Качаем spandsp. Распаковываем, и входим в каталог с исходниками.
Как было указано выше, берем последнюю LTS версию с официального сайта, а именно, со страницы загрузки всех версий, распаковываем и заходим в каталог исходников. В новых версиях Asterisk необходима установка дополнительных библиотек для работы WebRTC. Для этого выполняем скрипт, входящий в комплект исходников Asterisk.
После установки библиотек необходимо установить дополнительные пакеты libsrtp и pjproject, т.к. они необходимы для работы WebRTC.
Если вдруг возникнут ошибки, собираем всё ручками.
Жмем Ctrl + D для выхода из рутовой консоли.
Вот теперь можно продолжить установку Asterisk. Выполняем
Если вы делаете установку по ssh, то предварительно должны убедиться, что размер терминала больше, чем 80×25. Здесь необходимо включить нужные модули для компиляции. К примеру, в разделе Add-ons я включил модули format_mp3, app_mysql, cdr_mysql, т.к. дальше планируется установка панели управления FreePBX. В разделе Core Sound Packages включаем CORE-SOUNDS-EN-ALAW, CORE-SOUNDS-EN-GSM, CORE-SOUNDS-EN-G729, CORE-SOUNDS-RU-ALAW, CORE-SOUNDS-RU-GSM, CORE-SOUNDS-RU-G729 (куда же без великого и могучего ).
Кратко поясню, для чего в трех кодеках. Для разных транков и внутренних номеров могут использоваться различные кодеки. Устанавливаемая АТС будет использовать основным кодеком alaw, потому что, к примеру, в Казахстане провайдер Казахтелеком использует для SIP телефонии как раз его и g729. В этом случае, будет использоваться меньше ресурсов сервера для транскодирования аудиопотоков. Внутренние номера так же будут использовать alaw, номера, подключаемые снаружи, через внешний интернет, будут работать на g729a, для уменьшения нагрузки на канал. В качестве терминала могут использоваться смартфоны с установленным SIP клиентом. Устойчивая связь была проверена при использовании этого кодека даже на EDGE, не говоря уже про 3G. Кодек GSM будет использоваться в GSM шлюзах.
Далее в разделе Music On Hold File Packages включаем модуль MOH-OPSOUND-WAV просто для того, чтоб он установился. После установки эти мелодии можно будет заменить на свои. Последний раздел Extras Sound Packages. Тут опять же включаем модули для выбранных кодеков ALAW, GSM и G729. Из корневого раздела нажимаем Esc и видим, что нам предложили три варианта выхода. Смело жмем S для сохранения сделанных изменений.
Поскольку мы включили поддежку mp3, то выполняем
И мы уже можем сделать первый запуск нашей станции.
Для того, чтоб не сочинять скрипт автозапуска выполняем
Теперь мы уже можем запустить нашу станцию как демон.
И подключиться к его консоли.
Выйти из консоли можно по Ctrl + Ctrl или набрав quit и нажав Enter . Осталось взять модуль кодека g729 с русской страницы проекта, который больше соответствует конфигурации вашего железа и положить его в /usr/lib/asterisk/modules. Затем следует перезагрузить Asterisk, или загрузить модуль из консоли управления.
Сделаем ему отдельного пользователя, предварительно остановив Asterisk, если запустили, добавим его в нужные группы.
Создадим каталог запуска.
Изменим права на нужные каталоги.
В файле /etc/default/asterisk раскомментируем две строчки. AST_USER=«asterisk» AST_GROUP=«dialout»
Вот теперь можно запустить Asterisk.
Смотрим, от какого пользователя запустился Asterisk.
Спокойно пользуемся дальше.
Вот, собственно, и весь процесс установки этого замечательного продукта.
If you mean business
Asterisk дает возможность в реальном времени работать как с телефонной сетью общего пользования (ТфОп - PSTN анг.), так и с VoIP сетями
- Подключить Ваших работников, работающих из дома, к офисной АТС, по широкополосным каналам связи
- Соединить офисы, вне зависимости от их удаленности, через VoIP, Интернет или через приватную IP сеть
- Ваши работники получат возможность пользоваться голосовой почтой, интегрированной с Web приложениями и E-mail
- Даст возможность создавать интерактивные голосовые меню, для доступа абонентов, например, со службой продаж или с другими подразделениями компании
- Даст возможность доступа к вашей корпоративной АТС работникам, находящимся в командировке, соединяясь с использованием VPN из гостиницы или аэропортов, где есть беспроводные WLAN точки доступа
- . и многое другое
- Музыка ожидания (Music-on-hold) для абонентов ждущих ответа в очереди вызовов, поддерживается как потоковое воспроизведение, так и проигрывание MP3 музыки
- Очереди вызовов, где агенты совместно отвечают на входящие вызовы и мониторят эти очереди
- Интеграция с системой синтеза речи (Можно обеспечить интеграцию с системой Festival)
- Ведет записи учета звонков (CDR) для интеграции с билинговыми системами
- Интеграция с системой распознавания речи (например, с Sphinx Open Source voice recognition software)
- Имеет интерфейсы для работы со стандартными телефонными линиями, а также для работы с интерфейсами ISDN BRI и PRI
Asterisk - как платформа для телефонии маштаба предприятия
В сервере Asterisk существует возможность создания транковых соединений между различными офисами, используя специальный протокол IAX (Inter-Asterisk exchange протокол). Этот протокол поддерживает множество одновременных соединений и очень хорошо работает с сетями, находящимися за NAT. Используя эту возможность, вы можете создать систему поиска маршрута для вызовов, на основе минимальной стоимости канала связи, и создать систему с распределенной нагрузкой между серверами Asterisk в Вашей сети.
Читайте также: