mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-10-31 10:47:18 +00:00 
			
		
		
		
	don't drop any voice frames when checking for T.38 during early media
(closes issue ASTERISK-17705) Review: https://reviewboard.asterisk.org/r/1186/ patch by oej reported by oej git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@322807 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
		| @@ -6294,7 +6294,11 @@ static int sip_write(struct ast_channel *ast, struct ast_frame *frame) | ||||
| 		} | ||||
| 		if (p) { | ||||
| 			sip_pvt_lock(p); | ||||
| 			if (p->rtp) { | ||||
| 			if (p->t38.state == T38_ENABLED) { | ||||
| 				/* drop frame, can't sent VOICE frames while in T.38 mode */ | ||||
| 				sip_pvt_unlock(p); | ||||
| 				break; | ||||
| 			} else if (p->rtp) { | ||||
| 				/* If channel is not up, activate early media session */ | ||||
| 				if ((ast->_state != AST_STATE_UP) && | ||||
| 				    !ast_test_flag(&p->flags[0], SIP_PROGRESS_SENT) && | ||||
| @@ -6305,12 +6309,9 @@ static int sip_write(struct ast_channel *ast, struct ast_frame *frame) | ||||
| 						transmit_provisional_response(p, "183 Session Progress", &p->initreq, TRUE); | ||||
| 						ast_set_flag(&p->flags[0], SIP_PROGRESS_SENT); | ||||
| 					} | ||||
| 				} else if (p->t38.state == T38_ENABLED) { | ||||
| 					/* drop frame, can't sent VOICE frames while in T.38 mode */ | ||||
| 				} else { | ||||
| 					p->lastrtptx = time(NULL); | ||||
| 					res = ast_rtp_instance_write(p->rtp, frame); | ||||
| 				} | ||||
| 				p->lastrtptx = time(NULL); | ||||
| 				res = ast_rtp_instance_write(p->rtp, frame); | ||||
| 			} | ||||
| 			sip_pvt_unlock(p); | ||||
| 		} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user