Sfoglia il codice sorgente

Z991239-5559 #comment 清理无效代码

80274480 1 anno fa
parent
commit
5d611c8b5d

+ 0 - 3
Module/mod_customeraware/Event.h

@@ -2,9 +2,6 @@
 #define EVENT_MOD_CUSTOMERAWARE_BEGIN				0x30830001
 #define EVENT_MOD_CUSTOMERAWARE_END					0x30830002
 
-#define EVENT_MOD_PAUSE_RECORD						0x20830063
-#define EVENT_MOD_CONTINUE_RECORD					0x20830064
-
 #define LOG_EVT_UI_RETURNMENU						0x30B00006				//退出到主菜单
 #define LOG_EVT_UI_EXITSALESRECORD					0x40100004				//退出录像事件
 

+ 1 - 1
Module/mod_sipphone/Event.h

@@ -113,7 +113,7 @@
 #define ERROR_MOD_SIP_AUDIO_RTP_SESSION_CREATE_FAILED				0x30190604  //audio rtp session create2 failed,级别2
 #define ERROR_MOD_SIP_AUDIO_RTP_SESSION_RESET_FAILED				0x30190605  //audio rtp session reset failed,级别2
 #define ERROR_MOD_SIP_AUDIO_BRIDGE_CREATE_FAILED					0x30190606  //audio bridge create failed,级别2
-#define ERROR_MOD_SIP_AUDIO_MICSPK2_CREATE_FAILED					0x30190607  //audio micspk2 windows create failed,级别2
+#define ERROR_MOD_SIP_AUDIO_MICSPK_CREATE_FAILED					0x30190607  //audio micspk create failed,级别2
 #define ERROR_MOD_SIP_AUDIO_DSP_CREATE_FAILED						0x30190608  //audio dsp create failed,级别2
 #define ERROR_MOD_SIP_AUDIO_RESIZE_CREATE_FAILED					0x30190609  //audio resize create failed,级别2
 #define ERROR_MOD_SIP_AUDIO_CODEC_CREATE_FAILED						0x3019060A  //audio codec create failed,级别2

+ 0 - 1
Module/mod_sipphone/audio_session.h

@@ -21,7 +21,6 @@ typedef struct audio_session_conf_t {
 	int ns_in[2];
 	int ns_out[2];
 	int aec[2];
-	int istoptype;
 }audio_session_conf_t;
 
 #if 0

+ 0 - 2
Module/mod_sipphone/endpoint.h

