Browse Source

Merge pull request !10020 from LR04.02_RVCTerminalPlus/T22MA601_base_master

Gifur 2 năm trước cách đây
mục cha
commit
9e91077273

+ 1 - 1
Module/mod_SalesRecorder/mod_SalesRecorder.cpp

@@ -649,7 +649,7 @@ void CSalesRecorderEntity::Debug(media_loglevel log_level, const char* fmt, ...)
 }
 #endif // RVC_OS_WIN
 
-// 定时任务:扫描是否有待提交的离线双录记录 add by ly @2018/02/08
+
 void CSalesRecorderEntity::OnTimeout( DWORD dwTimerID )
 {
 

+ 32 - 11
Module/mod_counterconnector/ConnectorFSM.cpp

@@ -567,7 +567,6 @@ void ACMCallFSM::OnStateTrans(int iSrcState, int iDstState)
 							snprintf(strerrmsg, MAX_PATH, "connect failed for %s and last state is %d, and current src state is %d.",CSimpleStringW2A(evt.errinfo).GetData(), m_iFailedLastState, iSrcState);
 						}
 						LogWarn(Severity_Middle, Error_Debug, LOG_WARN_COUNTERCONNECT_CONNECT_FAILED, strerrmsg);
-						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z60006")(strerrmsg);
 						
 						LogFailedWarns(ierrcode, strerrmsg);
 					}
@@ -584,7 +583,6 @@ void ACMCallFSM::OnStateTrans(int iSrcState, int iDstState)
 				if (eState_HandFree == st2 || eState_Pickup == st2){
 					if (eState_Connecting == st1){
 						LogWarn(Severity_Low, Error_Debug, LOG_WARN_COUNTERCONNECT_CONNECT_SUCCESS, "connect success!");
-						DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z60005")("call connect success!");
 					}
 				}
 			}
@@ -859,7 +857,7 @@ void ACMCallFSM::s11_on_entry()
 	m_LastSipError = Error_Succeed;
 
 	LogWarn(Severity_Low, Error_Debug, LOG_WARN_COUNTERCONNECT_MAKECALL,"begin make call");
-	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z60007")("begin make call");
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80101")("begin remote video call");
 
 	if (m_nCurSipServer == Error_Server){
 		m_LastSipError = Error_NetBroken;
@@ -950,10 +948,12 @@ void ACMCallFSM::s11_on_entry()
 	if (m_LastSipError != Error_Succeed) 
 	{
 		PostEventFIFO(new FSMEvent(USER_EVT_JMP_FAIL));
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80201").setResultCode("RTA3421")("send sip failed!");
 	}
 	else
 	{
 		ScheduleTimer(11,SIP_CALL_TIMER);
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80201")("send sip success!");
 	}
 }
 
