|
@@ -161,18 +161,32 @@ ACMCallFSM::~ACMCallFSM()
|
|
|
ErrorCodeEnum ACMCallFSM::OnInit()
|
|
|
{
|
|
|
ErrorCodeEnum Error = LoadConfig();
|
|
|
+ int iCount = 0;
|
|
|
+
|
|
|
if (Error != Error_Succeed) {
|
|
|
- goto on_error;
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("on_error");
|
|
|
+ FSMEvent* e = new FSMEvent(USER_EVT_ERROR);
|
|
|
+ PostEventFIFO(e); // jump to error state
|
|
|
+ return Error;
|
|
|
}
|
|
|
|
|
|
GetEntityBase()->GetFunction()->SetSysVar("CallState", "O"); // set to offline state
|
|
|
Error = LoadTerminalId();
|
|
|
if (Error != Error_Succeed) {
|
|
|
- goto on_error;
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("on_error");
|
|
|
+ FSMEvent* e = new FSMEvent(USER_EVT_ERROR);
|
|
|
+ PostEventFIFO(e); // jump to error state
|
|
|
+ return Error;
|
|
|
}
|
|
|
|
|
|
+ DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("m_strDefaultServer %s.", m_strDefaultServer.GetData());
|
|
|
if(m_strDefaultServer.GetLength() > 0){
|
|
|
- ParseDefaultServer(m_strDefaultServer.GetData());
|
|
|
+ iCount = ParseDefaultServer(m_strDefaultServer.GetData());
|
|
|
+ }
|
|
|
+ char strbuf[2 * MAX_PATH] = { 0 };
|
|
|
+ snprintf(strbuf, 2 * MAX_PATH, "%s", RVC_DEFAULT_VOIPSERVER_ADDR);
|
|
|
+ if (0 == iCount) {
|
|
|
+ ParseDefaultServer(strbuf);
|
|
|
}
|
|
|
|
|
|
m_bHangup = false;
|
|
@@ -188,12 +202,6 @@ ErrorCodeEnum ACMCallFSM::OnInit()
|
|
|
AddStateHooker(this);
|
|
|
|
|
|
return Error;
|
|
|
-
|
|
|
-on_error:
|
|
|
- DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("on_error");
|
|
|
- FSMEvent *e = new FSMEvent(USER_EVT_ERROR);
|
|
|
- PostEventFIFO(e); // jump to error state
|
|
|
- return Error;
|
|
|
}
|
|
|
|
|
|
bool ACMCallFSM::ReConnectionAssistchan()
|
|
@@ -481,6 +489,7 @@ static int get_interger_netaddr(char *strbuf, size_t ubufszie, const char* szip)
|
|
|
int ACMCallFSM::ParseDefaultServer(const char* strServer)
|
|
|
{
|
|
|
int iRet = 0;
|
|
|
+
|
|
|
if(NULL == strServer){
|
|
|
return iRet;
|
|
|
}
|
|
@@ -490,6 +499,7 @@ int ACMCallFSM::ParseDefaultServer(const char* strServer)
|
|
|
int index = 0;
|
|
|
while(index < icount && result[index]){
|
|
|
m_voipserver.push_back(result[index]);
|
|
|
+ DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("result[%d] = [%s].", index, result[index]);
|
|
|
index++;
|
|
|
}
|
|
|
|
|
@@ -882,15 +892,15 @@ void ACMCallFSM::s11_on_entry()
|
|
|
m_iChanProxyPort[1] = node->uassistport;
|
|
|
m_strChanProxyIP[0] = node->strassistip;
|
|
|
m_strChanProxyIP[1] = node->strassistip;
|
|
|
- node->bused = TRUE;
|
|
|
+ node->bused = true;
|
|
|
}
|
|
|
else{
|
|
|
- int icount = m_voipserver.size();
|
|
|
+ std::size_t icount = m_voipserver.size();
|
|
|
if (icount > 0){
|
|
|
int index = SP::Module::Comm::RVCGetTickCount()%icount;
|
|
|
char strcallurl[MAX_PATH] = {0};
|
|
|
char strassistip[32] = {0};
|
|
|
- size_t uport = 0;
|
|
|
+ std::size_t uport = 0;
|
|
|
char strserver[MAX_PATH] = { 0 };
|
|
|
snprintf(strserver, MAX_PATH, "%s", m_voipserver[index].c_str());
|
|
|
if (0 == GetCallInfoFromConfig(strcallurl, MAX_PATH, strassistip, 32, &uport, strserver)){
|