@@ -155,8 +155,6 @@ int local_remote_show_video(endpoint_call_t* call, int local_view_x, int local_v
 
 void Terminatedcall(endpoint_call_t* call);
 int translate_ipaddr_from_int(char* strdst, size_t ulen, unsigned long uip);
-int endpoint_getip_bydomain(char* strbuffer, size_t ulen, const char* pdomain);
-bool endpoint_addr_is_domain(const char* pserver_addr);
 #else
 int endpoint_call_start_video(endpoint_call_t* call, endpoint_call_param_t* pcallparam, rvc_video_render_callback_t* render_cb);
 int endpoint_call_stop_video(endpoint_call_t* call);

+ 0 - 2
Module/mod_sipphone/mod_sipphone.h

@@ -359,8 +359,6 @@ public:
 	void* m_pKeeperOut[2];
 	eVideoRenderType m_eVideoRenderType;
 	bool m_bAudioMgrInited;
-	int m_AudioStopType;
-	int m_iCapType;
 	CSimpleStringA m_strHandfreeIn;
 	CSimpleStringA m_strHandfreeOut;
 	CSimpleStringA m_strPickUpIn;

+ 12 - 22
Module/mod_sipphone/unix/audio_session.cpp

@@ -81,15 +81,6 @@ struct audio_session_t
 	audiocodec_t *codecstream;
 	rtp_session_t *rtpsess;
 
-	//struct 
-	//{
-	//	audioresize_t *resizestream;
-	//	audiortp_t *rtpstream;
-	//	audiocodec_t *codecstream;
-	//	rtp_session_t *rtpsess;
-	//	int state;
-	//	audio_session_remote_recording_conf_t conf;
-	//}record;
 
 	Clibaudioqueue* remoteaudioqueue;
 	//bool brtpinsertqueue;
@@ -405,47 +396,45 @@ static int phonemedia_start(audio_session_t *session)
 
 	status = apr_pool_create(&media->pool, NULL);
 	if (status != APR_SUCCESS) {
-		LogWarn(Severity_Low, Error_Debug, 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_Low, Error_Debug, 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_Low, Error_Debug, 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;
 	}
 
 	rc = rtp_session_create2(conf->local_rtp_ip, conf->local_rtp_port, 2, &media->rtpsess);
 	if (rc != 0) {
-		LogWarn(Severity_Low, Error_Debug, ERROR_MOD_SIP_AUDIO_RTP_SESSION_CREATE_FAILED, CSimpleStringA::Format("audio rtp session create2 failed and local port is %d, rc=%d", conf->local_rtp_port, rc).GetData());
-		LogWarn(Severity_Low, Error_InvalidState, EVENT_MOD_SIP_AUDIO_RTP_CREATE, CSimpleStringA::Format("audio rtp session create2 failed and local port is %d, rc=%d", conf->local_rtp_port, rc).GetData());
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_RTP_SESSION_CREATE_FAILED, CSimpleStringA::Format("audio rtp session create2 failed and local port is %d, rc=%d", conf->local_rtp_port, rc).GetData());
+		//LogWarn(Severity_Low, Error_InvalidState, EVENT_MOD_SIP_AUDIO_RTP_CREATE, CSimpleStringA::Format("audio rtp session create2 failed and local port is %d, rc=%d", conf->local_rtp_port, rc).GetData());
 		goto on_error;
 	}
-	else{
-		LogWarn(Severity_Low, Error_Debug, EVENT_MOD_SIP_AUDIO_RTP_CREATE, CSimpleStringA::Format("audio rtp create2 success and local port is %d.", conf->local_rtp_port).GetData());
-	}
+
 
 	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_Low, Error_Debug, 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;
 	}
 	
 	status = audiobridge_create(media->pool, media->engine, &media->bridge);
 	if (status != APR_SUCCESS){
-		LogWarn(Severity_Low, Error_Debug, 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;
 	}
 
 	status = apr_pool_create(&media->micspk_pool, media->pool);
 	if (status != APR_SUCCESS){
-		LogWarn(Severity_Low, Error_Debug, 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;
 	}
 
@@ -461,9 +450,10 @@ static int phonemedia_start(audio_session_t *session)
 #else
 	status = audiomicspkpulse_create(media->micspk_pool, media->engine, opt_micspk, AUDIO_CLOCK, in_dev, out_dev, conf->dev_type, &audio_device_event, &media->micspkstream);
 #endif
-	if (status != APR_SUCCESS)
+	if (status != APR_SUCCESS){
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_MICSPK_CREATE_FAILED, "create audio audiomicspkpulse_create failed!");
 		goto on_error;
-
+	}
 	//音频回调
 	media->micspkstream->user_data = media;
 	media->micspkstream->on_rx_audio = &rx_audio_callback;

+ 2 - 2
Module/mod_sipphone/unix/endpoint.cpp

@@ -33,7 +33,7 @@
 #include "Event.h"
 
 
-BOOL g_IsExternalTerminalted = FALSE;
+bool g_IsExternalTerminalted = false;
 // default: ptime = 20ms
 
 #define CONDITION_PARAMS			\
@@ -878,7 +878,7 @@ static void on_state(CONDITION_PARAMS)
 void terminatedcall(endpoint_call_t *call)
 {
 	int st = TERMINATED;
-	g_IsExternalTerminalted = TRUE;
+	g_IsExternalTerminalted = true;
 	{
 		media_desc_t audio_desc = {0};
 		audio_desc.media_dir = DIR_NONE;

+ 6 - 8
Module/mod_sipphone/win/audio_session.cpp

@@ -359,12 +359,10 @@ static int phonemedia_start(audio_session_t *session)
 	int out_ns;
 	int aec;
 	const char *codec;
-	int istoptype;
 
 	in_dev = &session->conf.in_dev[conf->dev_type][0];
 	out_dev = &session->conf.out_dev[conf->dev_type][0];
-	istoptype = media->conf.istoptype;
-
+	
 	opt_micspk = AMS_OPT_AS_STREAM;
 	if (conf->dir & DIR_TX) {
 		opt_micspk |= AMS_OPT_PLAY;
@@ -473,9 +471,9 @@ static int phonemedia_start(audio_session_t *session)
 	if (aec)
 		opt_micspk |= AMS2_OPT_AEC;
 	//create Spk 
-	status = audiomicspk2_create(media->micspk_pool, media->engine, opt_micspk, AUDIO_CLOCK, in_dev, out_dev, istoptype, conf->dev_type, &audio_device_event, &media->micspkstream);
+	status = audiomicspk2_create(media->micspk_pool, media->engine, opt_micspk, AUDIO_CLOCK, in_dev, out_dev, conf->dev_type, &audio_device_event, &media->micspkstream);
 	if (status != APR_SUCCESS){
-		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_MICSPK2_CREATE_FAILED, "create audio micspk2(windows) failed!");
+		LogWarn(Severity_Middle, Error_Debug, ERROR_MOD_SIP_AUDIO_MICSPK_CREATE_FAILED, "create audio micspk2(windows) failed!");
 		goto on_error;
 	}
 	//音频回调
@@ -497,12 +495,14 @@ static int phonemedia_start(audio_session_t *session)
 			goto on_error;
 		}
 	}
+
 #if 0
 	status = audioaec_create(media->pool, media->engine, AUDIO_CLOCK, FRAME_TIME, 
 		AUDIO_AEC_OPT_READ_AS_CAPTURE, &media->aecstream);
 	if (status != APR_SUCCESS)
 		goto on_error;
 #endif
+
 	status = audioresize_create(media->pool, media->engine, FRAME_TIME*2*AUDIO_CLOCK/1000, 
 		conf->remote_ptime*2*AUDIO_CLOCK/1000, FRAME_TIME*2*AUDIO_CLOCK/1000, 
 		conf->local_ptime*2*AUDIO_CLOCK/1000, &media->resizestream);
@@ -684,7 +684,6 @@ static int phonemedia_chang_dev(audio_session_t *session, e_dev_type t)
 	int in_ns;
 	int out_ns;
 	int aec;
-	int istoptype;
 
 	in_dev = &session->conf.in_dev[t][0];
 	out_dev = &session->conf.out_dev[t][0];
@@ -694,7 +693,6 @@ static int phonemedia_chang_dev(audio_session_t *session, e_dev_type t)
 	in_ns = media->conf.ns_in[t];
 	out_ns = media->conf.ns_out[t];
 	aec = media->conf.aec[t];
-	istoptype = media->conf.istoptype;
 
 	opt_micspk = AMS_OPT_AS_STREAM;
 	if (conf->dir & DIR_TX) {
@@ -724,7 +722,7 @@ static int phonemedia_chang_dev(audio_session_t *session, e_dev_type t)
 		if (aec)
 			opt_micspk |= AMS2_OPT_AEC;
 
-		audiomicspk2_create(media->micspk_pool, media->engine, opt_micspk, AUDIO_CLOCK, in_dev, out_dev, istoptype, t, &audio_device_event, &media->micspkstream);
+		audiomicspk2_create(media->micspk_pool, media->engine, opt_micspk, AUDIO_CLOCK, in_dev, out_dev, t, &audio_device_event, &media->micspkstream);
 		media->micspkstream->on_rx_audio = &on_rx_audio;
 		media->phonemedia_conf.dev_type = t;
 

+ 117 - 107
Module/mod_sipphone/win/endpoint.cpp

@@ -110,17 +110,15 @@ struct endpoint_call_t {
 	sdp_session_t *last_sdp;
 	int connected;
 	int local_media_port;
-	int mapped_audio_port;
 	int local_video_port;
-	int mapped_video_port;
 	unsigned int last_media_desc_hash;
 	char local_ip[RVC_MAX_IP_LEN];
-	char mapped_ip[RVC_MAX_IP_LEN];
 	DeviceTypeEnum eDeviceType;
 	CallingTypeEnum nCallType;
 	sdpvideo_desc_t sdpvieo_desc;
 	DECLARE_REF_COUNT_MEMBER(ref_cnt);
 };
+
 DECLARE_REF_COUNT_STATIC(endpoint_call, endpoint_call_t)
 
 struct endpoint_t {
@@ -128,7 +126,12 @@ struct endpoint_t {
 	su_root_t *root;
 	nua_t *nua;
 	endpoint_call_t *active_call;
+#ifdef RVC_OS_WIN
 	HANDLE event_thread;
+#else
+	pthread_t ievent_threadid;
+#endif
+	
 	int call_seq;
 	int media_port_seq;
 	CEntityBase *entity;
@@ -230,7 +233,6 @@ static void endpoint_media_update_video(endpoint_call_t *call, media_desc_t *vid
 			conf.ns_out[DEV_HANDFREE] = !!ep_conf->audio_dsp.audio_handfree_out_ns;
 			conf.aec[DEV_PICKUP] = !!ep_conf->audio_dsp.audio_pickup_aec;
 			conf.aec[DEV_HANDFREE] = !!ep_conf->audio_dsp.audio_handfree_aec;
-			conf.istoptype = ep_conf->istoptype;
 			rc = audio_session_create(&conf, &call->audio);
 			if (rc != 0) {
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("create audio session failed! rc = %d", rc);
@@ -367,7 +369,6 @@ static void endpoint_media_update_audio(endpoint_call_t *call, media_desc_t *aud
 			conf.ns_out[DEV_HANDFREE] = !!ep_conf->audio_dsp.audio_handfree_out_ns;
 			conf.aec[DEV_PICKUP] = !!ep_conf->audio_dsp.audio_pickup_aec;
 			conf.aec[DEV_HANDFREE] = !!ep_conf->audio_dsp.audio_handfree_aec;
-			conf.istoptype = ep_conf->istoptype;
 			rc = audio_session_create(&conf, &call->audio);
 			if (rc != 0) {
 				DbgWithLink(LOG_LEVEL_INFO, LOG_TYPE_SYSTEM)("create audio session failed! rc = %d", rc);
@@ -606,19 +607,15 @@ static int get_media_direction(const sdp_media_t *lm, const sdp_media_t *rm)
 	return media_dir;
 }
 
-
 static int negotiate_audio(endpoint_call_t *call, media_desc_t *audio_desc, const sdp_media_t *lm, const sdp_media_t *rm)
 {
 	memset(audio_desc, 0, sizeof(media_desc_t));
 	const char *local_ip;
 	const char *remote_ip;
-	char str_domain_ip[MAX_PATH] = {0};
 
 	local_ip = lm->m_connections ? lm->m_connections->c_address : lm->m_session->sdp_connection->c_address;
 	remote_ip = rm->m_connections ? rm->m_connections->c_address : rm->m_session->sdp_connection->c_address;
 
-	//audio_desc->local_ip = local_ip ? inet_addr(local_ip) : 0;
-	//audio_desc->local_port = lm->m_port;
 	audio_desc->local_ip = strlen(call->local_ip) ? inet_addr(call->local_ip) : 0;
 	audio_desc->local_port = call->local_media_port;
 
@@ -649,13 +646,11 @@ static int negotiate_video(endpoint_call_t *call, media_desc_t *video_desc, cons
 
 	const char *local_ip;
 	const char *remote_ip;
-	char str_domain_ip[MAX_PATH] = {0};
 
 	local_ip = lm->m_connections ? lm->m_connections->c_address : lm->m_session->sdp_connection->c_address;
 	remote_ip = rm->m_connections ? rm->m_connections->c_address : rm->m_session->sdp_connection->c_address;
 
-	//video_desc->local_ip = local_ip ? inet_addr(local_ip) : 0;
-	//video_desc->local_port = lm->m_port;
+
 	video_desc->local_ip = strlen(call->local_ip) ? inet_addr(call->local_ip) : 0;
 	video_desc->local_port = call->local_video_port;
 
@@ -794,109 +789,124 @@ static void on_state(CONDITION_PARAMS)
 
 	switch (state) 
 	{
-	case nua_callstate_calling:
-		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_calling:
+			{
+				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:
-		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;
+			{
+				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);
+				}
 			}
-			sdp_parser_free(parser);
-		}
-		break;
+			break;
 		
-	case nua_callstate_completing:
-		st = COMPLETING;
-		//DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("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;
-			}
-			sdp_parser_free(parser);
-		}
-		break;
-	case nua_callstate_completed:
-		//DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("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);
-			}
-		}
-		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);
+		case nua_callstate_completing:
+			{
+				st = COMPLETING;
+				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;
-		//DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("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:
+			{
+				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;
+				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;
-		//DbgWithLink(LOG_LEVEL_DEBUG, LOG_TYPE_SYSTEM)("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;
+				{
+					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;
 	}
 
 }

+ 0 - 4
Module/mod_sipphone/win/mod_sipphone.cpp

@@ -175,8 +175,6 @@ CSIPEntity::CSIPEntity() : m_pCurrentSession(NULL), m_state(INIT),m_iPickupPhone
 	memset((void*)&m_stVideoParam,0,sizeof(stVideoParam));
 	m_bAudioMgrInited = false;
 	m_pAudioMgr = NULL;
-	m_AudioStopType = 1;
-	m_iCapType = 1;
 	m_pSipphoneChannel = NULL;
 	m_bConnectedAssist = false;
 	m_strStartTime = RVC_START_TIME;
@@ -1738,8 +1736,6 @@ ErrorCodeEnum CSIPEntity::LoadConfig(endpoint_conf_t *conf)
 			conf->ref_Is_showPersonArea = &m_stVideoParam.bShowPersonArea;
 			conf->ref_Is_showRecordArea = &m_stVideoParam.bShowRecordArea;
 			conf->irendertype = (int)m_eVideoRenderType;
-			conf->istoptype = m_AudioStopType;
-			conf->icaptype = m_iCapType;
 			m_stVideoParam.nUpDynamicFps = 0;
 			
 			conf->ref_Up_Fps = &m_stVideoParam.nUpDynamicFps;

+ 12 - 33
Other/win/libaudioframework/audiomicspk2.c

@@ -412,13 +412,7 @@ static int StreamCallback(const void *input,
 		}
 	}
 
-	if (micspk->istoptype){
-		return micspk->bstopout ? paComplete:paContinue;
-	} 
-	else{
-		return paContinue;
-	}
-	
+	return micspk->bstopout ? paComplete:paContinue;
 }
 
 static apr_status_t initialize_spk(audiomicspk2_t *micspk)
@@ -782,31 +776,18 @@ static void uninitialize_spk(audiomicspk2_t *micspk)
 		PaError err = paNoError;
 		micspk->bstopout = TRUE;
 
-		if(micspk->istoptype){
-			//micspk->on_audio_device_event(0, 0, 0, micspk->dev_type, "uninitialize_spk before Pa_StopStream", micspk);
-			err = Pa_StopStream(micspk->ply_stream);
-			if (paNoError != err){
-				char strmsg[MAX_PATH] = {0};
-				_snprintf(strmsg, MAX_PATH, "uninitialize_spk Pa_StopStream failed for %s", Pa_GetErrorText(err));
-				micspk->on_audio_device_event(0, 0, 0, micspk->dev_type, strmsg, micspk);
-			}
-			//else{
-			//	micspk->on_audio_device_event(0, 0, 0, micspk->dev_type, "uninitialize_spk Pa_StopStream success and before Pa_CloseStream", micspk);
-			//}
-		}
-		else{
-			//micspk->on_audio_device_event(0, 0, 0, micspk->dev_type, "uninitialize_spk before Pa_AbortStream", micspk);
-			err = Pa_AbortStream(micspk->ply_stream);
-			if (paNoError != err){
-				char strmsg[MAX_PATH] = {0};
-				_snprintf(strmsg, MAX_PATH, "uninitialize_spk Pa_AbortStream failed for %s", Pa_GetErrorText(err));
-				micspk->on_audio_device_event(0, 0, 0, micspk->dev_type, strmsg, micspk);
-			}
-			//else{
-			//	micspk->on_audio_device_event(0, 0, 0, micspk->dev_type, "uninitialize_spk Pa_AbortStream success and before Pa_CloseStream", micspk);
-			//}
+	
+		//micspk->on_audio_device_event(0, 0, 0, micspk->dev_type, "uninitialize_spk before Pa_StopStream", micspk);
+		err = Pa_StopStream(micspk->ply_stream);
+		if (paNoError != err){
+			char strmsg[MAX_PATH] = {0};
+			_snprintf(strmsg, MAX_PATH, "uninitialize_spk Pa_StopStream failed for %s", Pa_GetErrorText(err));
+			micspk->on_audio_device_event(0, 0, 0, micspk->dev_type, strmsg, micspk);
 		}
-
+		//else{
+		//	micspk->on_audio_device_event(0, 0, 0, micspk->dev_type, "uninitialize_spk Pa_StopStream success and before Pa_CloseStream", micspk);
+		//}
+		
 		err = Pa_CloseStream(micspk->ply_stream);
 		if (paNoError != err){
 			char strtext[MAX_PATH] = {0};
@@ -987,7 +968,6 @@ apr_status_t audiomicspk2_create(apr_pool_t *pool,
 	int clock,
 	const char *rec_dev_key,
 	const char *ply_dev_key,
-	int istop_type,
 	int idev_type,
 	lpfn_audio_device_event lpevent,
 	audiomicspk2_t **p_micspk)
@@ -1021,7 +1001,6 @@ apr_status_t audiomicspk2_create(apr_pool_t *pool,
 	micspk->capture_frame_samples = capture_frame_samples;
 	micspk->on_audio_device_event = lpevent;
 	micspk->dev_type = idev_type;
-	micspk->istoptype = istop_type;
 	audiostream_init(engine, &g_stream_vtbl, &micspk->base);
 	micspk->base.direction = 0;
 

+ 0 - 2
Other/win/libaudioframework/audiomicspk2.h

@@ -50,7 +50,6 @@ struct audiomicspk2_t
 	void *output_resample_state;
 	int dev_type;
 	BOOL bstopout;
-	int istoptype;
 
 	HANDLE worker_thread;
 	int (*on_rx_audio)(char *frame,void*user_data);
@@ -68,7 +67,6 @@ apr_status_t audiomicspk2_create(apr_pool_t *pool,
 	int clock,
 	const char *rec_dev_key,
 	const char *ply_dev_key, 
-	int istop_type,
 	int idev_type,
 	lpfn_audio_device_event lpevent,
 	audiomicspk2_t **p_micspk);