メインコンテンツまでスキップ

10.2 One of N Codec Selection (N 個から 1 つのコーデック選択)

10.2 One of N Codec Selection (N 個から 1 つのコーデック選択)

組み込み電話では, 圧縮に用いる Digital Signal Processor (DSP) が複数のコーデックを同時に扱えても, いったん選んだコーデックを実行中に容易に切り替えられないことがよくある. 本例は, 最初の offer/answer 交換の直後に 2 回目の交換を行い, コーデック集合を確定させる方法を示す.

Alice から Bob への初期 offer は, DSP で利用可能な 3 つの音声コーデックを載せた単一の音声ストリームを示す. コーデックが確定するまでメディアを受信できないため, ストリームは inactive とマークされている:

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 は PCMU と G.723 の間の動的切替えをサポートできる. したがって, 次の 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 はこの 2 つのうちいずれかを選べる. したがって, sendrecv ストリームを伴う更新 offer を送る:

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 は単一のコーデックを受け入れる:

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

answerer (Bob) が N 個から 1 つだけのコーデックしかサポートできない場合, Bob は offer から 1 つを選び, それを answer に載せる. この場合, Alice はそのコーデックでストリームを活性化するために re-INVITE を行う.

最初の交換で a=inactive を使う代わりに, Alice はすべてのコーデックを列挙し, Bob からメディアを受信し次第, 直近に受信したコーデックにロックする更新 offer を生成してもよい. もちろん, Bob が N 個から 1 つだけにしか対応しない場合, 彼の answer にはコーデックは 1 つしかなく, この場合は re-INVITE で単一コーデックにロックする必要はない.