Согласование полосы для медиа потока в SIP протоколе

Posted: 2014-03-26 in Generic IPT
Tags: , , , , , , , , , , , ,

Механизм ограничения использования пропускной способности канала или же выбора кодеков с точки зрения SIP протокола реализуется с помощью записей в заголовке SDP b= несколькими способами:

  • Transport Independent Application Specific (TIAS),
  • Application Specific (AS),
  • Conference Total (CT).

Проблема заказчика у которого вместо видео звонка устанавливалась только аудио сессия подтолкнула «взять лопату»…

NB. Все нижеизложеное получено в результате чтения RFC и наблюдений работы Cisco Unified Communications Manager (UCM) 9.1.2. Буду благодарен за объяснение на пальцах.

В Cisco UCM есть настройки кодеков между устройствами (телефонами, транками, шлюзами), которые называются Regions (регионы). Рассмотрим пример установления звонка между двумя телефонами и настроенными регионами между ними.

ЗАПРОС SDP (REQUEST)
SIP/2.0 200 OK
Via: SIP/2.0/TCP 10.48.47.131:5060;branch=z9hG4bK14b2cf4a930
From: <sip:2025@10.48.47.131>;tag=535~8232a10c-63a1-4618-bef7-77bf90e83fe5-30022379
To: <sip:2021@10.48.47.131>;tag=2c36f858ffe8001d05e377b1-3c40323b
Call-ID: 5cdb1780-3321d0b4-149-832f300a@10.48.47.131
Date: Wed, 26 Mar 2014 13:05:57 GMT
CSeq: 101 INVITE
Contact: <sip:0768d852-8f13-a0ab-66da-ddd82cefe13d@10.147.94.41:50487;transport=tcp>;video
Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,OPTIONS,REFER,REGISTER,UPDATE,SUBSCRIBE,INFO
Remote-Party-ID: “2021” <sip:2021@10.48.47.131>;party=called;id-type=subscriber;privacy=off;screen=yes
Supported: replaces,join,sdp-anat,norefersub,resource-priority,extended-refer,X-cisco-callinfo,X-cisco-serviceuri,X-cisco-escapecodes,X-cisco-service-control,X-cisco-srtp-fallback,X-cisco-monrec,X-cisco-config,X-cisco-sis-6.0.2,X-cisco-xsi-8.0.1
Allow-Events: kpml,dialog
Content-Length: 782
Content-Type: application/sdp
Content-Disposition: session;handling=optional

v=0
o=Cisco-SIPUA 20461 0 IN IP4 10.147.94.41
s=SIP Call
t=0 0
m=audio 23686 RTP/AVP 0 8 18 124 101
c=IN IP4 10.147.94.41
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:18 G729/8000
a=fmtp:18 annexb=no
a=rtpmap:124 ISAC/16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
a=sendrecv
m=video 24402 RTP/AVP 126 97
c=IN IP4 10.147.94.41
b=TIAS:1000000                                      MEDIA LEVEL BW MOD
a=rtpmap:126 H264/90000
a=fmtp:126 profile-level-id=42801E;packetization-mode=1;level-asymmetry-allowed=1
a=imageattr:* recv [x=640,y=480,q=0.50]
a=rtpmap:97 H264/90000
a=fmtp:97 profile-level-id=42801E;packetization-mode=0;level-asymmetry-allowed=1
a=imageattr:* recv [x=640,y=480,q=0.50]
a=sendrecv

В первом сообщении Cisco UCM АТС отправляет постоянное значение выделенное жирным шрифтом. Но вот в ответном сообщении можно увидеть модификаторы всей сессии (аудио+видео+что_угодно).

Конфигурация регионов. Оба телефона находятся в регионе “Default”.

Region Audio Codec  32 kbps (iSAC, G.722.1)
Bit Rate Maximum Session Bit Rate for Video Calls 80

ОТВЕТ
ACK sip:0768d852-8f13-a0ab-66da-ddd82cefe13d@10.147.94.41:50487;transport=tcp SIP/2.0
Via: SIP/2.0/TCP 10.48.47.131:5060;branch=z9hG4bK14c5432e6cf
From: <sip:2025@10.48.47.131>;tag=535~8232a10c-63a1-4618-bef7-77bf90e83fe5-30022379
To: <sip:2021@10.48.47.131>;tag=2c36f858ffe8001d05e377b1-3c40323b
Date: Wed, 26 Mar 2014 13:05:56 GMT
Call-ID: 5cdb1780-3321d0b4-149-832f300a@10.48.47.131
Max-Forwards: 70
CSeq: 101 ACK
Allow-Events: presence
Content-Type: application/sdp
Content-Length: 433

v=0
o=CiscoSystemsCCM-SIP 535 1 IN IP4 10.48.47.131
s=SIP Call
c=IN IP4 10.147.94.38
b=TIAS:80000                             SESSION LEVEL BW MOD
b=AS:80
t=0 0
m=audio 27538 RTP/AVP 124 101

a=rtpmap:124 iSAC/16000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
m=video 22704 RTP/AVP 126
b=TIAS:48000                               MEDIA LEVEL BW MOD
a=rtpmap:126 H264/90000
a=fmtp:126 profile-level-id=42801E;packetization-mode=1;level-asymmetry-allowed=1
a=imageattr:* recv [x=640,y=480,q=0.50]
a=content:main

Таким образом в SDP иногда указываются модификаторы уровня сессии, т.е. для всех медиа потоков, а иногда – и для конретного медиа потока, например, видео.

Конфигурируя Cisco UCM или любую другую АТС нужно помнить, что для протокола SIP настройки будут переданы через поля TIAS, AS, CT в SDP. Именно эти поля и определят максимальное значение полосы выделенное для медиа потока-потоков.

Кототко про записи TIAS, AS, CT в SDP.

TIAS (bits/sec) – это необходимое количество полосы без учета служебных заголовков (Codec).
AS (Kbits/sec) – это необходимое количество полосы с учетом служебных заголовков (Codec+RTP+UDP+IP). На практике, АТС Cisco UCM просто копирует значение TIAS и переводит его в kbits/sec.

CT (kbits/sec) – это необходимое количество полосы с учетом служебных заголовков (на сколько это возможно). При написании модуля SDP в АТС рекомендуется закладывать запас, например, учитывать заголовки IPSEC VPN.

CT также неявно резервирует полосу для RTCP в размере 5% от RTP сессии. Также предусмотрен механизм выделения полосы для RTCP протокола с помощью записей RR и RS.

 

Выписка из RFC 2327

     Note that CT gives a total bandwidth figure for all the media at
     all sites.  AS gives a bandwidth figure for a single media at a
     single site, although there may be many sites sending
     simultaneously.

Что рекомендует использовать CT для указания ограничения полосы на все потоки суммарно, в то время как AS касается только одного звонка. Не совсем понятно все же с единицами измерения CT. Склоняюсь к kbits/sec.

 

Шаблон записи.

b=<bwtype>:<bandwidth>

На практике, Microsoft Lync 2010 использует CT заголовки. Пример использования AS ниже.

v=0
o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4
s=SDP Seminar
i=A Seminar on the session description protocol
c=IN IP4 224.2.17.12/127
t=2873397496 2873404696
m=audio 49170 RTP/AVP 0
b=AS:64
b=RS:800
b=RR:2400
m=video 51372 RTP/AVP 31
b=AS:256
b=RS:800
b=RR:2400

 

У меня пока что видео не завелось, но завтра надеюсь мы закроем и эту задачу. Всем хорошего дня и, коллеги, не забывайте иногда отдыхать.

Advertisements
Comments

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s