Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
Новости
Последние поступления
Книжный магазин
  Hardware:
Видеоустройства
Системные платы
Процессоры
Мобильные устройства
Аудиосистема
Охлаждение системы
Накопители информации
КПК и ноутбуки
Телефоны и связь
Периферия
Система
Сети
Разные устройства
 
  Programming:
Web-разработка
Языки программирования
Технологии и теория
Разработка игр
Программная инженерия
 
  Software:
Операционные системы
Windows 7
Базы данных
Обзоры программ
Графика и дизайн
   
  Life:
Компьютерная жизнь
Разные материалы
   
Партнеры
Публикация
Правовая информация
Реклама на сайте
Обратная связь
Экспорт в RSS Экспорт в RSS2.0
    Читать в Яндекс.Ленте



Asterisk – система компьютерной телефонии уровня предприятия

Раздел: Hardware / Телефоны и связь @ 18.03.2009 | Ключевые слова: asterisk телефония версия для печати

Автор: iv1
Источник: habrahabr

Я хочу рассказать о свободном решении для компьютерной телефонии от компании Digium™.
Asterisk™ – это ATC созданная хакерами (в первоначальном смысле этого слова), а точнее, это супер конвергентная платформа компьютерной телефонии, распространяемая по лицензии GNU GPL, изначально разрабатываемая Марком Спенсером (Mark Spenser), позже ставшим президентом и техническим директором компании Digium. Благодаря коммерческой поддержке Его компании и лицензии GNU GPL Asterisk активно развивается и поддерживается тысячами людей со всей планеты.


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 Не нужна
MP3

GSM – безусловно, самый любимый кодек Asterisk.

Видео кодеки


Asterisk может работать как с аналоговыми линиями (FXO/FXS модули), так и цифровыми (ISDN BRI и PRI — потоки Т1/E1). С помощью компьютерных плат (наиболее известными производителями которых являются Digium, Sangoma, OpenVox, Rhino, AudioCodes) Asterisk можно подключить к высокопропускным линиям Т1/E1, которые позволяют работать с десятками и сотнями телефонных линий. По материалам Википедии

Asterisk работает с ОКС-7 (Общеканальная сигнализация №7, в Европе известной как SS7 – Signaling System №7) — это набор сигнальных телефонных протоколов, для организации мультисервисной (интеллектуальной) сети.

Презентация освещающая работу с SS7 с astricon.net Автор Мэттью Фредриксон (Matthew Fredrickson)An introduction to SS7 and its support in Asterisk — pdf


Важные моменты для выбора

Производительность 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


Asterisk в базовой комплектации включает три основных пакета доступных к загрузке на официальном сайте:
  • Сам Asterisk, доступна версия 1.6.0.6;
  • Драйверы телефонии DAHDI – акроним Digium Asterisk Hardware Device Interface, бывший zaptel + DAHDI Tools;
  • PRI – библиотеки Libpri.
ссылки на 32-bit версии, но доступны и 64–bit

Если планируется использовать только VoIP, то достаточно пакета Asterisk, но рекомендуется установить все пакеты.

Дополнительно, можно установить

  • Asterisk GUI 2.0;
  • Modules and addons, содержит модули для работы с 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.
Скриншоты можно посмотреть на официальном сайте.

Особой популярностью и любовью пользуется дистрибутив Trixbox — это программный комплекс, основанный на CentOS и Asterisk, основной задачей которого является создание в кротчайшие сроки сервера IP телефонии.
На данный момент доступна версия 2.6.2. Этапы установки можно подсмотреть на сайте voiceip.com.ua.

Продолжим


Загружать статью общими вопросами установки и настройки Asterisk не буду, тем более, что в сети есть замечательные статьи, подробно рассказывающие о каждом из этапов. Не смотря на то, что статьи написаны 3 – 4 года назад, поверьте, они не теряют своей актуальности, не спорю, версии сменились с 1.2 аж до 1.6, сменилось даже название телефонного драйвера и функционал существенно расширился, но Вас это не должно пугать.

Моя рекомендация – MUST READ:


