Bläddra i källkod

Z991239-3451 #comment 增加呼叫路由交互过程中告警信息

80274480 3 år sedan
förälder
incheckning
48dd021398

+ 5 - 0
Module/include/EventCode.h

@@ -594,6 +594,11 @@ ERROR_ACCESSAUTH_CONNECT_ACS}
 #define LOG_WARN_COUNTERCONNECT_SIP_CONNECT_FAILED					0x3046000A	 //sip channel connect failed
 #define LOG_WARN_COUNTERCONNECT_CALL_STATE_TRANS					0x3046000B	 //call state trans
 #define LOG_WARN_COUNTERCONNECT_BROADCAST_CALL_STATE				0x3046000C	 //broadcast call state trans
+
+#define LOG_WARN_COUNTERCONNECT_CALLROUTE_ADDRESS					0x30461001	 //call route address
+#define LOG_WARN_COUNTERCONNECT_CALLROUTE_CONNECT_FAILED			0x30461002	 //call route connect server failed
+#define LOG_WARN_COUNTERCONNECT_CALLROUTE_SUCCESS					0x30461003	 //call route success
+#define LOG_WARN_COUNTERCONNECT_CALLROUTE_FAILED					0x30461004	 //call route failed
 /*----End--CounterConnector------------------------------*/  
 
 

+ 3 - 1
Module/mod_counterconnector/CMakeLists.txt

