From 2a3888bfac3075957de3f20a4709aef3f8b5e5c8 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Sun, 29 Jun 2003 14:36:21 +0000 Subject: Accept MGCP keepalive git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1135 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_mgcp.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c index 27a962bd3..faeb828d7 100755 --- a/channels/chan_mgcp.c +++ b/channels/chan_mgcp.c @@ -2139,15 +2139,22 @@ static int handle_request(struct mgcp_subchannel *sub, struct mgcp_request *req, } /* Clear out potential response */ if (!strcasecmp(req->verb, "RSIP")) { - dump_queue(p); - if (option_verbose > 2) { - ast_verbose(VERBOSE_PREFIX_3 "Resetting interface %s@%s\n", p->name, p->parent->name); - } - if (sub->owner) { - ast_softhangup(sub->owner, AST_SOFTHANGUP_DEV); - } - transmit_response(sub, "200", req, "OK"); - transmit_notify_request(sub, ""); + /* Test if this RSIP request is just a keepalive */ + if(!strcasecmp( get_header(req, "RM"), "X-keepalive")) { + if (option_verbose > 2) + ast_verbose(VERBOSE_PREFIX_3 "Received keepalive request from %s@%s\n", p->name, p->parent->name); + transmit_response(sub, "200", req, "OK"); + } else { + dump_queue(p); + if (option_verbose > 2) { + ast_verbose(VERBOSE_PREFIX_3 "Resetting interface %s@%s\n", p->name, p->parent->name); + } + if (sub->owner) { + ast_softhangup(sub->owner, AST_SOFTHANGUP_DEV); + } + transmit_response(sub, "200", req, "OK"); + transmit_notify_request(sub, ""); + } } else if (!strcasecmp(req->verb, "NTFY")) { /* Acknowledge and be sure we keep looking for the same things */ transmit_response(sub, "200", req, "OK"); -- cgit v1.2.3