Статьи о 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)

И изменились пути:
  • Системный файл конфигурации был переименован из /etc/zaptel.conf в /etc/dahdi/system.conf
  • Утилита dahdi_cfg теперь может использоваться для выбора эхо-подавителя для каждого из канала или группы каналов на основании настроек из файла конфигурации: system.conf; Полный перечень изменений на svn-транке разработчиков или по-русски на сайте voip.rus.net.

Asterisk: организуем автоматическое распределение поступающих вызовов – рассматриваются вопросы организации очереди обработки вызовов, так необходимой в службах работающих с клиентами. Автор Сергей Яремчук

Марк Спенсер: «Это Asterisk привлекает пользователей к Linux, а не наоборот!»
Интервью с Марком Спенсером 2006 год, текст: Дмитрий Шурупов, фото: Йон Холл

Вопросы безопасности Asterisk обсуждаются в статье Безопасный Asterisk Автор Максим Литницкий — ПРОШУ УДЕЛИТЬ ЭТОМУ БОЛЬШОЕ ВНИМАНИЕ

К сожалению, в статьи по разным причинам, не вошли важные аспекты Asterisk, поэтому попробую обратить Ваше внимание на них.

AGI, EAGI, DeadAGI и FastAGI


Asterisk Gateway Interface (AGI) – это шлюзовой интерфейс посредством которого внешние программы(сценарии) могут влиять на логику диалплана Asterisk. Сценарии AGI (по аналогии с CGI для http серверов) могут быть написаны практически на любом языке программирования, взаимодействуют с Asterisk посредством описателей файлов STDIN (стандартный ввод), STDOUT(стандартный вывод) и STDERR(стандартная ошибка) и реализуют расширенную логику работы с БД и внешними ресурсами.
EAGI – это AGI, который помимо всего дает возможность сценарию читать входящий аудиопоток, к примеру, для нужд распознавания речи.
DeadAGI – это AGI который корректно исполняется для «мертвого» — разъединенного канала.
FastAGI – позволяет запустить удаленный AGI сценарий через TCP сокет – это уменьшает нагрузку системы и перекладывает её на другой сервер, к примеру, множество серверов Asterisk, могут использовать единые AGI – сценарии.

Наиболее популярными языками программирования для AGI являются Perl, Python и PHP.
Скажу только, то, что для этих и других языков программирования существуют “обёртки” – фрэймворки, позволяющие абстрагироваться от логики запрос-ответ AGI и программировать на более высоком уровне абстракции.

AMI


