aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authortilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-14 23:59:54 +0000
committertilghman <tilghman@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-14 23:59:54 +0000
commitc0b94033742cbb47079d2e15e8391b9431b42ba3 (patch)
tree2703be680da5685b6773ade2d0db9f18f351fe95 /channels
parent3dddaa38d96ebad9e2a5a343000e425301ab08d4 (diff)
Merged revisions 130889 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r130889 | tilghman | 2008-07-14 18:59:13 -0500 (Mon, 14 Jul 2008) | 8 lines Override the callerid in all cases when the callerid is set in the user, not just when a remote callerid is set. Also, if not set in the user, allow the remote CallerID to pass through. (closes issue #12875) Reported by: dimas Patches: 20080714__bug12875.diff.txt uploaded by Corydon76 (license 14) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@130890 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_iax2.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index c820b7dd2..874508028 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -5938,20 +5938,17 @@ static int check_access(int callno, struct sockaddr_in *sin, struct iax_ies *ies
/* And the permitted authentication methods */
iaxs[callno]->authmethods = user->authmethods;
iaxs[callno]->adsi = user->adsi;
- /* If they have callerid, override the given caller id. Always store the ANI */
- if (!ast_strlen_zero(iaxs[callno]->cid_num) || !ast_strlen_zero(iaxs[callno]->cid_name)) {
- if (ast_test_flag(user, IAX_HASCALLERID)) {
- iaxs[callno]->calling_tns = 0;
- iaxs[callno]->calling_ton = 0;
- ast_string_field_set(iaxs[callno], cid_num, user->cid_num);
- ast_string_field_set(iaxs[callno], cid_name, user->cid_name);
- iaxs[callno]->calling_pres = AST_PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN;
- }
- if (ast_strlen_zero(iaxs[callno]->ani))
- ast_string_field_set(iaxs[callno], ani, user->cid_num);
- } else {
+ /* If the user has callerid, override the remote caller id. */
+ if (ast_test_flag(user, IAX_HASCALLERID)) {
+ iaxs[callno]->calling_tns = 0;
+ iaxs[callno]->calling_ton = 0;
+ ast_string_field_set(iaxs[callno], cid_num, user->cid_num);
+ ast_string_field_set(iaxs[callno], cid_name, user->cid_name);
+ ast_string_field_set(iaxs[callno], ani, user->cid_num);
+ iaxs[callno]->calling_pres = AST_PRES_ALLOWED_USER_NUMBER_PASSED_SCREEN;
+ } else if (ast_strlen_zero(iaxs[callno]->cid_num) && ast_strlen_zero(iaxs[callno]->cid_name)) {
iaxs[callno]->calling_pres = AST_PRES_NUMBER_NOT_AVAILABLE;
- }
+ } /* else user is allowed to set their own CID settings */
if (!ast_strlen_zero(user->accountcode))
ast_string_field_set(iaxs[callno], accountcode, user->accountcode);
if (!ast_strlen_zero(user->mohinterpret))