mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 02:37:10 +00:00 
			
		
		
		
	res_pjsip_session: Release media resources on session end quicker.
A change was made long ago where the session was kept around until the underlying INVITE session had been destroyed. This had the side effect of also keeping the underlying media resources around for this time as well. This change ensures that when we know the session is ending we release the media resources immediately. ASTERISK-27110 Change-Id: I3c6a82fe7d2c50b9dc9197cb12ef22f20d337501
This commit is contained in:
		
				
					committed by
					
						 George Joseph
						George Joseph
					
				
			
			
				
	
			
			
			
						parent
						
							ef39998169
						
					
				
				
					commit
					8f51443a08
				
			| @@ -1872,8 +1872,12 @@ static void session_destructor(void *obj) | ||||
|  | ||||
| 	ast_taskprocessor_unreference(session->serializer); | ||||
| 	ao2_cleanup(session->datastores); | ||||
| 	ast_sip_session_media_state_free(session->active_media_state); | ||||
| 	ast_sip_session_media_state_free(session->pending_media_state); | ||||
| 	if (session->active_media_state) { | ||||
| 		ast_sip_session_media_state_free(session->active_media_state); | ||||
| 	} | ||||
| 	if (session->pending_media_state) { | ||||
| 		ast_sip_session_media_state_free(session->pending_media_state); | ||||
| 	} | ||||
|  | ||||
| 	AST_LIST_HEAD_DESTROY(&session->supplements); | ||||
| 	while ((delay = AST_LIST_REMOVE_HEAD(&session->delayed_requests, next))) { | ||||
| @@ -3134,6 +3138,13 @@ static int session_end(void *vsession) | ||||
| 			iter->session_end(session); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/* Release any media resources. */ | ||||
| 	ast_sip_session_media_state_free(session->active_media_state); | ||||
| 	session->active_media_state = NULL; | ||||
| 	ast_sip_session_media_state_free(session->pending_media_state); | ||||
| 	session->pending_media_state = NULL; | ||||
|  | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user