Сервер телефонии Asterisk
Содержание
Asterisk — это открытый программный сервер телефонии, значительно превосходящий по функционалу все другие существующие решения для организации офисных АТС, включая самые дорогие отдельные телефонные станции Enterprise класса. В сочетании с необходимым интерфейсным оборудованием, обеспечивающим подключение к компьютера к существующим телефонным сетям, Asterisk может воистину всё, что вы только способны себе представить, и даже больше. И это при том, что сам Asterisk является полностью открытым проектом — вам необходимо всего лишь купить интерфейсные платы и подходящий по мощности компьютер, и вы сможете создать АТС любого уровня и сложности. Компьютер на базе Intel Atom с пассивным охлаждением способен обслужить до 50 внутренних и внешних линий.
Голосовое меню, автоответчики, голосовая почта с доставкой аудиофайлов на email ящики, поддержка всех существующих протоколов обмена голосом и кодеков для них, видеозвонки и передача текстовой информации, возможность коммутации различных каналов, например, SIP и обычного телефона — это далеко не полный список возможностей Asterisk.
Общие вопросы
Asterisk доступен в репозиториях Ubuntu, однако настоятельно рекомендуется всегда ставить самую последнюю версию с официального сайта, вручную компилируя её и все необходимые дополнительные модули.
Базовая установка Asterisk состоит из четырёх частей:
Ставить их необходимо именно в таком порядке. Если у вас нет никакого внешнего оборудования, то можно ограничиться установкой чистого Asterisk, однако разработчики всегда рекомендуют ставить полный пакет. Все необходимые пакеты с исходным кодом можно скачать на официальном сайте:
Имейте ввиду, модули и утилиты DAHDI можно загрузить по отдельности, а можно в виде одного пакета DAHDI Complete. При этом в названии пакета DAHDI Complete всегда содержится два номера версии — первый для включённого в него пакета модулей DAHDI Linux, а второй — для DAHDI Tools. Вообще говоря эти номера могут и не совпадать.
Для сборки Asterisk вам потребуется компилятор GCC и некоторые сопутствующие библиотеки.Минимальный же набор необходимого можно поставить командой:
Если вы собираете DAHDI кроме самого Asterisk, то так же понадобятся исходники ядра.
Установка из репозитория
Чтобы поставить всё необходимое достаточно просто запустить скрипт install_prereq из каталога contrib/scripts/ в исходных текстах Asterisk с параметром install . Например, вот так:
Однако этот скрипт ставит очень много по сути бесполезного мусора.
Установка из исходников
В статье будет описан процесс установки для сервера 12.04. Начнем с установки необходимых библиотек и дополнительных пакетов.
Качаем исходники DAHDI с утилитами. Распаковываем, и входим в каталог с исходниками.
В конце появится сообщение, что не найдены устройства DAHDI, ничего страшного. Даже если нет оборудования, драйверами эмулируется внутренний таймер, использующийся, к примеру, для корректной работы конференции.
Качаем LibPRI. Распаковываем, и входим в каталог с исходниками.
Качаем spandsp. Распаковываем, и входим в каталог с исходниками.
Как было указано выше, берем последнюю LTS версию с официального сайта, а именно, со страницы загрузки всех версий, распаковываем и заходим в каталог исходников. В новых версиях Asterisk необходима установка дополнительных библиотек для работы WebRTC. Для этого выполняем скрипт, входящий в комплект исходников Asterisk.
После установки библиотек необходимо установить дополнительные пакеты libsrtp и pjproject, т.к. они необходимы для работы WebRTC.
Если вдруг возникнут ошибки, собираем всё ручками.
Жмем Ctrl + D для выхода из рутовой консоли.
Вот теперь можно продолжить установку Asterisk. Выполняем
Если всех библиотек хватает, вы должны увидеть сообщение об успешном выполнении и лого 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 (куда же без великого и могучего ).
Далее в разделе Music On Hold File Packages включаем модуль MOH-OPSOUND-WAV просто для того, чтоб он установился. После установки эти мелодии можно будет заменить на свои. Последний раздел Extras Sound Packages. Тут опять же включаем модули для выбранных кодеков ALAW, GSM и G729. Из корневого раздела нажимаем Esc и видим, что нам предложили три варианта выхода. Смело жмем S для сохранения сделанных изменений.
Поскольку мы включили поддежку mp3, то выполняем
Пьем кофе минут 10-30, в зависимости от мощности компьютера и толщины канала. Будут качаться архивы звуковых сообщений. Ну вот, все скачалось, установилось. Создаем тестовые конфиги.
И мы уже можем сделать первый запуск нашей станции.
Для того, чтоб не сочинять скрипт автозапуска выполняем
Теперь мы уже можем запустить нашу станцию как демон.
И подключиться к его консоли.
Выйти из консоли можно по Ctrl + Ctrl или набрав quit и нажав Enter . Осталось взять модуль кодека g729 с русской страницы проекта, который больше соответствует конфигурации вашего железа и положить его в /usr/lib/asterisk/modules. Затем следует перезагрузить Asterisk, или загрузить модуль из консоли управления.
Сделаем ему отдельного пользователя, предварительно остановив Asterisk, если запустили, добавим его в нужные группы.
Создадим каталог запуска.
Изменим права на нужные каталоги.
В файле /etc/default/asterisk раскомментируем две строчки. AST_USER=«asterisk» AST_GROUP=«dialout»
Вот теперь можно запустить Asterisk.
Смотрим, от какого пользователя запустился Asterisk.
Спокойно пользуемся дальше.
Вот, собственно, и весь процесс установки этого замечательного продукта.
Постскриптум
Для ознакомления с языком программирования Asterisk, можете почитать книгу Asterisk™ — будущее телефонии. А, изучив язык программирования и структуру конфигурационных файлов Asterisk, вы будете обладать поистине безграничными возможностями «взрослой» АТС в вашем офисе. Хотя, вопреки различным оппозиционно настроенным к этому продукту людям, называть этот продукт «детской АТС» или «недостанцией», по меньшей мере, неправильно. Есть поклонники АТС Panasonis, есть Nortel. У каждой есть свои преимущества. Но нет основного, бесплатности. Тот же Panasonic берет деньги за лицензии на внешние подключения, лицензии на системный телефон, берет еще за множество вещей, которые в Asterisk уже есть. Если у вас в офисе 4-6 телефона и одна внешняя линия, тут, бесспорно, лучше взять недорогую железку, прокинуть провода и настроить АТСку как надо. При количестве телефонов больше 8, лучше уже перейти на цифру. В таких офисах уже есть, как правило, сетевая инфраструктура. Встроить в нее несколько SIP телефонов и станцию будет не сложно. О преимуществах перед аналоговой станцией говорить не приходится. Никаких подвижных контактов, коммутирующих элементов. Никаких плинтов, кроссов, если не используется аналоговая часть. Беспроблемное подключение различных VoIP и GSM шлюзов, интеграция с провайдерами IP телефонии. Объединение офисов в других городах в общее адресное пространство. Автообзвон клиентов, получение и передача данных в различные бухгалтерские и CRM системы. При всем при этом, система достаточно безопасна в пользовании при правильной настройке. Хотелось бы надеяться, что данная статья кому-то поможет установить Asterisk.
Звонки с/на Skype
Инструкция написана для Asterisk 1.8 на Ubuntu server 9.04. Задача — привязать к астериску аккаунт скайп, чтобы принимать звонки из скайпа на SIP телефон, и звонить с SIP телефона по скайпу. Для этого существует штатное расширение Asterisk производства Digium, но оно коммерческое и лицензии стоят денег. Однако, существует свободный проект — SipToSis, позволяющий сделать то же самое.
Для запуска Skype в консольном Linux используем Xvfb (X Virtual Frame Buffer) и для настройки Skype с другой машины — x11vnc:
Скачаем и установим собственно Skype: Качаем последнюю версию с http://www.skype.com, устанавливаем:
Для работы SipToSis необходима Java версии не ниже 1.5.
Добавляем репозитарий webupd8team. Более подробную информацию можете прочитать на https://launchpad.net/
Разархивируем в /etc/siptosis и проставим chmod на исполняемый файл:
man hier не согласится с этим
Теперь настроим asterisk.
В users.conf добавим:
В extensions.conf добавим
И перезагрузим asterisk.
Теперь правим конфиг SipToSis:
Закомментируем блок настроек, начинающийся с «#Sample AUTO config with NO registration» Раскомментируем блок «#Sample Asterisk registration example», поправим:
Подключаемся с другой машины (в моем случае, с Windows XP через VNC Viewer), вводим в Skype логин-пароль, отключаем все лишнее.
Если все сделано правильно, SipToSis запустится и попытается подключиться к Skype. Skype выдаст вопрос — разрешить ли подключение. Разрешаем и ставим галку «запомнить».
Проверяем: набираем с подключенного к Asterisk клиента 1001 — мы должны услышать тестовый звонок Skype.
Чтобы принимать входящие звонки, в /etc/siptosis/SkypeToSipAuth.props прописываем соответствующее правило. Например:
-перенаправлять все входящие звонки Skype SIP-юзеру «user1».
Источник
Sip server linux asterisk
Asterisk и Linux — миссия IP-телефония
У вас уже есть офисная мини-АТС или вы только планируете ее покупку? Думаете о предоставлении новых возможностей для повышения эффективности работы сотрудников? Сегодня мы приоткроем дверь в мир Open Source IP-телефонии, рассмотрев возможности одного из самых популярных продуктов для Linux — Asterisk PBX.
Итак, что же такое Asterisk? Читаем на официальном сайте [1]: «Asterisk — полностью программная учрежденческая АТС (УАТС), работающая под управлением операционной системы Linux». По возможностям (см. [2]) Asterisk зачастую опережает своих традиционных собратьев. Поддерживаются практически все популярные протоколы IP-телефонии (SIP, H323, SCCP, ADSI). Помимо стандартных и общеизвестных, Asterisk также имеет свой собственный протокол — IAX.
Его можно использовать как для подключения обычных клиентов, так и для передачи голосового трафика между несколькими серверами Asterisk. Для сопряжения с «традиционной телефонией» имеются аналоговые (FXO, FXS) и цифровые модули расширения (E1, T1). С помощью Asterisk вы сможете реализовать проект любого масштаба — от простого домашнего сервера голосовой почты до телефонного сервера предприятия с функциями IVR (Interactive Voice Response — система голосовых меню).
Сегодня мы рассмотрим простой пример установки и настройки сервера Asterisk для работы с несколькими пользователями.
Можно ли на него посмотреть?
Думаю, что после знакомства со списком возможностей (а это более 70 позиций) у вас возникло желание как можно быстрее взглянуть на Asterisk своими глазами. Спешу вас обрадовать — посмотреть на Asterisk без его установки можно! Для этого воспользуйтесь специальным LiveCD, образами сетевой загрузки для PXE-совместимой сетевой платы или карты CompactFlash [3].
Однако, если вы считаете LiveCD или другие способы «знакомства» излишними, можете сразу перейти к инсталяции, только предварительно давайте разберемся, что именно мы будем устанавливать.
Каким бывает Asterisk
Существует две версии Asterisk — HEAD и STABLE. Первая — версия для разработчиков и «продвинутых» пользователей. Все новые возможности первоначально добавляются именно в HEAD. Версия STABLE, напротив, содержит только проверенные и отлаженные компоненты и модули. В ней функциональность заведомо приносится в жертву стабильности и надежности. Сильно расстраиваться по этому поводу не стоит — немного терпения и все самое «модное» из HEAD плавно перейдет в STABLE.
Итак, для начинающих пользователей, желающих максимально быстро получить работающее и проверенное решение, рекомендуется использовать STABLE-версию. (Её же в силу простоты мы будем описывать в статье.)
Если же вы собираетесь принять участие в процессе разработки Asterisk или просто хотите всегда использовать все самое последнее и новое — устанавливайте версию HEAD.
Процесс установки. Что нам стоит «*» построить
Asterisk является свободно распространяемым продуктом для платформы. Рекомендуемый способ установки — компиляция из исходных кодов. (Существуют бинарные пакеты для Redhat/Fedora, Debian, а также ebuild для Gentoo, правда, как правило, более старой версии по сравнению с тем, что доступно на сайте.) Однако прежде чем что-либо компилировать, необходимо получить исходный код Asterisk. Сделать это можно двумя способами:
n Скачать tarball с официального сайта [1].
n Загрузить исходный код с CVS-сервера проекта.
Первый способ достаточно прост, и вряд ли он вызовет какие-то проблемы, поэтому при установке Asterisk воспользуемся вторым способом. К тому же, если вам потребуется установить HEAD-версию, вам просто придется использовать CVS. (Для Asterisk основной веткой CVS является HEAD, поэтому для загрузки STABLE-версии необходимо указать ревизию (-r v1-0).) Процесс компиляции для обеих веток абсолютно одинаков, поэтому все, что написано далее, применимо и для HEAD, и для STABLE.
Итак, нам понадобятся 3 модуля: zaptel — модуль аналоговой телефонии, libpri — модуль цифровой телефонии, и сам Asterisk. Для загрузки модулей с сервера CVS выполните следующие команды:
# cvs login # введите пароль anoncvs
# cvs checkout -r v1-0 zaptel libpri asterisk
После выполнения последней команды в /usr/src будут созданы соответствующие подкаталоги. Процесс установки достаточно прост — необходимо поочередно зайти в каждый из каталогов и выполнить команды make clean и make install:
# make clean install
# make clean install
# make clean install samples
Последняя команда не только скомпилирует и установит Asterisk, но и скопирует стандартные файлы конфигурации в /etc/asterisk. Вообще установочный скрипт копирует файлы в 3 основных каталога:
n /etc/asterisk — расположение конфигурации;
n /usr/lib/asterisk/modules — место хранения модулей Asterisk;
n /var/lib/asterisk/ — здесь находятся дополнительные файлы asterisk (звуки, agi-скрипты, картинки и т. д.).
Сам же исполняемый файл обычно помещается в /usr/sbin/asterisk.
Для проверки правильности установки выполним следующую команду:
Если все нормально, то мы увидим несколько экранов пока еще непонятной для нас информации, заканчивающейся приветствием командного интерфейса Asterisk (см. рис. 1).
Рисунок 1. Консоль Asterisk
Не вдаваясь в подробности, напишем в консоли stop now и перейдем к более детальной настройке.
Чего же мы хотим?
Прежде чем приступить к редактированию конфигурационных файлов Asterisk, давайте определим, что же именно мы хотим от него получить. Итак, нам необходимо:
n Обеспечить возможность разговора абонентов по IP (SIP).
n Создать персонифицированные голосовые ящики (с автоматической отсылкой голосовых сообщений на e-mail).
n Настроить «перехват», передачу и парковку звонков.
С задачей вроде бы определились, поэтому, не откладывая дела в долгий ящик, приступим к ее выполнению.
А ты меня слышишь?
Первое, что мы сделаем с нашим сервером, — научим его обслуживать внутренние звонки. Начнем с редактирования файла /etc/asterisk/sip.conf. Убедимся, что в секции general присутствуют следующие строки:
В первой строке мы определяем контекст, в который будут попадать все входящие звонки. Во второй строке мы запрещаем неавторизованный доступ к нашему серверу, что особенно важно в случае, если Asterisk будет доступен из Интернета. В двух последующих строках мы задаем порт и интерфейс, на котором ожидаем запросы SIP-клиентов.
Теперь несколько слов о самих клиентах — они могут быть как программными (приложение на компьютере), так и аппаратными (автономное устройство, реализующее один из протоколов Asterisk). Для первого знакомства с Asterisk нам вполне хватит возможностей программных клиентов. Наиболее известные из них: X-Ten X-Lite, sjPhone, FireFly, MS Messenger, kPhone. Возможности этих программ лучше всего сравнивать, представив их в виде таблицы (см. таблицу 1).
Таблица 1. Сравнениваем возможности программных клиентов SIP
Источник