Введение
Предварительные условия
Требования
Используемые компоненты
Условные обозначения
Сложность кодека
Codec Mean Opinion Score (MOS)
Вопросы, связанные с кодеком G.729
Cisco Pre-IETF G.729 и стандартизированная реализация G.729
Высокая сложность: G.729, G.729A Annex-B и средняя сложность: G.729A, G.729A Annex-B
Проблемы с кодеком G.723.1
Согласование кодеков
Сообщение о зависимой ошибке
%DSPRM-5-SETCODEC:
Дополнительные сведения
В этом документе содержится обзор различных кодеков, используемых со шлюзами Cisco IOS® Voice over IP (VoIP). В релизах программного обеспечения Cisco IOS ранее 12.0(5)T шлюзы VoIP поддерживают только кодеки G.729 и G.711 и только один вызов передачи голосовых/факсимильных данных на цифровой процессор обработки сигналов (DSP). Начиная с релиза 12.0(5)T программного обеспечения Cisco IOS шлюзы Cisco VoIP поддерживают большое число кодеков и модулей DSP. Они могут поддерживать до четырех вызовов передачи голосовых/факсимильных данных на один DSP.
Дополнительные сведения о DSP см. в разделе Речевые аппаратные средства. Цифровые процессоры обработки сигналов (DSP) C542 и C549.
Средство DSP Calculator (только для зарегистрированных клиентов) определяет требования DSP для платформ маршрутизаторов серий Cisco 1751, 1760, 2600XM, 2691, 2800, 3700 и 3800 и в результате формирует предложения по инициализации PVDM. Это средство рассчитывает требования DSP на основе таких входящих данных, как модули интерфейса, конфигурации кодеков, каналы перекодировки и конференц-сеансы. Оно поддерживает различные релизы программного обеспечения Cisco IOS, работающие с платформами Cisco 1751, 1760, 2600XM, 2691, 2800, 3700 и 3800.
Для данного документа нет особых требований.
Данный документ не ограничен отдельными версиями программного и аппаратного обеспечения.
Дополнительные сведения об условных обозначениях в документах см. в разделе Технические советы Cisco. Условные обозначения.
Некоторые технологии сжатия кодека требуют большей вычислительной мощности, чем другие. Сложность кодеков делится на две категории под названием "средняя сложность" и "высокая сложность".
Средняя сложность разрешает C549 DSP обрабатывать до четырех вызовов передачи голосовых/факсимильных данных на DSP, а C5510 DSP - до восьми таких вызовов.
Средняя сложность разрешает C549 DSP обрабатывать до двух вызовов передачи голосовых/факсимильных данных на DSP, а C5510 DSP - до шести таких вызовов.
Средняя сложность (4 вызова на dsp) |
Высокая сложность (2 вызова на dsp) |
---|---|
G.711 (a-law и m -law) |
G.728 |
G.726 (все версии) |
G.723 (все версии) |
G.729a, G.729ab (G.729a AnnexB) |
G.729, G.729b (G.729-AnnexB) |
Факсимильные |
Факсимильные |
Примечание: разница между кодеками средней и высокой сложности состоит в объеме использования CPU, необходимого для обработка алгоритма кодека и, соответственно, в числе голосовых каналов, которые могут поддерживаться одним DSP. По этой причине все кодеки средней сложности могут быть запущены в режиме высокой сложности, но только некоторые каналы (обычно половина) будут доступны через DSP.
Примечание: ретранслятор факса (2400 бит/с, 4800 бит/с, 7200 бит/с, 9600 бит/с, 12 кбит/с и 14,4 кбит/с) может использовать кодеки средней и высокой сложности.
На платформах, поддерживающих технологию C549 DSP, сложность кодека настраивается по голосовым платам (например, модуль голосовой сети с высокой плотностью 2600/3600/VG-200). Некоторые платформы поддерживают только кодеки высокой сложности, поскольку у них есть достаточно встроенных DSP для поддержки всех каналов T1/E1, которые используют режим высокой сложности. Чтобы указать плотность вызова и сложность кодека в соответствии с используемым стандартом кодека, примените команду codec complexity в режиме настройки голосовой платы.
Пример настройки сложности приведен ниже:
Cisco-router #configure terminal Enter configuration commands, one per line. End with CNTL/Z. Cisco-router(config)#voice-card 1 Cisco-router(config-voicecard)#codec complexity ? high Set codec complexity high. High complexity, lower call density. medium Set codec complexity medium. Mid range complexity and call density. <cr> Cisco-router(config-voicecard)#codec complexity high
На платформах, которые поддерживают технологию C5510 DSP, доступен дополнительный параметр настраиваемой сложности. При использовании настраиваемой сложности на DSP могут быть разрешены до 16 вызовов. Число поддерживаемых вызовов колеблется от 6 до 16 и зависит от используемого для вызовов кодека.
Пример настройки приведен ниже:
Cisco-router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Cisco-router(config)#voice-card 1 Cisco-router(config-voicecard)#codec complexity ? flex Set codec complexity Flex. Flex complexity, higher call density. high Set codec complexity high. High complexity, lower call density. medium Set codec complexity medium. Mid range complexity and call density. <cr> Cisco-router(config-voicecard)#codec complexity flex
Фрагмент выходных данных команды show running-config, которая определяет конфигурацию сложности:
!voice-card 1 codec complexity high !
В этой таблице приведены данные о поддержке кодеков для различных платформ маршрутизаторов Cisco.
Кодек |
1751/1760 |
26xx/36xx NM-1V/2V |
26xx/36xx NM-HDV |
3700 |
3810 |
AS5300 AS5800 |
AS5350 AS5400 |
7200 |
7500 |
CMM 24FXS |
CMM 6T1/E1 |
---|---|---|---|---|---|---|---|---|---|---|---|
G.711 a-law и u-law PCM (64 кбит/с) |
12.0.5XQ1 |
Да |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Да |
12.0.5XE3 |
12.1.3T |
Да |
Да |
G.726 ADPCM (32, 24,16 кбит/с) |
12.1.2T |
12.0.5T |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Нет |
12.0.5XE3 |
12.1.3T |
Нет |
Нет |
G.728 LD-CELP (16 кбит/с) |
Да |
12.0.5T |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Нет |
12.0.5XE3 |
12.1.3T |
Нет |
Нет |
G.729 CS-ACELP (8 кбит/с) |
12.1.2T |
Да |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Нет |
12.0.5XE3 |
12.1.3T |
Нет |
Нет |
G.729a CS-ACELP (8 кбит/с) |
12.0.5XQ1 |
Да |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Да |
12.0.5XE3 |
12.1.3T |
Да |
Да |
G.729 Annex-B (8 кбит/с) [VAD] |
Да |
12.0.5T |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Нет |
12.0.5XE3 |
12.1.3T |
Нет |
Нет |
G.729a Annex-B (8 кбит/с) |
Да |
Да |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Да |
12.0.5XE3 |
12.1.3T |
Да |
Да |
G.723.1 MP-MLQ (6.3 кбит/с) |
12.1.2T |
12.0.5T |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Yes |
12.0.5XE3 |
12.1.3T |
Нет |
Нет |
G.723.1 ACELP (5,3 кбит/с) |
12.1.2T |
12.0.5T |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Да |
12.0.5XE3 |
12.1.3T |
Нет |
Нет |
G.723.1 Annex-A MP-MLQ (6,3 кбит/с) |
12.1.2T |
12.0.5T |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Да |
12.0.5XE3 |
12.1.3T |
Нет |
Нет |
G.723.1 Annex-A ACELP (5,3 кбит/с) |
12.1.2T |
12.0.5T |
12.0.5XK1 |
Да |
12.0.7XK |
Да |
Да |
12.0.5XE3 |
12.1.3T |
Нет |
Нет |
Clear Channel |
12.3(2)XF, 12.3(11)T |
Да |
Да |
Да |
12.3(11)T |
Да |
Да |
Нет |
Нет |
Метод сжатия кодека |
---|
PCM = Pulse Code Modulation |
ADPCM = Adaptive Differential Pulse Code Modulation |
LDCELP = Low-Delay Code Excited Linear Prediction |
CS-ACLEP = Conjugate-Structure Algebraic-Code-Excited Linear-Prediction |
MP-MLQ = Multi-Pulse, Multi-Level Quantization |
ACELP = Algebraic Code Excited Linear Prediction |
Каждый кодек обеспечивает определенное качество речи. Качество передачи речи - это субъективная оценка слушателя. Типичным способом определения качества звука, производимого определенными кодеками, является MOS. При использовании MOS большая группа разных слушателей оценивает качество звука в примере (связанном с отдельным кодеком) по шкале от 1 (плохое) до 5 (отличное). Данные усреднены, чтобы получить MOS для этого примера. Данная таблица содержит связи между кодеками и оценками по MOS.
Метод сжатия |
Скорость (кбит/с) |
MOS Score |
Задержка сжатия (мс) |
---|---|---|---|
G.711 PCM |
64 |
4,1 |
0,75 |
G.726 ADPCM |
32 |
3,85 |
1 |
G.728 LD-CELP |
16 |
3,61 |
3-5 |
G.729 CS-ACELP |
8 |
3,92 |
10 |
G.729 x 2 кодировки |
8 |
3,27 |
10 |
G.729 x 3 кодировки |
8 |
2,68 |
10 |
G.729a CS-ACELP |
8 |
3.7 |
10 |
G.723.1 MP-MLQ |
6,3 |
3,9 |
30 |
G.723.1 ACELP |
5,3 |
3,65 |
30 |
Хотя с финансовой точки зрения выглядит логичным конвертировать все вызовы в низкоскоростные кодеки, что снизит инфраструктурные затраты, построение голосовых сетей с низкоскоростным сжатием требует особого внимания. У технологии сжатия речевого сигнала есть свои недостатки. Один из основных недостатков – искажение сигнала из-за многократного кодирования (оно называется тандемным перекодированием). Например, когда голосовой сигнал G.729 тандемно перекодируется три раза, его очки по MOS падают с 3.92 (очень хорошо) до 2.68 (неприемлемо). Другой недостаток – это вызываемая кодеком задержка с кодеками с низкой скоростью передачей данных.
В этих двух главах разъясняются основные проблемы совместимости, связанные с реализацией кодека G.729 (8 кбит/с).
Компания Cisco выпустила релиз кодека G.729 до утверждения его Комитетом по проблемам проектирования Интернета (IETF) и до формирования стандарта кодека G.729. В релизе Cisco IOS 12.0(5)T и более поздних порядок битов по умолчанию кодека G.729 изменился от стандарта Pre-IETF до утвержденного IETF стандарта. Эти два формата несовместимы, что для конечного пользователя выливается в искаженные булькающие звуки.
Для обеспечения совместимости с реализациями G.729 других поставщиков программное обеспечение Cisco IOS, релиз 12.0.5T и более поздние по умолчанию применяют стандартную реализацию G.729. Для обратной совместимости с релизами программного обеспечения Cisco IOS, выпущенными ранее релиза 12.0.5T, следует использовать реализацию pre-IETF G.729 с такой командой:
maui-vgw-01(config)#dial-peer voice 100 voip maui-vgw-01(config-dial-peer)#codec g729r8 pre-ietf
Параметр pre-ietf в этой команде не поддерживается в релизе 12.2 программного обеспечения Cisco IOS и более поздних.
G.729 – это алгоритм высокой сложности, а G.729A (также известный как G.729 Annex-A) – среднесложный вариант, отличающийся от G.729 чуть более низким качеством передачи голоса. Все платформы, которые поддерживают G.729, также поддерживают и G.729A.
В шлюзах Cisco IOS выбор между G.729 и G.729A связан с настройкой сложности кодека на голосовой плате. Она точно не показывает выбор кодека на интерфейсе командной строки (CLI) Cisco IOS. Например, CLI не показывает g729ar8 (код "a") как параметр кодека. Однако если голосовая плата определена как среднесложная, то параметр g729r8 означает кодек G.729A.
Примечание: для MC3810 в программном обеспечении Cisco IOS релизов ранее 12.0.7XK существует точный выбор CLI между 24-мя каналами G.729A или 12-ю каналами G.729.
G.729 Annex-B – это алгоритм высокой сложности, а G.729A Annex-B – среднесложный вариант, отличающийся от G.729 Annex-B чуть более низким качеством передачи голоса. Различие между кодеками G.729 и G.729 Annex-B состоит в том, что кодек G.729 Annex-B имеет встроенную возможность обнаружения голосовой активности IETF (VAD) и генерации комфортного шума (CNG).
В данных комбинациях кодеки G.729 являются совместимыми:
G.729 и G.729A
G.729 и G.729
G.729A и G.729A
G.729 Annex-B и G.729A Annex-B
G.729 Annex-B и G.729 Annex-B
G.729A Annex-B и G.729A Annex-B
Примечание: нет четкого способа настройки G.729A на Cisco 2600/3600/VG-200 NM-1V и NM-2V (сетевой модуль передачи голоса), так как эти модули передачи голоса не поддерживают настройку codec complexity, которая поддерживается на NM-HDV (сетевом модуле высокоплотной передачи голоса). Однако если вызов G.729A делается другой конечной точкой подключения, которая заканчивается на NM-1V/2V, он может быть успешно соединен.
Эти две версии G.723.1 называются Annex-A и non Annex-A. Они несовместимы. G.723.1 Annex-A включает встроенный алгоритм IETF VAD и CNG.
Кроме того, в программное обеспечении Cisco IOS, релиз 12.0(5)T и более поздние, кодек G.723.1 поддерживается со скоростями 5,3 кбит/с и 6,3 кбит/с. Когда шлюз Cisco VoIP делает вызов между устройствами, которые используют G723.1, предполагается только, что на дальнем конце также используется G.723.1. Ни для одной из сторон не важно, какую скорость, 5,3 кбит/с или 6,3 кбит/с, поддерживает другая сторона. Это означает, что хотя поддержка обеими сторонами одной и той же скорости является преимуществом, возможно, что одна сторона будет вести передачу на скорости 5,3 кбит/с, а в обратной направлении скорость составит 6,3 кбит/с. Об используемой скорости можно узнать с помощью команды show call active voice brief , как показано ниже:
Cisco-router# show call active voice brief 47 : 494514hs.1 +473 pid:0 Answer active tx:210/5040 rx:219/4380 IP 5.5.0.1:16534 rtt:3ms pl:890/0ms lost:0/0/0 delay:70/70/70ms g723r63 47 : 494514hs.2 +473 pid:1 Originate 4750001 active TX:230/1840 rx:230/8280 Tele 2/0:0 (35): TX:6870/2290/0ms g723r63 !--- In this example the G.723.1 is operating at 6.3 kbps. noise:0 acom:0 i/0:-79/-5 dBm
Стандарт G.723.1 позволяет станциям менять скорости в диапазоне между 6,3 кбит/с и 5,3 кбит/с в целях оптимизации загрузки сети. Шлюзы Cisco VoIP не поддерживают эту возможность. Но они нормально воспримут передачу удаленным устройством (таким, как IP-телефон Cisco) данных на скорости, отличной от заранее определенной.
В данных комбинациях кодеки G.723.1 являются совместимыми:
G.723.1 (5,3 кбит/с) и G.723.1 (6,3 кбит/с)
G.723.1 (5,3 кбит/с) и G.723.1 (5,3 кбит/с)
G.723.1 (6,3 кбит/с) и G.723.1 (6,3 кбит/с)
G.723.1 Annex-A (5,3 кбит/с) и G.723.1 Annex-A (6,3 кбит/с)
G.723.1 Annex-A (5,3 кбит/с) и G.723.1 Annex-A (5,3 кбит/с)
G.723.1 Annex-A (6,3 кбит/с) и G.723.1 Annex-A (6,3 кбит/с)
Начиная с релиза 12.0(5)T программного обеспечения Cisco IOS шлюзы Cisco VoIP поддерживают функцию согласования кодеков. Эта функция предоставляет шлюзу Cisco VoIP возможность подключаться к другим устройствам VoIP без необходимости знать, какой кодек используется для установления вызова. Кроме того, с помощью этой функции шлюзы Cisco VoIP могут динамически изменять настройки в соответствии с изменениями на удаленных устройствах. Если кодек, используемый удаленным устройством VoIP, входит в список совместимых для шлюза Cisco VoIP, вызов VoIP принимается. Согласование кодека поддерживается как на C542 DSP, так и на C549 DSP. Чтобы указать список предпочитаемых кодеков для использования на адресуемой точке вызова, примените команду codec preference в режиме настройки класса голоса.
В этом примере показывается, как настроить согласование кодеков:
Cisco-router# configure terminal Cisco-router(config)# voice class codec 1 !--- This sets up class 1 to be assigned to the dial peer. Cisco-router(config-class)#codec preference 1 g723r63 Cisco-router(config-class)#codec preference 2 g729br8 Cisco-router(config-class)#codec preference 3 g711ulaw Cisco-router(config-class)#codec preference 4 g726r32 bytes 240 !--- These commands define the preferred codec list using 1,2,3, !--- and 4 to set the preference. Cisco-router(config)#dial-peer voice 1 voip Cisco-router(config-dial-peer)#voice-class codec 1 !--- This assigns voice-class codec 1 to the dial-peer Cisco-router(config-dial-peer)#destination-pattern 4723155 Cisco-router(config-dial-peer)#session target ipv4:192.168.100.1
Ошибка %DSPRM-5-SETCODEC возникает из-за настройки кодека высокой сложности на адресуемой точке вызова VoIP, хотя ее голосовая плата по умолчанию настроена на среднюю сложность. Чтобы разрешить проблему, необходимо удалить конфигурацию ds0-group из контроллера, что вызовет и удаление голосового порта. После удаления ds0-group следуйте ранее описанной в этом документе процедуре для изменения сложности.