Asterisk Manager Interface (AMI) – это программный интерфейс, позволяющий соединиться с Asterisk через TCP/IP и полностью контролировать Asterisk, используется для связи c CRM–системами [http://ru.wikipedia.org/wiki/CRM]].

AJAM


Aynchronous Javascript and XML (AJAM) – доступен с Asterisk версии 1.4, предоставляет web-браузеру или любому другому приложению связаться с AMI через HTTP. Используется в web–based GUI для Asterisk плюс в том, что он использует библиотеку Prototype, что избавляет разработчиков от многих кросбраузерных проблем.

Интеграция с Базами Данных


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

Asterisk архитектуры реального времени

Это метод хранения конфигурационных файлов не в файловой системе, а в таблицах Базы Данных. Существуют два типа архитектур реального времени:
  • Статическая – аналогична методу хранения в конфигурационных файлах, но чтение данных происходит из БД и любое изменение опций конфигурации влечет за собой необходимость перезагрузки сервера Asterisk;
  • Динамическая – используется для хранения конфигураций файлов SIP, IAX2, голосовой почты и загружает данные по необходимости и соответственно не требует перезагрузки.
Подробный материал [ru] и [en – оригинал].

Хранение файлов CDR в Базе Данных


Call Detail Records (CDR) – файл записи параметров вызовов прошедших через систему. Asterisk позволяет хранить CDR файлы в: Важная часть диалплана, обеспечивающая ему мощь и динамичность – это func_odbc, она позволяет создавать и применять в диалплане функции извлечения и использования информации из БД.

IVR


Interactive Voice Response (IVR) – это уже неотъемлемая часть любой платформы и бизнеса занимающимся обслуживанием клиентов. Стоимость коммерческих IVR систем (Avaya, Cisco, Genesys, Nortel или Dialogic) достаточна, высока, а Asterisk просто создан для этого.
К сожалению, русского женского голоса для Asterisk нет (бесплатного). После инсталляции Asterisk говорит с нами голосом Эллисон Смит (Allison Smith) — это порядка 300 промтов, плюс еще 600 в дополнении asterisk–sounds.

Доступен текстовый перевод голосовых промтов для Asterisk версий 1.4, 1.6 А также мужской русский голос от romik_g для Asterisk 1.4.

Если Вы решитесь самостоятельно записать промты, то основное требование – это нормализация записей до -3дБ с паузами в начале и завершении записи. Для конвертации аудио файла используется утилита SoX (Sound eXchange).

Однако, системы IVR – это “не только ценный мех” и DTMF, но и системы Automatic Speech Recognition(ASR – системы распознавания речи) и Text–to–speech(TTS) движки речевого воспроизведения. Правда, с русским тут пока туго.
Но знать должны: Не могу не сказать про, замечательный пример применения всего этого — ZoIP от Симона Дитнера (Simon Ditner). Это порт популярной игры Zork c механизмом полной поддержки речи, работающим на Asterisk.

Видео и Asterisk


Ссылки по работе с Видео в Asterisk [ru] и [en – оригинал].

Интересный ресурс sip.fontventa.com, жаль, что последнее обновление 19 января 2007 года, содержащий исходный код библиотеки для работы с протоколом H.324 использующимся в UMTS 3G видео звонках.

DUNDi™


Distributed Universal Number Discovery(DUNDi), создан Марком Спенсером – “это одноранговая система для поиска интернет–шлюзов в сервисы телефонии, является полностью распределенным и вообще не имеет никакой централизованной службы”. В некотором роде – это протокол маршрутизации для VoIP.
DUNDi – позволяет запрашивать у равноправных участников сети альтернативный VoIP маршрут к добавочному номеру или телефонному номеру ТфОП. DUNDi можно использовать как в локальной сети – для упрощения управления добавочными номерами в системах Asterisk крупной компании, так и в глобальной сети, но тут для доступа нужно подписать Общее Пиринговое Соглашение (General Peering Agreement — GPA), его также можно найти в подпапке исходного кода doc/. GPA имеет обязательную юридическую силу, для защиты участников сети от людей злоупотребляющих протоколом.

Для изучения рекомендую статью How to use DUNDi to distribute calls among the DUNDi Peering Network.

Подробности — это темы будущих статей.



Книги


1[en] Asterisk: The Future of Telephony, Авторы: Jim Van Meggelen, Jared Smith, Leif Madsen
или на books.google.ru
[ru] к сожалению, книга вышла не так давно но все ж и за это БОЛЬШОЕ СПАСИБО!
Можно заказать на books.ru в 2-х вариантах: Свободный перевод глав книги Asterisk: The Future of Telephony
(Максим, чтоб мы без тебя делали ;)

[в последний момент нашел ru] Asterisk: будущее телефонии — DRAFT-copy

[en] trixbox Without Tears The Dumb-Me guide — свободна для скачивания

Видеоматериалы


[en]Free Video Tutorials for trixbox FreePBX and Asterisk Systems

Информационные ресурсы


Форумы (малый список)


Магазины (малый список)


Для интересующихся вопросами сертификации и лицензирования телекоммуникационных платформ, прошу на форум Астериск и сертификация, где i1 – Ваш покорный слуга.

Официальный mailing lists для тех, кому интересен Asterisk.

Это интересно:








версия для печатиРаспечатать статью


Вернуться в раздел: Hardware / Телефоны и связь


Реклама:
Читать наc на:

Add to Google
Читать в Яндекс.Ленте






Rambler's Top100
© Copyright 1998-2012 Александр Томов. All rights reserved.