Browse Source

Z991239-3095 #comment other 增加连线过程中sip收发包告警信息

陈礼鹏80274480 3 năm trước cách đây
mục cha
commit
9b2fc86665

+ 11 - 7
Module/mod_sipphone/Event.h

@@ -10,8 +10,8 @@
 #define		ERROR_MOD_SIP_REJECT_VOLUME					0x30188034   //容量拒绝, 级别2
 #define		ERROR_MOD_SIP_SERVER_PAUSE					0x30188035   //服务暂停, 级别2
 #define		ERROR_MOD_SIP_LOSS_CONNECT					0x30188036   //失去连接, 级别2
-#define		ERROR_MOD_SIP_SES_CREATE_FAILED			0x30188037   //创建会话失败
-#define		ERROR_MOD_SIP_SES_SOCKET_INUSED			0x30188038   //会话端口被占用
+#define		ERROR_MOD_SIP_SES_CREATE_FAILED				0x30188037   //创建会话失败
+#define		ERROR_MOD_SIP_SES_SOCKET_INUSED				0x30188038   //会话端口被占用
 
 #define		ERROR_MOD_SIP_INVALID_REQPACKAGE			0x30188041  //无效请求包, 级别3
 #define		ERROR_MOD_SIP_AUTH_UNRECOG					0x30188051  //鉴权不可识别, 级别3
@@ -102,15 +102,19 @@
 #define ERROR_MOD_SIP_AUDIO_RTP_CREATE_FAILED						0x3019060B  //audio rtp create failed,级别2
 #define ERROR_MOD_SIP_AUDIO_CONTEXT_CREATE_FAILED					0x3019060C  //audio context create failed,级别2
 
+#define EVENT_MOD_SIP_ENTITY_STARTED		0x301A0001		//sipphone entity start
+#define EVENT_MOD_SIP_INVITE_SEND			0x301A0002		//sip invite send
+#define EVENT_MOD_SIP_PROCESS_MSG			0x301A0003		//sip process messsage
+
 //event
-#define EVENT_MOD_CONNECT_PICKUP_CALL	0x10303041	// 提机呼叫
+#define EVENT_MOD_CONNECT_PICKUP_CALL			0x10303041	// 提机呼叫
 
 #define EVENT_MOD_CONNECT_HANDFREE_TO_PICKUP	0x10303046	// 免提->提机
 #define EVENT_MOD_CONNECT_PICKUP_TO_HANDFREE	0x10303047	// 提机->免提
 
 
-#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	//坐席控制话筒转免提
@@ -121,8 +125,8 @@
 #define LOG_EVT_SELFCHECK_ASSISTANTCHANNEL_IDLE			0x50500001  //协助通道重启
 
 
-#define LOG_EVT_ENTER_ACM_FLOW	 0x30500001          //进入坐席控制流程(initiactivetransfer发送)
-#define LOG_EVT_EXIT_ACM_FLOW	 0x30500002          //进入坐席控制流程(initiactivetransfer发送)
+#define LOG_EVT_ENTER_ACM_FLOW		0x30500001          //进入坐席控制流程(initiactivetransfer发送)
+#define LOG_EVT_EXIT_ACM_FLOW		0x30500002          //进入坐席控制流程(initiactivetransfer发送)
 
 
 //sysvar

+ 12 - 12
Module/mod_sipphone/audio_session.cpp

@@ -523,19 +523,19 @@ static int phonemedia_start(audio_session_t *session)
 
 	status = apr_pool_create(&media->pool, NULL);
 	if (status != APR_SUCCESS) {
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_APR_POOL_CREATE_FAILED, "create media pool failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_APR_POOL_CREATE_FAILED, "create media pool failed!");
 		return Error_Resource;
 	}
 
 	status = audioengine_create(media->pool, &media->engine);
 	if (status != APR_SUCCESS) {
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_AUDIO_ENGINE_CREATE_FAILED, "create audio engine failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_ENGINE_CREATE_FAILED, "create audio engine failed!");
 		goto on_error;
 	}
 
 	status = audioengine_start(media->engine);
 	if (status != APR_SUCCESS) {
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_AUDIO_ENGINE_START_FAILED, "audio engine  start failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_ENGINE_START_FAILED, "audio engine  start failed!");
 		goto on_error;
 	}
 	Dbg("audioengine_start success!");
