summaryrefslogtreecommitdiff
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2010-07-14 16:58:03 +0000
committerRichard Mudgett <rmudgett@digium.com>2010-07-14 16:58:03 +0000
commitcf7bbcc4c667a1fe907b0ec71e9a4fed506b8c23 (patch)
tree804c18f5b1b87b38928ba78b993358d14926f97e /channels/chan_iax2.c
parente2599bc42c07a6a5611a3804ce08495ccdc72b94 (diff)
Expand the caller ANI field to an ast_party_id
Expand the ani field in ast_party_caller and ast_party_connected_line to an ast_party_id. This is an extension to the ast_callerid restructuring patch in review: https://reviewboard.asterisk.org/r/702/ Review: https://reviewboard.asterisk.org/r/744/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@276393 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r--channels/chan_iax2.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 97752f63a..72e6b666c 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -4971,8 +4971,11 @@ static int iax2_call(struct ast_channel *c, char *dest, int timeout)
if (n)
iax_ie_append_str(&ied, IAX_IE_CALLING_NAME, n);
- if (ast_test_flag64(iaxs[callno], IAX_SENDANI) && c->connected.ani)
- iax_ie_append_str(&ied, IAX_IE_CALLING_ANI, c->connected.ani);
+ if (ast_test_flag64(iaxs[callno], IAX_SENDANI)
+ && c->connected.ani.number.valid
+ && c->connected.ani.number.str) {
+ iax_ie_append_str(&ied, IAX_IE_CALLING_ANI, c->connected.ani.number.str);
+ }
if (!ast_strlen_zero(c->language))
iax_ie_append_str(&ied, IAX_IE_LANGUAGE, c->language);
@@ -5604,9 +5607,11 @@ static struct ast_channel *ast_iax2_new(int callno, int state, format_t capabili
/* Don't use ast_set_callerid() here because it will
* generate a NewCallerID event before the NewChannel event */
if (!ast_strlen_zero(i->ani)) {
- tmp->caller.ani = ast_strdup(i->ani);
- } else {
- tmp->caller.ani = ast_strdup(i->cid_num);
+ tmp->caller.ani.number.valid = 1;
+ tmp->caller.ani.number.str = ast_strdup(i->ani);
+ } else if (!ast_strlen_zero(i->cid_num)) {
+ tmp->caller.ani.number.valid = 1;
+ tmp->caller.ani.number.str = ast_strdup(i->cid_num);
}
tmp->dialed.number.str = ast_strdup(i->dnid);
tmp->redirecting.from.number.valid = 1;