diff options
author | Richard Mudgett <rmudgett@digium.com> | 2010-07-14 16:58:03 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2010-07-14 16:58:03 +0000 |
commit | cf7bbcc4c667a1fe907b0ec71e9a4fed506b8c23 (patch) | |
tree | 804c18f5b1b87b38928ba78b993358d14926f97e /channels/chan_iax2.c | |
parent | e2599bc42c07a6a5611a3804ce08495ccdc72b94 (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.c | 15 |
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; |