配置文件定义如下:
;上级SIP网关配置(SIP服务端)
[SIPServer]
;上级域名
DN=34020000
GBID=34020000002000000001
IP=192.168.1.77
Port=5060
;SIP资源服务器配置(SIP客户端)
[SIPResServer]
;国标ID
GBID=34020100002000000001
;鉴权密码
PWD=12345678
;通信方式(TCP/UDP)
Protocol=TCP
;本地地址
IP=192.168.1.145
;本地SIP通信端口
Port=5060
;ICE服务端口
ICEPort=10000
类定义如下:
#ifndef _GB_SIPIMPLEMENT_CONFIG_H_
#define _GB_SIPIMPLEMENT_CONFIG_H_
#include <windows.h>
#define CFGVALUELEN 128
enum CFG_KEY
{
SIPRES_CFG_SIPGW_DOMAIN=0,
SIPRES_CFG_SIPGW_GBID,
SIPRES_CFG_SIPGW_ADDR,
SIPRES_CFG_SIPGW_PORT,
SIPRES_CFG_GBID,
SIPRES_CFG_PWD,
SIPRES_CFG_ADDR,
SIPRES_CFG_PORT,
SIPRES_CFG_CLIENT_PROTOCOL,
SIPRES_CFG_ICE_IP,
SIPRES_CFG_ICE_PORT,
SIP_CFG_END
};
class Configer
{
public:
Configer()
{
ZeroMemory(m_cfgValue, SIP_CFG_END * CFGVALUELEN);
}
public:
BOOL LoadSMGConfig(const char* lpszPath)
{
GetPrivateProfileString("SIPServer", "DN", "0000000000000000000", m_cfgValue[SIPRES_CFG_SIPGW_DOMAIN], CFGVALUELEN, lpszPath);
GetPrivateProfileString("SIPServer", "GBID", "0000000000000000000", m_cfgValue[SIPRES_CFG_SIPGW_GBID], CFGVALUELEN, lpszPath);
GetPrivateProfileString("SIPServer", "IP", "127.0.0.1", m_cfgValue[SIPRES_CFG_SIPGW_ADDR], CFGVALUELEN, lpszPath);
GetPrivateProfileString("SIPServer", "Port", "8000", m_cfgValue[SIPRES_CFG_SIPGW_PORT], CFGVALUELEN, lpszPath);
GetPrivateProfileString("SIPResServer", "GBID", "0000000000000000000", m_cfgValue[SIPRES_CFG_GBID], CFGVALUELEN, lpszPath);
GetPrivateProfileString("SIPResServer", "PWD", "admin", m_cfgValue[SIPRES_CFG_PWD], CFGVALUELEN, lpszPath);
GetPrivateProfileString("SIPResServer", "IP", "127.0.0.1", m_cfgValue[SIPRES_CFG_ADDR], CFGVALUELEN, lpszPath);
GetPrivateProfileString("SIPResServer", "Port", "8000", m_cfgValue[SIPRES_CFG_PORT], CFGVALUELEN, lpszPath);
GetPrivateProfileString("SIPResServer", "Protocol", "TCP", m_cfgValue[SIPRES_CFG_CLIENT_PROTOCOL], CFGVALUELEN, lpszPath);
GetPrivateProfileString("SIPResServer", "ICEPort", "8000", m_cfgValue[SIPRES_CFG_ICE_PORT], CFGVALUELEN, lpszPath);
return TRUE;
}
INT GetIntConfig(CFG_KEY cfgKey) const
{
return atoi(m_cfgValue[cfgKey]);
}
const CHAR* GetStringConfig(CFG_KEY cfgKey) const
{
return m_cfgValue[cfgKey];
}
private:
CHAR m_cfgValue[SIP_CFG_END][CFGVALUELEN];
};
#endif
可以根据对应的KEY找到对应的值。