From ba81ee6d2867bc7f6702d15e597ec567ef3b34e2 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Fri, 16 Apr 2010 19:50:43 +0000 Subject: [PATCH] Make sure to fail a monitor if we receive a negative response for a CC SUBSCRIBE. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@257646 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 80a75193c6..a59d5421ec 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -18981,6 +18981,16 @@ static void handle_response(struct sip_pvt *p, int resp, const char *rest, struc ast_string_field_set(p, theirtag, tag); } + if (sipmethod == SIP_SUBSCRIBE && resp >= 400) { + struct sip_monitor_instance *monitor_instance = ao2_callback(sip_monitor_instances, + 0, find_sip_monitor_instance_by_subscription_pvt, p); + if (monitor_instance) { + ast_cc_monitor_failed(monitor_instance->core_id, monitor_instance->device_name, + "Received error response to our SUBSCRIBE"); + return; + } + } + switch(resp) { case 200: if (sipmethod == SIP_INVITE) {