You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

286 lines
8.1 KiB

/************************************************************************
Copyright (c) 2005-2011 by Juphoon System Software, Inc.
All rights reserved.
This software is confidential and proprietary to Juphoon System,
Inc. No part of this software may be reproduced, stored, transmitted,
disclosed or used in any form or by any means other than as expressly
provided by the written license agreement between Juphoon and its
licensee.
THIS SOFTWARE IS PROVIDED BY JUPHOON "AS IS" AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL JUPHOON BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Juphoon System Software, Inc.
Email: support@juphoon.com
Web: http://www.juphoon.com
************************************************************************/
/*************************************************
File name : mtc_util.h
Module : multimedia talk client
Author : leo.lv
Created on : 2011-01-03
Description :
Data structure and function declare required by MTC utility
Modify History:
1. Date: Author: Modification:
*************************************************/
#ifndef _MTC_UTIL_H__
#define _MTC_UTIL_H__
#include "mtc_def.h"
/**
* @file mtc_util.h
* @brief MTC Utility Interface Functions.
*/
#ifdef __cplusplus
EXPORT_FLAG {
#endif
/**
* @brief Print ERROR log with format string information.
* User can specific log name as the log module prefix
* Log print level can be set by Mtc_CliDbSetLogLevel.
*
* @param [in] pcLogName The log name. Default name is "ZOS" if no log name.
* @param [in] pcFormat String format.
* @param [in] ... String vars.
*
* @see @ref Mtc_AnyLogInfoStr
*/
MTCFUNC void Mtc_AnyLogErrStr(char *pcLogName, char *pcFormat, ...);
/**
* @brief Print INFO log with format string information.
* User can specific log name as the log module prefix
* Log print level can be set by Mtc_CliDbSetLogLevel.
*
* @param [in] pcLogName The log name. Default name is "ZOS" if no log name.
* @param [in] pcFormat String format.
* @param [in] ... String vars.
*
* @see @ref Mtc_AnyLogErrStr
*/
MTCFUNC void Mtc_AnyLogInfoStr(char *pcLogName, char *pcFormat, ...);
/**
* @brief Print DEBUG log with format string information.
* User can specific log name as the log module prefix
* Log print level can be set by Mtc_DbSetLogLevel.
*
* @param [in] pcLogName The log name. Default name is "ZOS" if no log name.
* @param [in] pcFormat String format.
* @param [in] ... String vars.
*
* @see @ref Mtc_AnyLogInfoStr
*/
MTCFUNC void Mtc_AnyLogDbgStr(char *pcLogName, char *pcFormat, ...);
/**
* @brief This function flushs buffer into log file.
*
* @retval 0 Flush operation successfully.
* @retval 1 Flush operation failed.
*
* @see
*/
MTCFUNC int Mtc_AnyLogFlush(void);
/**
* @defgroup MtcError MTC error string.
* @{
*/
/** @brief No environment. MTC maynot initilized or already destroied. */
#define MTC_ERROR_NO_ENV "Mtc.NoEnv"
/** @brief Invalid state. MTC maynot started. */
#define MTC_ERROR_INV_STATE "Mtc.InvState"
/** @brief During auth. MTC during authorization. */
#define MTC_ERROR_IN_AUTH "Mtc.InAuth"
/** @brief Invlaid parameter. */
#define MTC_ERROR_INV_PARM "Mtc.InvParm"
/** @brief Allocate memory. */
#define MTC_ERROR_ALLOC_MEM "Mtc.AllocMem"
/** @brief New Object. */
#define MTC_ERROR_NEW_OBJ "Mtc.NewObj"
/** @brief No Agent. */
#define MTC_ERROR_NO_AGENT "Mtc.NoAgent"
/** @brief Invalid ID */
#define MTC_ERROR_INV_ID "Mtc.InvId"
/** @brief Invalid URI */
#define MTC_ERROR_INV_URI "Mtc.InvUri"
/** @brief No password. */
#define MTC_ERROR_NO_PWD "Mtc.NoPwd"
/** @brief Invalid password */
#define MTC_ERROR_INV_PWD "Mtc.InvPwd"
/** @brief Subscribe event. */
#define MTC_ERROR_SUB_EVNT "Mtc.SubEvnt"
/** @brief Provision. */
#define MTC_ERROR_PROVISION "Mtc.Provision"
/** @brief Authorizaiton failed. */
#define MTC_ERROR_AUTH_FAIL "Mtc.AuthFail"
/** @brief No account. */
#define MTC_ERROR_NO_ACCOUNT "Mtc.NoAccount"
/** @brief Expired. */
#define MTC_ERROR_EXPIRED "Mtc.Expired"
/** @brief No auth code. */
#define MTC_ERROR_NO_AUTH "Mtc.NoAuth"
/** @brief Internal error. */
#define MTC_ERROR_INTERNAL "Mtc.Internal"
/** @brief Call initialize connection. */
#define MTC_ERROR_CALL_INIT_CONN "MtcCall.InitConn"
/** @brief Call initialize session. */
#define MTC_ERROR_CALL_INIT_SESS "MtcCall.InitSess"
/** @brief Call add audio stream. */
#define MTC_ERROR_CALL_ADD_AUDIO_STRM "MtcCall.AddAudioStrm"
/** @brief Call add video stream. */
#define MTC_ERROR_CALL_ADD_VIDEO_STRM "MtcCall.AddVideoStrm"
/** @brief Call no SIP registeration. */
#define MTC_ERROR_CALL_NO_SIP_REG "MtcCall.NoSipReg"
/** @brief Call exist */
#define MTC_ERROR_CALL_EXIST "MtcCall.Exist"
/** @brief Call read SDP. */
#define MTC_ERROR_CALL_READ_SDP "MtcCall.ReadSdp"
/** @brief Call fill SDP. */
#define MTC_ERROR_CALL_FILL_SDP "MtcCall.FillSdp"
/** @brief Call perform action. */
#define MTC_ERROR_CALL_ACTION "MtcCall.Action"
/** @brief Call negotiation. */
#define MTC_ERROR_CALL_NEGOTIATION "MtcCall.Nego"
/** @brief Call timeout. */
#define MTC_ERROR_CALL_TIMEOUT "MtcCall.Timeout"
/** @brief Call no callback. */
#define MTC_ERROR_NO_CALLBACK "MtcCall.NoCallBack"
/**
* @}
*/
/**
* @brief Get last error.
*
* @retval Last error string.
*/
MTCFUNC const char * Mtc_GetLastError(void);
typedef int (*PFN_MTCSHCMD)(int iArgc, char *apcArgv[]);
/**
* @brief Init shell.
*/
MTCFUNC int Mtc_ShInit(void);
/**
* @brief Destroy shell.
*/
MTCFUNC void Mtc_ShDestory(void);
/**
* @brief Add shell command.
*
* @param pcCmd Command name.
* @param pcDesc Command description.
* @param pcSynop Synopsis.
* @param pfnCmd Command process entry.
*/
MTCFUNC int Mtc_ShCmdAdd(const char *pcCmd, const char *pcDesc,
const char *pcSynop, PFN_MTCSHCMD pfnCmd);
/**
* @brief Start run shell.
*/
MTCFUNC int Mtc_ShRun(void);
/**
* @brief Get option from arguments.
*
* @param [in] iArgc Argument count.
* @param [in] apcArgv Argument string table.
* @param [in] pcOptStr Option string.
* @param [out] ppcArg Current argument string.
*
* @retval -1 Indicate the end of argument table.
* @retval '?' Indicate unknown argument.
* @retval Otherwise The option character
*
* The function is used to prase the argument string table.
* First, you should reset g_iZshOptInd to 0.
* Then repeat call this function until it returns -1,
* which indicate the end of argument string table.
*
* If prase successfully, it return the corresponding character in [pcOptStr].
* If the character in option string is followed by :, then the argument string
* will assgined to [ppcArg]. \n
*
* @section example Example:
* @code
* g_iZshOptInd = 0;
* while ((opt = Zsh_CmdGetOpt(argc, argv, "nt:", &argstr)) != -1)
* {
* switch (opt)
* {
* case 'n':
* flag = 1;
* break;
* case 't':
* val = atoi(argstr);
* break;
* default:
* fprintf(stderr, "Usage: %s [-t nsec] [-n] \r\n", argv[0]);
* exit(0);
* }
* }
* @endcode
*
* @note Learn more detail from getopt manpage in linux
*/
MTCFUNC int Mtc_ShGetOpt(int iArgc, const char **apcArgv,
const char *pcOptStr, const char **ppcArg);
#ifdef __cplusplus
}
#endif
#endif /* _MTC_UTIL_H__ */