make non matching IP addresses go to invalid extension if default context exists
authorJeremy McNamara <jj@nufone.net>
Fri, 11 Apr 2003 20:28:25 +0000 (20:28 +0000)
committerJeremy McNamara <jj@nufone.net>
Fri, 11 Apr 2003 20:28:25 +0000 (20:28 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@836 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/h323/chan_h323.c

index 24f9ed9..52a989f 100755 (executable)
@@ -961,8 +961,14 @@ int setup_incoming_call(call_details_t cd)
                } else {
                        if (user->host) {
                                if (strcasecmp(cd.sourceIp, inet_ntoa(user->addr.sin_addr))){
-                                       ast_log(LOG_ERROR, "Call from user '%s' rejected due to non-matching IP address of '%s'\n", user->name, cd.sourceIp);
-                       return 0;
+                                       
+                                       if(!strlen(default_context)) {
+                                               ast_log(LOG_ERROR, "Call from user '%s' rejected due to non-matching IP address of '%s'\n", user->name, cd.sourceIp);
+                               return 0;
+                                       }
+                                       strncpy(p->context, default_context, sizeof(p->context)-1);
+                                       sprintf(p->exten,"i");
+                                       goto exit;                                      
                                }
                        }
                        if (user->incominglimit > 0) {
@@ -993,7 +999,9 @@ int setup_incoming_call(call_details_t cd)
                        user->inUse++;
                } 
        }
-       
+
+/* I know this is horrid, don't kill me saddam */
+exit:
        /* allocate a channel and tell asterisk about it */
        c = oh323_new(p, AST_STATE_RINGING, cd.call_token);