Содержание:
Глава 2 Подготовка системы к установке Asterisk 7
Глава 3. Установка Asterisk 15
Глава 4 Исходная конфигурация Asterisk 23
Примечания 138
Asterisk: The Future of Telephony Second Edition Jim Van Meggelen, Leif Madsen, and Jared Smith Asterisk™: будущее телефонии, 2-е издание. - Пер. с англ. - СПб: Символ-Плюс, 2009. - 656 с., ил. ISBN13: 978-5-93286-128-8 ISBN10: 5-93286-128-2
Asterisk - система телефонии, обладающая такими фантастическими возможностями, о которых обычная офисная коммутируемая АТС может только мечтать. Голосовая почта, конференц-связь, очереди вызовов и агенты, музыка во время ожидания и парковка вызовов - это лишь часть функций, обеспечиваемых Asterisk. Описать в одной книге всю функциональность этой необыкновенно гибкой системы невозможно, но вы получите исчерпывающее представление о базовых функциях Asterisk. А проявив свои творческие способности, вы сможете создать офисную АТС, настроенную целиком под ваши нужды с учетом абсолютно всех требований пользователей.
O'REILLY®
Asterisk™: будущее телефонии
Второе издание
Джим Ван Меггелен, Лейф Мадсен и Джаред Смит
Санкт-Петербург - Москва
Джим Ван Меггелен, Лейф Мадсен, Джаред Смит
Перевод Н. Шатохиной
Главный редактор А. Галунов
Зав. редакцией Н. Макарова
Выпускающий редактор Л. Пискунова
Научный редактор А. Бирюков
Редактор Е. Тульсанова
Корректор Е. Бекназарова
Верстка Н. Пискунова
Меггелен Дж, Мадсен Л., Смит Дж.
ISBN13:978-5-93286-128-8 ISBN10: 5-93286-128-2 ISBN 0-596-51048-0 (англ)
© Издательство Символ-Плюс, 2009
Эта книга посвящается Ричу Адамсону
(1947-2006). Спасибо вам за то, что открыли для нас значимость сообщества.
Предисловие
Когда-то давным-давно жил-был мальчик ...и был у него компьютер ...и телефон.
Так все просто начиналось, а к скольким неприятностям это привело! Не так давно дистанционная передача данных и голоса, а также программное обеспечение были коммерческими продуктами и сервисами. Некоторые из них контролировались клубом избранных компаний, создающих технологии, другие - компаниями, использующими продукты для предоставления сервисов. К концу 1990-х годов распространение Интернета сделало дистанционную передачу данных общедоступной. Цены упали. Возникли новые прогрессивные технологии, сервисы и компании. В то же время появилась полностью открытая программная платформа Linux (или GNU/Linux), ставшая результатом трудов пионеров-создателей свободного программного обеспечения Ричарда Столлмана (Richard Stallman), Линуса Торвалдса (Linus Torvalds) и многих других. Тем не менее голосовая связь хоть и была повсеместно распространенной, но по-прежнему оставалась коммерческой. Почему? Может быть, потому, что голосу в старой телефонной сети общего пользования не хватало очарования и блеска многообещающей новой глобальной сети связи. Или, возможно, потому, что телефон просто не мог так же эффективно обеспечить развлечение для взрослых. Какой бы ни была причина, одно оставалось очевидным: телефонная связь с открытым исходным кодом была распространена практически так же широко, как и защищенное от несанкционированного копирования ПО с открытым исходным кодом.
Востребованность (а в некоторых случаях просто дешевизна) - действительно двигатель прогресса. В 1999 году, когда я основал компанию Linux Support Services (Служба поддержи Linux) с целью предложить бесплатную и коммерческую техническую поддержку для Linux, мне понадобилась (или, по крайней мере, мне так казалось) телефонная система для обеспечения круглосуточного обслуживания клиентов. Идея заключалась в том, что люди смогут звонить, вводить идентификационную информацию пользователя и оставлять сообщение. В свою очередь, система отправляла бы сообщение на пейджер техническому специалисту, что обеспечивало бы ответ на запрос клиента в максимально короткие сроки. Поскольку стартовый капитал моей компании был около $4000, я не мог позволить себе приобрести телефонную систему, которая могла бы обеспечить реализацию задуманного сценария. Будучи пользователем Linux с 1994 года и уже занимаясь разработкой ПО с открытым исходным кодом, поучаствовав в проектах l2tpd, Gaim и cheops и не имея никого, кто мог бы объяснить сложность подобной задачи, я решил, что просто создам собственную телефонную систему, позаимствовав оборудование в компании Adtran, где проходил стажировку. Я фантазировал, что, сумев передать телефонный вызов в компьютер, смогу делать все что угодно. Кстати, из этого предположения был выведен официальный девиз Asterisk (у любого достаточно большого и значимого проекта должен быть девиз):
Это только программа! Хорошо это или плохо, но я всегда мыслил глобально. С самого начала я задумывал Asterisk как систему, которая сможет делать все в телефонии. Имя Asterisk было выбрано потому, что это одновременно и кнопка *, которая есть на любом обычном телефоне, и символ подстановки "все" в Linux (например, rm -rf*).
Итак, в 1999 году я создал бесплатную платформу для телефонной связи, которую выложил в Сети, и продолжил зарабатывать на жизнь, оказывая техническую поддержку Linux. Однако к 2001 году по мере спада экономики стало очевидным, что компания Linux Support Services была бы более прибыльной, если бы мы занимались исключительно Asterisk, а не общей технической поддержкой Linux. В тот год мы познакомились с Джимом Диксоном (Jim Dixon) по прозвищу Dude, создателем проекта телефонной связи Zapata. Его восхитительный труд был фантастическим дополнением к Asterisk и предоставил нам бизнес-модель для начала более целенаправленной работы над Asterisk. После создания вместе с Dude нашей первой интерфейсной PCI-платы для телефонной связи стало очевидным, что Linux Support Services не лучшее название для телефонной компании. Мы решили назваться Digium (но это совсем другая история, и об этом трудно рассказать). С началом распространения технологии VoIP (Voice over IP - передача голоса по IP-протоколу), с революционным переходом от старых коммутируемых сетей к новым сетям на базе IP-протокола все изменилось.
Итак, как мы уже говорили, большинству людей телефоны явно не кажутся чем-то впечатляющим. Конечно, очень немногие могли разделить мой восторг от гудка, зазвучавшего в телефоне, подключенном к ПК. Однако те, кто действительно проникся этим чувством, на самом деле "заболели" телефонами. И с помощью Интернета эти несколько человек смогли теперь объединить свои усилия и воплотить свою одержимость в обычный практический проект на пользу людям. Сказать, что индустрия связи созрела для решения с открытым исходным кодом, все равно что ничего не сказать. Телекоммуникации имеют громадный рынок из-за повсеместной востребованности телефонов на работе и в личной жизни. Непосредственный рынок сбыта телекоммуникационных продуктов имеет аудиторию, обладающую знаниями в сфере высоких технологий и желающую и способную внести свой вклад в ее развитие. Люди требуют безгранично настраиваемых решений. Подобные решения для коммерческой телефонной связи очень дорогие. Создание Asterisk было просто искрой в этом баке, наполненном бензином.
Asterisk находится на пересечении эпох (коммерческий - > с открытым исходным кодом; коммутируемый -> VoIP; только голос -> голос, видео и данные; цифровая обработка сигналов -> обработка мультимедийных данных на стандартных массовых серверах; централизованный каталог -> одноранговая связь), упрощая переход между ними за счет предоставления обратной совместимости с использовавшимися ранее технологиями. Asterisk поддерживает любые устройства, начиная от телефонов с импульсным набором 1960-х годов и заканчивая самыми современными беспроводными VoIP-устройствами, и обеспечивает любую функциональность, от простой последовательной коммутации до поддержки технологий Bluetooth и DUNDi. Но самое главное, Asterisk является свидетельством того, что сообщество заинтересованных людей и компаний может, объединив усилия, создать проект с поистине безграничными возможностями, что не под силу осуществить одному человеку или компании. Особую благодарность за то, что Asterisk стала реальностью, я хотел бы выразить Линусу Торвальдсу, Ричарду Столлману, всему сообществу разработчиков Asterisk и тому человеку, который придумал Red Bull.
Так каким будет дальнейший путь развития Asterisk? Вспомним историю ПК. Впервые появившись в 1980-х годах, он обладал довольно ограниченными возможностями. Наверное, на нем можно было создать таблицу, набрать текст, в общем, немногое. Со временем, однако, его открытая архитектура привела к снижению цен и появлению новых продуктов, позволяющих постепенно распространять сферу его применения. ПК начал неуклонно вытеснять миникомпьютер, а затем и ЭВМ. Теперь даже суперкомпьютеры компании Cray создаются с архитектурой x86 на базе Linux. Я уверен, что Asterisk ожидает то же самое. Сегодня Asterisk уже обслуживает большую часть телефонии. Кто знает, каких масштабов это достигнет завтра?
Итак, чего вы ждете? Читайте, изучайте и участвуйте в создании будущего открытых телекоммуникаций, присоединившись к революционному движению Asterisk!
- Марк Спенсер
Введение
Эта книга для всех, кто начинает свое знакомство с Asterisk™. Asterisk - это конвергированная платформа для телефонии с открытым исходным кодом, разработанная, главным образом, для выполнения на Linux. Более чем 100-летний опыт телефонной связи позволил создать надежный пакет тесно интегрированных телекоммуникационных приложений. Мощь Asterisk - в ее настраиваемой природе в сочетании с не имеющим аналогов соответствием стандартам. Ни одна другая офисная АТС не предоставляет такие широкие возможности по вариантам ее развертывания.
Такие приложения, как голосовая почта, конференц-связь, очереди вызовов и агенты, музыка во время ожидания и парковка вызовов, - все это стандартные функции, встроенные непосредственно в программное обеспечение. Более того, Asterisk может интегрироваться с другими бизнес-технологиями такими способами, о которых закрытые узкоспециализированные офисные АТС могут только мечтать. Новому пользователю Asterisk может показаться достаточно устрашающей и сложной, поэтому документация так важна для ее роста. Документация облегчает освоение системы и помогает людям увидеть ее возможности.
Выпущенная при поддержке O'Reilly Media, книга "Asterisk: будущее телефонии" была создана под впечатлением от работы, начатой Asterisk Documentation Project. Мы прошли длинный путь, и эта книга является реализацией желания создать документацию, которая представляла бы самые фундаментальные элементы Asterisk: то, что необходимо знать каждому, кто начинает работать с Asterisk. Эта книга - первый том будущей, мы уверены в этом, огромной библиотеки знаний по Asterisk. Эта книга написана для и при участии сообщества разработчиков Asterisk.
Целевая аудитория
Данная книга рассчитана на новичков в Asterisk, но мы предполагаем, что вы хорошо знакомы с основами администрирования Linux, построением сетей и другими ИТ-дисциплинами. Если нет, рекомендуем изучить богатую и замечательную библиотеку книг O'Reilly, посвященных этим вопросам. Также предполагается, что вы практически не знакомы с телекоммуникациями: как с традиционной коммутируемой телефонной связью, так и с новым миром передачи голоса по IP-протоколу.
Структура книги
Данная книга организована следующим образом:
Глава 1. Революция в телефонии
Здесь мы начинаем свой путь к знаниям. Asterisk собирается изменить мир телефонной связи, и в данной главе мы обсуждаем основания нашей веры в это.
Глава 2. Подготовка системы к установке Asterisk
Рассматриваются некоторые технические вопросы, о которых следует помнить при проектировании системы телефонной связи. Большую часть изложенного материала можно пропустить, если не терпится перейти сразу к установке, но данные концепции важно понимать, если вы планируете когда-нибудь вводить систему Asterisk в производственную эксплуатацию.
Глава 3. Установка Asterisk
Рассматривает, как приобрести, скомпилировать и установить Asterisk.
Глава 4. Исходная конфигурация Asterisk
Описывается исходная конфигурация Asterisk. Здесь будут рассмотрены основные конфигурационные файлы, которые должны существовать для описания каналов и функций, доступных вашей системе.
Глава 5. Основы диалплана
Представляет сердце Asterisk - диалплан.
Глава 6. Дополнительные концепции диалплана
Рассматриваются некоторые более сложные концепции диалплана.
Глава 7. Что такое телефония
Отступая от Asterisk, в данной главе мы обсуждаем некоторые наиболее важные технологии, используемые в телефонной сети общего пользования.
Глава 8. Протоколы для VoIP
Продолжая обсуждение традиционной телефонии, здесь мы рассматриваем технологию передачи голоса по протоколу IP.
Глава 9. Шлюзовой интерфейс Asterisk (AGI)
Представляет один из самых удивительных компонентов - шлюзовой интерфейс Asterisk. Используя языки программирования Perl, PHP и Python, мы демонстрируем, как можно с помощью внешних программ вводить практически безграничные функциональные возможности в свою офисную АТС.
Глава 10. Интерфейс Asterisk Manager (AMI) и Adhearsion
Описывается возможность подключения внешних приложений к Asterisk для управления или отслеживания различных аспектов системы. Также в данную главу включено краткое введение в инфраструктуру Adhearsion.
Глава 11. Инфраструктура Asterisk GUI
Инфраструктура Asterisk GUI, появившаяся в Asterisk 1.4, - это среда, с помощью которой веб-разработчики получили возможность создавать графические интерфейсы с минимальным вмешательством в стандартные конфигурационные файлы.
Глава 12. Интеграция с реляционными базами данных
Поэтапно рассматривается настройка Asterisk для работы с базами данных по стандарту ODBC.
Глава 13. Управление системой Asterisk
Обсуждаются вопросы, касающиеся предпочтительных способов управления телефонной системой Asterisk, включая записи CDR, журналы регистрации и приглашения. Глава 14. Попурри
Кратко рассматривается то, что, по сути, можно назвать рогом изобилия богатых и невероятных возможностей и функций, составляющих феномен Asterisk.
Глава 15. Asterisk - будущее телефонии
Предсказывание будущего, в котором телефония с открытым исходным кодом полностью преобразит отрасль, отчаянно нуждающуюся в революционных изменениях. Приложение A. Каналы VoIP
Приложение B. Справочник по приложениям
Приложение C. Справочник по AGI Приложение
D. Конфигурационные файлы Приложение E. Функции диалплана Asterisk
Приложение F. Команды интерфейса Asterisk Manager
Приложение G. Пример func odbc
Программное обеспечение
Основное внимание данная книга уделяет документированию Asterisk версии 1.4; однако многие соглашения и информация в данной книге являются универсальными и не относятся к какой-либо конкретной версии. Для выполнения и тестирования Asterisk мы использовали операционную систему Linux, тяготея к синтаксису Red Hat. Мы решили, что, хотя основанные на Red Hat дистрибутивы, возможно, не являются самыми популярными, тем не менее их компоновка и утилиты хорошо знакомы многим опытным администраторам Linux.
В данной книге действуют следующие соглашения о шрифтовом оформлении: Курсив
Применяется для выделения новых терминов и URL.
Моноширинный шрифт
Предназначен для команд, опций, параметров и аргументов, подставляемых в команды.
Моноширинный полужирный
Обозначает команды или другой текст, вводимый пользователем буквально. Также используется для выделения фрагментов в листингах кода.
Моноширинный курсив
Выделяет текст, который должен быть заменен определяемыми пользователем значениями.
[ Ключевые слова и прочее ]
Показывает необязательные ключевые слова и аргументы. { выбор-1 | выбор-2 }
Обозначает выбор-1 или выбор-2.
Это предупреждения или предостережения.
Так отмечаются подсказки, советы или примечания.
Принятые соглашения
Использование примеров кода
Данная книга призвана помочь вам в вашей работе. Вообще говоря, код из нее вы можете свободно использовать в своих программах и документации. Не надо обращаться к нам за разрешением на использование небольших частей кода, например, при написании программы, в которой применяется несколько блоков кода из этой книги. А вот продажа или распространение CD-ROM с примерами из книг O'Reilly требует специального разрешения. Можно свободно ссылаться на книгу и цитировать примеры кода, но для включения больших частей кода из нее в документацию вашего продукта требуется наше согласие. Будем признательны, но не настаиваем на указании авторства. Обычно ссылка на источник включает название, автора, издателя и ISBN. Например: "Asterisk: The Future of Telephony, Second Edition by Jim Van Meggelen, Leif Madsen, and Jared Smith. Copyright 2007 O'Reilly Media, Inc., 978-0-596-51048-0".
Если вам кажется, что использование вами примеров кода выходит за рамки законного использования или разрешений, оговоренных выше, не стесняйтесь, обращайтесь к нам по адресу permission@oreilly.com.
Safari® Books Online
Если на ооложке книги есть пиктограмма safari® books Online, это означает, что книга доступна в Сети посредством O'Reilly Network Safari Bookshelf. Safari предлагает намного лучшее решение, чем электронные книги. Это виртуальная библиотека, позволяющая без труда находить тысячи превосходных технических книг, копировать и использовать примеры кода, скачивать главы и быстро находить ответы, когда требуется самая точная и свежая информация. Она свободно доступна по адресу http://safari.oreitty.com.