@@ -972,6 +972,7 @@ unsigned int ACMCallFSM::s11_on_event(FSMEvent* event)
 			char msg[128] = {0};
 			snprintf(msg, 128, "sip connecting, customer active hangup after %d ms.", interval);
 			LogWarn(Severity_Low, Error_Unexpect, LOG_WARN_COUNTERCONNECT_SIPCONNECT_HANGUP, msg);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80301").setResultCode("RTA3431")("sip connect failed!");
 	}
 	else if (event->iEvt == USER_EVT_SIP_STATE_IDLE) 
 	{
@@ -985,32 +986,35 @@ unsigned int ACMCallFSM::s11_on_event(FSMEvent* event)
 		m_nCurSipServer?(m_nCurSipServer=Error_Server):(m_nCurSipServer=BACK_SERVER);
 		m_nSipErrorNum++;
 		//StopChannel();
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80301").setResultCode("RTA3432")("sip connect failed!");
 	} 
 	else if (event->iEvt == USER_EVT_ASSISTCHAN_IDEL)
 	{
 		if (m_nCurSipServer == MAIN_SERVER){
-			LogWarn(Severity_Low, Error_Unexpect, LOG_WARN_COUNTERCONNECT_MAIN_SIPCONNECT_CHANSTATE_IDLE,"chan mod idle, main server");
+			LogWarn(Severity_Middle, Error_Unexpect, LOG_WARN_COUNTERCONNECT_MAIN_SIPCONNECT_CHANSTATE_IDLE,"chan mod idle, main server");
 		}else if (m_nCurSipServer == BACK_SERVER){
-			LogWarn(Severity_Low, Error_Unexpect, LOG_WARN_COUNTERCONNECT_BAK_SIPCONNECT_CHANSTATE_IDLE,"chan mod idle, bak server");
+			LogWarn(Severity_Middle, Error_Unexpect, LOG_WARN_COUNTERCONNECT_BAK_SIPCONNECT_CHANSTATE_IDLE,"chan mod idle, bak server");
 		}else{
-			LogWarn(Severity_Low, Error_Unexpect, LOG_WARN_COUNTERCONNECT_SIPCONNECT_CHANSTATE_IDLE,"chan mod idle, error server");
+			LogWarn(Severity_Middle, Error_Unexpect, LOG_WARN_COUNTERCONNECT_SIPCONNECT_CHANSTATE_IDLE,"chan mod idle, error server");
 		}
 		if (ReConnectionAssistchan()) {
 			m_bConAssist = TRUE;
 		}
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80301").setResultCode("RTA3433")("sip connect failed!");
 	}
 	else if (event->iEvt == USER_EVT_SIPPHONE_IDEL)
 	{
 		if (m_nCurSipServer == MAIN_SERVER){
-			LogWarn(Severity_Low, Error_Unexpect, LOG_WARN_COUNTERCONNECT_MAIN_SIPCONNECT_SIPENTITY_RESTART,"sipphone mod idle, main server");
+			LogWarn(Severity_Middle, Error_Unexpect, LOG_WARN_COUNTERCONNECT_MAIN_SIPCONNECT_SIPENTITY_RESTART,"sipphone mod idle, main server");
 		}else if (m_nCurSipServer == BACK_SERVER){
-			LogWarn(Severity_Low, Error_Unexpect, LOG_WARN_COUNTERCONNECT_BAK_SIPCONNECT_SIPENTITY_RESTART,"sipphone mod idle, bak server");
+			LogWarn(Severity_Middle, Error_Unexpect, LOG_WARN_COUNTERCONNECT_BAK_SIPCONNECT_SIPENTITY_RESTART,"sipphone mod idle, bak server");
 		}else{
-			LogWarn(Severity_Low, Error_Unexpect, LOG_WARN_COUNTERCONNECT_SIPCONNECT_SIPENTITY_RESTART,"sipphone mod idle, error server");
+			LogWarn(Severity_Middle, Error_Unexpect, LOG_WARN_COUNTERCONNECT_SIPCONNECT_SIPENTITY_RESTART,"sipphone mod idle, error server");
 		}
 		if (ReConnectionSipphone()) {
 			m_bConSipphone = TRUE;
 		}
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80301").setResultCode("RTA3434")("sip connect failed!");
 	}
 	else if (event->iEvt == EVT_TIMER)
 	{
@@ -1023,6 +1027,7 @@ unsigned int ACMCallFSM::s11_on_event(FSMEvent* event)
 		}
 		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("sip call timeout,release call");
 		m_nSipErrorNum++;
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80301").setResultCode("RTA3435")("sip connect failed!");
 	}
 	else if (event->iEvt == USER_EVT_JMP_FAIL)
 	{
@@ -1034,6 +1039,7 @@ unsigned int ACMCallFSM::s11_on_event(FSMEvent* event)
 			LogWarn(Severity_Low, Error_Unexpect, LOG_WARN_COUNTERCONNECT_SIPCONNECT_FUNC_FAILED,"sipphone connect func failed, error server");
 		}
 		m_nSipErrorNum++;
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80301").setResultCode("RTA3436")("sip connect failed!");
 	}
 	else if (event->iEvt == USER_EVT_STOPLOACALREMOTEVIDEO) 
 	{
@@ -1048,6 +1054,7 @@ unsigned int ACMCallFSM::s11_on_event(FSMEvent* event)
 void ACMCallFSM::s12_on_entry() 
 {
 	//ErrorCodeEnum Error = Error_Succeed;
+	DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80301")("sip connect success!");
 	m_LastAssistError = Error_Succeed;
 	if (m_nCurChanServer == Error_Server)
 	{
@@ -1082,9 +1089,20 @@ void ACMCallFSM::s12_on_entry()
 		}
 	}
 
-	if (m_LastAssistError != Error_Succeed) 
-	{
+	if (m_LastAssistError != Error_Succeed) {
 		PostEventFIFO(new FSMEvent(USER_EVT_JMP_FAIL));
+		if (Error_NetBroken == m_LastAssistError) {
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80401").setResultCode("RTA3441")("assistant channel connect failed!");
+		}
+		else if (Error_Param == m_LastAssistError) {
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80401").setResultCode("RTA3442")("assistant channel connect failed!");
+		}
+		else {
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80401").setResultCode("RTA3443")("assistant channel connect failed!");
+		}
+	}
+	else {
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80401")("assistant channel connect success!");
 	}
 }
 
@@ -1100,6 +1118,7 @@ unsigned int ACMCallFSM::s12_on_event(FSMEvent* event)
 		char msg[128] = {0};
 		snprintf(msg, 128, "chan connecting, customer active hangup after %d ms.", interval);
 		LogWarn(Severity_Low, Error_Unexpect, LOG_WARN_COUNTERCONNECT_CHANCONNECT_HANGUP, msg);
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80501").setResultCode("RTA3451")("assistant channel bridge failed!");
 	}
 	else if (event->iEvt == USER_EVT_SIP_STATE_IDLE) 
 	{
@@ -1125,6 +1144,7 @@ unsigned int ACMCallFSM::s12_on_event(FSMEvent* event)
 				LogWarn(Severity_Low, Error_Unexpect, LOG_WARN_COUNTERCONNECT_CHANCONNECT_CHANSTATE_IDLE,"chan connect server failed, error server");
 			}
 			m_nCurChanServer?(m_nCurChanServer=Error_Server):(m_nCurChanServer=BACK_SERVER);
