Revert early destruction of RTP sessions
Some code improperly assumes that the sessions are still there, so revert the change until I can find all of them and fix them. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276206 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
22dbbc6db7
commit
b42c6cab17
|
@ -3497,23 +3497,6 @@ static int __sip_autodestruct(const void *data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/*! \brief Destroy all RTP instances allocated for a dialog */
|
||||
void sip_destroy_rtp(struct sip_pvt *p)
|
||||
{
|
||||
if (p->rtp) {
|
||||
ast_rtp_instance_destroy(p->rtp);
|
||||
p->rtp = NULL;
|
||||
}
|
||||
if (p->vrtp) {
|
||||
ast_rtp_instance_destroy(p->vrtp);
|
||||
p->vrtp = NULL;
|
||||
}
|
||||
if (p->trtp) {
|
||||
ast_rtp_instance_destroy(p->trtp);
|
||||
p->trtp = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*! \brief Schedule final destruction of SIP dialog. This can not be canceled.
|
||||
* This function is used to keep a dialog around for a period of time in order
|
||||
* to properly respond to any retransmits. */
|
||||
|
@ -3527,8 +3510,6 @@ void sip_scheddestroy_final(struct sip_pvt *p, int ms)
|
|||
if (p->autokillid != -1) {
|
||||
p->final_destruction_scheduled = 1;
|
||||
}
|
||||
|
||||
sip_destroy_rtp(p);
|
||||
}
|
||||
|
||||
/*! \brief Schedule destruction of SIP dialog */
|
||||
|
@ -5195,9 +5176,15 @@ void __sip_destroy(struct sip_pvt *p, int lockowner, int lockdialoglist)
|
|||
ast_free(p->notify->content);
|
||||
ast_free(p->notify);
|
||||
}
|
||||
|
||||
sip_destroy_rtp(p);
|
||||
|
||||
if (p->rtp) {
|
||||
ast_rtp_instance_destroy(p->rtp);
|
||||
}
|
||||
if (p->vrtp) {
|
||||
ast_rtp_instance_destroy(p->vrtp);
|
||||
}
|
||||
if (p->trtp) {
|
||||
ast_rtp_instance_destroy(p->trtp);
|
||||
}
|
||||
if (p->udptl)
|
||||
ast_udptl_destroy(p->udptl);
|
||||
if (p->refer)
|
||||
|
|
|
@ -40,10 +40,6 @@ void sip_scheddestroy_final(struct sip_pvt *p, int ms);
|
|||
void sip_scheddestroy(struct sip_pvt *p, int ms);
|
||||
int sip_cancel_destroy(struct sip_pvt *p);
|
||||
|
||||
/*! \brief Destroy the RTP instances associated with a dialog
|
||||
*/
|
||||
void sip_destroy_rtp(struct sip_pvt *p);
|
||||
|
||||
/*! \brief Destroy SIP call structure.
|
||||
* Make it return NULL so the caller can do things like
|
||||
* foo = sip_destroy(foo);
|
||||
|
|
Loading…
Reference in New Issue