aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-14 16:58:03 +0000
committerrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-14 16:58:03 +0000
commitd93fa33a75ef977b9425f11e4d9c69719fea0a9f (patch)
tree804c18f5b1b87b38928ba78b993358d14926f97e /main
parentc7be6954611c1b6ccfbf8a4f9ddf5f9e4f58a902 (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: http://svn.digium.com/svn/asterisk/trunk@276393 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/cdr.c2
-rw-r--r--main/cel.c5
-rw-r--r--main/channel.c54
3 files changed, 19 insertions, 42 deletions
diff --git a/main/cdr.c b/main/cdr.c
index 9dca74ff3..a6096976d 100644
--- a/main/cdr.c
+++ b/main/cdr.c
@@ -853,7 +853,7 @@ static void set_one_cid(struct ast_cdr *cdr, struct ast_channel *c)
}
/* Grab source from ANI or normal Caller*ID */
- num = S_OR(c->caller.ani,
+ num = S_COR(c->caller.ani.number.valid, c->caller.ani.number.str,
S_COR(c->caller.id.number.valid, c->caller.id.number.str, NULL));
ast_callerid_merge(cdr->clid, sizeof(cdr->clid),
S_COR(c->caller.id.name.valid, c->caller.id.name.str, NULL), num, "");
diff --git a/main/cel.c b/main/cel.c
index 52c62f6b8..0af890bde 100644
--- a/main/cel.c
+++ b/main/cel.c
@@ -441,7 +441,8 @@ struct ast_channel *ast_cel_fabricate_channel_from_event(const struct ast_event
tchan->caller.id.name.str = ast_strdup(record.caller_id_name);
tchan->caller.id.number.valid = 1;
tchan->caller.id.number.str = ast_strdup(record.caller_id_num);
- tchan->caller.ani = ast_strdup(record.caller_id_ani);
+ tchan->caller.ani.number.valid = 1;
+ tchan->caller.ani.number.str = ast_strdup(record.caller_id_ani);
tchan->redirecting.from.number.valid = 1;
tchan->redirecting.from.number.str = ast_strdup(record.caller_id_rdnis);
tchan->dialed.number.str = ast_strdup(record.caller_id_dnid);
@@ -538,7 +539,7 @@ int ast_cel_report_event(struct ast_channel *chan, enum ast_cel_event_type event
AST_EVENT_IE_CEL_CIDNUM, AST_EVENT_IE_PLTYPE_STR,
S_COR(chan->caller.id.number.valid, chan->caller.id.number.str, ""),
AST_EVENT_IE_CEL_CIDANI, AST_EVENT_IE_PLTYPE_STR,
- S_OR(chan->caller.ani, ""),
+ S_COR(chan->caller.ani.number.valid, chan->caller.ani.number.str, ""),
AST_EVENT_IE_CEL_CIDRDNIS, AST_EVENT_IE_PLTYPE_STR,
S_COR(chan->redirecting.from.number.valid, chan->redirecting.from.number.str, ""),
AST_EVENT_IE_CEL_CIDDNID, AST_EVENT_IE_PLTYPE_STR,
diff --git a/main/channel.c b/main/channel.c
index 51cbd553b..65a4b7810 100644
--- a/main/channel.c
+++ b/main/channel.c
@@ -2136,7 +2136,7 @@ void ast_party_dialed_free(struct ast_party_dialed *doomed)
void ast_party_caller_init(struct ast_party_caller *init)
{
ast_party_id_init(&init->id);
- init->ani = NULL;
+ ast_party_id_init(&init->ani);
init->ani2 = 0;
}
@@ -2148,44 +2148,34 @@ void ast_party_caller_copy(struct ast_party_caller *dest, const struct ast_party
}
ast_party_id_copy(&dest->id, &src->id);
-
- ast_free(dest->ani);
- dest->ani = ast_strdup(src->ani);
-
+ ast_party_id_copy(&dest->ani, &src->ani);
dest->ani2 = src->ani2;
}
void ast_party_caller_set_init(struct ast_party_caller *init, const struct ast_party_caller *guide)
{
ast_party_id_set_init(&init->id, &guide->id);
- init->ani = NULL;
+ ast_party_id_set_init(&init->ani, &guide->ani);
init->ani2 = guide->ani2;
}
void ast_party_caller_set(struct ast_party_caller *dest, const struct ast_party_caller *src, const struct ast_set_party_caller *update)
{
ast_party_id_set(&dest->id, &src->id, update ? &update->id : NULL);
-
- if (src->ani && src->ani != dest->ani) {
- ast_free(dest->ani);
- dest->ani = ast_strdup(src->ani);
- }
-
+ ast_party_id_set(&dest->ani, &src->ani, update ? &update->ani : NULL);
dest->ani2 = src->ani2;
}
void ast_party_caller_free(struct ast_party_caller *doomed)
{
ast_party_id_free(&doomed->id);
-
- ast_free(doomed->ani);
- doomed->ani = NULL;
+ ast_party_id_free(&doomed->ani);
}
void ast_party_connected_line_init(struct ast_party_connected_line *init)
{
ast_party_id_init(&init->id);
- init->ani = NULL;
+ ast_party_id_init(&init->ani);
init->ani2 = 0;
init->source = AST_CONNECTED_LINE_UPDATE_SOURCE_UNKNOWN;
}
@@ -2198,10 +2188,7 @@ void ast_party_connected_line_copy(struct ast_party_connected_line *dest, const
}
ast_party_id_copy(&dest->id, &src->id);
-
- ast_free(dest->ani);
- dest->ani = ast_strdup(src->ani);
-
+ ast_party_id_copy(&dest->ani, &src->ani);
dest->ani2 = src->ani2;
dest->source = src->source;
}
@@ -2209,7 +2196,7 @@ void ast_party_connected_line_copy(struct ast_party_connected_line *dest, const
void ast_party_connected_line_set_init(struct ast_party_connected_line *init, const struct ast_party_connected_line *guide)
{
ast_party_id_set_init(&init->id, &guide->id);
- init->ani = NULL;
+ ast_party_id_set_init(&init->ani, &guide->ani);
init->ani2 = guide->ani2;
init->source = guide->source;
}
@@ -2217,12 +2204,7 @@ void ast_party_connected_line_set_init(struct ast_party_connected_line *init, co
void ast_party_connected_line_set(struct ast_party_connected_line *dest, const struct ast_party_connected_line *src, const struct ast_set_party_connected_line *update)
{
ast_party_id_set(&dest->id, &src->id, update ? &update->id : NULL);
-
- if (src->ani && src->ani != dest->ani) {
- ast_free(dest->ani);
- dest->ani = ast_strdup(src->ani);
- }
-
+ ast_party_id_set(&dest->ani, &src->ani, update ? &update->ani : NULL);
dest->ani2 = src->ani2;
dest->source = src->source;
}
@@ -2238,9 +2220,7 @@ void ast_party_connected_line_collect_caller(struct ast_party_connected_line *co
void ast_party_connected_line_free(struct ast_party_connected_line *doomed)
{
ast_party_id_free(&doomed->id);
-
- ast_free(doomed->ani);
- doomed->ani = NULL;
+ ast_party_id_free(&doomed->ani);
}
void ast_party_redirecting_init(struct ast_party_redirecting *init)
@@ -6205,8 +6185,9 @@ void ast_set_callerid(struct ast_channel *chan, const char *cid_num, const char
chan->caller.id.name.str = ast_strdup(cid_name);
}
if (cid_ani) {
- ast_free(chan->caller.ani);
- chan->caller.ani = ast_strdup(cid_ani);
+ chan->caller.ani.number.valid = 1;
+ ast_free(chan->caller.ani.number.str);
+ chan->caller.ani.number.str = ast_strdup(cid_ani);
}
report_new_callerid(chan);
@@ -7497,19 +7478,14 @@ int ast_say_digits_full(struct ast_channel *chan, int num,
void ast_connected_line_copy_from_caller(struct ast_party_connected_line *dest, const struct ast_party_caller *src)
{
ast_party_id_copy(&dest->id, &src->id);
-
- ast_free(dest->ani);
- dest->ani = ast_strdup(src->ani);
-
+ ast_party_id_copy(&dest->ani, &src->ani);
dest->ani2 = src->ani2;
}
void ast_connected_line_copy_to_caller(struct ast_party_caller *dest, const struct ast_party_connected_line *src)
{
ast_party_id_copy(&dest->id, &src->id);
-
- ast_free(dest->ani);
- dest->ani = ast_strdup(src->ani);
+ ast_party_id_copy(&dest->ani, &src->ani);
dest->ani2 = src->ani2;
}