+			DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80501").setResultCode("RTA3452")("assistant channel bridge failed!");
 		}
 		HangupCall();
 		//StopVideo();
@@ -1133,6 +1153,7 @@ unsigned int ACMCallFSM::s12_on_event(FSMEvent* event)
 	{
 		ChanStateConnectedEvent *e = static_cast<ChanStateConnectedEvent *>(event);
 		StartVideo((LPCSTR)e->m_param);
+		DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_USER).setLogCode("QLR0402304Z80501")("assistant channel bridge success!");
 	}
 	else if (event->iEvt == USER_EVT_ASSISTCHAN_IDEL)
 	{

+ 27 - 13
Other/libaudioframework/audiomicspkpulse.c

@@ -448,6 +448,7 @@ static void  stream_write_request_cb(pa_stream* s, size_t length, void* data)
 	void* audiodata;
 	while ((nbytes = pa_stream_writable_size(s)) != (size_t)-1)
 	{
+		audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d pa_stream_writable_size nbytes = %d.", __FUNCTION__, __LINE__, nbytes);
 		get_play_latency(s);
 		if (0 == nbytes){
 			return;
@@ -456,6 +457,7 @@ static void  stream_write_request_cb(pa_stream* s, size_t length, void* data)
 		/*write to stream*/
 		if (PA_OK == pa_stream_begin_write(s, &audiodata, &nbytes))
 		{
+			audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d pa_stream_begin_write nbytes = %d, audio_ctx->uaudio_len = %d.", __FUNCTION__, __LINE__, nbytes, audio_ctx->uaudio_len);
 			while (audio_ctx->uaudio_len < nbytes)
 			{
 				char delaybuffer[RVC_DELAY_AUDIO_LEN] = { 0 };
@@ -472,13 +474,15 @@ static void  stream_write_request_cb(pa_stream* s, size_t length, void* data)
 								audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d on_audio_playing is NULL.", __FUNCTION__, __LINE__);
 							}
 							//if (0 == audio_micspk->on_audio_play_ns(audionsbuffer, RVC_DELAY_AUDIO_LEN, delaybuffer, RVC_DELAY_AUDIO_LEN, audio_micspk->user_data)) {
-								if (audio_ctx->uaudio_len + RVC_DELAY_AUDIO_LEN < RVC_MAX_AUDIO_BUFFER_LEN) {
+								if (audio_ctx->uaudio_len + RVC_DELAY_AUDIO_LEN <= RVC_MAX_AUDIO_BUFFER_LEN) {
 									memcpy(audio_ctx->paudio_buffer + audio_ctx->uaudio_len, delaybuffer, RVC_DELAY_AUDIO_LEN);
 									audio_ctx->uaudio_len += RVC_DELAY_AUDIO_LEN;
+									audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d audio_ctx->uaudio_len = %d.", __FUNCTION__, __LINE__, audio_ctx->uaudio_len);
 								}
 								else {
 									memcpy(audio_ctx->paudio_buffer + audio_ctx->uaudio_len, delaybuffer, RVC_MAX_AUDIO_BUFFER_LEN - audio_ctx->uaudio_len);
-									audio_ctx->uaudio_len = nbytes = RVC_MAX_AUDIO_BUFFER_LEN;									
+									audio_ctx->uaudio_len = RVC_MAX_AUDIO_BUFFER_LEN;		
+									audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d audio_ctx->uaudio_len = %d and break.", __FUNCTION__, __LINE__, audio_ctx->uaudio_len);
 									break;
 								}
 							//}
@@ -488,26 +492,36 @@ static void  stream_write_request_cb(pa_stream* s, size_t length, void* data)
 			}
 
 			int ileft = audio_ctx->uaudio_len - nbytes;
-			memcpy(audiodata, audio_ctx->paudio_buffer, nbytes);
-			audio_ctx->uaudio_len = ileft;
-			if (ileft > 0) {
-				memcpy(audio_ctx->paudio_buffer, audio_ctx->paudio_buffer + nbytes, ileft);
+			audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d ileft = %d.", __FUNCTION__, __LINE__, ileft);
+			if (ileft >= 0) {
+				memcpy(audiodata, audio_ctx->paudio_buffer, nbytes);
+				if (ileft > 0) {
+					memcpy(audio_ctx->paudio_buffer, audio_ctx->paudio_buffer + nbytes, ileft);
+				}
+				audio_ctx->uaudio_len = ileft;
+			}
+			else {
+				audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d pa_stream_begin_write nbytes(%d) > max buffer length.", __FUNCTION__, __LINE__, nbytes);
+				memcpy(audiodata, audio_ctx->paudio_buffer, audio_ctx->uaudio_len);
+				nbytes = audio_ctx->uaudio_len;
+				audio_ctx->uaudio_len = 0;
 			}
 
 			if (PA_OK != pa_stream_write(s, audiodata, nbytes, NULL, 0, PA_SEEK_RELATIVE)) {
-				//audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d pa_stream_write failed.", __FUNCTION__, __LINE__);
+				audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d pa_stream_write failed.", __FUNCTION__, __LINE__);
 				break;
 			}
-			//else {
-			//	audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d pa_stream_write success.", __FUNCTION__, __LINE__);
-			//}
+			else {
+				audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d pa_stream_write(%d) success.", __FUNCTION__, __LINE__, nbytes);
+			}
+		}
+		else {
+			audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d pa_stream_begin_write failed for %s.", __FUNCTION__, __LINE__, pa_strerror(pa_context_errno(audio_ctx)));
 		}
-		//else {
-		//	audio_log_v(AUDIO_LOG_LEVEL_INFO, "%s:%d pa_stream_begin_write failed for %s.", __FUNCTION__, __LINE__, pa_strerror(pa_context_errno(play_pa_ctx)));
-		//}
 	}
 }
 
+
 static void stream_request_cb(pa_stream* s, size_t length, void* data)
 {
 	audio_context_t* audio_ctx = (audio_context_t*)data;