Zum Hauptinhalt springen

10.2 One of N Codec Selection (Auswahl eines von N Codecs)

10.2 One of N Codec Selection (Auswahl eines von N Codecs)

In eingebetteten Telefonen kommt es häufig vor, dass der für die Kompression verwendete Digital Signal Processor (DSP) zwar mehrere Codecs gleichzeitig unterstützen kann, dass sich der gewählte Codec aber nicht ohne Weiteres während des Betriebs ändern lässt. Dieses Beispiel zeigt, wie eine Sitzung mit einem ersten Offer/Answer-Austausch eingerichtet werden kann, dem unmittelbar ein zweiter folgt, um die Codec-Menge festzulegen.

Das anfängliche Offer von Alice an Bob weist einen einzelnen Audiostrom mit den drei im DSP verfügbaren Audio-Codecs auf. Der Strom ist als inactive markiert, da bis zur Festlegung eines Codecs kein Medienempfang möglich ist:

v=0
o=alice 2890844526 2890844526 IN IP4 host.anywhere.com
s=
c=IN IP4 host.anywhere.com
t=0 0
m=audio 62986 RTP/AVP 0 4 18
a=rtpmap:0 PCMU/8000
a=rtpmap:4 G723/8000
a=rtpmap:18 G729/8000
a=inactive

Bob kann dynamisch zwischen PCMU und G.723 wechseln. Daher sendet er folgendes Answer:

v=0
o=bob 2890844730 2890844731 IN IP4 host.example.com
s=
c=IN IP4 host.example.com
t=0 0
m=audio 54344 RTP/AVP 0 4
a=rtpmap:0 PCMU/8000
a=rtpmap:4 G723/8000
a=inactive

Alice kann dann einen der beiden Codecs wählen. Sie sendet daher ein aktualisiertes Offer mit einem sendrecv-Strom:

v=0
o=alice 2890844526 2890844527 IN IP4 host.anywhere.com
s=
c=IN IP4 host.anywhere.com
t=0 0
m=audio 62986 RTP/AVP 4
a=rtpmap:4 G723/8000
a=sendrecv

Bob akzeptiert den einzelnen Codec:

v=0
o=bob 2890844730 2890844732 IN IP4 host.example.com
s=
c=IN IP4 host.example.com
t=0 0
m=audio 54344 RTP/AVP 4
a=rtpmap:4 G723/8000
a=sendrecv

Wäre der Answerer (Bob) nur in der Lage, genau einen von N Codecs zu unterstützen, würde Bob einen der Codecs aus dem Offer wählen und ihn in sein Answer aufnehmen. In diesem Fall würde Alice ein re-INVITE ausführen, um diesen Strom mit diesem Codec zu aktivieren.

Alternativ zur Verwendung von a=inactive im ersten Austausch kann Alice alle Codecs auflisten und sobald sie Medien von Bob empfängt, ein aktualisiertes Offer erzeugen, das den Codec auf den zuletzt empfangenen festlegt. Wenn Bob natürlich nur einen von N unterstützt, gäbe es in seinem Answer nur einen Codec, und in diesem Fall ist kein re-INVITE nötig, um auf einen einzelnen Codec festzulegen.