From: Russell Bryant Date: Wed, 30 Aug 2006 18:59:44 +0000 (+0000) Subject: Restore original functionality of 1.2 in places where ANI was not set, but was X-Git-Tag: 1.2.12~26 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e174a3c7625cfaf9801774d2c355f9e10e038b88;p=thirdparty%2Fasterisk.git Restore original functionality of 1.2 in places where ANI was not set, but was changed to be set. The original change was done to ensure that the behavior of the "callerid" option in each channel driver was consistent, but it caused an unexpected behavior change of CDR records for users, so this change is being reverted in 1.2. (issue #7695) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@41411 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_features.c b/channels/chan_features.c index 38565ee41c..5f680130b7 100644 --- a/channels/chan_features.c +++ b/channels/chan_features.c @@ -328,14 +328,14 @@ static int features_call(struct ast_channel *ast, char *dest, int timeout) ast_mutex_lock(&p->lock); x = indexof(p, ast, 0); if (!x && p->subchan) { - ast_set_callerid(p->subchan, - p->owner->cid.cid_num, p->owner->cid.cid_name, - p->owner->cid.cid_ani ? p->owner->cid.cid_ani : p->owner->cid.cid_num); - - if (p->owner->cid.cid_rdnis) - p->subchan->cid.cid_rdnis = strdup(p->owner->cid.cid_rdnis); - else - p->subchan->cid.cid_rdnis = NULL; + p->subchan->cid.cid_name = p->owner->cid.cid_name ? + strdup(p->owner->cid.cid_name) : NULL; + p->subchan->cid.cid_num = p->owner->cid.cid_num ? + strdup(p->owner->cid.cid_num) : NULL; + p->subchan->cid.cid_ani = p->owner->cid.cid_ani ? + strdup(p->owner->cid.cid_ani) : NULL; + p->subchan->cid.cid_rdnis = p->owner->cid.cid_rdnis ? + strdup(p->owner->cid.cid_rdnis) : NULL; p->subchan->cid.cid_pres = p->owner->cid.cid_pres; strncpy(p->subchan->language, p->owner->language, sizeof(p->subchan->language) - 1); diff --git a/channels/chan_h323.c b/channels/chan_h323.c index 814c546f9e..b86d684c87 100644 --- a/channels/chan_h323.c +++ b/channels/chan_h323.c @@ -770,13 +770,10 @@ static struct ast_channel *__oh323_new(struct oh323_pvt *pvt, int state, const c ch->amaflags = pvt->amaflags; } - if (!ast_strlen_zero(pvt->cid_num)) { + if (!ast_strlen_zero(pvt->cid_num)) ch->cid.cid_num = strdup(pvt->cid_num); - ch->cid.cid_ani = strdup(pvt->cid_num); - } else if (!ast_strlen_zero(pvt->cd.call_source_e164)) { + else if (!ast_strlen_zero(pvt->cd.call_source_e164)) ch->cid.cid_num = strdup(pvt->cd.call_source_e164); - ch->cid.cid_ani = strdup(pvt->cd.call_source_e164); - } if (!ast_strlen_zero(pvt->cid_name)) ch->cid.cid_name = strdup(pvt->cid_name); diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 61fc2ca363..f57853ae0e 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -3448,8 +3448,6 @@ static struct ast_channel *ast_iax2_new(int callno, int state, int capability) tmp->cid.cid_name = strdup(i->cid_name); if (!ast_strlen_zero(i->ani)) tmp->cid.cid_ani = strdup(i->ani); - else if (!ast_strlen_zero(i->cid_num)) - tmp->cid.cid_ani = strdup(i->cid_num); tmp->cid.cid_pres = i->calling_pres; tmp->cid.cid_ton = i->calling_ton; tmp->cid.cid_tns = i->calling_tns; diff --git a/channels/chan_local.c b/channels/chan_local.c index 0690059027..a28964167c 100644 --- a/channels/chan_local.c +++ b/channels/chan_local.c @@ -339,7 +339,7 @@ static int local_call(struct ast_channel *ast, char *dest, int timeout) ast_set_callerid(p->chan, p->owner->cid.cid_num, p->owner->cid.cid_name, - p->owner->cid.cid_ani ? p->chan->cid.cid_ani : p->owner->cid.cid_num); + p->owner->cid.cid_ani); if (p->owner->cid.cid_rdnis) p->chan->cid.cid_rdnis = strdup(p->owner->cid.cid_rdnis); diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c index cb3c3d7ced..14b1874260 100644 --- a/channels/chan_mgcp.c +++ b/channels/chan_mgcp.c @@ -1429,10 +1429,8 @@ static struct ast_channel *mgcp_new(struct mgcp_subchannel *sub, int state) strncpy(tmp->context, i->context, sizeof(tmp->context)-1); strncpy(tmp->exten, i->exten, sizeof(tmp->exten)-1); - if (!ast_strlen_zero(i->cid_num)) { + if (!ast_strlen_zero(i->cid_num)) tmp->cid.cid_num = strdup(i->cid_num); - tmp->cid.cid_ani = strdup(i->cid_num); - } if (!ast_strlen_zero(i->cid_name)) tmp->cid.cid_name = strdup(i->cid_name); @@ -2630,7 +2628,7 @@ static void *mgcp_ss(void *data) ast_set_callerid(chan, p->hidecallerid ? "" : p->cid_num, p->hidecallerid ? "" : p->cid_name, - chan->cid.cid_ani ? NULL : p->cid_num); + p->cid_num); ast_setstate(chan, AST_STATE_RING); /*zt_enable_ec(p);*/ if (p->dtmfmode & MGCP_DTMF_HYBRID) { diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 5b322f6bf1..c6dc759208 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -2706,10 +2706,8 @@ static struct ast_channel *misdn_new(struct chan_list *chlist, int state, char ast_callerid_parse(callerid, &cid_name, &cid_num); - if (!ast_strlen_zero(cid_num)) { + if (!ast_strlen_zero(cid_num)) tmp->cid.cid_num = strdup(cid_num); - tmp->cid.cid_ani = strdup(cid_num); - } if (!ast_strlen_zero(cid_name)) tmp->cid.cid_name = strdup(cid_name); } diff --git a/channels/chan_phone.c b/channels/chan_phone.c index 18fc8eaf8c..65257d5079 100644 --- a/channels/chan_phone.c +++ b/channels/chan_phone.c @@ -826,10 +826,8 @@ static struct ast_channel *phone_new(struct phone_pvt *i, int state, char *conte if (!ast_strlen_zero(i->language)) strncpy(tmp->language, i->language, sizeof(tmp->language)-1); - if (!ast_strlen_zero(i->cid_num)) { + if (!ast_strlen_zero(i->cid_num)) tmp->cid.cid_num = strdup(i->cid_num); - tmp->cid.cid_ani = strdup(i->cid_num); - } if (!ast_strlen_zero(i->cid_name)) tmp->cid.cid_name = strdup(i->cid_name); diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 636760f880..2e0a662ef4 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -2824,10 +2824,8 @@ static struct ast_channel *sip_new(struct sip_pvt *i, int state, char *title) ast_copy_string(tmp->context, i->context, sizeof(tmp->context)); ast_copy_string(tmp->exten, i->exten, sizeof(tmp->exten)); - if (!ast_strlen_zero(i->cid_num)) { + if (!ast_strlen_zero(i->cid_num)) tmp->cid.cid_num = strdup(i->cid_num); - tmp->cid.cid_ani = strdup(i->cid_num); - } if (!ast_strlen_zero(i->cid_name)) tmp->cid.cid_name = strdup(i->cid_name); if (!ast_strlen_zero(i->rdnis)) diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c index e4ffe81657..1dc6c8c2af 100644 --- a/channels/chan_skinny.c +++ b/channels/chan_skinny.c @@ -1746,7 +1746,7 @@ static void *skinny_ss(void *data) ast_set_callerid(chan, l->hidecallerid ? "" : l->cid_num, l->hidecallerid ? "" : l->cid_name, - chan->cid.cid_ani ? NULL : l->cid_num); + NULL); ast_setstate(chan, AST_STATE_RING); res = ast_pbx_run(chan); if (res) { @@ -2280,10 +2280,8 @@ static struct ast_channel *skinny_new(struct skinny_subchannel *sub, int state) strncpy(tmp->context, l->context, sizeof(tmp->context)-1); strncpy(tmp->exten,l->exten, sizeof(tmp->exten)-1); - if (!ast_strlen_zero(l->cid_num)) { + if (!ast_strlen_zero(l->cid_num)) tmp->cid.cid_num = strdup(l->cid_num); - tmp->cid.cid_ani = strdup(l->cid_num); - } if (!ast_strlen_zero(l->cid_name)) tmp->cid.cid_name = strdup(l->cid_name);