summaryrefslogtreecommitdiff
path: root/addons/ooh323c/src/ooStackCmds.h
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2009-06-30 16:40:38 +0000
committerRussell Bryant <russell@russellbryant.com>2009-06-30 16:40:38 +0000
commitc511a2674906fd93470f0a9b77340041771466e1 (patch)
treed3d6aa7ea86d11ecaa6e88efbc46a5dde1c63ea5 /addons/ooh323c/src/ooStackCmds.h
parent62d3f1dfd9632f18c4f7c12e44af30f4cc08c292 (diff)
Move Asterisk-addons modules into the main Asterisk source tree.
Someone asked yesterday, "is there a good reason why we can't just put these modules in Asterisk?". After a brief discussion, as long as the modules are clearly set aside in their own directory and not enabled by default, it is perfectly fine. For more information about why a module goes in addons, see README-addons.txt. chan_ooh323 does not currently compile as it is behind some trunk API updates. However, it will not build by default, so it should be okay for now. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@204413 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'addons/ooh323c/src/ooStackCmds.h')
-rw-r--r--addons/ooh323c/src/ooStackCmds.h171
1 files changed, 171 insertions, 0 deletions
diff --git a/addons/ooh323c/src/ooStackCmds.h b/addons/ooh323c/src/ooStackCmds.h
new file mode 100644
index 000000000..7ba9d7226
--- /dev/null
+++ b/addons/ooh323c/src/ooStackCmds.h
@@ -0,0 +1,171 @@
+/*
+ * 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