Skip to the content.

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

Мы - то, за чем они растут. Это истинное бремя всех мастеров.

– Джедай Магистр Йода

Когда мы впервые решили в 2004 году написать книгу об Asterisk (15 лет назад, считая от этого издания!), мы уверенно предсказывали, что Asterisk кардинально изменит телекоммуникационную отрасль. Сегодня революция, которую мы предсказали, является частью истории. Asterisk уже несколько лет является самой успешной управленческой автоматической телефонной станцией (УАТС) в мире и является признанной технологией в телекоммуникационной отрасли.

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

Asterisk остается мощной технологией, и мы считаем, что она по-прежнему является одной из лучших надежд на какую-либо разумную интеграцию между телекоммуникационными и всеми другими технологиями, с которыми могут захотеть соединиться компании. Ему необходимо будет найти свое место в коммуникационной экосистеме, которая больше не ставит телефонные звонки в важное место. Мы ожидаем, что WebRTC, который обещает коммерциализировать веб-коммуникации1, появится в качестве замены для всех подражателей, закрытых и проприетарных продуктов “сотрудничества”, которые в настоящее время наводняют (и запутывают) рынок. Asterisk может сыграть свою роль в этом новом будущем, и сообщество Asterisk охотно и с энтузиазмом взяло на себя эту новую концепцию. Итак, может быть, вам говорят, что голос мертв, но любой, кто обратил внимание на любую научную фантастику любого рода, знает, что возможность разговаривать друг с другом на больших расстояниях не будет единственной областью тех, кто печатает на клавиатурах. Люди любят поговорить, и мы будем продолжать искать способы сделать это.

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

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

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

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

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

Именно по этой причине — коммуникация — мы считаем, что будущее все еще существует для проектов телефонии с открытым исходным кодом, таких как Asterisk. Да, люди могут больше не хотеть делать “телефонные звонки”, но мы считаем, что в разговорах все еще будет ценность. Технологии, которые могут облегчить эти разговоры, иногда развиваются, казалось бы, радикальными способами, но основное желание общаться остается тем же самым.

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

Проект телефонии Zapata

Когда проект Asterisk был запущен (в 1999 году), существовали и другие проекты телефонии с открытым исходным кодом. Тем не менее, Asterisk в сочетании с проектом Zapata Telephony смогла обеспечить интерфейсы телефонной сети общего пользования (ТфОП), что стало важной вехой в переходе программного обеспечения от чего-то чисто сетевого к чему-то более практичному в мире телекоммуникаций в то время, когда он был ориентирован на ТфОП.

Проект телефонии Zapata был задуман Джимом Диксоном, инженером-консультантом по телекоммуникациям, который был вдохновлен невероятными достижениями в скорости процессора, которые компьютерная индустрия теперь воспринимает как должное. Диксон считал, что гораздо более экономичные системы телефонии можно было бы создать, если бы существовала карта, на которой не было бы ничего, кроме основных электронных компонентов, необходимых для взаимодействия с телефонной линией. Вместо того, чтобы иметь дорогие компоненты на карте, цифровая обработка сигналов (DSP)2 будет обрабатываться в процессоре с помощью программного обеспечения. Хотя это наложило бы огромную нагрузку на процессор, Диксон был уверен, что низкая стоимость процессоров по сравнению с их производительностью делает их гораздо более привлекательными, чем дорогие DSP, и, что более важно, что соотношение цены и производительности будет продолжать улучшаться по мере увеличения мощности процессоров.

Как и многие провидцы, Диксон верил, что многие другие увидят эту возможность и ему просто нужно подождать, пока кто-то другой создаст то, что для него было очевидным улучшением. Через несколько лет он заметил, что не только никто не создавал эти карты, но и казалось маловероятным, что кто-то когда-нибудь собирался. В тот момент было ясно, что если он хочет революции, то должен начать ее сам. Так родился проект телефонии Zapata:

Поскольку эта концепция была настолько революционной, что наверняка вызвала бы много волн в индустрии, я выбрал мексиканский революционный мотив и назвал технологию и организацию в честь знаменитого мексиканского революционера Эмилиано Сапаты. Я решил назвать карту “tormenta“, что по-испански означает ”шторм”, но в контексте оно обычно используется для обозначения большого шторма, такого как ураган или что-то подобное.

Возможно, нам следует называть себя Asteristas. Несмотря на это, мы должны поблагодарить Джима Диксона, частично за то, что он придумал это и частично за то, что довел до конца, но в основном за то, что дал результаты своих усилий сообществу с открытым исходным кодом. В результате вклада Джима появился двигатель ТфОП Asterisk. И благодаря этому сочетанию VoIP и ТфОП родилась телекоммуникационная революция с открытым исходным кодом!

За прошедшие годы интерфейс телефонии Zapata в Asterisk был изменен и улучшен. Телефония Digium Asterisk Hardware Device Interface (DAHDI), используемая сегодня, является детищем вклада Джима Диксона.

