blob: bc29aa21fcb644f195c2ae6c15278069951a76e8 [file] [log] [blame]
/**************************************************************************
*
* Copyright (c) 2013 ZTE Corporation.
*
***************************************************************************
* Ä£ ¿é Ãû : cc
* ÎÄ ¼þ Ãû : cc_proc.h
* Ïà¹ØÎļþ :
* ʵÏÖ¹¦ÄÜ :ccÃüÁî·¢Ëͺͽá¹û´¦ÀíÄ£¿éºê¡¢ÀàÐͶ¨Òå
* ×÷ Õß :
* °æ ±¾ :
* Íê³ÉÈÕÆÚ :
* ÆäËü˵Ã÷ :
**************************************************************************/
/**************************************************************************
* Ð޸ļǼ :
***************************************************************************/
/**************************************************************************
* Ð޸ıàºÅ : 0001
* ÐÞ ¸Ä ÈË :
* ÐÞ¸ÄÈÕÆÚ :
* ÐÞ¸ÄÄÚÈÝ :
**************************************************************************/
#ifndef _CC_PROC_H
#define _CC_PROC_H
/**************************************************************************
* #includeÇø
**************************************************************************/
//#include "Drvs_voiceprocess.h"
#include "stdio.h"
#include "at_msg.h"
#include "os_type_def.h"
#include "at_other_api.h"
/**************************************************************************
* ³£Á¿¶¨ÒåÇø
**************************************************************************/
#define ZAT_TAB_REPLACE ((unsigned char )(0xFC)) /* ÖÆ±í·ûÌæ»»·û */
#define ZAT_NULL_FILL ((unsigned char )(0xFD)) /* ¿Õ´®Õ¼Î»·û */
#define ZAT_SPACE_REPLACE ((unsigned char )(0xFE)) /* ¿Õ¸ñÌæ»»·û */
#define ZCC_APP_AT_BUF_MAX_LEN 400
#define ZCC_APP_AT_BUF_WAIT_TIME 300
#define ZCC_MSG_DATA_MAXLEN 640
/**************************************************************************
* Êý¾Ý½á¹¹¶¨ÒåÇø
**************************************************************************/
typedef VOID (*pCcSlaveFsmFunc)(UINT8);
#define SC_LEN 29
#define SC_MAXLEN (SC_LEN-1) // ǰתºÅÂ볤¶È×î´óΪ SC_MAXLEN -5
typedef struct
{
UINT8 scName;
UINT8 scMinLen; //ÆÚÍûµÄ²¹³äÒµÎñ²Ù×÷Âë×îС³¤¶È
UINT8 scMaxLen; //ÆÚÍûµÄ²¹³äÒµÎñ²Ù×÷Âë×î´ó³¤¶È
char sc[SC_LEN];
}T_zCc_ScTab;
typedef enum
{
CC_APP_AT_CMD_NONE,
CC_APP_AT_CMD_REQ_D,
CC_APP_AT_CMD_REQ_A,
CC_APP_AT_CMD_REQ_CHUP,
CC_APP_AT_CMD_REQ_ZLEDVOLTE,
CC_APP_AT_CMD_REQ_VTS,
CC_APP_AT_CMD_REQ_CMUT,
CC_APP_AT_CMD_REQ_CLVL,
CC_APP_AT_CMD_REQ_VOICELOOP,
CC_APP_AT_CMD_REQ_IMSPLUS,
CC_APP_AT_CMD_REQ_SET_CHLD,
CC_APP_AT_CMD_REQ_SET_CCFC,
CC_APP_AT_CMD_REQ_SET_CCWA,
CC_APP_AT_CMD_REQ_SET_CLCK,
CC_APP_AT_CMD_REQ_GET_CCFC,
CC_APP_AT_CMD_REQ_GET_CCWA,
CC_APP_AT_CMD_REQ_SET_CPWD,
CC_APP_AT_CMD_REQ_GET_CLCC,
}E_CC_APP_AtReqCmdId;
/* Define known events. Events are received from vTSP and SIP. */
typedef enum {
ZCC_NO_E = 0,
//ZCC_RESET_E = 1,
ZCC_DTMF_E = 1,
//ZCC_DTMFLE_E = 2,
//ZCC_DTMFTE_E = 3,
ZCC_DIAL_E = 4,
ZCC_CNCT_E = 5,
ZCC_DISCN_E = 6,
ZCC_BSY_E = 7,
ZCC_MATCH_E = 8,
ZCC_TIMER_E = 16,
ZCC_SEIZE_E = 20,
ZCC_RELEASE_E = 21,
ZCC_FLASH_E = 22,
ZCC_CIDCW_E = 29,
ZCC_SINVITE_E = 42,
ZCC_SDISCN_MO_E = 43,
ZCC_SANS_E = 44,
ZCC_SRING_E = 45,
ZCC_SDIALLING_E = 46,
ZCC_BUSYTONETIMER_E = 47,
ZCC_HOOKOFFTIMER_E = 48,
ZCC_SSDIALTONETIMER_E = 49,
ZCC_DTMFTIMER_E = 50,
ZCC_TKYTIMER_E = 51,
ZCC_SDISCN_MT_E = 52,
ZCC_SDIAL_ERR_E = 53,
ZCC_HOOKOFF_IDLE_TIMER_E = 54,
ZCC_RESOURCE_READY_E = 115,
ZCC_ASSIST_MSG_E = 128
} T_zCc_Event;/* ÏûÏ¢½á¹¹Ìå */
typedef SINT32 (*zCcApp_RecvAtIndFun)(MSG_BUF *ptMsgBuf);
typedef SINT32 (*zCcApp_AtIndProcFun)(MSG_BUF *ptMsgBuf);
typedef struct
{
int AtIndCmd;
zCcApp_RecvAtIndFun RecvAtIndProcFun;
}T_CC_APP_RecvAtIndItem;
SINT32 zCc_DsciIndProc(MSG_BUF *ptMsgBuf);
//SINT32 zCc_CendIndProc(MSG_BUF *ptMsgBuf);
SINT32 zCc_ZcpiIndProc(MSG_BUF *ptMsgBuf);
SINT32 zCc_ZimsplusProc(MSG_BUF *ptMsgBuf);
SINT32 zCc_ZvoicechnlProc(MSG_BUF *ptMsgBuf);
typedef struct
{
ULONG cmdId;
zCcApp_AtIndProcFun AtIndProcFun;
}T_CC_APP_AtIndProcItem;
extern char g_zCcApp_AtIndBuf[ZCC_APP_AT_BUF_MAX_LEN+1];
SINT32 zCcApp_AtIndProc(char* AtBuff, SINT32 AtLen);
VOID zCc_SendAtDialReq(PSTR pAtCmdPara);
VOID zCc_SendAtDtmfReq(char* dtmfchar);
SINT32 zCc_SendAtChldReq(int chldtype);
VOID zCc_SendAtAnswerReq(VOID);
VOID zCc_SendAtHangupReq(VOID);
SINT32 zCc_RecvDsciInd(MSG_BUF *ptMsgBuf);
SINT32 zCc_RecvZcpiInd(MSG_BUF *ptMsgBuf);
SINT32 zCc_RecvImsplusInd(MSG_BUF *ptMsgBuf);
SINT32 zCc_RecvZvoiceChnl(MSG_BUF *ptMsgBuf);
VOID zCc_DigitsMatchRltProc(UINT8 ret);
UINT8 zCc_DigitsMatch(VOID);
VOID zCc_ClearDigits(VOID);
VOID zCc_InitSlaveObj(UINT8 slave);
VOID zCc_SIdleState(UINT8 slave);
VOID zCc_SDtState(UINT8 slave);
VOID zCc_SDaccmState(UINT8 slave);
VOID zCc_SDialingState(UINT8 slave);
VOID zCc_SRingbackState(UINT8 slave);
VOID zCc_STalkingState(UINT8 slave);
VOID zCc_SWaitResourceState(UINT8 slave);
VOID zCc_STryingState(UINT8 slave);
VOID zCc_SBsyToneState(UINT8 slave);
VOID zCc_STkytState(UINT8 slave);
VOID zCc_SSilState(UINT8 slave);
VOID zCcApp_Dial(char *ptMsgBuf);
SINT32 zCcApp_Answer(VOID);
SINT32 zCcApp_Chup(VOID);
SINT32 zCcApp_Vts(char* dtmfchar);
SINT32 zCcApp_Chld(int chldtype);
UINT8 zCc_CallCount(VOID);
void zCcApp_SetAtChnlCmdId(E_CC_APP_AtReqCmdId AtCmdId);
VOID zCc_RunSlave(UINT8 slave);
VOID zCc_RunMaster(MSG_BUF *ptMsgBuf);
SINT32 zCcApp_Ccfc(T_zCcapp_CcfcReq *ptccfcreq);
SINT32 zCcApp_Clck(T_zCcapp_ClckReq *ptclckreq);
SINT32 zCcApp_SetImsPlus(int rate, int setfg);
SINT32 zCcApp_AtIndRspProc(MSG_BUF *ptMsgBuf);
SINT32 zCc_RecvRsp(MSG_BUF *ptMsgBuf);
LONG zCcApp_send_message(unsigned short Msg_cmd,unsigned short us_DataLen,unsigned char *pData);
VOID zCc_SendAtImsPlusReq(int rate, int setfg);
VOID zCc_CheckSlaveState(const char *tips);
VOID zCc_ShowAllSlave(VOID);
void zCcApp_Vts_CleanReq(void);
void zCcApp_Vts_Rsp(void);
#endif