Codec-Matrix
Wenn zwei VoIP-Client miteinander kommunizieren wollen, laden Sie sich per "INVITE" ein und übermitteln dabei im Session Description Protocol neben den Kandidaten für die Verbindung auch die Codecs, die jeder Client anbietet. So können beide die Codecs für Audio und Video verwenden, die sie beide verstehen. Es ist dabei egal, ob es sich um eine "Punkt zu Punkt"-Kommunikation handelt oder um eine Konferenz. Bei einer Konferenz ist der Konferenzteilnehmer das eine Ende und die MCU der andere Teilnehmer. Klassische "Broadcast"-Meetings, bei dem ein Client an viele Ziele optimaler Weise per Multicast sendet, gibt es bei Konferenz in der Regel nicht.
Die Tabellen sind noch nicht vollständig
Audio (m=audio)
Auf der Seite Audiocodec habe ich die Funktionsweise und Anforderungen an die Digitalisierung von Audiodaten beschrieben und eine kurze Übersicht der verschiedenen Codecs aufgeführt. Suchen Sie dazu in Trace einfach nach "m=audio".
Nummer | Codecname/Abtastung | Bitrate |
---|---|---|
0 |
PCMU/8000 |
|
8 |
PCMA/8000 |
|
9 |
G722/8000 |
|
13 |
CN/8000 |
|
18 |
G729/8000 |
|
97 |
RED/8000 |
|
101 |
telephone-event/8000 |
|
103 |
SILK/8000 |
useinbandfec=1; usedtx=0 |
104 |
SILK/16000 |
useinbandfec=1; usedtx=0 |
111 |
SIREN/16000 |
bitrate=16000 |
112 |
G7221/16000 |
bitrate=24000 |
113 |
MP4A-LATM/32000 |
profile-level-id=2;object=2;bitrate=96000 |
114 |
x-msrta/16000 |
bitrate=29000 |
115 |
x-msrta/8000 |
bitrate=11800 |
116 |
AAC_LC/32000
(LifeSize 220) |
|
117 |
G722/8000/2 |
|
118 |
CN/16000 |
|
123 |
G7221/32000 |
bitrate=48000 |
122 |
G7221/32000 |
bitrate=32000 |
121 |
G7221/32000 |
bitrate=24000 |
120 |
G7221/16000 |
bitrate=24000 (Lifesize) |
Folgende Clients habe ich im laufe der Zeit bezüglich des Codec-Angebots aus Trace-Dateien ermittelt. Nur weil ein Client sehr viele Codec anbietet, ist es nicht besser als andere. Zudem hängt es natürlich auch davon ab, welche Codecs in den verschiedenen Geräten konfiguriert oder lizenziert sind.
Client Codec-Reihenfolge |
0 | 8 | 9 | 13 | 18 | 97 | 101 | 103 | 104 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 120 | 121 | 122 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
OCS2007R2 Audio MCU |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UCCAPI/4.0.7577.0
OC/4.0.7577.0
(Microsoft Lync
2010) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UCCAPI/15.0.4649.1000
OC/15.0.4649.1000
(Microsoft Lync) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
UCCAPI/15.0.4709.1000
OC/15.0.4711.1002
(Skype für Business) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RTCC/4.0.0.0
MediationServer
zur TK |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MSExchangeUM/15.00.0995.028 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OCS 2007R2 Client |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lync 2010 Client |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lync 2013 Client |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Skype für Business Client |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LifeSize
Room
220/LS_RM2_5.0.1
(3) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Polycom |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Snom760/8.8.2.8-OCS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AudioCodes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yaelink |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Lync Phone Edition |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Audiocodes-Sip-Gateway-Mediant
1000/v.6.40A.042.004 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
www.te-systems.de
XCAPI V3.3.153.0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
So können Sie bei zwei bekannten Endpunkten einfach durch einen Vergleich der Codecs ermitteln, welche Schnittmenge das Ergebnis ist. Welcher Codec dann genutzt wird, können die Clients abhängig von Netzwerkparametern auch während des Gesprächs ändern
Video (m=video)
Vergleichbar zu Audio finden wir in einem INVITE für eine Video-Verbindung (P2P) oder Konferenz auch die Codecs.
Nummer | Codec-Name/Abtastung | RTPMAP/xcaps |
---|---|---|
34 |
H263/90000 |
CIF4=1;CIF=1;QCIF=1 |
96 |
H264/90000 |
profile-level-id=42801f;max-mbps=245000;max-fs=8192 |
97 |
H263-1998/90000 |
CIF4=1;CIF=1;QCIF=1 |
121 |
x-rtvc1/90000 |
|
122 |
X-H264UC/90000 |
|
123 |
x-ulpfecuc/90000 |
packetization-mode=1;mst-mode=NI-TC |
Auch hier wieder die Übersicht der Clients
Client Codec-Reihenfolge |
34 | 96 | 97 | 121 | 122 | 123 |
---|---|---|---|---|---|---|
OCS2007R2 Video MCU |
|
|
|
|
|
|
Lync 2010 Video MCU |
|
|
|
|
|
|
Lync 2013 Video MCU |
|
|
|
|
|
|
UCCAPI/15.0.4709.1000
OC/15.0.4711.1002
(Skype für Business) |
|
|
|
|
|
|
OCS 2007R2 Client |
|
|
|
|
|
|
UCCAPI/4.0.7577.0
OC/4.0.7577.0
(Microsoft Lync
2010) |
|
|
|
|
|
|
UCCAPI/15.0.4649.1000 OC/15.0.4649.1000 (Microsoft Lync) |
|
|
|
|
|
|
Mac |
|
|
|
|
|
|
Skype für Business Client |
|
|
|
|
|
|
LifeSize
Room
220/LS_RM2_5.0.1
(3) |
|
|
|
|
|
|
T38 Fax (m=image)
Sollten Sie mal in die Verlegenheit kommen, ein Fax zu übertragen und per SIP einen T.38 Invite zu sehen, dann könnte der SDP folgendes enthalten:
User-Agent: www.te-systems.de XCAPI V3.3.153.0 m=image 60742 udptl t38 a=T38FaxVersion:0 a=T38MaxBitRate:14400 a=T38FillBitRemoval:0 a=T38FaxTranscodingMMR:0 a=T38FaxTranscodingJBIG:0 a=T38FaxRateManagement:transferredTCF a=T38FaxUdpEC:t38UDPRedundancy
Wer mit wem und wann
Über SIP werden Verbindungwünsche ausgetauscht, die in einem SDP-Nutzlastl neben den IP-Adresse auch die verschiedenen Codes enthalten, die die Teilnehmer sprechen können. Je nach Umgebung kommt dann der passende Codec zum Einsatz, wobei sich die Wahl auch im Betrieb ändern kann. Ein Codec-Wechsel ist nichts ungewöhnliches. Ich habe mal versucht hier eine Übersicht zu erstellen, welcher Client mit welchem Server welchen Codec einsetzt.
Hinweis: Das sind die "normalen" Codec. Ein Wechsel aufgrund von schlechten Bandbreiten es ist ein einigen Fällen möglich. Auch kann eine Konferenzrichtlinie (AudioBitRateKb) oder Call Admission Control den Codec beschränken.
Wer mit Wem | Lync Client |
OCS Cient |
Mediation | Media Bypass |
Konferenz | ExUM | RGS | RGS Ansage |
---|---|---|---|---|---|---|---|---|
Unterstützte Codes | Silk |
RTAudio |
CU3:G711 |
G711 |
G722 |
G.711 μ-law |
G.711 μ-law |
G.711 μ-law |
Lync Client | Silk |
RTAudio |
CU3:G711 |
G711 |
G722 |
RTAudio16 |
G711 |
G722 |
OCS Client |
|
RTAudio |
G711 |
n/a |
Siren |
? |
G711 |
? |
Mediation Server |
|
|
RTAudio (?)(1) |
G711 |
(2) |
? |
G711 |
? |
Lync Room System |
|
|
|
|
G722 |
|
|
|
Die noch nicht ausgefüllten Felder habe ich noch nicht ermittelt.
- (1) Mediation zu Mediation
Dies ist durchaus möglich, wenn Sie z.B. analoge Telefone an Lync anschließen und diese "durch Lync hindurch" nach extern anrufen. Sie kommen dann über ein Gateway herein und gehen über ein andere Gateway hinaus. - (2) Dieser Fall beschreibt die "Dialin-Konferenz"
Lync Clients beachten zusätzliche aber eventuell eingerichtete Bandbreitenbeschränkungen (CAC). dann kann es schon sein, dass der Client vielleicht sogar nur SIREN einsetzt, weil die Bandbreite nicht mehr als 40kbit zulässt.
Weitere Links
- Session Description Protocol
- Audiocodec
- Video-Codec
- ICE und Kandidaten
- Keyhole-Debugging
- SIP im Detail
- Snooper
-
Video Interoperability in Lync 2013
http://blog.schertz.name/2012/07/video-interoperability-in-lync-2013/ -
HD Video in Lync
http://blog.schertz.name/2011/10/hd-video-in-lync/ -
Satin: Microsoft’s latest AI-powered audio codec for real-time
communications
https://techcommunity.microsoft.com/t5/microsoft-teams-blog/satin-microsoft-s-latest-ai-powered-audio-codec-for-real-time/ba-p/2141382#