Objective Systems, Inc.  

ooh245.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2004-2009 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  *****************************************************************************/
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 /* MAKE_DLL */
00042 #endif /* EXTERN */
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

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