[Asterisk-cvs] asterisk/channels chan_sip.c,1.666,1.667
markster at lists.digium.com
markster at lists.digium.com
Fri Feb 25 19:18:06 CST 2005
Update of /usr/cvsroot/asterisk/channels
In directory mongoose.digium.com:/tmp/cvs-serv28751/channels
Modified Files:
chan_sip.c
Log Message:
Release RTP ports early (bug #3655)
Index: chan_sip.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channels/chan_sip.c,v
retrieving revision 1.666
retrieving revision 1.667
diff -u -d -r1.666 -r1.667
--- chan_sip.c 25 Feb 2005 16:37:34 -0000 1.666
+++ chan_sip.c 26 Feb 2005 01:16:12 -0000 1.667
@@ -8379,6 +8379,15 @@
if (p->expiry>max_expiry)
p->expiry = max_expiry;
}
+ /* Go ahead and free RTP port */
+ if (p->rtp) {
+ ast_rtp_destroy(p->rtp);
+ p->rtp = NULL;
+ }
+ if (p->vrtp) {
+ ast_rtp_destroy(p->rtp);
+ p->vrtp = NULL;
+ }
transmit_response(p, "200 OK", req);
sip_scheddestroy(p, (p->expiry+10)*1000);
transmit_state_notify(p, ast_extension_state(NULL, p->context, p->exten),1);
@@ -8406,6 +8415,15 @@
if ((res = register_verify(p, sin, req, e, ignore)) < 0)
ast_log(LOG_NOTICE, "Registration from '%s' failed for '%s'\n", get_header(req, "To"), ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr));
if (res < 1) {
+ /* Go ahead and free RTP port */
+ if (p->rtp) {
+ ast_rtp_destroy(p->rtp);
+ p->rtp = NULL;
+ }
+ if (p->vrtp) {
+ ast_rtp_destroy(p->rtp);
+ p->vrtp = NULL;
+ }
/* Destroy the session, but keep us around for just a bit in case they don't
get our 200 OK */
sip_scheddestroy(p, 15*1000);
More information about the svn-commits
mailing list