Objective Systems, Inc.  

ootypes.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2004-2010 by Objective Systems, Inc.
00003  *
00004  * This software is furnished under an open source license and may be
00005  * used and copied only in accordance with the terms of this license.
00006  * The text of the license may generally be found in the root
00007  * directory of this installation in the COPYING file.  It
00008  * can also be viewed online at the following URL:
00009  *
00010  *   http://www.obj-sys.com/open/license.html
00011  *
00012  * Any redistributions of this file including modified versions must
00013  * maintain this copyright notice.
00014  *
00015  *****************************************************************************/
00050 #ifndef _OOTYPES_H_
00051 #define _OOTYPES_H_
00052 
00053 #include "ooSocket.h"
00054 #include "MULTIMEDIA-SYSTEM-CONTROL.h"
00055 #include "H323-MESSAGES.h"
00056 #include "ooasn1.h"
00057 
00058 #ifdef HAVE_CONFIG_H
00059 #include "config.h"
00060 #endif
00061 
00062 
00063 
00064 #define OOH323C_VERSION "v0.9.2"
00065 
00066 #ifndef EXTERN
00067 #ifdef MAKE_DLL
00068 #define EXTERN __declspec(dllexport)
00069 #else
00070 #define EXTERN
00071 #endif /* MAKE_DLL */
00072 #endif /* EXTERN */
00073 
00078 /* Function return codes */
00079 #define OO_FAILED       -1
00080 #define OO_OK           0
00081 
00082 /* TODO: States for both local and remote initiation should be maintained
00083    separately */
00087 typedef enum OOMasterSlaveState {
00088    OO_MasterSlave_Idle,
00089    OO_MasterSlave_DetermineSent,
00090    OO_MasterSlave_AckReceived,
00091    OO_MasterSlave_Master,
00092    OO_MasterSlave_Slave
00093 } OOMasterSlaveState;
00094 
00098 typedef enum {
00099    OO_LocalTermCapExchange_Idle,
00100    OO_LocalTermCapSetSent,
00101    OO_LocalTermCapSetAckRecvd,
00102    OO_RemoteTermCapExchange_Idle,
00103    OO_RemoteTermCapSetRecvd,
00104    OO_RemoteTermCapSetAckSent
00105 } OOCapExchangeState;
00106 
00110 typedef enum OOCallClearReason {
00111    OO_REASON_UNKNOWN=0,
00112    OO_REASON_INVALIDMESSAGE,
00113    OO_REASON_TRANSPORTFAILURE,
00114    OO_REASON_NOROUTE,
00115    OO_REASON_NOUSER,
00116    OO_REASON_NOBW,
00117    OO_REASON_GK_NOCALLEDUSER,
00118    OO_REASON_GK_NOCALLERUSER,
00119    OO_REASON_GK_NORESOURCES,
00120    OO_REASON_GK_UNREACHABLE,
00121    OO_REASON_GK_CLEARED,
00122    OO_REASON_NOCOMMON_CAPABILITIES,
00123    OO_REASON_REMOTE_FWDED,
00124    OO_REASON_LOCAL_FWDED,
00125    OO_REASON_REMOTE_CLEARED,
00126    OO_REASON_LOCAL_CLEARED,
00127    OO_REASON_REMOTE_BUSY,
00128    OO_REASON_LOCAL_BUSY,
00129    OO_REASON_REMOTE_NOANSWER,
00130    OO_REASON_LOCAL_NOTANSWERED,
00131    OO_REASON_REMOTE_REJECTED,
00132    OO_REASON_LOCAL_REJECTED,
00133    OO_REASON_REMOTE_CONGESTED,
00134    OO_REASON_LOCAL_CONGESTED
00135 } OOCallClearReason;
00136 
00138 #define OOTERMTYPE 60
00139 
00141 #define MAX_IP_LENGTH 15
00142 
00144 #define MAXLOGMSGLEN 2048
00145 
00147 #define DEFAULT_MAX_RETRIES 3
00148 
00152 #define OO_MSGTYPE_MIN                     101
00153 #define OOQ931MSG                          101
00154 #define OOH245MSG                          102
00155 #define OOSetup                            103
00156 #define OOCallProceeding                   104
00157 #define OOAlert                            105
00158 #define OOConnect                          106
00159 #define OOReleaseComplete                  107
00160 #define OOFacility                         108
00161 #define OOInformationMessage               109
00162 #define OOMasterSlaveDetermination         110
00163 #define OOMasterSlaveAck                   111
00164 #define OOMasterSlaveReject                112
00165 #define OOMasterSlaveRelease               113
00166 #define OOTerminalCapabilitySet            114
00167 #define OOTerminalCapabilitySetAck         115
00168 #define OOTerminalCapabilitySetReject      116
00169 #define OOTerminalCapabilitySetRelease     117
00170 #define OOOpenLogicalChannel               118
00171 #define OOOpenLogicalChannelAck            119
00172 #define OOOpenLogicalChannelReject         120
00173 #define OOOpenLogicalChannelRelease        121
00174 #define OOOpenLogicalChannelConfirm        122
00175 #define OOCloseLogicalChannel              123
00176 #define OOCloseLogicalChannelAck           124
00177 #define OORequestChannelClose              125
00178 #define OORequestChannelCloseAck           126
00179 #define OORequestChannelCloseReject        127
00180 #define OORequestChannelCloseRelease       128
00181 #define OOEndSessionCommand                129
00182 #define OOUserInputIndication              130
00183 
00184 #define OO_MSGTYPE_MAX                     130
00185 
00186 /* Timer types */
00187 #define OO_CALLESTB_TIMER  (1<<0)
00188 #define OO_MSD_TIMER       (1<<1)
00189 #define OO_TCS_TIMER       (1<<2)
00190 #define OO_OLC_TIMER       (1<<3)
00191 #define OO_CLC_TIMER       (1<<4)
00192 #define OO_RCC_TIMER       (1<<5)
00193 #define OO_SESSION_TIMER   (1<<6)
00194 #define OO_H245CONNECT_TIMER (1<<7)
00195 
00197 #define MAXMSGLEN 16384
00198 
00200 #define MAXFILENAME 256
00201 
00207 typedef enum OOCallMode {
00208    OO_CALLMODE_AUDIOCALL,   
00209    OO_CALLMODE_AUDIORX,     
00210    OO_CALLMODE_AUDIOTX,     
00211    OO_CALLMODE_VIDEOCALL,   
00212    OO_CALLMODE_FAX          
00213 } OOCallMode;
00214 
00215 /*
00216  * Flag macros - these operate on bit mask flags using mask values
00217  */
00219 #define OO_SETFLAG(flags,mask) (flags |= (ASN1UINT)mask)
00220 
00222 #define OO_CLRFLAG(flags,mask) (flags &= ~(ASN1UINT)mask)
00223 
00225 #define OO_TESTFLAG(flags,mask) (((ASN1UINT)flags & (ASN1UINT)mask) != 0)
00226 
00227 
00228 
00229 /*TODO: Should add caller-id, callername etc. So that they can be changed per
00230   call basis*/
00236 typedef struct ooCallOptions {
00237    OOBOOL fastStart;    
00238    OOBOOL tunneling;    
00239    OOBOOL disableGk;    
00240    OOCallMode callMode; 
00241 }ooCallOptions;
00242 
00243 
00244 struct OOH323CallData;
00245 
00246 typedef struct ooTimerCallback{
00247    struct OOH323CallData* call;
00248    ASN1UINT    timerType;
00249    ASN1UINT    channelNumber;
00250 } ooTimerCallback;
00251 
00255 #endif
00256 

This file was last modified on 28 May 2010.
Objective Open H.323 Stack, 0.9.1