Make sure to fail a monitor if we receive a negative response for a CC SUBSCRIBE.
authorMark Michelson <mmichelson@digium.com>
Fri, 16 Apr 2010 19:50:43 +0000 (19:50 +0000)
committerMark Michelson <mmichelson@digium.com>
Fri, 16 Apr 2010 19:50:43 +0000 (19:50 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@257646 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 80a7519..a59d542 100644 (file)
@@ -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) {