Subject: Megaco relationship to RTP

From: Willy Reheul <[email-masked]>
Date: Thu, 08 Mar 2001 14:41:30 +0100

Doing audio rate conversion (transcoding) in an Interior Media Gateway
(IMG) I came across the following problem.

The CASE:

-an H.323 endpoint (A) has a video-  and associated audio stream with
another H.323 endpoint (B);
-video codecs of A and B are compatible, hence this video stream is NOT
passing the IMG but goes directly betweem A and B;
-audio codecs are not compatible, hence the audio stream is first
'interworked' in the IMG and then sent to the opposite user.

The ISSUE:

In order to guarantee lip synchronization one need to be able to IMPOSE
the IMG to behave as a 'translator' for the audio stream. In case the
IMG would behave as an 'RTP mixer', IMG would generate a new audio
stream (new SSRC) with its own timing (using the IMG clock) and with own
sequence numbers such that -at the playback point in the H.323 terminal-
synchronisation with the associated video stream is completely lost.

QUESTIONS:

/1/.Is anything provided in the Megaco protocol to set  either
'translator' or 'mixer' treatment for a media flow ?
/2/.In case such command is not provided, how can one be sure that the
SSRC of a stream is kept intact in such intermediate network elements ?
/3/.Is there any other solution to the problem ?
I might change the scenario such that both streams pass through the IMG.
But even then there is no certainty about which RTP treatment streams
shall undergo: the video stream may simply pass through because the
media processor must not do anything on it, and the audio stream may
still be given a completely new time and sequence number space because
it must be decoded and then re-encoded in a different format ??
/4/.Would it be an advantage to have both streams in the same megaco
context; then they both may undergo the same treatment with respect to
SSRC ?
/5/.Is there something like a 'default' treatment of media streams in a
megaco context ? 
Something like :
/5a/.When 2 terminations are in a context ----> 'RTP translator'
treatment of any one stream flowing in the context ?
/5b/.When 3 or more terminations are in a context----> 'RTP mixer'
treatment of any one stream flowing in the context; but maybe topology
could be set in such way that the mixer treatment is overruled again and
'RTP translator' treatment is applied ??
Can any documentation about this topic be distributed.
/6/.By the way, is there also something like a DEFAULT mixing treatment
in a megaco context ?
/6a/. For example for audio streams the default mixing in a 'megaco
context' could be: data sent out -into the network- from anyone
termination = sum of the inputs of all 'other' terminations in the
context ?? 
/6b/. Default video mixing could be : data sent out -into the network-
from any one termination = the multiplex of inputs of all terminations
in the context. ??
/6c/.Or can every manufacturer implement his own choise of algorithms ?
If yes, how does MGC know ?
/6d/.In case there is a default mixing behaviour, has MGC any 'megaco'
means to change this default, and is it possible to make the choice for
audio different from the choice for video while both are in the same
context ?

Thanks,
Willy.