Index: channels/chan_sip.c =================================================================== --- channels/chan_sip.c (revision 58833) +++ channels/chan_sip.c (working copy) @@ -2657,14 +2657,19 @@ } else if (sin) { /* Then check on IP address for dynamic peers */ ast_copy_string(ipaddr, ast_inet_ntoa(sin->sin_addr), sizeof(ipaddr)); var = ast_load_realtime("sippeers", "host", ipaddr, NULL); /* First check for fixed IP hosts */ - if (var && realtimeregs) { - tmp = var; - while (tmp) { - if (!newpeername && !strcasecmp(tmp->name, "name")) - newpeername = tmp->value; - tmp = tmp->next; + if (var) { + if(realtimeregs) { + tmp = var; + while (tmp) { + if (!newpeername && !strcasecmp(tmp->name, "name")) + newpeername = tmp->value; + tmp = tmp->next; + } + varregs = ast_load_realtime("sipregs", "name", newpeername, NULL); + } else { + //varregs = ast_variable_new(var->name, var->value); + } - varregs = ast_load_realtime("sipregs", "name", newpeername, NULL); } else { if (realtimeregs) varregs = ast_load_realtime("sipregs", "ipaddr", ipaddr, NULL); /* Then check for registered hosts */