Контактная информация
Пожалуйста, направляйте комментарии и вопросы, касающиеся данной книги, издателю: 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 и неустанное желание делиться опытом. Ваше великодушие даже в условиях, когда судьба послала вам ужасное испытание, вдохновляет всех нас.
• Тилгману Лешеру (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. Это было оно - то самое, о чем я мечтал так много лет. Я понятия не имел, каким образом собираюсь принять участие в этом, но знал: телефония с открытым исходным кодом приведет к необходимой и благотворной революции в телекоммуникационной отрасли и так или иначе я буду ее частью.
Для меня, скорее системного интегратора, чем разработчика, необходимо было найти способ войти в сообщество. Недостатка в разработчиках не было, но был очевидный недостаток в документации. Здесь, казалось, я мог помочь. Я знал, как писать, я знал офисные АТС, и я отчаянно хотел поговорить об этом чуде, которое вдруг сделало телефонию снова интересной.
Даже если мой вклад в эту книгу совсем невелик, надеюсь, вы ощутите мое восторженное отношение к телефонии с открытым исходным кодом. Это удивительный дар, но также и невероятная ответственность. Потрясающий вызов. Грандиозный шанс. Бесподобное удовольствие! Прежде всего я должен поблагодарить Лейфа и Джареда за приглашение участвовать в 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 и в создании данной книги! Мы не смогли бы ничего сделать без вашей помощи и советов.