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