mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-20 08:40:16 +00:00
Merge branch for bug 6264 (Privacy option 2 returns dial-status ANSWER / option_priority_jumping not respected) (reported by jkoopmann and branch by murf)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@30040 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -959,21 +959,27 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(privdb_val == AST_PRIVACY_DENY ) {
|
if(privdb_val == AST_PRIVACY_DENY ) {
|
||||||
|
ast_copy_string(status, "NOANSWER", sizeof(status));
|
||||||
if (option_verbose > 2)
|
if (option_verbose > 2)
|
||||||
ast_verbose( VERBOSE_PREFIX_3 "Privacy DB reports PRIVACY_DENY for this callerid. Dial reports unavailable\n");
|
ast_verbose( VERBOSE_PREFIX_3 "Privacy DB reports PRIVACY_DENY for this callerid. Dial reports unavailable\n");
|
||||||
res=0;
|
res=0;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
else if(privdb_val == AST_PRIVACY_KILL ) {
|
else if(privdb_val == AST_PRIVACY_KILL ) {
|
||||||
ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 201);
|
ast_copy_string(status, "DONTCALL", sizeof(status));
|
||||||
|
if (ast_opt_priority_jumping || ast_test_flag(&opts, OPT_PRIORITY_JUMP)) {
|
||||||
|
ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 201);
|
||||||
|
}
|
||||||
res = 0;
|
res = 0;
|
||||||
goto out; /* Is this right? */
|
goto out; /* Is this right? */
|
||||||
}
|
}
|
||||||
else if(privdb_val == AST_PRIVACY_TORTURE ) {
|
else if(privdb_val == AST_PRIVACY_TORTURE ) {
|
||||||
ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 301);
|
ast_copy_string(status, "TORTURE", sizeof(status));
|
||||||
|
if (ast_opt_priority_jumping || ast_test_flag(&opts, OPT_PRIORITY_JUMP)) {
|
||||||
|
ast_goto_if_exists(chan, chan->context, chan->exten, chan->priority + 301);
|
||||||
|
}
|
||||||
res = 0;
|
res = 0;
|
||||||
goto out; /* is this right??? */
|
goto out; /* is this right??? */
|
||||||
|
|
||||||
}
|
}
|
||||||
else if(privdb_val == AST_PRIVACY_UNKNOWN ) {
|
else if(privdb_val == AST_PRIVACY_UNKNOWN ) {
|
||||||
/* Get the user's intro, store it in priv-callerintros/$CID,
|
/* Get the user's intro, store it in priv-callerintros/$CID,
|
||||||
@@ -1000,6 +1006,8 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
|
|||||||
ast_play_and_record(chan, "priv-recordintro", privintro, 4, "gsm", &duration, 128, 2000, 0); /* NOTE: I've reduced the total time to 4 sec */
|
ast_play_and_record(chan, "priv-recordintro", privintro, 4, "gsm", &duration, 128, 2000, 0); /* NOTE: I've reduced the total time to 4 sec */
|
||||||
/* don't think we'll need a lock removed, we took care of
|
/* don't think we'll need a lock removed, we took care of
|
||||||
conflicts by naming the privintro file */
|
conflicts by naming the privintro file */
|
||||||
|
if( !ast_streamfile(chan, "vm-dialout", chan->language) )
|
||||||
|
ast_waitstream(chan, "");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1312,6 +1320,7 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
|
|||||||
opt_args[OPT_ARG_PRIVACY], privcid);
|
opt_args[OPT_ARG_PRIVACY], privcid);
|
||||||
ast_privacy_set(opt_args[OPT_ARG_PRIVACY], privcid, AST_PRIVACY_DENY);
|
ast_privacy_set(opt_args[OPT_ARG_PRIVACY], privcid, AST_PRIVACY_DENY);
|
||||||
}
|
}
|
||||||
|
ast_copy_string(status, "NOANSWER", sizeof(status));
|
||||||
ast_hangup(peer); /* hang up on the callee -- he didn't want to talk anyway! */
|
ast_hangup(peer); /* hang up on the callee -- he didn't want to talk anyway! */
|
||||||
res=0;
|
res=0;
|
||||||
goto out;
|
goto out;
|
||||||
|
|||||||
Reference in New Issue
Block a user