Массовые изменения требуют гибкости технологий

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

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

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

Сама Asterisk стала основой многих массово производимых творений. И все же, под капотом, душа этого проекта остается с открытым исходным кодом.

Asterisk: хакерская УАТС

Asterisk является основной АТС хакера. Термин хакер, был искажен средствами массовой информации в значении “злостный взломщик” для необразованных. Это прискорбно, потому что термин фактически существовал задолго до того, как СМИ испортили его значение. Хакеры создали сетевой движок, который стал интернетом. Хакеры создали Apple Macintosh и операционную систему Unix. Хакеры также строят свою следующую телекоммуникационную систему. Да, некоторые из этих людей являются злостными, но умы, которые управляют разработкой Asterisk, хорошо знают об этом, и вы обнаружите, что Asterisk позволяет создавать систему, которая способна довольно быстро реагировать на угрозы безопасности. Программное обеспечение с открытым исходным кодом не скрывает свои недостатки за корпоративными отделами. Грязь вытаскивают на открытое место, где с ней можно справиться. Вместо того чтобы ограничиваться сомнительной и часто плохой безопасностью закрытых систем - сообщество Asterisk быстро реагирует на меняющиеся тенденции в области безопасности, и вы сможете точно настроить свою телефонную систему в соответствии с корпоративной политикой и лучшими отраслевыми практиками.

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

Asterisk: профессиональная УАТС

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

Сообщество Asterisk

Нет смысла ходить вокруг да около: сообщество Asterisk - это тень его прежнего “я”. Десять лет назад Asterisk была самой крутой вещью с открытым исходным кодом. Сегодня большинство энтузиастов двинулись дальше. Однако остается опытное и проверенное в боях сообщество профессионалов, которые были там и сделали это.

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

Ниже приведены некоторые из мест, где обитает сообщество Asterisk.

Дискусионный сайт сообщества Asterisk

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

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

Списки рассылки Asterisk

Активность в этих списках сократилась до минимума (с сотен сообщений в день до, возможно, дюжины потоков в месяц). Они, вероятно, наиболее полезны в качестве исторического архива, но, возможно, стоит туда обратиться когда вы сталкиваетесь с неразрешимой проблемой. Списки рассылки вы найдете по адресу lists.digium.com, эти два, вероятно, будут наиболее полезными:

Asterisk-Users

Этот список-тень его прежнего себя. В то время как раньше он генерировал несколько сотен сообщений в день, большая часть этого трафика переместилась на сайт сообщества Digium Asterisk (выше).

Asterisk-Dev

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

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

Сайт Asterisk Wiki

Это не совсем тусовка сообщества, но она заслуживает упоминания. Digium поддерживает Вики для Asterisk по адресу wiki.asterisk.org, этот сайт постоянно обновляется командой Digium, и автоматизированные скрипты экспортируют документацию на основе XML из источников Asterisk в саму Вики, что помогает гарантировать актуальность данных.

Более старая Вики существует по адресу www.voip-info.org, что в наши дни является своего рода историческим курьезом и источником большого просветления и путаницы. Хотя здесь содержится огромное количество информации, большая ее часть устарела. Мы включаем ссылку на неё здесь просто потому, что вы, вероятно, попадёте на неё в один прекрасный день и подумаете что попали в материнскую жилу, но то, что вы на самом деле нашли, больше похоже на музей исторических странностей: увлекательно, но необязательно актуально.

IRC-каналы

Сообщество Asterisk поддерживает каналы Internet Relay Chat (IRC) на irc.freenode.net. Двумя наиболее активными каналами являются #asterisk и #asterisk-dev4. Чтобы сократить количество вторжений спам-ботов, оба этих канала требуют регистрации для присоединения. Чтобы зарегистрироваться, запустите /­msg nickserv help при подключении к службе через ваш любимый IRC-клиент.

Вывод

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

  1. И, возможно, еще, учитывая, что WebRTC также революционизирует нативные приложения!
  2. Термин DSP также означает цифровой сигнальный процессор, который представляет собой устройство (обычно чип), способное интерпретировать и изменять сигналы различных видов. В голосовой сети DSP в первую очередь отвечают за кодирование, декодирование и перекодирование аудиоинформации. Это может потребовать много вычислительных усилий.
  3. Мы понимаем, что технология интернета сформировалась из государственных и академических институтов, но то, о чем мы здесь говорим - это не столько технология интернета, сколько культурный феномен его, который взорвался в начале 90-х годов.
  4. Канал #asterisk-dev. предназначен для обсуждения изменений в базовой кодовой базе Asterisk и также не является поддержкой второго уровня. Обсуждения, связанные с программированием внешних приложений, которые взаимодействуют с Asterisk через AGI или AMI, должны быть в #asterisk.
Предисловие Содержание Глава 2. Архитектура Asterisk