Set video RTP timestamps to value dirived from real time clock.
[opal/cbnco.git] / opal.dxx
blobce23e985dc16496ba213b014543d375fac9a9e5d
1 /**@name OPAL  -  Open Phone Abstraction Library 
3         This is a Open Source class library for the development of applications
4         that wish to use the H.323 protocol for multi-media communications over
5         packet based networks.
7 @memo   A Class Libarary implementing several Voice over IP Protocols.
8 @version 1.1beta2
9 @author Equivalence Pty. Ltd.
12 // $Log$
13 // Revision 2.3  2002/02/11 03:24:17  dereks
14 // Add SIP to list of include files.
16 // Revision 2.2  2002/02/11 02:27:54  dereks
17 // Adjust format of CVS logging command.
19 // Revision 2.1  2002/02/11 02:17:21  dereks
20 // Adjust include file list.
23 //@{
25 /**@name Introduction
26 \begin{center}
27         {\Large{\bf Open Phone Abstraction Library}}
28 \end{center}
30 OpenH323
34 /**@name Architecture
35 \begin{center}
36         {\Large{\bf OPAL Architecture}}
37 \end{center}
39 The fundamental object of the ownership hierarchy is of the H323Endpoint 
40 class. An application would typically have one instance of a descendant of 
41 this class. The application defined descendant would set up defaults for 
42 various H323 parameters (timeouts etc), the most important of which is the 
43 capability table which defines the codecs and channel types the application 
44 is capable of handling.
46 Also created by the application in the H323Endpoint would be instances of one 
47 or more descendants of the H323Listener class. There is a descendant of this 
48 class for each protocol that is supported. For example H323ListenerIP would 
49 be for Internet use. Each listener spawns a thread that monitors its protocol 
50 and when a new incoming call is detected, creates an instance of a 
51 H323Transport class descendent. As for the H323Listener class, there is a 
52 descendent for each protocol supported, eg H323TransportIP.
54 When the first PDU arrives on a H323Transport using the Q.931 and H.225 
55 protocols, there is a call reference that identifies the connection that has 
56 been made. These connections are embodied by the H323Connection class, which 
57 contains all of the state information for a connection between H323 endpoints. 
58 The H323Endpoint instance keeps track of these active connections. If there 
59 is no connection for the call reference number already, a new one is created 
60 and H323 signalling negotiations begun.
62 An application would often have the system create an instance of a descendant 
63 of the H323Connection class, rather than that class itself. This is so that 
64 any of a large number of virtual methods may be overridden. These virtual 
65 methods are "callback" functions by the library to allow the application to 
66 either obtain information or modify the behaviour at various phases of the 
67 protocol negotiations. For example, there is a callback for when an incoming 
68 call is in progress and the application user should be "alerted". This is 
69 highly application specific being anything from a simple audible beep to 
70 displaying a pop up window with bells and whistles.
72 The H323Negotiator classes are used to maintain the state and functionality 
73 of each command or variable defined by the H.245 protocol. Their main reason 
74 for existence is actually to reduce the scope of the h225.h and h245.h files, 
75 which define many hundreds of classes. A user of the H323Connection class 
76 thus does not have to include all of these classes on every compilation unit.
78 During some of the H.245 negotiations, logical channels may be created, both 
79 by the remote endpoint and by the local application. The H323Channel class 
80 descendants represents this. A typical use of one of these classes is to open 
81 a stream of encoded audio data. The H323Channel class would create a 
82 H323Codec using the H323Capability that was passed during the protocol 
83 negotiations.
88 /**@name        Using OPAL
89 Detailed tutorials will be forthcoming.
91 @memo   Brief examples.
94 /**@name        Class Reference
96 @memo   Documentation on all classes.
97   */
98     //@{
99         //@Include: include/h323/h323.h
100         //@Include: include/h323/h323ep.h
101         //@Include: include/h323/h323con.h
102         //@Include: include/h323/channels.h
103         //@Include: include/h323/gkclient.h
104         //@Include: include/h323/gkserver.h
105         //@Include: include/h323/h225ras.h
106         //@Include: include/h323/h235auth.h
107         //@Include: include/h323/h323caps.h
108         //@Include: include/h323/h323neg.h
109         //@Include: include/h323/h323pdu.h
110         //@Include: include/h323/h323rtp.h
111         //@Include: include/h323/h450pdu.h
112         //@Include: include/h323/q931.h
113         //@Include: include/h323/transaddr.h
114         //@Include: include/codec/allcodecs.h
115         //@Include: include/codec/g711codec.h
116         //@Include: include/codec/gsmcodec.h
117         //@Include: include/codec/h261codec.h
118         //@Include: include/codec/lpc10codec.h
119         //@Include: include/codec/mscodecs.h
120         //@Include: include/codec/rfc2833.h
121         //@Include: include/lids/QTIoctl.h
122         //@Include: include/lids/ixjDefs.h
123         //@Include: include/lids/ixjlid.h
124         //@Include: include/lids/lid.h
125         //@Include: include/lids/lidep.h
126         //@Include: include/lids/vblasterlid.h
127         //@Include: include/lids/vpbapi.h
128         //@Include: include/lids/vpblid.h
129         //@Include: include/opal/connection.h
130         //@Include: include/opal/call.h
131         //@Include: include/opal/endpoint.h
132         //@Include: include/opal/guid.h
133         //@Include: include/opal/manager.h
134         //@Include: include/opal/mediafmt.h
135         //@Include: include/opal/mediastrm.h
136         //@Include: include/opal/patch.h
137         //@Include: include/opal/pcss.h
138         //@Include: include/opal/transcoders.h
139         //@Include: include/opal/transports.h
140         //@Include: include/rtp/jitter.h
141         //@Include: include/rtp/rtp.h
142         //@Include: include/t120/h323t120.h
143         //@Include: include/t120/t120proto.h
144         //@Include: include/t120/x224.h
145         //@Include: include/t38/h323t38.h
146         //@Include: include/t38/t38proto.h
147         //@Include: src/codec/gsm/inc/config.h
148         //@Include: src/codec/gsm/inc/gsm.h
149         //@Include: src/codec/gsm/inc/private.h
150         //@Include: src/codec/gsm/inc/proto.h
151         //@Include: src/codec/gsm/inc/unproto.h
152         //@Include: src/codec/vic/bsd-endian.h
153         //@Include: src/codec/vic/config.h
154         //@Include: src/codec/vic/crdef.h
155         //@Include: src/codec/vic/dct.h
156         //@Include: src/codec/vic/encoder-h261.h
157         //@Include: src/codec/vic/encoder.h
158         //@Include: src/codec/vic/grabber.h
159         //@Include: src/codec/vic/p64-huff.h
160         //@Include: src/codec/vic/p64.h
161         //@Include: src/codec/vic/p64encoder.h
162         //@Include: src/codec/vic/transmitter.h
163         //@Include: src/codec/vic/vid_coder.h
164         //@Include: src/codec/vic/videoframe.h
165         //@Include: src/codec/lpc10/src/f2c.h
166         //@Include: src/codec/lpc10/bitio.h
167         //@Include: src/codec/lpc10/lpc10.h
168         //@Include: include/sip/sdp.h
169         //@Include: include/sip/sip.h
170         //@Include: include/sip/sipcon.h
171         //@Include: include/sip/sipep.h
172         //@Include: include/sip/sippdu.h
173     //@}
175 //@}