diff options
author | Mark Spencer <markster@digium.com> | 2003-06-29 14:36:21 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2003-06-29 14:36:21 +0000 |
commit | 2a3888bfac3075957de3f20a4709aef3f8b5e5c8 (patch) | |
tree | 407af690f4a474fece6af1e35fd3dd82dfb5be4e /channels | |
parent | 813531edd436b41bf25a45efa1ebb322a74e7718 (diff) |
Accept MGCP keepalive
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1135 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rwxr-xr-x | channels/chan_mgcp.c | 25 |
1 files 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"); |