⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configuration.h

📁 基于h323协议的软phone
💻 H
字号:
#ifndef __CONFIGURATION_H__
#define __CONFIGURATION_H__

#ifdef __cplusplus
extern "C" {
#endif

#define MASK_FORWARD_ALL			1
#define MASK_FORWARD_BUSY			2
#define MASK_FORWARD_NOANSWER	4

/* IP 地址或 E.164号码最大长度 */
#ifndef MAX_PHONE_NUMBER_LEN
#define MAX_PHONE_NUMBER_LEN		32
#endif

#define MAX_SPEED_DIAL_KEY			10

#define MODE_FTP			0
#define MODE_TFTP			1

/*话机ip分配方式*/
#define STATICIP 0
#define DHCPIP 1
#define PPPOEIP 2

#ifndef AUDIO_CODEC_NUM
#define AUDIO_CODEC_NUM	4
#endif

/* 话机的基本配置 */
struct s_cfgbasic
{
    char linename[15]; /*在线名称*/
	char password[7]; /*  话机密码 */
	char linenumber[MAX_PHONE_NUMBER_LEN+1]; /* 本机号码 */
	char linenumber2[MAX_PHONE_NUMBER_LEN+1]; /* 在线号码2 */
	char linenumber3[MAX_PHONE_NUMBER_LEN+1]; /* 在线号码3*/
	unsigned char ringtype; /* 振铃类型 */
	unsigned char ringvolume; /* 振铃音量 */
	unsigned char handsetvolume;/*听筒音量*/
	unsigned char speakerphonevolume;/*免提喇叭音量*/
	long time; /* 话机时间 */
	unsigned char ifdebug; /* 是否重定向输出 */
	unsigned short dstport; /* 接收输出信息的UDP端口 */
	unsigned int dstaddr; /*接收输出信息的UDP地址 */
};

/* 网络配置 */
struct s_cfgnetwork
{
	/**unsigned char ifpppoe;**/
	/* 是否使用pppoe */
	unsigned char ipType;
#ifdef INCLUDE_PPPOE_APP
	char pppoeid[20]; /* pppoe帐号 */
	char pppoepin[20]; /* pppoe密码 */
	unsigned char ifautodialatstartup; /* 话机启动时是否自动pppoe拨号 */
       unsigned char retryCount;
#endif
	/**unsigned char ifdhcp; **/
	/* 是否使用dhcp */
	unsigned int ipaddr; /* 话机IP */
	unsigned int subnetmask; /* 子网掩码 */
	unsigned int gateway; /* 网关 */
	unsigned char ifproxy; /* 是否使用代理服务器 */
	unsigned int proxyip; /* 代理服务器IP */
	unsigned short proxyport; /* 代理服务器端口 */
	unsigned char netspeed; /* 网口设置,0 - auto   1 - 10M   2 - 100M */
#ifdef INCLUDE_NAT_APP
	unsigned char ifnat;		/* 是否启用NAT */
	unsigned int natlocalip;	/* NAT本地IP地址 */
	unsigned int natlocalmask;	/* NAT本地子网掩码 */
#endif
};

/* sntp设置 */
struct s_cfgsntp
{
	unsigned char ifsntp; /* 是否使用sntp */
	unsigned int serverip; /* sntp服务器IP */
	int timezone; /* 时区 */
};

/* 升级ftp设置 */
struct s_cfgftp
{
	unsigned char mode; /* ftp/tftp*/
	unsigned int server; /* 服务器IP*/
	char usrid[20]; /* 用户名 */
	char pin[10]; /* 密码 */
	char filename[20]; /* 升级文件名*/
};

/* 呼叫转移设置 */
struct s_cfgforward
{
	unsigned char mode; /* 呼叫转移的类型 1-all 2-busy 4-noanswer*/
	char numberAll[MAX_PHONE_NUMBER_LEN+1];
	char numberBusy[MAX_PHONE_NUMBER_LEN+1];
	char numberNoAnswer[MAX_PHONE_NUMBER_LEN+1]; 
	int interval;
};

typedef struct CodecElem
{
	int		isUsed;
	char		codecName[32];
	int 		codecType;	
} CodecElem;

/* 语音设置 */
struct s_cfgaudio
{
	CodecElem	codecPrefOrder[AUDIO_CODEC_NUM];	
};

typedef enum dtmftype
{
	DTMF_H245STRING,
	DTMF_RFC2833EVENT,
	DTMF_Q931
} DtmfType;

/* 服务设置 */
struct s_cfgservice
{
	unsigned char ifservice; /* 是否使用登录服务器 对于H323是否使用GateKeeper 对于SIP是否使用Proxy Server */
	unsigned int serverip; /* 登录服务器的IP */
	unsigned short serviceport; /* 服务监听端口 */
	unsigned short registerport; /* 注册端口 */
	char serviceid[20]; /* 向服务器验证使用的ID */ 
	unsigned short rtpport; /* RTP端口 */
	unsigned char ifbilling; /* 2004.03.04, 是否使用计费服务器 */
	unsigned short localbillingport; /* 2004.03.04, 发送通话时间的本地UDP端口 */
	unsigned short billingserverport; /* 2004.03.04, 计费服务器UDP监听端口 */
	unsigned int billingserverip; /* 2004.03.04, 计费服务器的IP */
	DtmfType dtmftype; /* 发送DTMF号码的方式 */
};

/* H323设置 */
#ifdef HC
struct s_cfgh323
{
	unsigned short q931port; /* Q931端口 */
	unsigned short h245port; /* H245端口 */
	unsigned char ifencryption; /* 是否使用加密 */
	char encryptionusr[20]; /* 加密的用户名 */
	char encryptionpin[10];	/* 加密的密码 */ 
	unsigned char registermode; /* 向网守注册的方式 */
	char registerid[20]; /* 注册ID */
	char registerpin[10]; /* 注册密码 */
	char e164id[MAX_PHONE_NUMBER_LEN+1];/* E.164号码 */
	unsigned int audiogateway; /* 语音网关 */
	unsigned char iffirewall; /* 是否使用防火墙 */
	unsigned char isFastStart; /*是否使用fastStart*/
	unsigned char isH245Tunneling; /* 是否使用H245Tunneling */
};
#endif

/* SIP 设置*/
#ifdef SIP
struct s_cfgsip
{
	char registername[64];
	unsigned short registerport;
	char registerpass[20];
	char phonenum[20];
};
#endif

/* MGCP 设置 */
#ifdef MGCP
struct s_cfgmgcp
{
	char callagentaddr[64];
	char endpointid[33];
	char domainname[33];
	int callagentport;
	int localport;
	int reqtimeout;
	int delmsgtimeout;
	int epidsetmode;/*1--默认(aaln/0@[192.168.123.113]),2--域名(aaln/0@broadeasy.com),4--任意aaln/0@xxx*/
};
#endif

/* 话机配置 */
struct s_config
{
	struct s_cfgbasic conf_basic;
	struct s_cfgaudio conf_audio;
	struct s_cfgforward conf_forward;
	struct s_cfgnetwork conf_network;
	struct s_cfgftp conf_ftp;
	struct s_cfgsntp conf_sntp;
	struct s_cfgservice conf_service;

#ifdef HC
	struct s_cfgh323 conf_h323;
#endif

#ifdef SIP
	struct s_cfgsip conf_sip;
#endif

#ifdef MGCP
	struct s_cfgmgcp conf_mgcp;
#endif
	unsigned char conf_speedDial[MAX_SPEED_DIAL_KEY]; /* 速拨号码,此处保存
							对应phonebook记录的数组下标 */

	unsigned char bootFileHead[4];
	unsigned char appFileHead[4];
#ifdef HC
	unsigned char ifEchoInput;	/* 输入是否回显 */
#endif
	char noInUse; /* 速拨号码的第一个字段保存在
					phoneconfig的最后一个字节,而在
					初始化时这个字节被用来作为
					字符串结束标志0。*/
};

extern struct s_config phoneconfig;

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -