Краткий экскурс…
VoIP (передача речи по IP- сетям) является одной самых прогрессивных технологий связи и общения. Шутка-ли, находясь где-нибудь дома (офисе), преспокойно общаться с родичами в России, да по тарифам не нашего всеми любимого монополиста, а инета. Да и с обычного телефона можно “звякнуть” на голосовой шлюз, набрав номер “робота” в тональном режиме… пока мне такие не попадались. Про защищенность таких сетей речь не идет, взломать можно все, было бы желание… да это и не тема статьи.
Появились даже мобильники с Wi-Fi (стандарт IEEE 802.11b), что позволяет использовать их в сетях ip- телефонии.
Возможности
Звонки можно совершать как: с ПК на ПК, с ПК на телефон, так и с телефона на телефон.
Голосовых сервисов — приложений, как и IP-провайдеров уже довольно много:
• yahoo msn
• TimePhone
• NetVoice
• EPhone
• Miranda ? крайне сомнительно, учитывая,что плагин под нее запускает — skype
• PalTALK http://www.paltalk.com
• Gizmo, на открытом протоколе SIP (Session Initiation Protocol) http://www.gizmoproject.com
• Skype, с собственной системой подключения и маршрутизации http://www.skype.com
скачать последний, как наименее “глючный” по- моему мнению, и работающий в любых условиях, даже в сетях NAT и из-под брандмауэра, можно отсюда:
http://download.skype.com/SkypeSetup.exe?1.exe
…в большинстве своем являясь условно — бесплатными, они позволяют общаться друг с другом в сетях Ethernet без особых усилий со стороны пользователя, отличаясь лишь ценами и условиями оплаты (либо в кредит, либо по карточке с кодом,
WEB-мани) на действительно голосовые звонки в сеть телефонии (от 6 коп/мин в нашей валюте).
Качество речи (сигнала) зависит от степени сжатия (используемых кодеков), линии связи, загруженности вашего провайдера и т.п…. в основном наблюдал подтормаживание (задержку) и эхо.
Есть-ли альтернатива?
“Ну и что?” — cкажите Вы. Чего это автор все распинается по поводу. Вот тут-то и переходим к “грибочкам”…
По расценкам одной из киевских ip- фирмочек: для звонков с компа с выходом в реальную линию 1-клиентское виртуальное место на 2- номера обойдется в 150 хрустящих, и это только программа, а еще нужен сервак-шлюз, оборудование… к их чести сказать оно того стоит.
Вот и выбор, либо заплатить за готовый сервис типа Skyp-а с выходом на линию, причем не во всех городах такое доступно, либо использовать оборудование типа Cisco… или же реализовать собственный терминал-сервер, который и будет мостом (gateway) между компьютером, подключенным к “сети” и телефонной линией.
Принцип следующий: между 2-мя приложениями устанавливаем TCP соединение по свободному порту, если да, то пингуем UDP порт. При наличии ответа в памяти создаем поток с данными и пакуем в соответствии с выбранным вариантом сжатия GSM6.10/PCM8/PCM11/PCM22/G.711, и перенаправляем в сокет, на обратной стороне поток воспроизводится из буфера. Прием-передача пакетов разделена на 2 — этапа: один буфер пишет данные, второй выводит (waveout) в реальном времени. Отсюда условия:
• обмен пакетами (аудио с компрессией) по сокетам
• выбор приемлемой степени сжатия
• управление модемом (поднятие трубки и набор номера, AT)
• формирование факс-имиле
• автоответчик
• запись сообщений
• БД по обработке запросов (проверку паролей, учет трафика, список клиентов, разрешенные подключения реализовать на основе MySQL)
• маршрутизация вызовов или статический ip
• открытый UDP порт
В основном все функции работы с аудиопотоком и модемом вынесены в модуль IPTel, доступном для свободного тестирования.
Тестирование модемных функций компонента не завершено, ввиду отсутствия собственно модема
Программа создавалась для использования в качестве офисного телефона для внутренней связи между двумя зданиями. Для равномерной отправки голосовых пакетов достаточно соединения на скорости не менее 19.2 бит/сек, а Ethernet соединения хватает с лихвой.
Автор готов любезно предоставить полные тексты проекта в обмен на участие в разработке и тестировании шлюза.