@@ -29,7 +29,9 @@ target_link_directories(${MODULE_NAME} PRIVATE
 
 
 # 添加实体需要依赖的其他共享库(包括系统库)
-set(${MODULE_PREFIX}_LIBS  ${MODULE_BASE_LIBS})
+set(${MODULE_PREFIX}_LIBS  ${MODULE_BASE_LIBS}
+	uuid
+)
 target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
 
 deploy_module(${MODULE_PREFIX} ${MODULE_NAME})

+ 2 - 11
Module/mod_counterconnector/ConnectorFSM.cpp

@@ -180,9 +180,6 @@ ErrorCodeEnum ACMCallFSM::OnInit()
 	m_strCallRouteBranchNo = NULL;
 	m_strCallRouteAccessNo = NULL;
 	m_pCallRouteList = NULL;
-	m_pHttpFunc = create_http(HTTPLogCallback);
-	m_bGrayLaunch = FALSE;
-	m_strDirectCenterPattern = NULL;
 	ErrorCodeEnum Error = LoadConfig();
 	if (Error != Error_Succeed)
 		goto on_error;
@@ -195,8 +192,6 @@ ErrorCodeEnum ACMCallFSM::OnInit()
 	Dbg("chan proxy ip1:%s,num1:%s,port1:%d;ip2:%s,num2:%s,port2:%d", (LPCSTR)m_strChanProxyIP[0],(LPCSTR)m_strChanCallNum[0], m_iChanProxyPort[0],(LPCSTR)m_strChanProxyIP[1],(LPCSTR)m_strChanCallNum[1], m_iChanProxyPort[1]);
 	Dbg("CallRouteIP:%s,port:%d", (LPCSTR)m_strCallRouteIP,m_iCallRoutePort);
 	Dbg("TerminalId: %s", (LPCSTR)m_strTerminalId);
-	Dbg("DirectCenterPattern: %s", (LPCSTR)m_strDirectCenterPattern);
-	Dbg("GrayLaunchUrl: %s", (LPCSTR)m_strGrayLaunchUrl);
 	m_bHangup = FALSE;
 	m_bHandFree = TRUE;
 	m_bAgentHandFree = TRUE;
@@ -368,7 +363,6 @@ ErrorCodeEnum ACMCallFSM::OnExit()
 
 void ACMCallFSM::OnStateTrans(int iSrcState, int iDstState)
 {
-	LOG_FUNCTION();
 	Dbg("FSM state from state %s to %s", GetStateName(iSrcState), GetStateName(iDstState));
 	if (CheckBeginRing(iSrcState, iDstState)) {
 		StartRing();
@@ -457,7 +451,6 @@ void ACMCallFSM::s0_on_exit()
 {
 	m_bHangup = FALSE;
 	m_nStarttime = GetTickCount();
-	m_bGrayLaunch = FALSE;
 }
 
 unsigned int ACMCallFSM::s0_on_event(FSMEvent* event)
@@ -593,7 +586,6 @@ unsigned int ACMCallFSM::s9_on_event(FSMEvent* event)
 
 void ACMCallFSM::s8_on_entry() 
 {
-	LOG_FUNCTION();
 	//get call route,采用直接总行方式
 	call_info_t call_info;
 	call_info.callroute_server_ip = m_strCallRouteIP;
@@ -662,7 +654,6 @@ unsigned int ACMCallFSM::s10_on_event(FSMEvent* event)
 
 void ACMCallFSM::s11_on_entry() 
 {
-	LOG_FUNCTION();
 	ErrorCodeEnum Error = Error_Succeed;
 	LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_MAKECALL,"begin make call");
 	if (m_nCurSipServer == Error_Server){
@@ -672,13 +663,13 @@ void ACMCallFSM::s11_on_entry()
 	if (Error == Error_Succeed){
 		bool center_connect = FALSE;
 		//get call route,采用直接总行方式
-		if (m_bGrayLaunch && (m_strCallRouteIP.GetLength() != 0)) {
+		if (m_strCallRouteIP.GetLength() != 0) {
 			callurl_node_t *node = get_no_used_node(m_pCallRouteList);
 			if (node != NULL){
 				Dbg("Begin Head Office Make Call!");
 				char ipstr[256] = {0};
 				char callid_str[64] = { 0 };
-				GetLocalIP(ipstr);
+				GetLocalIP(ipstr, 64);
 				get_format_uuid(callid_str, 64);
 				Error = MakeCall(node->strcallurl, CSimpleStringA::Format("sip:%s@%s;transport=UDP", node->strnewcallernum, ipstr), 
 					callid_str, m_CallingParam);

+ 49 - 16
Module/mod_counterconnector/ConnectorFSM.h

@@ -11,7 +11,7 @@
 #ifdef _WIN32
 #include "resource.h"
 #else
-
+#include "uuid/uuid.h"
 #endif
 
 
@@ -494,22 +494,29 @@ private:
 
 	void get_format_uuid(char* strbuffer, size_t ulen)
 	{
+#ifdef RVC_OS_WIN
 		UUID uuid;
 		size_t uuidlen = 0;
-		//RPC_CSTR buf;
-		//UuidCreate((UUID*)&uuid);
-		//UuidToString((UUID*)&uuid, &buf);
+		RPC_CSTR buf;
+		UuidCreate((UUID*)&uuid);
+		UuidToString((UUID*)&uuid, &buf);
 
-		//uuidlen = strlen((const char*)buf);
-		//if (uuidlen < ulen) {
-		//	memcpy(strbuffer, (const char*)buf, uuidlen);
-		//}
+		uuidlen = strlen((const char*)buf);
+		if (uuidlen < ulen) {
+			memcpy(strbuffer, (const char*)buf, uuidlen);
+		}
 
-		//RpcStringFree(&buf);
+		RpcStringFree(&buf);
+#else
+		uuid_t uuid;
+		uuid_generate(uuid);
+		uuid_unparse(uuid, strbuffer);
+#endif
 	}
 
-	ErrorCodeEnum GetLocalIP(char *buff)
+	ErrorCodeEnum GetLocalIP(char *buff, size_t ulen)
 	{
+#ifdef RVC_OS_WIN
 		char tmp[256];
 		gethostname(tmp, sizeof(tmp));
 		hostent *ent = gethostbyname(tmp);
@@ -531,6 +538,38 @@ private:
 			}
 		}
 		return Error_Unexpect;
+#else
+		ErrorCodeEnum error = Error_Unexpect;
+		int sockfd = -1;
+		struct ifconf ifconf;
+		struct ifreq* ifreq = NULL;
+		char strbuf[256] = { 0 };
+		ifconf.ifc_len = 256;
+		ifconf.ifc_buf = strbuf;
+		if ((sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
+			Dbg("socket error");
+			return error;
+		}
+		ioctl(sockfd, SIOCGIFCONF, &ifconf); //get all socket info
+		ifreq = (struct ifreq*)ifconf.ifc_buf;
+		for (int i = (ifconf.ifc_len / sizeof(struct ifreq)); i > 0; i--) {
+			if (ifreq->ifr_flags == AF_INET) { //for ipv4
+				char* strIP = inet_ntoa(((struct sockaddr_in*) & (ifreq->ifr_addr))->sin_addr);
+				Dbg("name = %s, local addr = %s", ifreq->ifr_name, strIP);
+				ifreq++;
+				if (NULL != strIP) {
+					if (NULL == strstr(strIP, "198.168.") && NULL == strstr(strIP, "127.0.0.1"))
+					{
+						strcpy(buff, strIP);
+						Dbg("local ip == %s", buff);
+						error = Error_Succeed;
+						break;
+					}
+				}
+			}
+		}
+		return error;
+#endif
 	}
 
 	ErrorCodeEnum MakeCall(int nSipServer,CallingParam callingparam)
@@ -811,8 +850,6 @@ private:
 		table.AddEntryInt("CounterConnector", "call_route_port", m_iCallRoutePort, 0);
 		table.AddEntryString("CounterConnector", "call_route_access_no", m_strCallRouteAccessNo, NULL);
 		table.AddEntryString("Initializer", "SubBankNo", m_strCallRouteBranchNo, NULL);
-		table.AddEntryString("Common", "GrayLaunchUrl", m_strGrayLaunchUrl, NULL);
-		table.AddEntryString("CounterConnector", "DirectCenterPattern", m_strDirectCenterPattern, NULL);
 		CSmartPointer<IConfigInfo> spConfig;
 		ErrorCodeEnum Error = m_pEntity->GetFunction()->OpenConfig(Config_CenterSetting, spConfig);
 		if (Error == Error_Succeed) {
@@ -940,10 +977,6 @@ private:
 	CSimpleStringA m_strCallRouteBranchNo;
 	CSimpleStringA m_strCallRouteAccessNo;
 	node_list_head_t *m_pCallRouteList;
-	CSimpleStringA m_strGrayLaunchUrl;
-	IHttpFunc *m_pHttpFunc;
-	BOOL m_bGrayLaunch;
-	CSimpleStringA m_strDirectCenterPattern;//临时使用,后续分行网络全部开通后去掉
 
 	BOOL m_bRing;
 };

+ 13 - 13
Module/mod_counterconnector/Event.h

@@ -2,24 +2,23 @@
 //交互日志事件
 #define EVENT_MOD_CONNECT_CONNECT_SUCCESS		0x30400001		//连线成功,级别1
 #define EVENT_MOD_CONNECT_GOTO_DISCONNECT		0x30400002		//进入离线,级别1	
-#define LOG_EVT_RELEASELIVEDETECTION			0x30400003    //通知sipphone释放主动活体
-#define LOG_EVT_STARTLIVEDETECTDISPLAY			0x30400004    //开始主动活体回显
-#define LOG_EVT_STOPLIVEDETECTDISPLAY			0x30400005    //停止主动活体回显
+#define LOG_EVT_RELEASELIVEDETECTION			0x30400003      //通知sipphone释放主动活体
+#define LOG_EVT_STARTLIVEDETECTDISPLAY			0x30400004      //开始主动活体回显
+#define LOG_EVT_STOPLIVEDETECTDISPLAY			0x30400005      //停止主动活体回显
 
 
-#define LOG_EVT_HANDFREE_MODE_REMOTE_CALL		0x30400006    //以免提模式开始远程连线
-#define LOG_EVT_PICKUP_MODE_REMOTE_CALL			0x30400007    //以话筒模式开始远程连线
+#define LOG_EVT_HANDFREE_MODE_REMOTE_CALL		0x30400006      //以免提模式开始远程连线
+#define LOG_EVT_PICKUP_MODE_REMOTE_CALL			0x30400007      //以话筒模式开始远程连线
 
-#define LOG_EVT_STOPLIVEDETECTNOTICEDISPLAY		0x30400008	  //停止主动活体文字显示
+#define LOG_EVT_STOPLIVEDETECTNOTICEDISPLAY		0x30400008	    //停止主动活体文字显示
 
 //错误日志事件
 #define EVENT_MOD_CONNECT_CONNECT_TIMEOUT		0x30480001		//尝试连线超时,级别1	
 
-#define EVENT_MOD_RELEASESIP_TIMEOUT		0x30470001		//SIP释放超时,重启SIPPHONE模块	
+#define EVENT_MOD_RELEASESIP_TIMEOUT		0x30470001			//SIP释放超时,重启SIPPHONE模块	
 
-
-#define EVENT_MOD_CONNECT_GPIO_PICKUP		0x20900005		//PICKUP		
-#define EVENT_MOD_CONNECT_GPIO_HANDFREE		0x20900006		//HANDFREE
+#define EVENT_MOD_CONNECT_GPIO_PICKUP		0x20900005			//PICKUP		
+#define EVENT_MOD_CONNECT_GPIO_HANDFREE		0x20900006			//HANDFREE
 
 //事件转换发出事件
 #define EVENT_MOD_CONNECT_PICKUP_CALL	0x10303041		// 提机呼叫  
@@ -31,12 +30,12 @@
 #define EVENT_MOD_CONNECT_HANNUP_BY_CONNECTING	0x10303049	//话筒未接通时挂机
 #define EVENT_MOD_CONNECT_HANNUP_BY_AGENT		0x10313086	// 授权操作
 
-#define EVENT_MOD_CONNECT_SLV_HANDFREECALL	0x10303050   //界面拨号,免提呼叫发送给SIPPHONE
-#define EVENT_MOD_CONNECT_SLV_PICKUPCALL	0x10303051   //界面拨号,话筒呼叫发送给SIPPHONE
+#define EVENT_MOD_CONNECT_SLV_HANDFREECALL	0x10303050		//界面拨号,免提呼叫发送给SIPPHONE
+#define EVENT_MOD_CONNECT_SLV_PICKUPCALL	0x10303051		//界面拨号,话筒呼叫发送给SIPPHONE
 
 #define EVENT_MOD_CONNECT_AGENT_HANDFREE_PICKUP		0x10303052	//坐席控制免提转话筒
 #define EVENT_MOD_CONNECT_AGENT_PICKUP_HANDFREE		0x10303053	//坐席控制话筒转免提
-#define EVENT_MOD_CONNECT_SLV_PICKUPCALL_HAS_CMD		0x10303054	//界面拨号,带有指令信息
+#define EVENT_MOD_CONNECT_SLV_PICKUPCALL_HAS_CMD	0x10303054	//界面拨号,带有指令信息
 
 #define LOG_EVT_SELFCHECK_ASSISTANTCHANNEL_IDLE		0x50500001  //协助通道重启
 #define LOG_EVT_SELFCHECK_SIPPHONE_IDLE				0x50500002  //sip话机重启
@@ -48,6 +47,7 @@
 #define LOG_EVT_DISTRIBUTE_ASSISTANTCHANNEL_IDLE	0x30C00001		// 协助通道重置
 #define LOG_EVT_DISTRIBUTE_SIPPHONE_IDLE			0x30C00002		// sip话机重置
 
+
 #define SYSVAR_CALLTYPE	"CallType"
 #define CALLTYPE_NORMAL "N" // 呼叫类型,普通模式
 #define CALLTYPE_MOBILE	"M" // 呼叫类型,手机模式

+ 31 - 24
Module/mod_counterconnector/callrouter.cpp

@@ -4,6 +4,7 @@
 #include "callroute_request.h"
 #include "callroute_nodelist.h"
 #include "SpBase.h"
+#include "../include/EventCode.h"
 
 #ifdef RVC_OS_WIN
 #include <process.h>
@@ -39,13 +40,14 @@ typedef int SOCKET;
 static int get_sys_time(char* pDst, size_t iLen)
 {
 	int iret = 0;
-#ifdef _WIN32||_WIN64
+	if (NULL == pDst) {
+		return iret;
+	}
+
+#ifdef RVC_OS_WIN
 	SYSTEMTIME sys; 
 	GetLocalTime( &sys ); 
 	_snprintf(pDst, iLen, "%04d%02d%02d%02d%02d%02d",sys.wYear, sys.wMonth, sys.wDay, sys.wHour, sys.wMinute, sys.wSecond); 
-	if (NULL != pDst){
-		iret = strlen(pDst);
-	}
 #else
 	struct tm* t;
 	time_t tt;
@@ -53,6 +55,7 @@ static int get_sys_time(char* pDst, size_t iLen)
 	t = localtime(&tt);
 	_snprintf(pDst, iLen, "%04d%02d%02d%02d%02d%02d", t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
 #endif
+	iret = strlen(pDst);
 	return iret;
 }
 
@@ -100,7 +103,7 @@ static int request_voipgateway_address(call_info_t *call_info, proxy_rsp_packet_
 	SOCKET client_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
 	struct timeval timeout = { 2,0 };
 	if (set_socket_attribute(client_socket, timeout)){
-		Dbg("request_voipgateway_address set_socket_attribute failed.");
+		LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CALLROUTE_CONNECT_FAILED, "request_voipgateway_address set_socket_attribute failed.");
 		return ret;
 	}
 	if (INVALID_SOCKET != client_socket){
@@ -108,8 +111,10 @@ static int request_voipgateway_address(call_info_t *call_info, proxy_rsp_packet_
 		sa.sin_family = AF_INET;  
 		sa.sin_addr.s_addr = inet_addr(call_info->callroute_server_ip.GetData());
 		sa.sin_port = htons(call_info->callroute_server_port);
-		memset(sa.sin_zero, 0, sizeof(sa.sin_zero)); 
-		Dbg("dest addr is %s:%d.", call_info->callroute_server_ip.GetData(), call_info->callroute_server_port);
+		memset(sa.sin_zero, 0, sizeof(sa.sin_zero));
+		char strmsg[256] = { 0 };
+		_snprintf(strmsg, 256, "dest route addr is %s:%d.", call_info->callroute_server_ip.GetData(), call_info->callroute_server_port);
+		LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CALLROUTE_ADDRESS, strmsg);
 		//控制为非阻塞方式
 #ifdef RVC_OS_WIN
 		ioctlsocket(client_socket, FIONBIO, &mode);
@@ -149,28 +154,26 @@ static int request_voipgateway_address(call_info_t *call_info, proxy_rsp_packet_
 #else
 			close(client_socket);
 #endif // RVC_OS_WIN
-			Dbg("request_voipgateway_address connect callroute server timeout(%d).", errno);
+			char strerror[256];
+			_snprintf(strerror, 256, "request_voipgateway_address connect callroute server timeout(%d).", errno);
+			LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CALLROUTE_CONNECT_FAILED, strerror);
 			return ret;      //超时
 		} 
-		
 		reset_buffer(&req_info, 0x20, sizeof(proxy_req_packet_t));
 		itimelen = get_sys_time(strtime, RVC_DATALEN);
 		if (0 < itimelen){
 			fill_packet(&req_info, call_info->szdest_num, call_info->szcaller_num, call_info->szbranchno, strtime);
 		}
-
 		ret = send(client_socket, (const char*)(&req_info), len, 0);
-
 		if (ret <= 0){
 #ifdef RVC_OS_WIN
 			closesocket(client_socket);
 #else
 			close(client_socket);
 #endif // RVC_OS_WIN
-			Dbg("request_voipgateway_address send to callroute server failed.");
+			LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CALLROUTE_FAILED, "request_voipgateway_address send to callroute server failed.");
 			return ret;
 		}
-
 		ret = recv(client_socket, (char*)rsp_packet, rsp_len, 0);
 
 #ifdef RVC_OS_WIN
@@ -179,11 +182,10 @@ static int request_voipgateway_address(call_info_t *call_info, proxy_rsp_packet_
 		close(client_socket);
 #endif // RVC_OS_WIN
 		if (ret <= 0){
-			Dbg("request_voipgateway_address recv from callroute server failed.");
+			LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CALLROUTE_FAILED, "request_voipgateway_address recv from callroute server failed.");
 			return ret;
 		}
 	}
-
 	return ret;
 }
 
@@ -200,8 +202,10 @@ static bool is_response_packet_valid(proxy_rsp_packet_t* packet_info)
 			memcpy(packgelen, packet_info->req_hdr.packgelen, 4);
 		    memcpy(tradefrom, packet_info->req_hdr.tradefrom, 3);
 			memcpy(requestcode, packet_info->req_hdr.requestcode, 16);
-			Dbg("get mediaserver address from callroute server failed, rsp packgelen:%s, tradefrom:%s, requestcode:%s!", 
+			char strmsg[256] = { 0 };
+			_snprintf(strmsg, 256, "get mediaserver address from callroute server failed, rsp packgelen:%s, tradefrom:%s, requestcode:%s!", 
 				packgelen,tradefrom, requestcode);
+			LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CALLROUTE_FAILED, strmsg);
 		}else{
 			bret = true;
 		}
@@ -243,6 +247,7 @@ static unsigned int separate_string_string(char *buf, const char *delim, char **
 
 static node_list_head_t *create_node_list_by_callernum(call_info_t *call_info, proxy_rsp_packet_t* packet_info)
 {
+	
 	node_list_head_t *phead = NULL;
 	char new_touri[RVC_DATALEN]={0};
 	char strinterip[RVC_DATALEN]={0};
@@ -251,7 +256,6 @@ static node_list_head_t *create_node_list_by_callernum(call_info_t *call_info, p
 	if (NULL == call_info || NULL == packet_info){
 		return NULL;
 	}
-
 	if (is_response_packet_valid(packet_info)){
 		if (0 == fifter_sparate_flag(packet_info)){
 			char *dp[10] = {NULL};
@@ -278,15 +282,18 @@ static node_list_head_t *create_node_list_by_callernum(call_info_t *call_info, p
 					get_interger_netaddr(strinterip, RVC_DATALEN, packet_info->rsp_body.video_content_ip);
 					_snprintf(new_caller_number, RVC_DATALEN, "%s%s%s",
 						call_info->szcaller_num.GetData(), "#", strinterip);
-
-					Dbg("new callroute node: new_caller_number:%s new_touri:%s, assist_ip:%s, assist_port:%s!", 
+					char strmsg[256] = { 0 };
+					_snprintf(strmsg, 256,"new callroute node: new_caller_number:%s new_touri:%s, assist_ip:%s, assist_port:%s!", 
 									new_caller_number, new_touri, packet_info->rsp_body.video_content_ip, packet_info->rsp_body.video_content_port);
+					LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CALLROUTE_FAILED, strmsg);
 					add_node_to_list(phead, new_caller_number, new_touri, packet_info->rsp_body.video_content_ip, packet_info->rsp_body.video_content_port);
 				}
 			}
 		}
 	}else{
-		Dbg("create_node_list_by_callernum failed. szbranchno:%s, szcaller_num:%s, szdest_num:%s.", call_info->szbranchno.GetData(), call_info->szcaller_num.GetData(), call_info->szdest_num.GetData());
+		char strerror[256] = { 0 };
+		_snprintf(strerror, 256, "create_node_list_by_callernum failed. szbranchno:%s, szcaller_num:%s, szdest_num:%s.", call_info->szbranchno.GetData(), call_info->szcaller_num.GetData(), call_info->szdest_num.GetData());
+		LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CALLROUTE_FAILED, strerror);
 	}
 
 	return phead;
@@ -303,17 +310,17 @@ node_list_head_t *get_callroute_list(call_info_t *call_info)
 		call_info->szdest_num.GetLength() == 0 ||
 		call_info->szcaller_num.GetLength() == 0 ||
 		call_info->szbranchno.GetLength() == 0) {
-		Dbg("get_callroute_list failed call_info param is null.");
+		LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CALLROUTE_FAILED, "get_callroute_list failed call_info param is null.");
 		return NULL;
 	}
-
 	reset_buffer(&rsp_info, 0x20, sizeof(proxy_rsp_packet_t));
 	ret = request_voipgateway_address(call_info, &rsp_info, recvlen);
 	if (ret <= 0){
-		Dbg("get_callroute_list failed szbranchno:%s, szcaller_num:%s, szdest_num:%s.", call_info->szbranchno.GetData(), call_info->szcaller_num.GetData(), call_info->szdest_num.GetData());
+		char strmsg[256] = { 0 };
+		_snprintf(strmsg, 256, "get_callroute_list failed szbranchno:%s, szcaller_num:%s, szdest_num:%s.", call_info->szbranchno.GetData(), call_info->szcaller_num.GetData(), call_info->szdest_num.GetData());
+		LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CALLROUTE_FAILED, strmsg);
 		return NULL;
 	}
-	
 	return create_node_list_by_callernum(call_info, &rsp_info);
 }