[Asterisk-Dev] help needed implementing H324M (UMTS Video)
Klaus Darilion
klaus.mailinglists at pernau.at
Thu Jan 13 09:13:20 MST 2005
Hi all!
I investigae implementing a UMTS Video <-> SIP Video gateway in
astersik. Currently I'm analyzing the asterisk code and reading the
specifications (H.324M, H.223). I have several questions how to
incorporate this into asterisk and hope that some of you can give me
some answers. (If someone is already working on this, I would be happy
to work with you)
First, I will give a very short introduction into H.324M. H.324M is
basically the same as H.324 with some adaptions for mobile terminals -
it uses the mobile levels of H.223 for better frame detection and error
recovery. In case of ISDN, the setup procedure is similar to an audio
call, except the "User information layer 1": (btw: the debug output of
asterisk is wrong - it should be "H.324M" instead of "G.7xx 384k Video")
< Bearer Capability (len= 3)
Ext: 1 Q.931 Std: 0 Info transfer capability:
Unrestricted digital information (8)
Ext: 1 Trans mode/rate: 64kbps, circuit-mode (16)
Ext: 1 User information layer 1: G.7xx 384k Video (38)
After the channel is established, the setup procedure will proceed in
the established B-channel. H.223 will be used to multiplex the various
logical channels (audio, video, control) over the B-channel. One logical
channel will be established implicitly for enabling call control using
H.245. Depending on the mobile level of H.223, the H.223 packets will be
delimited using HDLC flags (01111110) (mobile level 0), 16 bit flags
(level 1), or more complex flags (level 2 and 3). (You can also find a
good and short introduction at:
http://www.dilithiumnetworks.com/news/Media%20Coverage/IEEE_Multimedia_04July.pdf)
Immediately after establishing the B-channel, the 2 clients have to
agree on a H.223 mobile level. Therefore they are consecutively sending
the flags to indicate their mobile level capabillities. Simultaneously
the clients are analyzing the received flags to identify the mobile
level of the remote client. If the mobile levels differ, the clients
have to fall back to a mobile level supported by both clients.
And now my questions/problems.
- Where should I implement this functionality? Should I write an
application which does H.324 or should I modify the zaptel channel?
- Up to now I wrote s small application which uses f=ast_read(chan); to
read a frame from the B-channel and later dumps the data to a file (for
analyzing the received bit stream). Is there a better way to retrieve
the unmodified stream from the B-channel? Is the order of bytes/bits in
f->data the same as received on the B-channel? (I'm currently having
some byte sex and byte order problems).
I'm willing to put effort in this gateway, but somehow I'm lost in the
source code and help by some experts will help me to focus on the real
problems. Btw: Is there a developer guide which describes the design of
asterisk and the usage of zaptel?
Any help is greatly appreciated.
regards,
Klaus
More information about the asterisk-dev
mailing list