@@ -544,7 +544,7 @@ static int phonemedia_start(audio_session_t *session)
 	if (rc != 0) {
 		char strmsg[MAX_PATH] = { 0 };
 		_snprintf(strmsg, MAX_PATH, "audio rtp session create2 failed and local port is %d, rc=%d", conf->local_rtp_port, rc);
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_AUDIO_RTP_SESSION_CREATE_FAILED, strmsg);
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_RTP_SESSION_CREATE_FAILED, strmsg);
 		LogWarn(Severity_Middle, Error_InvalidState, EVENT_MOD_SIP_AUDIO_RTP_CREATE, strmsg);
 		goto on_error;
 	}
@@ -556,21 +556,21 @@ static int phonemedia_start(audio_session_t *session)
 
 	rc = rtp_session_reset2(media->rtpsess, conf->dir, conf->remote_rtp_ip, conf->remote_rtp_port, conf->remote_rtp_port + 1);
 	if (rc != 0) {
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_AUDIO_RTP_SESSION_RESET_FAILED, "audio rtp session reset failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_RTP_SESSION_RESET_FAILED, "audio rtp session reset failed!");
 		goto on_error;
 	}
 	Dbg("rtp_session_reset2 success!");
 	
 	status = audiobridge_create(media->pool, media->engine, &media->bridge);
 	if (status != APR_SUCCESS){
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_AUDIO_BRIDGE_CREATE_FAILED, "audio bridge create failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_BRIDGE_CREATE_FAILED, "audio bridge create failed!");
 		goto on_error;
 	}
 	Dbg("audiobridge_create success!");
 
 	status = apr_pool_create(&media->micspk_pool, media->pool);
 	if (status != APR_SUCCESS){
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_APR_POOL_CREATE_FAILED, "create media micspk_pool failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_APR_POOL_CREATE_FAILED, "create media micspk_pool failed!");
 		goto on_error;
 	}
 	Dbg("apr_pool_create success!");
@@ -610,7 +610,7 @@ static int phonemedia_start(audio_session_t *session)
 		
 		status = audiodsp_create(media->micspk_pool, media->engine, read_opt, write_opt, AUDIO_CLOCK, &media->dspstream);
 		if (status != APR_SUCCESS){
-			LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_AUDIO_DSP_CREATE_FAILED, "create audio dsp failed!");
+			LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_DSP_CREATE_FAILED, "create audio dsp failed!");
 			goto on_error;
 		}
 		Dbg("audiodsp_create success!");
@@ -627,20 +627,20 @@ static int phonemedia_start(audio_session_t *session)
 		conf->remote_ptime*2*AUDIO_CLOCK/1000, FRAME_TIME*2*AUDIO_CLOCK/1000, 
 		conf->local_ptime*2*AUDIO_CLOCK/1000, &media->resizestream);
 	if (status != APR_SUCCESS){
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_AUDIO_RESIZE_CREATE_FAILED, "create audio resize failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_RESIZE_CREATE_FAILED, "create audio resize failed!");
 		goto on_error;
 	}
 
 	status = audiocodec_create(media->pool, media->engine, codec, AUDIO_CLOCK, FRAME_TIME, 
 		AUDIO_CODEC_OPT_ENCODE_WRITE, &media->codecstream);
 	if (status != APR_SUCCESS){
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_AUDIO_CODEC_CREATE_FAILED, "create audio codec failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_CODEC_CREATE_FAILED, "create audio codec failed!");
 		goto on_error;
 	}
 
 	status = audiortp_create(media->pool, media->engine, media->rtpsess, &media->rtpstream);
 	if (status != APR_SUCCESS){
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_AUDIO_RTP_CREATE_FAILED, "create audio rtp failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_RTP_CREATE_FAILED, "create audio rtp failed!");
 		goto on_error;
 	}
 	Dbg("audio_session_t session addr is 0x%08x, audiortp_create success,and media->rtpstream addrs is 0x%08x!",session, media->rtpstream);
