Author: mjordan
Date: Wed Jul 31 19:07:59 2013
New Revision: 395907

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=395907
Log:
Raise Registry AMI events on registration failures

This patch makes it so that all registration attempts that fail that
also permanently modify the registration state will raise an appropriate
AMI event.

Note that this patch was forward ported to trunk and the Stasis Core
message bus by mjordan.

(closes issue ASTERISK-21368)
Reported by: Dmitriy Serov
patches:
  chan_sip.c.diff uploaded by Demon (license 6479)


Modified:
    trunk/channels/chan_sip.c

Modified: trunk/channels/chan_sip.c
URL: 
http://svnview.digium.com/svn/asterisk/trunk/channels/chan_sip.c?view=diff&rev=395907&r1=395906&r2=395907
==============================================================================
--- trunk/channels/chan_sip.c (original)
+++ trunk/channels/chan_sip.c Wed Jul 31 19:07:59 2013
@@ -23667,6 +23667,7 @@
                ast_log(LOG_WARNING, "Forbidden - wrong password on 
authentication for REGISTER for '%s' to '%s'\n", p->registry->username, 
p->registry->hostname);
                AST_SCHED_DEL_UNREF(sched, r->timeout, registry_unref(r, "reg 
ptr unref from handle_response_register 403"));
                r->regstate = REG_STATE_NOAUTH;
+               sip_publish_registry(r->username, r->hostname, 
regstate2str(r->regstate));
                pvt_set_needdestroy(p, "received 403 response");
                break;
        case 404:       /* Not found */
@@ -23675,6 +23676,7 @@
                if (r->call)
                        r->call = dialog_unref(r->call, "unsetting 
registry->call pointer-- case 404");
                r->regstate = REG_STATE_REJECTED;
+               sip_publish_registry(r->username, r->hostname, 
regstate2str(r->regstate));
                AST_SCHED_DEL_UNREF(sched, r->timeout, registry_unref(r, "reg 
ptr unref from handle_response_register 404"));
                break;
        case 407:       /* Proxy auth */
@@ -23715,6 +23717,7 @@
                if (r->call)
                        r->call = dialog_unref(r->call, "unsetting 
registry->call pointer-- case 479");
                r->regstate = REG_STATE_REJECTED;
+               sip_publish_registry(r->username, r->hostname, 
regstate2str(r->regstate));
                AST_SCHED_DEL_UNREF(sched, r->timeout, registry_unref(r, "reg 
ptr unref from handle_response_register 479"));
                break;
        case 200:       /* 200 OK */


--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to