• 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.
Читать дальше