@@ -719,7 +719,7 @@ static int phonemedia_start(audio_session_t *session)
 
 	status = audiocontext_create(media->pool, media->engine, &media->context);
 	if (status != APR_SUCCESS){
-		LogWarn(Severity_High, Error_Unexpect, ERROR_MOD_SIP_AUDIO_CONTEXT_CREATE_FAILED, "create audio context failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_CONTEXT_CREATE_FAILED, "create audio context failed!");
 		goto on_error;
 	}
 	Dbg("audiocontext_create success!");

+ 137 - 103
Module/mod_sipphone/endpoint.cpp

@@ -919,116 +919,148 @@ static void on_state(CONDITION_PARAMS)
 		SOATAG_LOCAL_SDP_STR_REF(local_sdp_str), 
 		TAG_END());
 
-	LOG_TRACE("state = %d, offer_recv=%d, answer_recv=%d, offer_sent=%d, answer_sent=%d", 
-		state, offer_recv, answer_recv, offer_sent, answer_sent);
+	char strmsg[MAX_PATH] = { 0 };
+	_snprintf(strmsg, MAX_PATH, "state = %d, offer_recv=%d, answer_recv=%d, offer_sent=%d, answer_sent=%d", state, offer_recv, answer_recv, offer_sent, answer_sent);
+	LogWarn(Severity_Middle, Error_Debug, EVENT_MOD_SIP_PROCESS_MSG, strmsg);
 
