diff options
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_sip.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index de26d9afd..dd4479f10 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -1349,6 +1349,7 @@ static void add_noncodec_to_sdp(const struct sip_pvt *p, int format, int sample_ int debug); static enum sip_result add_sdp(struct sip_request *resp, struct sip_pvt *p); static void do_setnat(struct sip_pvt *p, int natflags); +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); @@ -3689,6 +3690,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); |