История возникновения и развития открытой телефонии
Канал в телефонии - голосовой, то есть способный проключить один разговор. Джим Диксон
🕛 13.05.2010, 11:09
20-25 лет тому назад компания AT&T начала предлагать интерфейсы прикладного программирования (хотя бы, 1), которые позволяли пользователям настраивать функциональные параметры голосовой почты Audix/ автоматического секретаря, работающего на платформе Unix AT&T 3BX (как правило 3b10). Эта система стоила тыс. $ за канал и имела весьма ограниченный функционал. В попытке сделать свои услуги более функциональными и привлекательными (в особенности для тех, у кого не было АТС AT&T или Central Office для подключения к ним Audix) несколько изготовителей выпустили карту, которую возможно было вставить в компьютер, и которая работала на MS-DOS и лишь с одной линией POTS (лишь старт цикла FXO). Эти карты были достаточно низкого качества сравнительно сегодняшних стандартов (не говоря уже об ужасающей среде, в которой они работали) и без разницы стоили от $1000 за штуку. Большая часть таких карт давали на самом деле плохое качество звука и были очень ненадежными в качестве индивидуальных автоответчиков.Приблизительно в 1985 г. несколько фирм выпустили достаточно приличные 4-портовые карты, которые стоили возле $1000 за штуку (стоимость понизилась до $250 за порт!). Они были ГОРАЗДО более надежными в работе в сравнении с их однопортовыми предшественниками, и обеспечивали достаточно приличное качество звука. В действительности возможно было вставлять 6 или 8 карт в быстрый 286 компьютер и этим приобретать 32 порта. Так начался век практичной компьютерной телефонии. Я активно работал консультантом в сфере компьютерной телефонии с самого ее возникновения. Я весьма с большой скоростью начал разбираться в вопросах проектирования систем, программного и аппаратного обеспечения. Это было несложно, т.к. у меня за плечами был многолетний опыт работы в сфере классической некомпьютерной телефонии.
Мои клиенты (которые применяли разработанные мной системы в ВЕСЬМА крупных масштабах) тратили миллионы $ любой г. (лишь 1 из моих клиентов тратил бы свыше 1 млн. в г., за вычетом некоторого количества иных, которые были близки к подобный сумме) на высокоплотное аппаратное обеспечение для компьютерной телефонии.У меня сердце разрывалось, когда я увидел, как эти люди тратят $5000 или $10000 на плату, на изготовление которой отдельные производители тратят в общей сложности несколько сотен $. И помимо того, программное обеспечение и драйвера никогда не работали на 100% верно. Я думаю одной из причин, по которой у меня было немало работы в этой области, было то, что я знал все слабые места подобных систем и знал как их обойти (или не обходить). Так или иначе карты не имели возможность быть дешевыми, так как они обязаны были обладать существенной производительностью (требовались не просто обычные функции, необходим был функционал ЦСП), т.к. компьютеры, к которым эти карты подсоединялись, в то время были достаточно слабенькими.
Я тогда уже знал, что когда-нибудь в "прекрасном" будущем все компьютеры будут иметь необходимую мощь, что сделает периферийные устройства, нужные для подсоединения к интерфейсам связи, ВЕСЬМА дешевыми и даже обыденными. Потому я постоянно краем глаза следил за постепенным возрастанием производительности "быстрых, как никогда раньше" процессоров, и в эру 486-66DX2 чудилось, что рост шел полным ходом, а технологии развивались в геометрической прогрессии. Я знал, в особенности после возникновения процессоров Pentium, что приближается миг интернализации компьютерной телефонии, потому я еще пристальней стал следить за происходящим.
Я посчитал, что, если я ожидал этого, то были и иные, которые думали тоже и нечто предпринимали. Я смотрел, следил и ожидал, и когда возник PENTIUMIII-1000 (100 МГЦ), я наконец заявил: "Черт возьми, эти процессоры уж ТОЧНО справятся с этой задачей". Однако, к моему ужасу, никто ничего не сделал. Я не осознавал то, что мое видение было на 100% правильным, и не знал, что именно *я* буду первым, кто использует это.
Чтоб подтвердить первоначальную идею, я раздобыл старую карту Mitel MB89000C "ISDN Express Development" (ISA-карта которую возможно было бы применять с их аппаратными средствами связи), на которой были парочка интерфейсов Т-1 и перекрестная матрица (таймслот - коммутатор). Это предоставило мне физический доступ с ISA-шины компьютера к данным таймслотов Т-1 (хоть и неэффективно, т.к. это был 8-битный ввод/вывод, и TSI-чип требовал НЕМАЛО тактов ожидания для доступа).
Я написал драйвер для клудж-карты (мне пришлось сделать к ней пару модулей) для FREEBSD (эту ОС я тогда выбрал) и решил, что могу получить 6 надежных каналов ввода-вывода с карты. Однако, что более важно, 6 каналов обработки пространства пользователя (перемещение с использованием буфера обмена, декодирование тонального набора с разделением частот и т.д.) почти не затрачивали процессорного времени, доказывая то, что мой тогдашний 600МГЦ PIII вероятно мог обрабатывать 50-75 портов, если шина ввода-ввывода не требовала чересчур немало мощности. Добившись желаемого результата (я назвал этот драйвер 'mie'), я пошел и купил все, что было нужно для установки новой ISA-карты, в итоге чего я добился эффективного эксплуатации (как выяснилось) ISA-шины в 16-битном режиме без тактов ожидания. У меня получилось перевести 2 полных слота Т-1 (48 каналов) данных по шине, и компьютер справлялся с этой задачей без проблем.
Так я сделал ISA-карты и выставил их на продажу (я продал возле 50 штук) и выставил всю информацию (включая файлы с графиками) в сеть для общественного пользования. Так как эта концепция была настолько революционной и была призвана произвести фурор в собственной области, я решил применять мексиканский революционный мотив и назвал технологию и организацию в честь знаменитого мексиканского революционера Эмилиано Запата (Emiliano Zapata). Я решил назвать карту "tormenta", что на испанском обозначает "шторм", а точнее "ОГРОМНОЙ шторм" типа урагана.
Вот как началась история Zapata Telephony.
Я целиком написал драйвер для ISA-карты Tormenta для *BSD и выставил в сеть. В ответ я заполучил, за малым исключением, "да, это классно подходит для BSD, ну а что делать с Линукс?"
Лично я до того даже и не увидел Линукс в работе. Однако я решил попробовать, пошел в местный магазин (Fry's в Вудланд Хиллс) и купил копию REDHAT Линукс 6. (думаю, версия 7. ЛИШЬ вышла и еще не поступила в продажу). Я загрузил ее в компьютер (со всеми данными по создании, включая ядерные исходники). Я ковырялся в исходниках драйверов пока не отыскал ВЕСЬМА простой драйвер, который содержал все основы, точки входа, интерфейсы и т.д. (Я в основном применял драйвер Video Spigot), и применял его, чтоб понять, как форматировать (чтоб он как минимум просто работал) наипростейший драйвер для Линукс. Итак, я переделал BSD-драйвер под Линукс (в действительности, это не было *так уж* сложно, т.к. основные концепции почти схожие). Он не поддерживал загружаемые ядерные модули (черт, да что это вообще такое? В BSD 3.X было нужно рекомпилировать ядро, чтоб изменить конфигурацию. Последней системой, с которой я применял загружаемые драйвера, была VAX/VMS.), однако без разницы работал (затем, как вы рекомпилируете ядро уже вместе с ним). Так как весь мой опыт работы с Линукс сводился к установке и написанию ядерного модуля, я *знал*, что он *должен был* быть неправильным, неправильным, несносным, неправильным, плохим, мелочи, ошибки и всякие штуки, от которых даже у радостного пингвина волосы на голове дыбом встанут.
С такими мыслями я выставил его в сеть, уже заблаговременно зная, что придет какой-либо знаток по части ярда Линукс, обсмеет меня, позже обгадит и снова обсмеет, позже пожалеет меня и даст переформатировать его под "правильный Линукс". На протяжении 48 часов после размещения драйвера в сети я заполучил послание от одного чувака из Алабамы (Марк Спенсер), который это и предложил. Он не просто это заявил, у него было кое-что, что идеально подошло бы для всей этой затеи (Asterisk). В то время Asterisk был функциональным концептом, однако у него не было настоящих шансов стать чем-то на самом деле полезным, т.к. в то время у него не было возможности напрямую вести работу (или как минимум не напрямую, т.к. в то время было не особенно немало, если вообще было, доступного VOIP-оснащения) с какими-или аппаратными средствами связи (телефоны, линии и т.д.). Его слияние с концепцией Zapata Telephony и разработкой оснащения/драйвера/библиотеки и интерфейса позволили ему стать настоящей АТС, которая могла вести работу с настоящими телефонами, линиями и т.д.
Также у Марка не было особенно точного представления о VOIP, работе сети, внутреннем устройстве системы и т.д., и в самом начале в общей сложности этого он просто весьма интересовался телефонами и телефонией. Однако у него был достаточно ограниченный опыт в сфере телефонных систем, того, как они функционируют, и в особенности в сфере аппаратных интерфейсов связи. С самого начала я помогал ему в таких вопросах, предоставляя информацию и внедряя код в драйвера и АТС для различных нужных целей. Мы, и с недавнего времени иные, создали хорошую команду (хэх, я всегда спрашиваю его о ядрах, VOIP и иных чисто линуксовских штуках), работающую на достижение общей цели - ввести последние разработки в технологии связи для общего пользования по реальным и доступным ценам.
Со времен ISA-карты я разработал карту "Tormenta 2 PCI Quad T1/E1", которую Марк выпустил на рынок как Digium T400P и E400P, и сейчас Varion продает ее как V400P (Т1 и Е1). Все проектные файлы (включая файлы с графиками) доступны на веб-сайте Zapatatelephony.org для общего пользования.
Теперь мы разрабатываем новые проекты, с более высокой плотностью.
Как сейчас видно, с целенаправленной работой Марка (и крупным количеством Моих работ и работ иных людей) по драйверам Zaptel и с программным обеспечением Asterisk технологии проделали длинный, длинный путь и продолжают улучшаться и совершенствоваться с каждым днем.
Примечание:
Кто-нибудь когда-нибудь задумывался о том, какую ОГРОМНУЮ ответственность принял на себя Марк, взявшись за этот проект? Вы когда-или думали о том, сколько ему пришлось сделать и сколько еще предстоит! Потому я считаю, что я работал с ним над этим проектом дольше, чем кто-или иной, включая некоторых его работников, и, поверьте мне, уж я то увидел хотя бы кое-какие вещи, ч/з которые ему пришлось пройти, чтоб закончить все это. Лично я бы *НИКОГДА* не взялся за такую задачу, зная, какой ур. ответственности это предполагает. Да, то, чем я занимался, также непростая задача и подразумевает достаточно высокий ур. ответственности, однако я делал то, в чем был уверен. Вклад Марка гораздо более моего, и я могу лишь заявить, что знаю, чего ему стоит делать то, что он делает, и я на самом деле ценю время и преданность, которые он вложил во все эти невероятные вещи, которые он сделал.