?? h323common.h
字號:
#ifndef __H323COMMON_H__
#define __H323COMMON_H__
/***********************************************
* INCLUDES
***********************************************/
extern "C" {
#include "h323.h"
}
/*#include "jb.x"*/
//jitter buffer files
/*
#include "jb.h"
#include "jb.x"
*/
/*#include "DTMFDevice.h"*/
/*
#include "vxWorks.h"*/
/*#include "dspManager.h"*/
#include "task.h"
#include "beptimer.h"
#define __H323
#include "configuration.h"
/*#include "bepcommon.h"*/
typedef char ForwardNumber[40];
typedef struct ForwardNumberList_tag
{
RvUint32 num;
ForwardNumber list[MAX_FORWARD_NUMBER_LIST];
} ForwardNumberList;
/*
typedef struct MAC_LIST
{
unsigned char mac_addr[6];
struct MAC_LIST* next;
}MAC_LIST;
*/
#define ETH_ARP 0x0806
typedef struct ARPPACKET
{
unsigned char htype[2];
unsigned char ptype[2];
unsigned char hlen;
unsigned char plen;
unsigned char op[2];
unsigned char SenderMac[6];
unsigned char SenderIP[4];
unsigned char TargetMac[6];
unsigned char TargetIP[4];
unsigned char Trailer[18];
} ARPPACKET;
typedef struct AppCallInfo_tag
{
char ipAddr[5];
char display[MAX_DISPLAY_LENGTH + 1];
char h323Id[MAX_H323ID_LENGTH + 1];
char e164Num[MAX_E164NUM_LENGTH + 1];
WpCodec codec;
ForwardNumberList forwardNumberList; /* Forward to number list */
unsigned char used;
} AppCallInfo;
/***********************************************
* DEFINES
***********************************************/
#ifdef __cplusplus
extern "C" {
#endif
/*#define LENGTH_LOCAL_ID 32 /* Large enough to hold the biggest configuration string */
#define TASKDELAY_ONE_SEC 100
#define CDR_FORMAT "AA:%s AN:%s BA:%s BN:%s AD: BD: TP: CF: CA: CN: BW: ST:%u ET:%u\n"
#define CALLER_ACTOR 1
#define RECEIVER_ACTOR 2
#define MAX_PHONE_NUMBER_LEN 32
#define ONE_SEC 1 * 1000
#define THREE_SEC 3 * 1000
#define FOUR_SEC 4 * 1000
#define SIX_SEC 6 * 1000
#define TEN_SEC 10 * 1000
#define FIFTEEN_SEC 15 * 1000
#define THIRTY_SEC 30 * 1000
#define ALERTING_SEC 30*1000
#define CONNECT_TIME 90*1000
#define LENGTH_LOCAL_ID 32
#if 0
/***********************************************
* External declarations
***********************************************/
extern int InitStack(void);
extern short wpSendMsgToWp(WrapperMsg * givenMsg);
extern ULONG sysGetCPUVer(void);
/*offhook-reboot-ringing*/
extern void ScanForOffHook(void);
extern void appRegisterToPhyStatus( FUNCPTR ptr );
extern void changeNetSpeed ( void );
#endif
/***********************************************
* Forward declarations
***********************************************/
/* 等待第一次撥號超時或按撥出鍵,
* 則直接撥出待機時已輸入號碼
*/
int AppCalloutDirect();
/* 直接撥出Transfer 號碼 */
int AppCalloutTransfer();
/* 得到預撥出號碼 */
int AppGetCallingNumber();
int AppSendWrapper (WpMsgId msgid, int callId);
int AppTerminateAction (int given_state);
int SendARPBroadcast();
void AppSendCallForward(int callId, char *destAddr, int destAddrType);
#if 0
/* 終結指定通道的通話 */
void AppTerminateOneCall(unsigned int chan, unsigned int term_type);
/* 激活指定通道已有的通話 */
void AppMakeActiveCall(unsigned int chan);
/* 切換當前的激活通道*/
void AppSwitchActiveCall(unsigned int new_chan, int unpause);
#endif
/* 設置信號編碼格式 */
void AppSetCodec(WpCodex rx, WpCodex tx);
/* 封裝返回忙或呼叫轉移的處理流程 */
void AppReplyNotAvailOrFwd(WrapperMsg *wp_msg);
/* 保存已接來電 */
int AppRecordIncomingCall(char * number);
/* 保存未接來電 */
int AppRecordNoAnswerCall(char * number);
/* 保存撥出電話 */
int AppRecordOutgoingCall(char * number);
/* 得到nvram中的call forward相關配置 */
void AppGetForwardConfig();
/* 設置通話狀態下需顯示的對方IP地址或者E.164號碼 */
void SetRemoteNumber();
void SetRemoteName(char *name, char *number);
/* 查找速撥號碼 */
int SearchSpeedDialNumber(char *digits);
int RedialKey(int type);
/* 設置localID */
void SetLocalID();
void PlayBusyTone(int playTime);
int copyStrSafely(char *dst, char *src, int len);
time_t getCurrentTime();
void recordCallTime();
void LcdShowMessage(char *msg);
int startJbAndRtp(int callId);
void stopJbAndRtp();
int h323JbInit();
WpCodex AppGetCodec(int codecIndex);
int TestInputHook(struct ifnet *pIf, char *buffer, int length);
/***********************************************
* LOCAL VARIABLES
***********************************************/
int* state = NULL;
/*tone_type tone_playing = null_tone;*/
char digit_set[MAX_PHONE_NUMBER_LEN+1]; /* 用戶輸入的數字號碼 */
/* Pointer to the decoder and encoder objects. The Jitter Buffer uses these
* pointers to send and receive packets of media.
*/
#if 0
CdspDecoder *dspApiDecoder[DSP_MAX_DECODER_USERS];
CdspEncoder *dspApiEncoder[DSP_MAX_ENCODER_USERS];
CdspManager *dspApiMgr; /* DSPAPI Manager */
extern int muted;
unsigned char mutedByTransfer = 0; /* 按下轉接鍵時是否打開了靜音 */
#endif
int callIndex = -1; /* 當前占用通道號 */
unsigned char call_numbers = 0; /* Concurrent call numbers */
unsigned char remoteIPAddr[5];
char localTermIPAddr[5]; /* Terminal's IP address */
char localIPAddr[5]; /* Terminal's IP address */
char localGWAddr[5]; /* Terminal's Gateway IP address */
char localIPNumber[5]; /* 本地終端IP地址,as numbers, not a string */
char localDisplay[MAX_DISPLAY_LENGTH+1]; /* Terminal's display string */
char localE164Num[MAX_E164NUM_LENGTH+1]; /* Terminal's E.164 number */
char localH323Id[MAX_H323ID_LENGTH+1]; /* Terminal's H.323 Id */
char toAddr[32+1];
int num_digits = 0;
int digitCollectAmount = -1;
unsigned char gkEnabled = 0; /* 是否支持網守 */
int gatekeeperStatus = FALSE;
#ifdef INCLUDE_PPPOE_APP
int pppoeStatus = FALSE; /*pppoe status*/
#endif
unsigned char networkStatus = FALSE/*TRUE*/; /* 網線連接是否正常 */
unsigned int ForwardUncond = FALSE; /* 是否允許無條件轉移,默認為false */
unsigned int ForwardBusy = FALSE; /* 是否允許遇忙轉移,默認為false */
unsigned int ForwardNoResponse = FALSE; /* 是否允許無應答轉移,默認為false */
char ForwardNumberUncond[MAX_PHONE_NUMBER_LEN + 1];
char ForwardNumberBusy[MAX_PHONE_NUMBER_LEN + 1];
char ForwardNumberNoResponse[MAX_PHONE_NUMBER_LEN + 1];
RvUint16 ForwardNumberUncondType; /* 呼叫轉移地址的類型 */
RvUint16 ForwardNumberBusyType; /* 呼叫轉移地址的類型 */
RvUint16 ForwardNumberNoResponseType; /* 呼叫轉移地址的類型 */
int transferred_flag = FALSE; /* 轉接標志 */
int starting_transfer = FALSE; /* 是否已開始轉接 */
int transfer_done = FALSE; /* 是否轉接結束 */
int awaiting_transfer = FALSE; /* 是否在等待轉接 */
int transfer_abandoned = FALSE; /* 是否放棄轉接 */
char TransferIPAddr[5]; /* Transferred-to's IP address (party C address) */
int call_forward_timer = -1; /* 呼叫前轉計時器 */
int h323_timer = -1; /* 計時器 */
int volume_timer = -1; /* 音量保存計時器 */
int pingTimer = -1; /* Ping 計時器 */
int IPTimer =-1; /*IP地址沖突計時器*/
int DelayTimer =-1; /* 延遲發arp包的計時器*/
int rasTimer = -1; /* ras 消息定時器*/
int dhcpTimer = -1; /* dhcp 申請定時器 */
int reDhcpTimer = -1; /* dhcp重新申請定時器 */
int congestion_timeout = 0; /* 催掛音是否超時 */
int arp_reply_timer = -1; /*是否收到arp包的定時器*/
int ifipconflict;
int forwarded_flag = FALSE; /* 前轉標志 */
char net_config_msg[41]; /* 網絡配置后的消息 */
int gk_error_msg_index = -1;
char CDRMessage[210];
/*time_t startVoiceTime, endVoiceTime;*/
unsigned char callActor = CALLER_ACTOR;
char oldRemoteName[32+1];
char oldRemoteNumber[MAX_PHONE_NUMBER_LEN+1];
#ifndef INCLUDE_RV_RTP
RtpManager* rtpManager = NULL;
#endif
int sId = 0;
/*U8 txCodec ;
U8 rxCodec ;
U16 txpayload;
U16 rxpayload;
U16 txmaxAlSduFrames;
U16 rxmaxAlSduFrames;
U16 txencodeRate;
U16 rxencodeRate;*/
AppCallInfo appCallInfo[MAX_CONCURRENT_CALL_NUM];
/*struct timespec times2 = { 0, 100000000};*/
/*
extern SEM_ID initProcSem;
extern int initDone;
*/
/*extern WpCodecList wpCodecList;*/
/*extern unsigned char h323ParamInit;*/
#ifdef __cplusplus
}
#endif
#endif /* __H323COMMON_H__ */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -