dect
/
asterisk
Archived
13
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asterisk/addons/ooh323c/src/ooStackCmds.h

172 lines
4.8 KiB
C

/*
* Copyright (C) 2004-2005 by Objective Systems, Inc.
*
* This software is furnished under an open source license and may be
* used and copied only in accordance with the terms of this license.
* The text of the license may generally be found in the root
* directory of this installation in the COPYING file. It
* can also be viewed online at the following URL:
*
* http://www.obj-sys.com/open/license.html
*
* Any redistributions of this file including modified versions must
* maintain this copyright notice.
*
*****************************************************************************/
/**
* @file ooStackCmds.h
* This file contains stack commands which an user application can use to make
* call, hang call etc.
*/
#ifndef OO_STACKCMDS_H
#define OO_STACKCMDS_H
#include "ootypes.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifndef EXTERN
#if defined (MAKE_DLL)
#define EXTERN __declspec(dllexport)
#else
#define EXTERN
#endif /* MAKE_DLL */
#endif /* EXTERN */
/**
* @defgroup stackcmds Stack Control Commands
* @{
*/
/**
* This is an enumeration of Stack Command return codes.
*/
typedef enum OOStkCmdStat{
OO_STKCMD_SUCCESS,
OO_STKCMD_MEMERR,
OO_STKCMD_INVALIDPARAM,
OO_STKCMD_WRITEERR,
OO_STKCMD_CONNECTIONERR
}OOStkCmdStat;
/**
* This is an enumeration of stack command codes.
*/
typedef enum OOStackCmdID {
OO_CMD_NOOP,
OO_CMD_MAKECALL, /*!< Make call */
OO_CMD_ANSCALL, /*!< Answer call */
OO_CMD_FWDCALL, /*!< Forward call */
OO_CMD_HANGCALL, /*!< Terminate call */
OO_CMD_SENDDIGIT, /*!< Send dtmf */
OO_CMD_MANUALRINGBACK, /*!< Send Alerting - ringback */
OO_CMD_STOPMONITOR /*!< Stop the event monitor */
} OOStackCmdID;
/**
* This structure is used to queue a stack command for processing in
* the event handler loop.
*/
typedef struct OOStackCommand {
OOStackCmdID type;
void* param1;
void* param2;
void* param3;
} OOStackCommand;
#define ooCommand OOStackCommand;
/**
* This function is used by an application to place a call.
* @param dest Call Destination - IP:port / alias
* @param callToken Pointer to a buffer in which callToken will be returned
* @param bufsiz Size of the callToken buffer passed.
* @param opts These are call specific options and if passed a non-null
* value, will override global endpoint options.
*
* @return Returns OOStkCmdStat value indication success or failure.
*/
EXTERN OOStkCmdStat ooMakeCall
(const char* dest, char *callToken, size_t bufsiz, ooCallOptions *opts);
/**
* This function is used to send a manual ringback message (alerting message)
* for a call. Effective only when manual-ringback is enabled.
* @param callToken Unique token for the call.
*
* @return Returns OOStkCmdStat value indication success or failure.
*/
EXTERN OOStkCmdStat ooManualRingback(const char *callToken);
/**
* This function is used to answer a call
* @param callToken Unique token for the call
*
* @return Returns OOStkCmdStat value indication success or failure.
*/
EXTERN OOStkCmdStat ooAnswerCall(const char *callToken);
/**
* This function is used to forward an existing call to third party.
* @param callToken Unique token for the call.
* @param dest Address to which the call has to be forwarded. Can be
* IP:PORT or alias.
*
* @return Returns OOStkCmdStat value indication success or failure.
*/
EXTERN OOStkCmdStat ooForwardCall(const char* callToken, char *dest);
/**
* This function is used by an user application to terminate a call.
* @param callToken The uinque token for the call.
* @param reason Reason for hanging call.
*
* @return Returns OOStkCmdStat value indication success or failure.
*/
EXTERN OOStkCmdStat ooHangCall(const char* callToken, OOCallClearReason reason);
/**
* This command function can be used by an user application to send a DTMF
* sequence using H.245 UserInputIndication message.
* @param callToken Unique token for the call
* @param alpha Alphanumeric string reperesenting dtmf sequence
*
* @return Returns OOStkCmdStat value indication success or failure.
*/
EXTERN OOStkCmdStat ooSendDTMFDigit(const char *callToken, const char* alpha);
/**
* This function is used by the user application to stop stack thread.
*
* @return Returns OOStkCmdStat value indication success or failure.
*/
EXTERN OOStkCmdStat ooStopMonitor(void);
/**
* This function is used by application to obtain the text description for
* failure of tsack command.
* @param stat Status code returned by stack command api.
*
* @return Text description corresponding to the code.
*/
EXTERN const char* ooGetStkCmdStatusCodeTxt(OOStkCmdStat stat);
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif