| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- #include "StdAfx.h"
- #include "Config.h"
- #include "DBCtrl.h"
- int CConfig::m_ListenPort = SC_LISTEN_PORT;
- TTS_TYPE CConfig::m_TtsType = TTS_NONE;
- TCHAR CConfig::m_McAddr[IP_PORT_LEN] = _T("127.0.0.1");
- int CConfig::m_McPort = 9001;
- int CConfig::m_DigitalTrunkCount = 0;
- int CConfig::m_VoipTrunkCount = 0;
- TCHAR CConfig::m_VoipSignallingAddr[IP_PORT_LEN] = { 0 };
- TCHAR CConfig::m_VoipMediaAddr[IP_PORT_LEN] = { 0 };
- TCHAR CConfig::m_FaxServerAddr[IP_PORT_LEN] = { 0 };
- int CConfig::m_FaxServerPort = 0;
- CString CConfig::m_LogFilePath = __T("");
- CString CConfig::m_TtsPath = __T("");
- CConfig::ExtenMap CConfig::m_MapExten;
- CCfgSipAccount CConfig::m_SipAccount;
- CCfgTrunkItem CConfig::m_TrunkItem;
- CCfgTrunkMatch CConfig::m_TrunkMatch;
- CConfig::CConfig(void)
- {
- }
- bool CConfig::load(void)
- {
- CString DataTemp = _T("");
- IOtlConnection* pConn = IOtlConnection::getInstance();
- // 打开数据库连接
- if(!pConn->Connect())
- return false;
- if(!m_SipAccount.load())
- return false;
- if(!m_TrunkItem.load())
- return false;
- if(!m_TrunkMatch.load())
- return false;
- m_ListenPort = pConn->GetSingleDataStr2Int(_T("SELECT value FROM conf_dev WHERE Name='ScPort'"));
- DataTemp = pConn->GetSingleDataStr(_T("SELECT value FROM conf_system WHERE Name='TtsType'"));
- m_TtsType = (TTS_TYPE)atoi(DataTemp);
- DataTemp = pConn->GetSingleDataStr(_T("SELECT value FROM conf_dev WHERE Name='McAddr'"));
- lstrcpy(m_McAddr, DataTemp);
- m_McPort = pConn->GetSingleDataStr2Int(_T("SELECT value FROM conf_dev WHERE Name='McPort'"));
- m_DigitalTrunkCount = pConn->GetSingleDataStr2Int(_T("SELECT value FROM conf_dev WHERE Name='DigTrunkCount'"));
- m_VoipTrunkCount = pConn->GetSingleDataStr2Int(_T("SELECT value FROM conf_dev WHERE Name='VoipTrunkCount'"));
- DataTemp = pConn->GetSingleDataStr(_T("SELECT value FROM conf_dev WHERE Name='VoipSignallingAddr'"));
- lstrcpy(m_VoipSignallingAddr, DataTemp);
- DataTemp = pConn->GetSingleDataStr(_T("SELECT value FROM conf_dev WHERE Name='VoipMediaAddr'"));
- lstrcpy(m_VoipMediaAddr, DataTemp);
- DataTemp = pConn->GetSingleDataStr(_T("SELECT value FROM conf_dev WHERE Name='FaxServerAddr'"));
- lstrcpy(m_FaxServerAddr, DataTemp);
- m_FaxServerPort = pConn->GetSingleDataStr2Int(_T("SELECT value FROM conf_dev WHERE Name='FaxServerPort'"));
- // 读取日志文件路径
- m_LogFilePath = pConn->GetSingleDataStr(_T("SELECT value FROM conf_system WHERE name = 'LogPath'"));
- m_TtsPath = pConn->GetSingleDataStr(_T("SELECT value FROM conf_system WHERE name = 'TtsBufferPath'"));
- DataTemp.Format(_T("SELECT id, value FROM conf_line WHERE type = %d"), LINE_EXTEN);
- IOtlRecordset* pExtens = pConn->QueryRecords(DataTemp);
- if (NULL != pExtens)
- {
- while(!pExtens->IsEOF())
- {
- pExtens->MoveNextRow();
- int ExtenId = pExtens->GetValueIntByIndex(1);
- DataTemp = pExtens->GetValueStrByIndex(2);
- m_MapExten.SetAt(ExtenId, DataTemp);
- } // end while
- IOtlRecordset::DestroyInstance(pExtens); // 释放记录集
- }
- pConn->Disconnect();
- return true;
- }
- bool CConfig::isContainsExten(char* p_tel)
- {
- if (p_tel == NULL)
- return false;
- if (strlen(p_tel) == 0)
- return false;
- char t_tel_buf[32] = { 0 };
- getCallNumFromSipAddr(p_tel, t_tel_buf);
- UINT t_extenId = atoi(t_tel_buf);
- CString t_exten;
- CConfig::ExtenMap& t_ExtMap = CConfig::extenMap();
- bool t_b_isFound = t_ExtMap.Lookup(t_extenId, t_exten);
- if (t_b_isFound)
- return true;
- return false;
- }
- void CConfig::getCallNumFromSipAddr(char* p_sip_uri, char* p_tel_buf)
- {
- if (p_sip_uri == NULL)
- return;
- if (p_tel_buf == NULL)
- return;
- char* t_p_pos;
- char t_szTmpAddr[200];
- lstrcpy(t_szTmpAddr, p_sip_uri);
- TCHAR *p = strstr(t_szTmpAddr, _T("@"));
- if (p != NULL)
- *p = 0;
- p = strstr(t_szTmpAddr, _T(":"));
- if (p == NULL)
- t_p_pos = t_szTmpAddr;
- else
- t_p_pos = p + 1;
- strncpy(p_tel_buf, t_p_pos, sizeof(p_tel_buf) - 1);
- return;
- }
|