diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 734e44923336596d508dde158c9e22a07af7c2af..4b8947f4639806e308516f3cb55abc678b5e1082 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -1980,24 +1980,24 @@ static void register_peer_exten(struct sip_peer *peer, int onoff) if (ast_strlen_zero(global_regcontext)) return; - ast_copy_string(multi, S_OR(peer->regexten, peer->name), sizeof(multi)); - stringp = multi; - while ((ext = strsep(&stringp, "&"))) { - if ((context = strchr(ext, '@'))) { - *context++ = '\0'; /* split ext@context */ - if (!ast_context_find(context)) { - ast_log(LOG_WARNING, "Context %s must exist in regcontext= in sip.conf!\n", context); - continue; - } - } else { - context = global_regcontext; + ast_copy_string(multi, S_OR(peer->regexten, peer->name), sizeof(multi)); + stringp = multi; + while ((ext = strsep(&stringp, "&"))) { + if ((context = strchr(ext, '@'))) { + *context++ = '\0'; /* split ext@context */ + if (!ast_context_find(context)) { + ast_log(LOG_WARNING, "Context %s must exist in regcontext= in sip.conf!\n", context); + continue; } - if (onoff) - ast_add_extension(context, 1, ext, 1, NULL, NULL, "Noop", - ast_strdup(peer->name), free, "SIP"); - else - ast_context_remove_extension(context, ext, 1, NULL); + } else { + context = global_regcontext; } + if (onoff) + ast_add_extension(context, 1, ext, 1, NULL, NULL, "Noop", + ast_strdup(peer->name), free, "SIP"); + else + ast_context_remove_extension(context, ext, 1, NULL); + } } /*! \brief Destroy peer object from memory */