Джим Меггелен - Asterisk™: будущее телефонии Второе издание
Каналы 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, и кто знает, что вы тогда создадите.
Глава 2 Подготовка системы к установке Asterisk
Я очень рано понял, что когда-нибудь, где-то там за горизонтом, в некотором «идеальном» будущем, все необходимые функции обработки данных будут выполняться централизованно внутри компьютеров, что приведет к значительному удешевлению, а в некоторых случаях обесцениванию внешнего оборудования, необходимого для соединения с телекоммуникационными интерфейсами.
– Джим Диксон «The History of Zapata Telephony and How It Relates to the Asterisk PBX»Вам, должно быть, уже не терпится настроить собственную систему Asterisk. Если вы планируете создать любительскую систему, то, пожалуй, можете перейти сразу к следующей главе и начать установку. Однако, если Asterisk развертывается для решения ответственных задач, необходимо сказать несколько слов о среде, в которой она будет выполняться. Будьте уверены, Asterisk - очень гибкое ПО и успешно устанавливается практически на любую платформу Linux, а также на несколько не-Linux платформ[12]. Но в данной главе обсуждаются вопросы, знание ответов на которые вооружит вас пониманием того, в каком операционном окружении Asterisk будет действительно эффективно функционировать, и поможет создать надежную, хорошо спроектированную систему.
С точки зрения требований к ресурсам Asterisk подобна встроенным системам реального времени преимущественно тем, что она должна иметь приоритетный доступ к процессору и системным шинам. Поэтому крайне важно, чтобы все остальные функции системы, не связанные напрямую с задачами Asterisk по обработке вызовов, если таковые вообще выполняются, должны выполняться с более низким приоритетом. Для небольших и любительских систем это может и не представлять особой проблемы. Однако для высокопроизводительных систем недостаточная производительность будет вызывать проблемы с качеством аудиосигнала, получаемого пользователем, часто в виде эха, помех и т. п. Примерно так ведут себя устройства мобильной связи при выходе из зоны обслуживания, но здесь причина этих проблем другая. По мере увеличения нагрузки на систему будут возрастать сложности с обслуживанием соединений. Для офисной АТС подобная ситуация - настоящая катастрофа, поэтому в процессе выбора платформы требования к производительности должны быть решающим критерием. В табл. 2.1 представлены некоторые самые основные рекомендации к планированию системы. В следующем разделе подробно рассматриваются различные вопросы проектирования и реализации, связанные с производительностью системы.
Размер системы Asterisk на самом деле определяется не количеством пользователей или телефонных аппаратов, а, скорее, количеством одновременных вызовов, которые система должна будет поддерживать. Эти цифры очень приблизительны, поэтому экспериментируйте и выбирайте наиболее подходящий для себя вариант.
Таблица 2.1. Рекомендации по выбору технических характеристик системы
Назначение Количество каналов Рекомендуемые минимальные параметры Любительская система Не более 5 400 МГц х86, 256 M6 оперативной памяти SOHO-система (малый офис и дом - менее трех линий и пяти телефонных аппаратов) От 5 до 10 1 ГГц х86, 512 M6 оперативной памяти Малая бизнес-система До 25 3 ГГц х86, 1 Гб оперативной памяти Средняя или большая система Более 25 Два ЦП, возможно также несколько серверов в распределенной архитектуре
Результаты нагрузочного тестирования
Джошуа Колп (Joshua Colp) смог получить результаты, приведенные в табл. 2.2, используя процессор AMD Athlon64 X2 4200+ с 1 Гб оперативной памяти и жестким диском SATA емкостью 80 Гб и проводя тестирования по стандартному сценарию в приложении SIPp: простое установление соединения, воспроизведение аудиофайла (приложение Playback()) и некоторый небольшой период ожидания (Wait()). Обратите внимание на существенное снижение использования ресурсов ЦП при чтении данных из оперативной памяти по сравнению с чтением с жесткого диска. Это можно истолковать так, что ЦП ожидает данные, подлежащие обработке, перед передачей их в запрашивающий канал. Однако это всего лишь простой тест, и он никоим образом не отражает, какое количество вызовов сможет обрабатывать ваша система. Определить количество одновременных вызовов, которое может быть обработано при использовании конкретного диалплана и сочетания приложений, можно, только проведя нагрузочное тестирование системы.