]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merge branch for bug 6264 (Privacy option 2 returns dial-status ANSWER / option_prior...
authorJoshua Colp <jcolp@digium.com>
Wed, 24 May 2006 19:44:26 +0000 (19:44 +0000)
committerJoshua Colp <jcolp@digium.com>
Wed, 24 May 2006 19:44:26 +0000 (19:44 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@30035 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_dial.c

index 3bfa91165b335300a04ff74a003d83441931827c..4481910fb0cf073e2a54c6578b202617a1376cd1 100644 (file)
@@ -939,20 +939,26 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
                }
                
                if( privdb_val == AST_PRIVACY_DENY ) {
+                       strcpy(status, "NOANSWER");
                        ast_verbose( VERBOSE_PREFIX_3  "Privacy DB reports PRIVACY_DENY for this callerid. Dial reports unavailable\n");
                        res=0;
                        goto out;
                }
                else if( privdb_val == AST_PRIVACY_KILL ) {
-                       ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 201);
+                       strcpy(status, "DONTCALL");
+                       if (option_priority_jumping || ast_test_flag(&opts, OPT_PRIORITY_JUMP)) {
+                               ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 201);
+                       }
                        res = 0;
                        goto out; /* Is this right? */
                }
                else if( privdb_val == AST_PRIVACY_TORTURE ) {
-                       ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 301);
+                       strcpy(status, "TORTURE");
+                       if (option_priority_jumping || ast_test_flag(&opts, OPT_PRIORITY_JUMP)) {
+                               ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 301);
+                       }
                        res = 0;
                        goto out; /* is this right??? */
-
                }
                else if( privdb_val == AST_PRIVACY_UNKNOWN ) {
                        /* Get the user's intro, store it in priv-callerintros/$CID, 
@@ -1310,6 +1316,7 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
                                                                     opt_args[OPT_ARG_PRIVACY], privcid);
                                                ast_privacy_set(opt_args[OPT_ARG_PRIVACY], privcid, AST_PRIVACY_DENY);
                                        }
+                                       strcpy(status,"NOANSWER");
                                        if (ast_test_flag(&opts, OPT_MUSICBACK)) {
                                                ast_moh_stop(chan);
                                        } else if (ast_test_flag(&opts, OPT_RINGBACK)) {