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






_______________________________________________ Asterisk-Dev mailing list [email protected] http://lists.digium.com/mailman/listinfo/asterisk-dev To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to