В середине 1990-х годов производительность сетей достигла той точки, когда стало возможно передавать через сетевые соединения поток медиа-информации в режиме реального времени. Поскольку медиа-поток разделяется на сегменты, заключенные в конверт с адресом, такие соединения называют
Заключение
В данной главе были рассмотрены технологии, используемые в настоящее время в PSTN. В следующей главе мы обсудим протоколы для VoIP: передачу телефонных соединений по сетям, использующим протоколы IP. Данные протоколы определяют разные механизмы для осуществления телефонных разговоров, но их значимость этим не ограничивается. Вход телефонной сети в сеть передачи данных окончательно устранит барьер между телефонами и компьютерами, что обещает привести к революционным изменениям в способах общения.8
Протоколы для VoIP
- Клиффорд Столл
Телекоммуникационная промышленность существует более 100 лет, и Asterisk объединяет в себе большинство, если не все основные технологии, применявшиеся в это последнее столетие. Чтобы максимально эффективно работать с Asterisk, не надо быть профессионалом во всех областях, но понимание разницы между разнообразными кодеками и протоколами обеспечит лучшее восприятие и осмысление системы в целом. В данной главе рассматривается технология передачи голоса по IP-про- токолу (Voice over IP, VoIP) и то, что отличает сети VoIP от традиционных коммутируемых телефонных сетей, которые были темой предыдущей главы. Мы исследуем, зачем нужны протоколы VoIP, кратко коснувшись истории и возможного будущего для каждого из них. Также мы обратим внимание на вопросы безопасности и способность этих протоколов работать в сетях, использующих технологию трансляции сетевых адресов (Network Address Translation, NAT). Остановимся на следующих протоколах VoIP (некоторые из них будут рассмотрены менее подробно, чем другие):
• IAX
• SIP
• H.323
• MGCP
• Skinny/SCCP
• UNISTIM
Кодеки - это средства, с помощью которых аналоговый голосовой сигнал может быть преобразован в цифровой сигнал и передан по Интернету. Пропускная способность любого устройства ограничена, и количество одновременных разговоров, которое может обеспечивать любое отдельно взятое соединение, напрямую зависит от типа используемого кодека. В данной главе мы также рассмотрим, чем отличаются следующие кодеки с точки зрения требований к полосе пропускания (уровень сжатия) и качества:
• G.711
• G.726
• G.729A
• GSM
• iLBC
• Speex
• MP3
Глава завершится обсуждением возможностей надежной передачи голосового трафика, причин возникновения эха и средств борьбы с ним, а также того, как Asterisk управляет аутентификацией входящих и исходящих звонков.
Зачем нужны протоколы VoIP
Основная предпосылка использования VoIP - пакетирование[84] аудиопотоков для транспортировки по сетям, использующим протокол IP (Internet Protocol). Главные сложности при этом заключаются в манере общения людей. Сигнал должен не только поступить практически в той же форме, в какой был передан, но его транспортировка должна занять не более 150 мс. Если пакеты будут утеряны или задержатся, качество связи ухудшится, то есть два человека будут испытывать трудности в ведении беседы.
Транспортные протоколы, которые объединены под общим названием «сетевые», изначально разрабатывались без реализации возможности потоковой передачи несущей в режиме реального времени. Предполагалось, что конечные точки в случае потери пакетов будут увеличивать время их ожидания, посылая запросы на повторную передачу или в некоторых случаях просто продолжать работать без потерянной информации. Для обычного голосового общения такие механизмы неприемлемы. Наши разговоры не допускают утраты букв или слов и тем более какой-либо ощутимой задержки между передачей и приемом.
Традиционная PSTN была разработана специально для передачи голоса и прекрасно подходит для выполнения этой задачи с технической точки зрения. Однако с точки зрения гибкости ее недостатки очевидны даже тем, кто слабо разбирается в этой технологии. VoIP обещает включить телефонную связь во все другие протоколы, используемые в наших сетях, но из-за особых требований к передаче разговоров для разработки, создания и обслуживания таких сетей необходимо обладать специальными навыками.
Проблема с пакетной передачей голоса заключается в том, что то, как мы говорим, абсолютно не совпадает с тем, как IP передает данные. Процесс разговора и слушания состоит из ретрансляции потока аудиосигналов, тогда как сетевые протоколы разработаны так, что они все разбивают на части, заключают единицы информации в тысячи пакетов и затем доставляют каждый пакет на дальний конец линии связи любым возможным путем. Очевидно, с этим надо что-то делать.
Протоколы VoIP
Механизм соединения по протоколу VoIP обычно состоит в сериях транзакций по передаче сигналов между конечными точками (и шлюзами, располагающимися между ними), которые оформляются в два устойчивых медиа-потока (по одному в каждом направлении), фактически передающих беседу. Есть несколько протоколов для осуществления этого. В данном разделе мы обсудим те из них, которые имеют значение для VoIP в общем и Asterisk в частности.
IAX (протокол Inter-Asterisk eXchange)
Чтобы проверить человека, который заявляет, что является знатоком Asterisk, попросите его прочитать название этого протокола. Казалось бы, оно должно звучать, как «ай-эй-экс», но так можно и язык сломать[85]. К счастью, правильно он произносится «иикс»[86]. IAX - это открытый протокол, то есть кто угодно может загружать его и вести его разработку, но он пока что не является стандартом[87]. Ожидается, что IAX2 вскоре станет IETF-протоколом. В настоящее время IAX2 находится в IETF в статусе проекта и ожидается, что он станет официальным протоколом в течение нескольких лет. В Asterisk поддержку IAX обеспечивает модуль chan_iax2.so.
История
Протокол IAX был разработан компанией Digium для обмена информацией с другими серверами Asterisk (отсюда и название: протокол Inter- Asterisk eXchange). Крайне важно отметить, что IAX не ограничен применением только в Asterisk. Этот стандарт открыт для использования и поддерживается многими телекоммуникационными проектами с открытым исходным кодом, а также несколькими производителями оборудования. IAX - это транспортный протокол (подобно SIP), который использует один порт UDP (4569) и для обмена сигналами по каналам, и для медиа-потоков. Как объясняется ниже в данной главе, это упрощает обслуживание при использовании межсетевых экранов, поддерживающих NAT.
IAX также обладает уникальной способностью объединять несколько сеансов в один поток данных, что может обеспечивать громадный выигрыш по пропускной способности при отправке множества одновременных каналов на удаленный сервер. Объединение позволяет представлять множество медиа-