-	switch (state) 
+	switch (state)
 	{
-	case nua_callstate_calling:
-		LOG_TRACE("nua_callstate_calling, has_local_sdp : %d, has_remote_sdp : %d", !!local_sdp_str, !!remote_sdp_str);
-		if (local_sdp_str) {
-			sdp_parser_t *parser = sdp_parse(call->home, local_sdp_str, strlen(local_sdp_str), -1);
-			assert(call->last_sdp == NULL);
-			call->last_sdp = sdp_session_dup(call->home, sdp_session(parser));
-			sdp_parser_free(parser);
-		}
-		st = CALLING;
-		call->cb.on_call_state(st, state_desc[st], phrase, call->cb.user_data);
-		break;
-	case nua_callstate_proceeding:
-		LOG_TRACE("nua_callstate_proceeding, status = %d, has_local_sdp: %d, has_remote_sdp : %d", status, !!local_sdp_str, !!remote_sdp_str);
-		st = PROCEEDING;
-		call->cb.on_call_state(st, state_desc[st], phrase, call->cb.user_data);
-		if (remote_sdp_str) {
-			sdp_parser_t *parser = sdp_parse(call->home, remote_sdp_str, strlen(remote_sdp_str), -1);
-			remote_sdp = sdp_session(parser);
-			if (call->last_sdp) {
-				negotiate_sdp(call, call->last_sdp, remote_sdp);
-				su_free(call->home, call->last_sdp);
-				call->last_sdp = NULL;
-			}
-			sdp_parser_free(parser);
-		}
-		break;
-	case nua_callstate_completing:
-		st = COMPLETING;
-		LOG_TRACE("nua_callstate_completing, has_local_sdp : %d, has_remote_sdp : %d", !!local_sdp_str, !!remote_sdp_str);
-		call->cb.on_call_state(st, state_desc[st], phrase, call->cb.user_data);
-		if (remote_sdp_str) {
-			sdp_parser_t *parser = sdp_parse(call->home, remote_sdp_str, strlen(remote_sdp_str), -1);
-			remote_sdp = sdp_session(parser);
-			if (call->last_sdp) {
-				negotiate_sdp(call, call->last_sdp, remote_sdp);
-				su_free(call->home, call->last_sdp);
-				call->last_sdp = NULL;
+		case nua_callstate_calling:
+			{
+				char strcalling[MAX_PATH] = { 0 };
+				_snprintf(strcalling, MAX_PATH, "nua_callstate_calling, has_local_sdp : %d, has_remote_sdp : %d", !!local_sdp_str, !!remote_sdp_str);
+				LogWarn(Severity_Middle, Error_Debug, EVENT_MOD_SIP_PROCESS_MSG, strcalling);
+				if (local_sdp_str) {
+					sdp_parser_t* parser = sdp_parse(call->home, local_sdp_str, strlen(local_sdp_str), -1);
+					assert(call->last_sdp == NULL);
+					call->last_sdp = sdp_session_dup(call->home, sdp_session(parser));
+					sdp_parser_free(parser);
+				}
+				st = CALLING;
+				call->cb.on_call_state(st, state_desc[st], phrase, call->cb.user_data);
 			}
-			sdp_parser_free(parser);
-		}
-		break;
-	case nua_callstate_completed:
-		LOG_TRACE("nua_callstate_completed, has_local_sdp : %d, has_remote_sdp : %d", !!local_sdp_str, !!remote_sdp_str);
-		if (remote_sdp_str) {
-			if (!call->last_sdp) {
-				sdp_parser_t *parser = sdp_parse(call->home, remote_sdp_str, strlen(remote_sdp_str), -1);
-				call->last_sdp = sdp_session_dup(call->home, sdp_session(parser));
-				sdp_parser_free(parser);
+			break;
+
+		case nua_callstate_proceeding:
+			{
+				char strproceeding[MAX_PATH] = { 0 };
+				_snprintf(strproceeding, MAX_PATH, "nua_callstate_proceeding, status = %d, has_local_sdp: %d, has_remote_sdp : %d", status, !!local_sdp_str, !!remote_sdp_str);
+				LogWarn(Severity_Middle, Error_Debug, EVENT_MOD_SIP_PROCESS_MSG, strproceeding);
+				st = PROCEEDING;
+				call->cb.on_call_state(st, state_desc[st], phrase, call->cb.user_data);
+				if (remote_sdp_str) {
+					sdp_parser_t* parser = sdp_parse(call->home, remote_sdp_str, strlen(remote_sdp_str), -1);
+					remote_sdp = sdp_session(parser);
+					if (call->last_sdp) {
+						negotiate_sdp(call, call->last_sdp, remote_sdp);
+						su_free(call->home, call->last_sdp);
+						call->last_sdp = NULL;
+					}
+					sdp_parser_free(parser);
+				}
 			}
-		}
-		if (local_sdp_str) {
-			if (call->last_sdp) {
-				sdp_parser_t *parser = sdp_parse(call->home, local_sdp_str, strlen(local_sdp_str), -1);
-				local_sdp = sdp_session(parser);
-				negotiate_sdp(call, local_sdp, call->last_sdp);
-				su_free(call->home, call->last_sdp);
-				call->last_sdp = NULL;
-				sdp_parser_free(parser);
+			break;
+
+		case nua_callstate_completing:
+			{
+				st = COMPLETING;
+				char strcompleting[MAX_PATH] = { 0 };
+				_snprintf(strcompleting, MAX_PATH, "nua_callstate_completing, has_local_sdp : %d, has_remote_sdp : %d", !!local_sdp_str, !!remote_sdp_str);
+				LogWarn(Severity_Middle, Error_Debug, EVENT_MOD_SIP_PROCESS_MSG, strcompleting);
+				call->cb.on_call_state(st, state_desc[st], phrase, call->cb.user_data);
+				if (remote_sdp_str) {
+					sdp_parser_t* parser = sdp_parse(call->home, remote_sdp_str, strlen(remote_sdp_str), -1);
+					remote_sdp = sdp_session(parser);
+					if (call->last_sdp) {
+						negotiate_sdp(call, call->last_sdp, remote_sdp);
+						su_free(call->home, call->last_sdp);
+						call->last_sdp = NULL;
+					}
+					sdp_parser_free(parser);
+				}
 			}
-		}
-		break;
-	case nua_callstate_ready:
-		call->connected = true;
-		LOG_TRACE("nua_callstate_ready, has_local_sdp : %d, has_remote_sdp : %d.", !!local_sdp_str, !!remote_sdp_str);
-		st = READY;
-		call->cb.on_call_state(st, state_desc[st], phrase, call->cb.user_data);
-		if (remote_sdp_str) {
-			sdp_parser_t *parser = sdp_parse(call->home, remote_sdp_str, strlen(remote_sdp_str), -1);
-			remote_sdp = sdp_session(parser);
-			if (call->last_sdp) {
-				negotiate_sdp(call, call->last_sdp, remote_sdp);
-				su_free(call->home, call->last_sdp);
-				call->last_sdp = NULL;
+			break;
+
+		case nua_callstate_completed:
+			{
+				char strcompleted[MAX_PATH] = { 0 };
+				_snprintf(strcompleted, MAX_PATH, "nua_callstate_completed, has_local_sdp : %d, has_remote_sdp : %d", !!local_sdp_str, !!remote_sdp_str);
+				LogWarn(Severity_Middle, Error_Debug, EVENT_MOD_SIP_PROCESS_MSG, strcompleted);
+				if (remote_sdp_str) {
+					if (!call->last_sdp) {
+						sdp_parser_t* parser = sdp_parse(call->home, remote_sdp_str, strlen(remote_sdp_str), -1);
+						call->last_sdp = sdp_session_dup(call->home, sdp_session(parser));
+						sdp_parser_free(parser);
+					}
+				}
+				if (local_sdp_str) {
+					if (call->last_sdp) {
+						sdp_parser_t* parser = sdp_parse(call->home, local_sdp_str, strlen(local_sdp_str), -1);
+						local_sdp = sdp_session(parser);
+						negotiate_sdp(call, local_sdp, call->last_sdp);
+						su_free(call->home, call->last_sdp);
+						call->last_sdp = NULL;
+						sdp_parser_free(parser);
+					}
+				}
 			}
-			sdp_parser_free(parser);
-		}
+			break;
+
+		case nua_callstate_ready:
+			{
+				call->connected = true;
+				char strready[MAX_PATH] = { 0 };
+				_snprintf(strready, MAX_PATH, "nua_callstate_ready, has_local_sdp : %d, has_remote_sdp : %d.", !!local_sdp_str, !!remote_sdp_str);
+				LogWarn(Severity_Middle, Error_Debug, EVENT_MOD_SIP_PROCESS_MSG, strready);
+				st = READY;
+				call->cb.on_call_state(st, state_desc[st], phrase, call->cb.user_data);
+				if (remote_sdp_str) {
+					sdp_parser_t* parser = sdp_parse(call->home, remote_sdp_str, strlen(remote_sdp_str), -1);
+					remote_sdp = sdp_session(parser);
+					if (call->last_sdp) {
+						negotiate_sdp(call, call->last_sdp, remote_sdp);
+						su_free(call->home, call->last_sdp);
+						call->last_sdp = NULL;
+					}
+					sdp_parser_free(parser);
+				}
 #if 0
-		if (remote_sdp_str) {
-			sdp_parser_t *parser = sdp_parse(call->home, remote_sdp_str, strlen(remote_sdp_str), -1);
-			remote_sdp = sdp_session(parser);
-			negotiate_sdp(call, call->last_sdp, remote_sdp);
-			sdp_parser_free(parser);
-		} else if (local_sdp_str) {
-			sdp_parser_t *parser = sdp_parse(call->home, local_sdp_str, strlen(local_sdp_str), -1);
-			local_sdp = sdp_session(parser);
-			negotiate_sdp(call, local_sdp, call->last_sdp);
-			sdp_parser_free(parser);
-		}
+				if (remote_sdp_str) {
+					sdp_parser_t* parser = sdp_parse(call->home, remote_sdp_str, strlen(remote_sdp_str), -1);
+					remote_sdp = sdp_session(parser);
+					negotiate_sdp(call, call->last_sdp, remote_sdp);
+					sdp_parser_free(parser);
+				}
+				else if (local_sdp_str) {
+					sdp_parser_t* parser = sdp_parse(call->home, local_sdp_str, strlen(local_sdp_str), -1);
+					local_sdp = sdp_session(parser);
+					negotiate_sdp(call, local_sdp, call->last_sdp);
+					sdp_parser_free(parser);
+				}
 #endif
-		break;
-	case nua_callstate_terminated:
-		st = TERMINATED;
-		LOG_TRACE("call terminated! in sofia thread!");
-		{
-			media_desc_t audio_desc = {0};
-			audio_desc.media_dir = DIR_NONE;
-			endpoint_media_update_audio(call, &audio_desc, call->ep->curr_audio_dev_type);
-		}
-		call->cb.on_call_state(st, state_desc[st], phrase, call->cb.user_data);
-		nua_handle_bind(nh, NULL);
-		nua_handle_destroy(nh);
-		call->nh = NULL;
-		break;
-	}
+			}
+			break;
 
+		case nua_callstate_terminated:
+			{
+				st = TERMINATED;
+				char strterminated[MAX_PATH] = { 0 };
+				_snprintf(strterminated, MAX_PATH, "call terminated! in sofia thread!");
+				LogWarn(Severity_Middle, Error_Debug, EVENT_MOD_SIP_PROCESS_MSG, strterminated);
+				{
+					media_desc_t audio_desc = { 0 };
+					audio_desc.media_dir = DIR_NONE;
+					endpoint_media_update_audio(call, &audio_desc, call->ep->curr_audio_dev_type);
+				}
+				call->cb.on_call_state(st, state_desc[st], phrase, call->cb.user_data);
+				nua_handle_bind(nh, NULL);
+				nua_handle_destroy(nh);
+				call->nh = NULL;
+			}
+			break;
+		default:
+			break;
+	}
 }
 
 void Terminatedcall(endpoint_call_t *call)
@@ -1327,7 +1359,7 @@ endpoint_t *endpoint_create(CEntityBase *pEntity, const endpoint_conf_t *conf,in
 	
 	endpt = __endpoint_create(pEntity, conf,nDev);
 	if (endpt) {
-		Dbg("new create endpoint addr is 0x%x.", endpt);
+		Dbg("new create endpoint addr is 0x%08x.", endpt);
 		int rc = __endpoint_start(endpt);
 		if (rc != 0) {
 			__endpoint_destroy(endpt);
@@ -1442,7 +1474,7 @@ int endpoint_call_start(endpoint_call_t *call)
 	
 	call_make_offer(call, sdp, -1);
 
-	Dbg("sdp is %s", sdp);
+	//Dbg("sdp is %s", sdp);
 
 	nua_invite(call->nh, 
 		//NUTAG_URL(call->remote_uri), 
@@ -1451,6 +1483,8 @@ int endpoint_call_start(endpoint_call_t *call)
 		//SOATAG_AUDIO_AUX("telephone-event"), 
 		TAG_END());
 
+	LogWarn(Severity_Middle, Error_Debug, EVENT_MOD_SIP_INVITE_SEND, sdp);
+
 	return 0;
 }
 

+ 1 - 0
Module/mod_sipphone/mod_sipphone.cpp

@@ -516,6 +516,7 @@ void CSIPEntity::OnPreStart(CAutoArray<CSimpleStringA> strArgs,CSmartPointer<ITr
 { 
 	ErrorCodeEnum Error = __OnStart(Error_Succeed);
 	pTransactionContext->SendAnswer(Error);
+	LogWarn(Severity_Middle, Error_Debug, EVENT_MOD_SIP_ENTITY_STARTED, "sipphone entity started.");
 }
 
 void CSIPEntity::OnStarted()