• Введение
  • Целевая аудитория
  • Структура книги
  • Программное обеспечение
  • Принятые соглашения Использование примеров кода
  • Safari® Books Online
  • Контактная информация
  • Благодарности
  • Лейф Мадсен
  • Джаред Смит
  • Глава 1 Революция в телефонии
  • VoIP: наведение мостов между традиционной и сетевой телефонией
  • Проект телефонной связи Zapata
  • Для широкомасштабных изменений необходима гибкая технология
  • Asterisk: офисная АТС, создаваемая хакерами
  • Asterisk: офисная АТС, создаваемая профессионалами
  • Сообщество разработчиков Asterisk
  • Рассылки по Asterisk
  • Википедия об Asterisk
  • Каналы IRC
  • Группы пользователей Asterisk
  • Проект создания документации Asterisk
  • Экономическое обоснование
  • Об этой книге
  • Предисловие

    Когда-то давным-давно жил-был мальчик ...и был у него компьютер ...и телефон.

    Так все просто начиналось, а к скольким неприятностям это привело! Не так давно дистанционная передача данных и голоса, а также программное обеспечение были коммерческими продуктами и сервисами. Некоторые из них контролировались клубом избранных компаний, создающих технологии, другие - компаниями, использующими продукты для предоставления сервисов. К концу 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.

    Контактная информация

    Пожалуйста, направляйте комментарии и вопросы, касающиеся данной книги, издателю: O'Reilly Media, Inc. 1005 Gravenstein Highway North Sebastopol, CA 95472 (800) 998-9938 (в США или Канаде) (707) 829-0515 (международный или местный) (707)829-0104 (fax) Для данной книги создана веб-страница, на которой представлен список опечаток, примеры и другая дополнительная информация. Ее можно найти по адресу

    http://www.oreilly.com/catalog/9780596510480 Вопросы и комментарии по данной книге присылайте по электронной почте:

    bookquestions@oreilly.com Для получения более подробной информации о книгах, конференциях, ресурсах и сети O'Reilly Network посетите веб-сайт издательства: http://www.oreilly.com

    Благодарности

    Прежде всего мы должны поблагодарить нашего фантастического редактора Майкла Лукидеса (Michael Loukides), который давал бесценные отзывы и находил чрезвычайно тактичные способы попросить нас переписать раздел (или главу), когда это было необходимо, и подать это как нашу собственную идею. Майк поддерживал нас, когда у нас опускались руки, и возвращал на землю, когда мы вели себя слишком самонадеянно. Вы мастер, Майк, и видя, как много книг получило ваше редакторское благословение, мы понимаем, почему O'Reilly Media достигло такого успеха.

    Также спасибо Сандерсу Клейнфельду (Sanders Kleinfeld), нашему литературному редактору, Лорел Рума (Laurel Ruma), нашему выпускающему редактору, и всем остальным неназванным героям производственного отдела O'Reilly. Эти ребята взяли нашу книгу и превратили ее в книгу O'Reilly.

    Все сообщество разработчиков Asterisk должно быть благодарно Джиму Диксону (Jim Dixon) за создание первых аппаратных интерфейсов телефонии с открытым исходным кодом, положивших начало революции, и за то, что он полностью передал свое творение сообществу. Спасибо Тиму О'Рейлли (Tim O'Reilly) за предоставленный шанс написать эту книгу.

    Большое спасибо нашим самым благородным и беспощадным рецензентам:

    • Ричу Адамсону (Rich Adamson), президенту Network Partners Inc., за энциклопедические знания технологии PSTN и неустанное желание делиться опытом. Ваше великодушие даже в условиях, когда судьба послала вам ужасное испытание, вдохновляет всех нас[1].

    • Тилгману Лешеру (Tilghman Lesher) за тщательнейшее чтение нашей книги и особое внимание к приложениям B и F, а также за некоторые замечательные новые приложения и функции Asterisk.

    • Эндрю Колсмиту (Andrew Kohlsmith) за помощь в написании раздела главы 14, посвященного хранению голосовой почты по протоколу IMAP.

    • Дэвиду Трою (David Troy) за техническую рецензию, за AstMan- Proxy и за перенос Asterisk на Roomba (первая офисная АТС, выполняемая в пылесосе!).

    • Мэттью Гасту (Matthew Gast), соавтору О'Рейлли, за то, что прочитал нашу книгу от корки до корки и дал нам всеобъемлющую рецензию, а также за работу «T1, The Definitive Guide».

    • Доктору Эдварду Гаю III (Edward Guy III) за исчерпывающие и острые, как бритва, оценки всех до одной глав первого издания и за борьбу за Asterisk.

    • Кристиану Килхофнеру (Kristian Kielhofner), президенту Kris- Companies и создателю AstLinux, за самый лучший дистрибутив AstLinux.

    • Расселлу Брайанту (Russell Bryant) за быстрые и полезные ответы на наши вопросы.

    • Джошуа Колпу (Joshua Colp) за помощь в настройке производительности и ответы на многочисленные вопросы.

    • Кевину Флемингу (Kevin Fleming), который уважаем (осмелимся сказать, любим) всеми за поднятие планки и за мастерство.

    • Брайану Капучу (Brian Capouch) - он рассказывает о том, что возможно, а потом идет и делает это.

    • Стивену Улеру (Stephen Uhler) за успешный перенос Zaptel на Solaris и за предоставление нам ряда бесценных примеров.

    • Джейсону Паркеру (Jason Parker) за то, что он не «чайник».

    • Экке Лу (Ekke Loo) за разгром главы, посвященной базам данных.

    • Яну Дарвину (Ian Darwin) за то, что помог выразить некоторые наши мысли более лаконично, и за вишнево-красный дисковый телефон (который работает с Asterisk!).

    • Джоэлу Сиско (Joel Sisko), генеральному директору iConverged, за ваши всесторонние знания телефонии и электрических монтажных схем.

    Последнее и самое важное спасибо Марку Спенсеру (Mark Spencer) за Gaim (недавно переименованный в Pidgin, www.pidgin.im), Asterisk и DUNDi и за предоставление своих творений сообществу разработчиков продуктов с открытым исходным кодом.

    Джим Ван Меггелен

    Для меня все началось весной 2004 года, когда я сидел за своим столом в отделе технической поддержки телефонной компании, в которой проработал около 15 лет. Не имея возможности применять приобретенные навыки, я проводил время в попытках понять, на что будет похожа оставшаяся часть моей профессиональной деятельности. Телекоммуникационная отрасль перестала быть любимицей инвесторов и превратилась в посмешище, о котором не знал только ленивый. Я должен быть счастлив, что оставался среди тех немногих, у кого еще была работа, но какой неблагодарной, бесцельной была эта работа! Мы понимали, почему наша отрасль разрушилась: продаваемые нами продукты не могли обеспечить решения, необходимые нашим клиентам, даже несмотря на обещания обратного. Им не хватало гибкости, и их стоимость абсолютно не соответствовала той функциональности, которую они предлагали (или, точнее, не предлагали). И не было никаких признаков того, что в ближайшем будущем что-либо изменится. Долгие годы я мечтал об офисной АТС с открытым исходным кодом, но на самом деле не представлял, как такое возможно, и отказался от этой идеи несколькими годами раньше. Я знал, что для достижения успеха офисная АТС с открытым исходным кодом должна была бы эффективно объединить миры традиционной и сетевой телефонии. Но мне никогда не удавалось найти что-либо, пригодное для реализации этой задачи.

    Как-то раз в один замечательный весенний день я без особого энтузиазма выполнил поиск в Google по фразе «телефония с открытым исходным кодом» и обнаружил блестящее будущее телефонии: Asterisk, офисную АТС с открытым исходным кодом на базе Linux[2]. Это было оно - то самое, о чем я мечтал так много лет. Я понятия не имел, каким образом собираюсь принять участие в этом, но знал: телефония с открытым исходным кодом приведет к необходимой и благотворной революции в телекоммуникационной отрасли и так или иначе я буду ее частью.

    Для меня, скорее системного интегратора, чем разработчика, необходимо было найти способ войти в сообщество. Недостатка в разработчиках не было, но был очевидный недостаток в документации. Здесь, казалось, я мог помочь. Я знал, как писать, я знал офисные АТС, и я отчаянно хотел поговорить об этом чуде, которое вдруг сделало телефонию снова интересной.

    Даже если мой вклад в эту книгу совсем невелик, надеюсь, вы ощутите мое восторженное отношение к телефонии с открытым исходным кодом. Это удивительный дар, но также и невероятная ответственность. Потрясающий вызов. Грандиозный шанс. Бесподобное удовольствие! Прежде всего я должен поблагодарить Лейфа и Джареда за приглашение участвовать в Asterisk Documentation Project. Работать с вами было огромным удовольствием, и я не устаю удивляться, как замечательно наши личностные качества и навыки дополняют друг друга. Поистине гармоничная группа, не так ли? Также спасибо Фигменту (Figment) за набор текста.

    Моей жене Килли (Killi) и детям Кааре (Kaara), Джунасу (Joonas) и Джузепу (Joosep) (которые не забывали навещать меня, если я пропадал в своей подземной берлоге слишком надолго): вы источник вдохновения для меня. Ваша любовь - это то, что не дает моему огню погаснуть, и я благодарен вам.

    Несомненно, я должен поблагодарить моих родителей, Джека (Jack) и Мартини (Martiny), за их неизменную веру в меня независимо от того, как много правил я нарушил. Через несколько лет мои дети подрастут - тогда придет ваш черед смеяться!

    Марку Спенсеру: спасибо за все, за что вам благодарны все остальные, но также лично от меня спасибо за то время, которое вы великодушно отдаете сообществу разработчиков Asterisk. Группа пользователей Asterisk Toronto (http://www.taug.ca) сделала качественный скачок вперед после вашего выступления, и это событие навсегда останется частью нашей истории. О да, и спасибо за пиво. :-)

    Наконец, спасибо сообществу разработчиков Asterisk. Эта книга - наш подарок вам. Надеемся, вы будете читать ее с таким же удовольствием, с каким мы писали ее.

    Лейф Мадсен

    Дорога к этой книге была долгой, на ее создание ушло около трех лет. Когда я начал использовать Asterisk, вероятно, как и вы, я ничего не знал о ней, знал очень немного о традиционной телефонии и даже еще меньше о Voice over IP. Я с головой окунулся в этот новый и волнующий мир и вбирал все, что мог. В течение двух месяцев практики, когда я не мог быстро определиться, чем буду заниматься, я впитывал максимум знаний, задавая вопросы, пробуя и открывая возможности системы. К сожалению, не было практически никакой документации по Asterisk. Мне удалось лишь отыскать примеры диалплана Джона Тодда (John Todd) и получить ответы на вопросы от Брайана К. Веста (Brian K. West) в IRC. Конечно, так не могло долго продолжаться. Не будучи хорошим кодировщиком, я искал другие способы пригодиться сообществу. А что кодировщики не любят больше всего? Документацию! Так я начал работу над The Asterisk Documentation Assignment (TADA), базовым конспектом с небольшим объемом информации для начала книги.

    Вскоре после опубликования этого труда на своем веб-сайте я получил письмо от очень смышленого парня по имени Джаред Смит. Он тоже жаждал создать для сообщества «бумажную» книгу, и мы с замиранием сердца запустили проект Asterisk Documentation Project. Джаред создал простой веб-сайт по адресу http://www.asteriskdocs.org, CVS- сервер (Concurrent Versions System - система контроля версий) и выложил самую первую версию книги в формате DocBook для Asterisk. С этого момента мы начали сбор информации, и вскоре в этот процесс включились члены сообщества.

    В июне 2004 года в рассылках стал появляться энергичный малый по имени Джим Ван Меггелен. Он присылал массу информации и документации. Несомненно, именно такого парня не хватало нашей команде! Джим обладал видением и энергией, которые расшевелили нас с Джаредом и заставили взяться за что-то более великое. Джим принес с собой годы опыта и талант писателя, о которых мы не могли даже мечтать.

    Сформировав ядро команды по созданию документации, мы приступили к выполнению плана по написанию книг по Asterisk, которые в конечном итоге образуют полную библиотеку и богатый источник информации. Фактически данная книга - начало реализации этой мечты. Прежде всего я должен поблагодарить своих родителей, Рика (Rick) и Кэрол (Carol), за то, что они всегда поддерживают мои начинания, позволяя реализовывать мои мечты, и всегда ставят мои нужды превыше собственных. Без их видения, понимания и проницательности было бы невозможно достичь того, чего я достиг. Я очень люблю вас обоих! Хотел бы выразить благодарность Феликсу Карапаике (Felix Carapaica) и Биллу Фаркасу (Bill Farkas) из Шериданского института технологий за их преданность продвижению знаний. Они дополнили мои предыдущие знания и чрезвычайно расширили мои представления о маршрутизации и о телекоммуникациях.

    Хотелось бы отметить очень многих, но особенно важную роль сыграли и продолжают играть, оказав наибольшее влияние на формирование моего понимания Asterisk, Джошуа Колп, Тилгман Лешер, Рассел Брайант, Стив Мерфи (Steve Murphy), Олли Йоханссон (Olle Johansson), Стивен Сокол (Steven Sokol), Брайан К. Вест, Джон Тодд и Вильям Саф- филл (William Suffill) (спасибо за мой самый первый VoIP-телефон, которым я пользуюсь до сих пор!). И всем тем, кого я обещал упомянуть в книге... спасибо!

    И конечно, спасибо Джареду Смиту и Джиму Ван Меггелену за видение и понимание всей важности документации. Все это было бы невозможным без вас.

    Джаред Смит

    Впервые я занялся Asterisk весной 2002 года. Незадолго до этого я устроился работать в компанию, занимающуюся исследованием рынка, и поехал в длительную командировку к удаленному центру телефонного обслуживания вместе с директором по информационным технологиям. По дороге домой мы долго говорили о нововведениях в телефонии, и он упомянул, что слышал о небольшом проекте телефонной связи с открытым исходным кодом под названием Asterisk. Через несколько месяцев мне удалось уговорить компанию купить комплект разработчика от Digium, и я начал упражняться с Asterisk в рабочее время.

    За несколько месяцев я с головой ушел в сообщество разработчиков Asterisk. Я читал рассылки. Я перерыл архивы. Я висел в IRC-канале просто в надежде отыскать хоть какие-то крупицы сведений об Asterisk. Время шло, и я наконец приобрел достаточные знания, чтобы наладить Asterisk.

    Вот тут началось настоящее веселье.

    С помощью и при одобрении директора по информационным технологиям мы вынашивали планы перевести всю нашу инфраструктуру телефонной связи на Asterisk, включая офис компании и все удаленные центры телефонного обслуживания. В ходе работы мы натыкались на массу неведомых до тех пор проблем, и я начал подумывать о создании хорошего хранилища знаний по Asterisk. При этом нам удалось сделать несколько настоящих открытий, таких как объединение каналов IAX! В конечном счете мы получили около сорока серверов Asterisk, рассредоточенных географически в разных местах, взаимодействующих друг с другом, образуя единую систему телефонной связи VoIP класса предприятия. Эта система в настоящее время обрабатывает примерно 1 млн минут звонков ежемесячно, обслуживает несколько сотен сотрудников, соединяется с 27 голосовыми линиями T1 и экономит для компании около $20 000 (США) каждый месяц на затратах на телефонную связь. Короче говоря, наш проект Asterisk имел ошеломительный успех! Работая над реализацией этого проекта, где-то в IRC-каналах я познакомился с Лейфом. Мы поговорили о том, как могли бы помочь новым пользователям Asterisk и облегчить переход к этой системе, и решили настойчиво работать над планами по созданию более полной документации Asterisk. Я действительно хотел выпустить хорошую документацию в «бумажном» варианте, по сути, книгу, по которой новичок мог бы научиться основам Asterisk. Примерно в то же время чрезвычайно возросло количество новых пользователей в рассылках Asterisk и IRC- каналах, и мы почувствовали, что написание книги по Asterisk могло бы сильно улучшить соотношение количества полезной информации и «шелухи» в группе новостей. Так был рожден проект Asterisk Documentation Project! Все остальное, как говорится, уже история.

    С тех пор я занимаюсь написанием документации Asterisk. Никогда не думал, что это настолько трудно, но в то же время полезно. (Мы с Лейфом и Джимом шутим, что, наверное, проще было бы написать исчерпывающий том под названием «Религия, контроль над оружием и суши», чем достаточно детально охватить все, что предлагает Asterisk!) То, что вы видите здесь, - прямой результат многих затягивавшихся до глубокой ночи посиделок и долгих выходных, проведенных на благо сообщества разработчиков Asterisk. Тем не менее это самое малое, что мы могли сделать, учитывая то, что Asterisk дала нам. Надеемся, эта книга вдохновит других членов сообщества разработчиков Asterisk на участие в доработке документации, внесении изменений и новых функций на благо всем.

    Теперь время выразить благодарность.

    Прежде всего хотел бы поблагодарить мою красавицу жену за те многие одинокие вечера, которые она провела, когда я корпел за клавиатурой. Я хотел бы, чтобы она знала, как я благодарен ей и как сильно ценю ее бесконечную поддержку. Также хочу сказать спасибо своим детям за то, что они никогда не дают мне забыть о самом важном в жизни. Я люблю вас!

    Спасибо моим родителям за все, что они сделали, помогая мне расти, развиваться и учиться все эти годы. Вы - лучшие родители, о которых каждый может только мечтать.

    Спасибо Дейву Карру (Dave Carr) и Майклу Ландбергу (Michael Lund- berg) за то, что позволили мне изучать Asterisk в рабочее время. Работать с вами было настоящим удовольствием. Пусть удача улыбается вам и дарует успех во всех ваших начинаниях.

    Спасибо Лейфу и Джиму за то, что выдерживали мои глупые шутки, мое упорство в желании делать все «правильно» и мой сумасшедший график. Спасибо за подстегивание и развитие моих писательских навыков. Мне действительно понравилось работать с вами. Надеюсь на сотрудничество в будущих проектах!

    Спасибо Марку Спенсеру за непрекращающуюся поддержку, самоотверженность и дружбу. Вы были бесценным ресурсом для нашего начинания, и я искренне верю, что вы положили начало революции в мире телефонной связи. Вы всегда желанный гость в моем доме и за моим столом!

    Спасибо всем остальным замечательным ребятам из Digium за помощь и поддержку. Мы особенно благодарны за вашу готовность помочь нам лучше понять код Asterisk и за предоставленное бесплатно оборудование, благодаря чему мы смогли более детально задокументировать комплект для разработчиков Asterisk (Asterisk Developer's Kit). Спасибо Стивену Соколу, Стивену Критчфилду (Steven Critchfield), Олли И. Йоханссону и всем остальным, кто принимал участие в Asterisk Documentation Project и в создании данной книги! Мы не смогли бы ничего сделать без вашей помощи и советов.

    Глава 1 Революция в телефонии


    Для достижения цели не требуется иметь поддержку большинства, достаточно нескольких неистовых и неутомимых борцов, способных разжечь пламя в умах людей. Самюэль Адамс

    Мы являемся свидетелями невероятных революционных событий. Они ожидались уже давно, и теперь, когда процесс начался, ничто не в силах остановить его. Изменения охватили технологическую область, которая сильно отстала от всех остальных отраслей промышленности, объединенных общим названием hi-tech (от англ. high technology - высокая технология). Речь идет о телекоммуникациях, революцию в которых осуществил продукт с открытым исходным кодом для офисной телефонной станции с выходом в общую сеть (Private Branch eXchange, PBX) под названием Asterisk™.

    Телекоммуникации - это, наверное, единственная из высокотехнологичных отраслей, которой не коснулась революция, связанная с появлением открытого исходного кода[3]. Основные производители в этой области по-прежнему создают необоснованно дорогие, несовместимые друг с другом системы, которые используют архаичное и запутанное программное обеспечение и впечатляющее своей инженерной мыслью, но безнадежно устаревшее оборудование.

    Например, Business Communications Manager от компании Nortel каким-то чудом объединяет в себе кнопочный номеронабиратель 15-лет- ней давности и ПК на базе процессора Celeron с частотой 1,2 ГГц[4]. Все это может стать вашим всего за $5000-15 000, не включая стоимость телефонных аппаратов. Если хочется получить какие-то действительно интересные функции, придется доплатить за универсальные приложения с ограниченной функциональностью и закрытым исходным кодом. Настройка? Забудьте о ней - она не входит в функционал системы. Технологии будущего и совместимость со стандартами? Подождите пару лет - над этим работают.

    Все основные производители средств связи предлагают подобные продукты. Производители не хотят обеспечить вам возможность выбора или гибкость, а заинтересованы в том, чтобы потребитель был ограничен рамками жестко фиксированной функциональности их продуктов. Система Asterisk вносит коренные изменения. С Asterisk никто не может диктовать, как должна работать телефонная система или какая технология должна использоваться. Выбирайте любую. Asterisk твердо следует идее совместимости со стандартами, позволяя при этом наслаждаться свободой создания собственных новшеств. Выбор только за вами, Asterisk не накладывает никаких ограничений.

    Однако за такую невероятную гибкость приходится платить: Asterisk не назовешь системой, которую легко конфигурировать. И не потому, что она нелогична, запутанна или непонятна; напротив, она очень разумно сконструирована и удобна в применении. У человека, впервые увидевшего диалплан (рабочую среду) Asterisk и начинающего осознавать его возможности, просто загораются глаза. Но когда есть буквально тысячи способов достижения результата, естественно, процесс требует дополнительных усилий. Наверное, это можно сравнить с постройкой дома: все компоненты по отдельности просты и понятны, но человеку, чтобы выполнить такой проект, придется или a) обратиться за помощью к специалистам, или b) развить у себя необходимые навыки посредством обучения, практики и хорошего справочника по данной теме.

    VoIP: наведение мостов между традиционной и сетевой телефонией

    Хотя передача голоса по IP-протоколу (Voice over IP, VoIP) часто рассматривается как своего рода бесплатная междугородняя телефонная связь, настоящая ценность VoIP в том, что с его помощью голос становится всего лишь обычным приложением в сети передачи данных.

    Кажется, мы забыли о том, что назначение телефона - позволить людям общаться. Это простая цель на самом деле, и мы должны иметь возможность реализовывать ее намного более гибко и творчески, чем это предлагается сейчас. Поскольку отрасль продемонстрировала нежелание стремиться к данной цели, решением задачи занялись энтузиасты.

    Сложность состоит в том, что отрасль, которая практически не изменилась за последние сто лет, не проявляет особого интереса к этому и сейчас.

    Проект телефонной связи Zapata

    Проект телефонной связи Zapata (Zapata Telephony Project) был основан Джимом Диксоном, инженером-консультантом по связи. Его вдохновило невероятное увеличение частот ЦП (центрального процессора), которое в компьютерной отрасли сейчас уже воспринимается как должное. Диксон считал, что при наличии плат, включающих только базовые электронные компоненты, необходимые для взаимодействия с телефонной сетью, можно было бы создать намного более экономичные системы телефонной связи. Дорогие компоненты не нужны, потому что вся цифровая обработка сигнала (Digital Signal Processing, DSP - ЦОС)[5]происходила бы в ЦП под управлением программного обеспечения. При этом нагрузка на ЦП сильно возросла бы, но Диксон был уверен, что низкая стоимость ЦП по сравнению с их производительностью делает их применение намного более привлекательным, чем использование ЦОС, и, что еще более важно, соотношение цена/производительность продолжало бы улучшаться с повышением мощности ЦП. Как все мечтатели, Диксон верил, что эта идея откроется многим и ему просто надо подождать, пока кто-нибудь другой не реализует то, что он видел как очевидное усовершенствование. Но через несколько лет такие платы не только не были созданы, но, казалось, никто и не собирался ими заниматься. Тогда ему стало ясно, что если он хочет совершить революцию, то должен начинать ее самостоятельно. И родился проект телефонной связи Zapata.

    Поскольку эта идея была настолько революционной и, несомненно, вызвала бы большой резонанс в отрасли, я обратился к мотивам революции в Мексике и назвал технологию и организацию по имени известного мексиканского революционера Эмилиано Запата (Emiliano Zapata). Для платы я выбрал имя tormenta, что по-испански означает «буря», и обычно подразумевается сильная буря, например ураган или нечто подобное1. Возможно, нам следовало бы называть себя астеритянами. Мы, конечно, в долгу перед Джимом Диксоном и за то, что он все это придумал, и за то, что довел дело до конца, но прежде всего - за предоставление результатов своего труда сообществу разработчиков продуктов с открытым исходным кодом. Благодаря Джиму появилось ядро коммутируемой телефонной сети общего пользования (Public Switched Telephone Network, PSTN) Asterisk.

    Для широкомасштабных изменений необходима гибкая технология

    Самая успешная в мире малая АТС имеет конструктивное ограничение, об устранении которого пользователи умоляют вот уже в течение 15 лет: при определении того, сколько раз прозвонит телефон, прежде чем вызов будет перенаправлен на голосовую почту, предоставляется возможность выбрать 2, 3, 4, 6 или 10 звонков. Знаете ли вы, сколько человек просили о внесении возможности выбора пяти звонков? Казалось бы, требуется внести простое изменение, но, сколько бы ни просили пользователи, производители не могут понять, что это действительно является проблемой. «Она так работает, - отвечают они, - и пользователям надо просто смириться с этим».

    Другой подобный пример: имя в телефонной книге может быть длиной не более семи символов2. В конце 1980-х, когда эта система разрабатывалась, оперативная память была очень дорогой и хранение семи символов для десятков телефонных аппаратов означало гигантские расходы на оборудование. А какое этому оправдание может быть сегодня? Его нет. Планируется ли изменить ситуацию? Вряд ли, вопрос даже не признан проблемой официально. Это всего два примера, а отрасль изобилует ими.

    Мы рассмотрели одну систему, но реальное положение дел таково, что недостатки есть во всех существующих офисных АТС. Неважно, насколько богатую функциональность предлагает телефонная станция, - учесть все и предвидеть изобретательность пользователя невозможно. Нескольким пользователям может потребоваться маленькая необычная возможность, о которой группа разработки или не подумала или решила не заниматься ею из-за неоправданности затрат на ее разработку, а поскольку код системы закрыт, пользователи не смогут самостоятельно реализовать необходимую функциональность. Если бы всякого рода правила и коммерческие интересы сдерживали развитие Интернета, он никогда не получил бы такого широкого распространения. Открытость Интернета означает, что каждый желающий может поучаствовать в его разработке. В результате совместного труда десятков тысяч умов получен продукт, который не мог бы выйти из стен ни одной корпорации.

    Как и для многих проектов с открытым исходным кодом, таких как Linux и Интернет, импульсом к разработке Asterisk были мечты тех, кто знал, что должно существовать нечто большее, чем предлагается в данной отрасли. Сила сообщества в том, что его составляют не служащие, решающие поставленные перед ними конкретные задачи, а люди из всевозможных областей деятельности с совершенно различным опытом и разным пониманием гибкости и открытости. Эти люди знали: если суметь выделить лучшее, что есть в разных АТС, в отдельные компоненты, которые можно различным образом соединять между собой, подобно блокам LEGO, начнут появляться идеи, которые не прошли бы традиционный в корпорациях процесс анализа рисков. До тех пор пока ни у кого нет полной картины того, как все должно выглядеть, недостатка во мнениях и идеях нет[6].

    Многие люди, впервые сталкиваясь с Asterisk, считают ее незаконченным проектом. Наверное, их можно сравнить с посетителями изостудии, ожидающими увидеть здесь подписанные и пронумерованные репродукции. Часто они разочаровываются, узнав, что Asterisk - это ожидающие их чистый холст, тюбики с краской и новые кисти[7]. Даже на этом раннем этапе, на котором уже удалось достичь успеха, проектом Asterisk занимаются больше мастеров, чем любой другой офисной АТС. В большинстве компаний-производителей над каким- либо продуктом трудятся лишь несколько разработчиков; в разработке Asterisk участвуют очень много людей. Для обслуживания большинства коммерческих АТС во всем мире найдется лишь несколько десятков настоящих экспертов; в случае с Asterisk их сотни.

    Глубина и широта экспертных знаний, вложенных в этот продукт, не имеет аналогов в телефонной отрасли. Asterisk имеет преданных поклонников среди «стариков» из Telco, бывших свидетелями расцвета телефонных аппаратов с дисковыми номеронабирателями, сотрудников крупных телекоммуникационных компаний, которые помнят времена, когда голосовая почта была самой модной новейшей технологией, и специалистов по передаче данных, помогавших создавать Интернет. Все эти люди верят в одно - телекоммуникационная промышленность нуждается в надлежащих революционных изменениях[8].

    Asterisk - это катализатор.

    Asterisk: офисная АТС, создаваемая хакерами

    Телекоммуникационные компании, которые решили игнорировать Asterisk, поступают рискованно. Предоставляемая Asterisk гибкость обеспечивает возможности, о которых лучшие коммерческие системы могут только мечтать, потому что Asterisk - это АТС, созданная хакерами. Если вас попросят не применять слово «хакер», не обращайте внимания. Этот термин не является собственностью средств массовой информации. Они присвоили его и исказили значение, называя так «злонамеренных взломщиков». Пришло время восстановить справедливость. Хакеры разработали механизм передачи данных по сети, то есть Интернет. Хакеры создали Apple Macintosh и операционную систему UNIX. Хакеры работают и над телефонной системой будущего. Не надо пугаться, все они отличные парни и смогут построить систему, намного более безопасную, чем все существующие сегодня. Они не станут создавать ненадежные и легко поддающиеся взлому средства безопасности для закрытых систем, хакеры смогут быстро реагировать на изменение тенденций в обеспечении безопасности и настраивать телефонную систему соответственно политике корпорации и наилучшей практике отрасли. Как и другие системы с открытым исходным кодом, Asterisk сможет развиться в намного более безопасную платформу, чем любая коммерческая система, не вопреки своим хакерским корням, а, скорее, благодаря им.

    Asterisk: офисная АТС, создаваемая профессионалами

    Никогда за всю историю телекоммуникаций не существовало системы, настолько отвечающей нуждам бизнеса в любой ценовой категории. Asterisk - технология, предоставляющая новые возможности, и, как это было с Linux, скоро вряд ли можно будет найти предприятие, на котором не использовалась бы одна из версий Asterisk, хотя бы отчасти, где-то в сети, для решения проблем, которые способна разрешить только Asterisk.

    Однако похоже, что это признание произойдет быстрее, чем было в случае с Linux, по ряду причин:

    • Linux уже проложил путь к признанию открытого исходного кода. Asterisk идет по проторенной дороге.

    • Телефония находится в бедственном положении, ни один из крупных игроков на этом рынке не является лидером. Asterisk же представляется убедительным, реалистичным и впечатляющим проектом.

    • Конечные пользователи уже сыты по горло несовместимыми системами с ограниченной функциональностью и ужасной поддержкой. Asterisk решает первые две проблемы - предприниматели и сообщество обеспечат последнее.

    Сообщество разработчиков Asterisk

    Одна из неоспоримых сильных сторон системы телефонии Asterisk - сообщество энтузиастов, разработавших и поддерживающих его, руководит которым Марк Спенсер, основатель компании Digium. Сообщество остро осознает культурную значимость Asterisk и с упоением смотрит в будущее.

    Самый значимый результат деятельности сообщества разработчиков Asterisk - объединение профессионалов из разных областей: телекоммуникаций, сетевых и информационных технологий, - которые прониклись любовью к этому феномену. Несмотря на традиционную конфронтацию между этими отраслями, в сообществе Asterisk эти специалисты восхищаются способностями друг друга. Важность такого сотрудничества нельзя недооценивать.

    Тем не менее для реализации мечты об Asterisk сообщество должно расширяться. На данный момент одной из основных проблем является быстрый приток новых пользователей. Действительные члены сообщества, положившие начало тому, что называется Asterisk, в общем, рады новым участникам, но обеспокоены тем, что им приходится сталкиваться с вопросами, ответы на которые можно найти самостоятельно, если потратить немного времени на поиски и эксперименты. Очевидно, что все новые участники не могут быть одинаковыми. Кто-то будет рад проводить часы, экспериментируя и читая различные блоги, описывающие чьи-то злоключения и мучения. Но многие из тех, кто проникся этой технологией, совершенно не заинтересованы вести такие поиски. Они хотят иметь простое и понятное пошаговое руководство, которое введет их в курс дела, сопровождаемое некоторыми полезными примерами, где описаны лучшие методы реализации обычной функциональности (такой, как голосовая почта, автосекретарь и пр.). Эксперты сообщества, которые (совершенно правильно) считают Asterisk своего рода языком разработки веб-приложений, не приемлют такого подхода. Для них очевидно, что постичь все тонкости Asterisk можно, только полностью погрузившись в нее. Разве кому-нибудь придет в голову просить пошаговое руководство по программированию и надеяться научиться по нему всему, что предлагает язык программирования?

    Конечно, нет единого подхода, который подошел бы всем. Asterisk абсолютно ни на что не похожа и требует совершенно иного типа мышления. Знакомясь с сообществом, помните, что в нем собрались люди с разными навыками и характерами. Некоторые из этих парней не отличаются особой сдержанностью при общении с новичками, но это лишь потому, что они очень трепетно относятся к предмету, а не потому, что не рады вам.

    Рассылки по Asterisk

    Как и в любом другом сообществе, существуют сайты, где члены сообщества разработчиков Asterisk собираются для обсуждения вопросов, вызывающих всеобщий интерес. Список рассылок можно найти по адресу http:// lists.digium.com. Самыми значительными из них на настоящий момент являются вот эти четыре: Asterisk-Biz

    В этой рассылке представлено все, что касается коммерческой деятельности, связанной с Asterisk. Если вы продаете что-то, связанное с Asterisk, делайте это здесь. Если хотите купить услугу или продукт Asterisk, пишите сюда. Asterisk-Dev

    Здесь обитают разработчики Asterisk. Назначение этой рассылки - обсуждение разработки программы Asterisk, и его участники энергично отстаивают это. Ожидайте шквала негодования, если отправили в эту рассылку что-то, не относящееся непосредственно к программированию или разработке кодовой базы Asterisk. Общие вопросы по написанию кода (такие, как взаимодействие с AGI или AMI) следует направлять в рассылку Asterisk-Users.

    Рассылка Asterisk-Dev не является средством технической поддержки пользователей! Если просмотреть архивы рассылок, можно увидеть, что это правило строго соблюдается. В Asterisk-Dev обсуждается разработка Asterisk, а вопросы о взаимодействии внешних программ через AGI или AMI следует направлять в рассылку Asterisk-Users.

    Asterisk-Users

    Это рассылка для пользователей Asterisk с более чем десятью тысячами подписчиков. В ней формируется несколько сотен сообщений в день. Сюда можно обратиться за помощью, но все-таки присылайте свои вопросы только после того, как попробовали и не смогли найти ответ самостоятельно. Asterisk-BSD

    Здесь высказываются члены сообщества, реализующие Asterisk под FreeBSD (и другие диалекты BSD).

    Википедия об Asterisk

    Раздел Википедии по Asterisk (который существует по большей части благодаря неутомимым усилиям Джеймса Томпсона (James Thompson) - спасибо тебе, Джеймс!) - источник просвещения и путаницы. Управляемое сообществом хранилище знаний по VoIP (http://www.voip-info.org) - это просто кладезь интереснейшей, содержательной и часто противоречивой информации по многим вопросам, Asterisk является лишь одним из них.

    Поскольку документация по Asterisk составляет основную массу информации на данном веб-сайте1 и, вероятно, на нем содержится больше сведений об Asterisk, чем во всех остальных источниках, вместе взятых (за исключением архивов рассылок), обычно этот веб-сайт указывают как основной ресурс данных об Asterisk2.

    Каналы IRC

    Сообщество разработчиков Asterisk поддерживает каналы ретрансляции интернет-чатов (Internet Relay Chat, IRC) на сайте irc.freenode.net. Самыми активными каналами являются #asterisk и #asterisk-dev[9]. В целях защиты от спама теперь на обоих каналах требуется регистрация[10].

    Группы пользователей Asterisk

    На многих сайтах по всему миру одинокие пользователи Asterisk начинают осознавать, что в их городах есть и другие люди, разделяющие их пристрастие. Группы пользователей Asterisk (Asterisk User Groups,

    AUGs) возникают повсюду. Хотя они никак официально не взаимосвязаны, обычно они дают ссылки на сайты друг друга и всегда рады любым новым членам. Введите в Google поисковые слова «Asterisk User Group», чтобы найти группу в своем регионе[11].

    Проект создания документации Asterisk

    Проект создания документации Asterisk (Asterisk Documentation Proj ect) начали осуществлять Лейф Мадсен и Джаред Смит, но в нем участвовали и другие члены сообщества.

    Цель проекта - создание структурированного хранилища письменных источников по Asterisk. В противоположность гибкой и случайной природе Википедии, проект Docs направлен на формирование более узкоспециализированного подхода к различным связанным с Asterisk вопросам.

    В рамках проекта Asterisk Docs, нацеленного на то, чтобы сделать документацию доступной в Сети, данная книга представлена на вебсайте http://www.asteriskdocs.org по лицензии Creative Commons.

    Экономическое обоснование

    Сегодня практически невозможно найти предприятие, которому не приходилось бы перестраиваться каждые несколько лет. Так же сложно найти компанию, которая может позволить себе заменять свою инфраструктуру связи при каждой смене курса. Современному бизнесу необходима предельная гибкость во всех используемых технологиях, включая телекоммуникацию.

    В своей книге «Crossing the Chasm» (HarperBusiness) Джеффри Мур (Geoffrey Moore) говорит: «Идея того, что ценность системы будет раскрываться постепенно и не будет известна на момент установки, подразумевает, в свою очередь, что гибкость и приспособляемость продукта, так же как и постоянное обслуживание клиентов, должны быть основными критериями оценки при покупке любой системы». В частности, это означает, что истинная ценность технологии порой бывает неясна вплоть до ее развертывания.

    Теперь вы можете оценить привлекательность системы, в основу которой положена концепция открытости и постоянного обновления.

    Об этой книге

    Итак, с чего начнем? Об Asterisk можно рассказать столько, что одной книги не хватит. Мы не собираемся здесь вдаваться во все тонкости, просто рассмотрим основы.

    В главе 2 обсуждаются некоторые вопросы проектирования, которые следует учитывать при планировании телекоммуникационных систем. Большую часть данного материала можно пропустить и перейти прямо к установке, но эти идеи важно понимать тем, кто планирует вводить в эксплуатацию систему Asterisk.

    Глава 3 посвящена тому, как получить, откомпилировать и установить Asterisk. В главе 4 речь идет об исходной конфигурации Asterisk. Здесь рассматриваются важные конфигурационные файлы, которые должны иметься для определения каналов и функций, доступных в конкретной системе. Этот материал подготовит почву для главы 5, где представлено сердце Asterisk - диалплан. Глава 6 ознакомит вас с некоторыми более сложными концепциями диалплана.

    В главе 7 мы отдохнем от Asterisk и обсудим некоторые наиболее важные технологии, используемые в PSTN. В главе 8, посвященной действующим системам телефонии, мы, естественно, обсудим технологию передачи голоса по IP-протоколу.

    В главе 9 представлен один из наиболее удивительных компонентов, шлюзовой интерфейс Asterisk (Asterisk Gateway Interface, AGI). Используя языки программирования Perl, PHP и Python, мы продемонстрируем, как можно использовать внешние программы для добавления в офисную АТС практически безграничных функциональных возможностей. В главе 14 кратко рассматриваются невероятные возможности и функции, составляющие феномен Asterisk. В завершение, глава 15 «заглядывает вперед», предсказывая будущее, в котором телефония с открытым исходным кодом полностью преображает отрасль, отчаянно нуждающуюся в революционных изменениях. Также в книге можно найти массу справочной информации, которая приводится в пяти приложениях.

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


    Примечания:



    1

    В декабре 2006 года Рич скончался, его двухлетняя борьба с раком пришла к неутешительному концу. Рич присылал свои сообщения в рассылку Asterisk Users до ноября того года. Он отдавал силы сообществу до самого конца, поэтому мы посвятили эту книгу ему.



    2

    Чтобы почувствовать, насколько велик феномен Asterisk, наберите в Google «офисная АТС». Увидев результаты, имейте в виду, что традиционные офисные АТС оцениваются миллиардами долларов. Крупными игроками являются компании Avaya, Nortel, Siemens, Mitel, Cisco, NEC и многие- многие другие. Что-то подсказывает, что их мало волнует их ранг в поисковой системе Google. Но мы уверены, что как культурный барометр это имеет значение.



    3

    До настоящего времени. До настоящего времени.



    4

    Не без удовольствия отметим, что Nortel наконец избавилась от Windows NT 4.0 и установленного Linux. С технической точки зрения идея хорошая, но довольно неожиданная, учитывая, что Nortel и Microsoft недавно объявили о партнерстве в разработке телекоммуникационных приложений уровня предприятия.



    5

    Джим Диксон «The History of Zapata Telephony and How It Relates to the Asterisk PBX» (http://www.asteriskdocs.org/modules/tinycontent/index. php?id=10).

    Если необходимо ввести имя Елизавета, придется придумать что-нибудь наподобие Елизавт, или Елизаве, или, скажем, Лизавет. Есть, конечно, приемлемый вариант - Лиза, но суть проблемы ясна.



    6

    В версии Asterisk 1.4, по сравнению с версией 1.2, было внесено более 4000 обновлений в код хранилища SVN.



    7

    Но не стоит огорчаться. Появилось несколько проектов, которые помогут упростить внедрение Asterisk. На данный момент наиболее популярным и известным из них является trixbox (http://www.trixbox.org). Имея старый ПК (или виртуальную машину VMware), с помощью графического интерфейса trixbox можно настроить офисную АТС, просто ответив на несколько вопросов в процессе автоматической установки. Это не поможет научиться работать с Asterisk, потому что здесь пользователь не участвует в конфигурации платформы или диалплана, но так вы получите рабочую АТС намного быстрее, чем если бы делали это преимущественно вручную, как описывается в данной книге.



    8

    Революцию в телекоммуникациях предсказывали еще до краха старых технологий; время покажет, насколько эффективно было революционное введение открытого кода.

    По последним подсчетам более 30%.



    9

    Канал #asterisk-dev посвящен изменениям в базовом коде Asterisk и не предоставляет технической поддержки пользователям. Вопросы, касающиеся программирования внешних приложений, которые взаимодействуют с Asterisk через AGI или AMI, должны направляться в #asterisk.



    10

    /msg nickserv помогает при соединении с сервером через ваш любимый IRC- клиент.



    11

    Русскоязычные ресурсы по Asterisk: http://asteriskpbx.ru/, http://www. asterisk-support.ru/, http://www.asteriskforum.ru/ - Примеч. науч.ред.









    Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Вверх