00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00021 #ifndef _OOH245HDR_H_
00022 #define _OOH245HDR_H_
00023
00024 #include "ooasn1.h"
00025 #include "ooCapability.h"
00026 #include "oochannels.h"
00027 #include "ootrace.h"
00028
00029 #include "ooq931.h"
00030 #include "MULTIMEDIA-SYSTEM-CONTROL.h"
00031
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035
00036 #ifndef EXTERN
00037 #ifdef MAKE_DLL
00038 #define EXTERN __declspec(dllexport)
00039 #else
00040 #define EXTERN
00041 #endif
00042 #endif
00043
00044 struct OOH323CallData;
00045
00054 typedef struct H245Message {
00055 H245MultimediaSystemControlMessage h245Msg;
00056 ASN1UINT msgType;
00057 ASN1INT logicalChannelNo;
00058 } H245Message;
00059
00072 EXTERN int ooCreateH245Message(H245Message **msg, int type);
00073
00082 EXTERN int ooFreeH245Message(struct OOH323CallData *call, H245Message *pmsg);
00083
00092 EXTERN int ooSendH245Msg(struct OOH323CallData *call, H245Message *msg);
00093
00106 EXTERN int ooGetOutgoingH245Msgbuf(struct OOH323CallData *call,
00107 ASN1OCTET *msgbuf,
00108 int *len, int *msgType);
00109
00118 EXTERN int ooSendTermCapMsg(struct OOH323CallData *call);
00119
00126 EXTERN ASN1UINT ooGenerateStatusDeterminationNumber();
00127
00138 EXTERN int ooHandleMasterSlave
00139 (struct OOH323CallData *call, void * pmsg, int msgType);
00140
00148 EXTERN int ooSendMasterSlaveDetermination(struct OOH323CallData *call);
00149
00159 EXTERN int ooSendMasterSlaveDeterminationAck
00160 (struct OOH323CallData* call, char * status);
00161
00167 EXTERN int ooSendMasterSlaveDeterminationReject (struct OOH323CallData* call);
00168
00169
00180 EXTERN int ooHandleMasterSlaveReject
00181 (struct OOH323CallData *call, H245MasterSlaveDeterminationReject* reject);
00182
00191 EXTERN int ooHandleOpenLogicalChannel
00192 (struct OOH323CallData* call, H245OpenLogicalChannel *olc);
00193
00203 EXTERN int ooHandleOpenLogicalChannel_helper
00204 (struct OOH323CallData *call, H245OpenLogicalChannel*olc);
00205
00214 int ooSendOpenLogicalChannelReject
00215 (struct OOH323CallData *call, ASN1UINT channelNum, ASN1UINT cause);
00216
00224 EXTERN int ooOnReceivedOpenLogicalChannelAck(struct OOH323CallData *call,
00225 H245OpenLogicalChannelAck *olcAck);
00226
00227
00236 int ooOnReceivedOpenLogicalChannelRejected(struct OOH323CallData *call,
00237 H245OpenLogicalChannelReject *olcRejected);
00245 EXTERN int ooSendEndSessionCommand(struct OOH323CallData *call);
00246
00254 EXTERN int ooHandleH245Command
00255 (struct OOH323CallData *call, H245CommandMessage *command);
00256
00257
00269 EXTERN int ooOnReceivedUserInputIndication
00270 (OOH323CallData *call, H245UserInputIndication *indication);
00271
00280 EXTERN int ooOnReceivedTerminalCapabilitySetAck(struct OOH323CallData* call);
00281
00291 EXTERN int ooCloseAllLogicalChannels(struct OOH323CallData *call);
00292
00293
00302 EXTERN int ooSendCloseLogicalChannel
00303 (struct OOH323CallData *call, ooLogicalChannel *logicalChan);
00304
00314 EXTERN int ooOnReceivedCloseLogicalChannel(struct OOH323CallData *call,
00315 H245CloseLogicalChannel* clc);
00316
00325 EXTERN int ooOnReceivedCloseChannelAck(struct OOH323CallData* call,
00326 H245CloseLogicalChannelAck* clcAck);
00327
00336 EXTERN int ooHandleH245Message
00337 (struct OOH323CallData *call, H245Message * pmsg);
00338
00348 EXTERN int ooOnReceivedTerminalCapabilitySet
00349 (struct OOH323CallData *call, H245Message *pmsg);
00350
00357 EXTERN int ooH245AcknowledgeTerminalCapabilitySet(struct OOH323CallData *call);
00358
00366 EXTERN int ooOpenLogicalChannels(struct OOH323CallData *call);
00367
00376 EXTERN int ooOpenLogicalChannel(struct OOH323CallData *call,
00377 enum OOCapType capType);
00378
00388 EXTERN int ooOpenChannel
00389 (struct OOH323CallData* call, ooH323EpCapability *epCap);
00390
00399 EXTERN int ooSendH245UserInputIndication_alphanumeric
00400 (OOH323CallData *call, const char *data);
00401
00410 EXTERN int ooSendH245UserInputIndication_signal
00411 (OOH323CallData *call, const char *data);
00412
00423 EXTERN int ooSendRequestCloseLogicalChannel(struct OOH323CallData *call,
00424 ooLogicalChannel *logicalChan);
00425
00434 int ooSendRequestChannelCloseRelease
00435 (struct OOH323CallData *call, int channelNum);
00436
00447 EXTERN int ooOnReceivedRequestChannelClose(struct OOH323CallData *call,
00448 H245RequestChannelClose *rclc);
00449
00458 int ooOnReceivedRequestChannelCloseReject
00459 (struct OOH323CallData *call, H245RequestChannelCloseReject *rccReject);
00460
00469 int ooOnReceivedRequestChannelCloseAck
00470 (struct OOH323CallData *call, H245RequestChannelCloseAck *rccAck);
00471
00485 EXTERN int ooBuildFastStartOLC(struct OOH323CallData *call,
00486 H245OpenLogicalChannel *olc,
00487 ooH323EpCapability *epCap,
00488 OOCTXT*pctxt, int dir);
00489
00504 EXTERN int ooPrepareFastStartResponseOLC
00505 (OOH323CallData *call, H245OpenLogicalChannel *olc,
00506 ooH323EpCapability *epCap, OOCTXT*pctxt, int dir);
00507
00518 EXTERN int ooEncodeH245Message
00519 (struct OOH323CallData *call, H245Message *ph245Msg, ASN1OCTET *msgbuf, size_t size);
00520
00528 int ooSendMasterSlaveDeterminationRelease(struct OOH323CallData * call);
00529
00540 int ooSendTerminalCapabilitySetReject
00541 (struct OOH323CallData *call, int seqNo, ASN1UINT cause);
00542
00551 int ooSendTerminalCapabilitySetRelease(struct OOH323CallData * call);
00552
00553
00567 int ooGetIpPortFromH245TransportAddress
00568 (OOH323CallData *call, H245TransportAddress *h245Address, char *ip,
00569 int *port);
00570
00579 int ooMSDTimerExpired(void *data);
00580
00589 int ooTCSTimerExpired(void *data);
00590
00599 int ooOpenLogicalChannelTimerExpired(void *pdata);
00600
00609 int ooCloseLogicalChannelTimerExpired(void *pdata);
00610
00619 int ooRequestChannelCloseTimerExpired(void *pdata);
00620
00628 int ooSessionTimerExpired(void *pdata);
00632 #ifdef __cplusplus
00633 }
00634 #endif
00635
00636 #endif