]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Issue 9487 - stop media flows at hangup of call
authorOlle Johansson <oej@edvina.net>
Fri, 18 May 2007 10:37:44 +0000 (10:37 +0000)
committerOlle Johansson <oej@edvina.net>
Fri, 18 May 2007 10:37:44 +0000 (10:37 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@64974 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 6e76977876af5dc32dad1628249eb2fb862210d4..f8d99fdc3634b4c2a8916cadbba05f1734e0ea66 100644 (file)
@@ -1291,6 +1291,7 @@ static void add_noncodec_to_sdp(const struct sip_pvt *p, int format, int sample_
                                char **m_buf, size_t *m_size, char **a_buf, size_t *a_size,
                                int debug);
 static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p);
+static void stop_media_flows(struct sip_pvt *p);
 
 /*--- Authentication stuff */
 static int reply_digest(struct sip_pvt *p, struct sip_request *req, char *header, int sipmethod, char *digest, int digest_len);
@@ -3368,6 +3369,8 @@ static int sip_hangup(struct ast_channel *ast)
                        ast_log(LOG_DEBUG, "Hanging up channel in state %s (not UP)\n", ast_state2str(ast->_state));
        }
 
+       stop_media_flows(p); /* Immediately stop RTP, VRTP and UDPTL as applicable */
+
        /* Disconnect */
        if (p->vad)
                ast_dsp_free(p->vad);