[asterisk-commits] rmudgett: branch rmudgett/cid r265448 - in /team/rmudgett/cid: apps/ channels...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon May 24 15:37:32 CDT 2010
Author: rmudgett
Date: Mon May 24 15:37:28 2010
New Revision: 265448
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=265448
Log:
Move ast_channel.cid.cid_num to ast_channel.caller.id.number.str.
* Fixed app_alarmreceiver.c write_metadata(). The workstring[] could
contain garbage. It also can only contain the caller id number so using
ast_callerid_parse() on it is silly. There was also a typo in the
CALLERNAME if test.
* Fixed app_rpt.c using ast_callerid_parse() on the channel's caller id
number string. ast_callerid_parse() alters the given buffer which in this
case is the channel's caller id number string. Then using
ast_shrink_phone_number() could alter it even more.
Modified:
team/rmudgett/cid/apps/app_alarmreceiver.c
team/rmudgett/cid/apps/app_dial.c
team/rmudgett/cid/apps/app_disa.c
team/rmudgett/cid/apps/app_fax.c
team/rmudgett/cid/apps/app_macro.c
team/rmudgett/cid/apps/app_minivm.c
team/rmudgett/cid/apps/app_osplookup.c
team/rmudgett/cid/apps/app_parkandannounce.c
team/rmudgett/cid/apps/app_queue.c
team/rmudgett/cid/apps/app_readexten.c
team/rmudgett/cid/apps/app_rpt.c
team/rmudgett/cid/apps/app_sms.c
team/rmudgett/cid/apps/app_stack.c
team/rmudgett/cid/apps/app_talkdetect.c
team/rmudgett/cid/apps/app_voicemail.c
team/rmudgett/cid/apps/app_while.c
team/rmudgett/cid/apps/app_zapateller.c
team/rmudgett/cid/channels/chan_agent.c
team/rmudgett/cid/channels/chan_dahdi.c
team/rmudgett/cid/channels/chan_local.c
team/rmudgett/cid/channels/chan_mgcp.c
team/rmudgett/cid/channels/chan_misdn.c
team/rmudgett/cid/channels/chan_oss.c
team/rmudgett/cid/channels/chan_sip.c
team/rmudgett/cid/channels/chan_skinny.c
team/rmudgett/cid/channels/chan_vpb.cc
team/rmudgett/cid/funcs/func_dialplan.c
team/rmudgett/cid/include/asterisk/channel.h
team/rmudgett/cid/main/app.c
team/rmudgett/cid/main/channel.c
team/rmudgett/cid/main/cli.c
team/rmudgett/cid/main/features.c
team/rmudgett/cid/main/file.c
team/rmudgett/cid/main/manager.c
team/rmudgett/cid/main/pbx.c
team/rmudgett/cid/res/res_agi.c
Modified: team/rmudgett/cid/apps/app_alarmreceiver.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_alarmreceiver.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_alarmreceiver.c (original)
+++ team/rmudgett/cid/apps/app_alarmreceiver.c Mon May 24 15:37:28 2010
@@ -298,18 +298,22 @@
int res = 0;
struct timeval t;
struct ast_tm now;
- char *cl,*cn;
+ char *cl;
+ char *cn;
char workstring[80];
char timestamp[80];
/* Extract the caller ID location */
- if (chan->cid.cid_num)
- ast_copy_string(workstring, chan->cid.cid_num, sizeof(workstring));
- workstring[sizeof(workstring) - 1] = '\0';
-
- ast_callerid_parse(workstring, &cn, &cl);
- if (cl)
- ast_shrink_phone_number(cl);
+ ast_copy_string(workstring,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, ""),
+ sizeof(workstring));
+ ast_shrink_phone_number(workstring);
+ if (ast_strlen_zero(workstring)) {
+ cl = "<unknown>";
+ } else {
+ cl = workstring;
+ }
+ cn = S_COR(chan->caller.id.XXX_name.valid, chan->caller.id.XXX_name.str, "<unknown>");
/* Get the current time */
t = ast_tvnow();
@@ -319,27 +323,27 @@
ast_strftime(timestamp, sizeof(timestamp), time_stamp_format, &now);
res = fprintf(logfile, "\n\n[metadata]\n\n");
-
- if (res >= 0)
+ if (res >= 0) {
res = fprintf(logfile, "PROTOCOL=%s\n", signalling_type);
-
- if (res >= 0)
- res = fprintf(logfile, "CALLINGFROM=%s\n", (!cl) ? "<unknown>" : cl);
-
- if (res >- 0)
- res = fprintf(logfile, "CALLERNAME=%s\n", (!cn) ? "<unknown>" : cn);
-
- if (res >= 0)
+ }
+ if (res >= 0) {
+ res = fprintf(logfile, "CALLINGFROM=%s\n", cl);
+ }
+ if (res >= 0) {
+ res = fprintf(logfile, "CALLERNAME=%s\n", cn);
+ }
+ if (res >= 0) {
res = fprintf(logfile, "TIMESTAMP=%s\n\n", timestamp);
-
- if (res >= 0)
+ }
+ if (res >= 0) {
res = fprintf(logfile, "[events]\n\n");
-
+ }
if (res < 0) {
ast_verb(3, "AlarmReceiver: can't write metadata\n");
ast_debug(1,"AlarmReceiver: can't write metadata\n");
- } else
+ } else {
res = 0;
+ }
return res;
}
Modified: team/rmudgett/cid/apps/app_dial.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_dial.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_dial.c (original)
+++ team/rmudgett/cid/apps/app_dial.c Mon May 24 15:37:28 2010
@@ -1587,8 +1587,9 @@
char *l;
int silencethreshold;
- if (!ast_strlen_zero(chan->cid.cid_num)) {
- l = ast_strdupa(chan->cid.cid_num);
+ if (chan->caller.id.XXX_number.valid
+ && !ast_strlen_zero(chan->caller.id.XXX_number.str)) {
+ l = ast_strdupa(chan->caller.id.XXX_number.str);
ast_shrink_phone_number(l);
if (ast_test_flag64(opts, OPT_PRIVACY) ) {
ast_verb(3, "Privacy DB is '%s', clid is '%s'\n", opt_args[OPT_ARG_PRIVACY], l);
@@ -2594,7 +2595,9 @@
strcpy(peer->context, chan->context);
- if (ast_test_flag64(&opts, OPT_PEER_H) && ast_exists_extension(peer, peer->context, "h", 1, peer->cid.cid_num)) {
+ if (ast_test_flag64(&opts, OPT_PEER_H)
+ && ast_exists_extension(peer, peer->context, "h", 1,
+ S_COR(peer->caller.id.XXX_number.valid, peer->caller.id.XXX_number.str, NULL))) {
int autoloopflag;
int found;
int res9;
@@ -2604,8 +2607,12 @@
autoloopflag = ast_test_flag(peer, AST_FLAG_IN_AUTOLOOP); /* save value to restore at the end */
ast_set_flag(peer, AST_FLAG_IN_AUTOLOOP);
- while ((res9 = ast_spawn_extension(peer, peer->context, peer->exten, peer->priority, peer->cid.cid_num, &found, 1)) == 0)
+ while ((res9 = ast_spawn_extension(peer, peer->context, peer->exten,
+ peer->priority,
+ S_COR(peer->caller.id.XXX_number.valid, peer->caller.id.XXX_number.str, NULL),
+ &found, 1)) == 0) {
peer->priority++;
+ }
if (found && res9) {
/* Something bad happened, or a hangup has been requested. */
Modified: team/rmudgett/cid/apps/app_disa.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_disa.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_disa.c (original)
+++ team/rmudgett/cid/apps/app_disa.c Mon May 24 15:37:28 2010
@@ -308,9 +308,11 @@
}
} else {
if (j == '#') { /* end of extension .. maybe */
- if (i == 0 &&
- (ast_matchmore_extension(chan, args.context, "#", 1, chan->cid.cid_num) ||
- ast_exists_extension(chan, args.context, "#", 1, chan->cid.cid_num)) ) {
+ if (i == 0
+ && (ast_matchmore_extension(chan, args.context, "#", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))
+ || ast_exists_extension(chan, args.context, "#", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) ) {
/* Let the # be the part of, or the entire extension */
} else {
break;
@@ -340,7 +342,8 @@
}
/* if can do some more, do it */
- if (!ast_matchmore_extension(chan,args.context,exten,1, chan->cid.cid_num)) {
+ if (!ast_matchmore_extension(chan,args.context,exten,1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
break;
}
}
@@ -352,13 +355,16 @@
int recheck = 0;
struct ast_flags cdr_flags = { AST_CDR_FLAG_POSTED };
- if (!ast_exists_extension(chan, args.context, exten, 1, chan->cid.cid_num)) {
+ if (!ast_exists_extension(chan, args.context, exten, 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
pbx_builtin_setvar_helper(chan, "INVALID_EXTEN", exten);
exten[0] = 'i';
exten[1] = '\0';
recheck = 1;
}
- if (!recheck || ast_exists_extension(chan, args.context, exten, 1, chan->cid.cid_num)) {
+ if (!recheck
+ || ast_exists_extension(chan, args.context, exten, 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
ast_playtones_stop(chan);
/* We're authenticated and have a target extension */
if (!ast_strlen_zero(args.cid)) {
Modified: team/rmudgett/cid/apps/app_fax.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_fax.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_fax.c (original)
+++ team/rmudgett/cid/apps/app_fax.c Mon May 24 15:37:28 2010
@@ -251,25 +251,25 @@
ast_debug(1, " Transfer Rate: %d\n", stat.bit_rate);
ast_manager_event(s->chan, EVENT_FLAG_CALL,
- s->direction ? "FaxSent" : "FaxReceived",
- "Channel: %s\r\n"
- "Exten: %s\r\n"
- "CallerID: %s\r\n"
- "RemoteStationID: %s\r\n"
- "LocalStationID: %s\r\n"
- "PagesTransferred: %d\r\n"
- "Resolution: %d\r\n"
- "TransferRate: %d\r\n"
- "FileName: %s\r\n",
- s->chan->name,
- s->chan->exten,
- S_OR(s->chan->cid.cid_num, ""),
- far_ident,
- local_ident,
- pages_transferred,
- stat.y_resolution,
- stat.bit_rate,
- s->file_name);
+ s->direction ? "FaxSent" : "FaxReceived",
+ "Channel: %s\r\n"
+ "Exten: %s\r\n"
+ "CallerID: %s\r\n"
+ "RemoteStationID: %s\r\n"
+ "LocalStationID: %s\r\n"
+ "PagesTransferred: %d\r\n"
+ "Resolution: %d\r\n"
+ "TransferRate: %d\r\n"
+ "FileName: %s\r\n",
+ s->chan->name,
+ s->chan->exten,
+ S_COR(s->chan->caller.id.XXX_number.valid, s->chan->caller.id.XXX_number.str, ""),
+ far_ident,
+ local_ident,
+ pages_transferred,
+ stat.y_resolution,
+ stat.bit_rate,
+ s->file_name);
}
/* === Helper functions to configure fax === */
Modified: team/rmudgett/cid/apps/app_macro.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_macro.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_macro.c (original)
+++ team/rmudgett/cid/apps/app_macro.c Mon May 24 15:37:28 2010
@@ -298,7 +298,8 @@
}
snprintf(fullmacro, sizeof(fullmacro), "macro-%s", macro);
- if (!ast_exists_extension(chan, fullmacro, "s", 1, chan->cid.cid_num)) {
+ if (!ast_exists_extension(chan, fullmacro, "s", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
if (!ast_context_find(fullmacro))
ast_log(LOG_WARNING, "No such context '%s' for macro '%s'\n", fullmacro, macro);
else
@@ -370,7 +371,8 @@
ast_channel_unlock(chan);
autoloopflag = ast_test_flag(chan, AST_FLAG_IN_AUTOLOOP);
ast_set_flag(chan, AST_FLAG_IN_AUTOLOOP);
- while(ast_exists_extension(chan, chan->context, chan->exten, chan->priority, chan->cid.cid_num)) {
+ while (ast_exists_extension(chan, chan->context, chan->exten, chan->priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
struct ast_context *c;
struct ast_exten *e;
int foundx;
@@ -386,7 +388,8 @@
if (ast_rdlock_context(c)) {
ast_log(LOG_WARNING, "Unable to lock context?\n");
} else {
- e = find_matching_priority(c, chan->exten, chan->priority, chan->cid.cid_num);
+ e = find_matching_priority(c, chan->exten, chan->priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL));
if (e) { /* This will only be undefined for pbx_realtime, which is majorly broken. */
ast_copy_string(runningapp, ast_get_extension_app(e), sizeof(runningapp));
ast_copy_string(runningdata, ast_get_extension_app_data(e), sizeof(runningdata));
@@ -402,7 +405,10 @@
/* Reset the macro depth, if it was changed in the last iteration */
pbx_builtin_setvar_helper(chan, "MACRO_DEPTH", depthc);
- if ((res = ast_spawn_extension(chan, chan->context, chan->exten, chan->priority, chan->cid.cid_num, &foundx,1))) {
+ res = ast_spawn_extension(chan, chan->context, chan->exten, chan->priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL),
+ &foundx, 1);
+ if (res) {
/* Something bad happened, or a hangup has been requested. */
if (((res >= '0') && (res <= '9')) || ((res >= 'A') && (res <= 'F')) ||
(res == '*') || (res == '#')) {
@@ -544,7 +550,9 @@
/* Handle macro offset if it's set by checking the availability of step n + offset + 1, otherwise continue
normally if there is any problem */
if (sscanf(offsets, "%30d", &offset) == 1) {
- if (ast_exists_extension(chan, chan->context, chan->exten, chan->priority + offset + 1, chan->cid.cid_num)) {
+ if (ast_exists_extension(chan, chan->context, chan->exten,
+ chan->priority + offset + 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
chan->priority += offset;
}
}
Modified: team/rmudgett/cid/apps/app_minivm.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_minivm.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_minivm.c (original)
+++ team/rmudgett/cid/apps/app_minivm.c Mon May 24 15:37:28 2010
@@ -2289,26 +2289,35 @@
/* Check current or macro-calling context for special extensions */
if (ast_test_flag(vmu, MVM_OPERATOR)) {
if (!ast_strlen_zero(vmu->exit)) {
- if (ast_exists_extension(chan, vmu->exit, "o", 1, chan->cid.cid_num)) {
+ if (ast_exists_extension(chan, vmu->exit, "o", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "0", sizeof(ecodes) - strlen(ecodes) - 1);
ouseexten = 1;
}
- } else if (ast_exists_extension(chan, chan->context, "o", 1, chan->cid.cid_num)) {
+ } else if (ast_exists_extension(chan, chan->context, "o", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "0", sizeof(ecodes) - strlen(ecodes) - 1);
ouseexten = 1;
}
- else if (!ast_strlen_zero(chan->macrocontext) && ast_exists_extension(chan, chan->macrocontext, "o", 1, chan->cid.cid_num)) {
+ else if (!ast_strlen_zero(chan->macrocontext)
+ && ast_exists_extension(chan, chan->macrocontext, "o", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "0", sizeof(ecodes) - strlen(ecodes) - 1);
ousemacro = 1;
}
}
if (!ast_strlen_zero(vmu->exit)) {
- if (ast_exists_extension(chan, vmu->exit, "a", 1, chan->cid.cid_num))
+ if (ast_exists_extension(chan, vmu->exit, "a", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "*", sizeof(ecodes) - strlen(ecodes) - 1);
- } else if (ast_exists_extension(chan, chan->context, "a", 1, chan->cid.cid_num))
+ }
+ } else if (ast_exists_extension(chan, chan->context, "a", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "*", sizeof(ecodes) - strlen(ecodes) - 1);
- else if (!ast_strlen_zero(chan->macrocontext) && ast_exists_extension(chan, chan->macrocontext, "a", 1, chan->cid.cid_num)) {
+ } else if (!ast_strlen_zero(chan->macrocontext)
+ && ast_exists_extension(chan, chan->macrocontext, "a", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "*", sizeof(ecodes) - strlen(ecodes) - 1);
ausemacro = 1;
}
Modified: team/rmudgett/cid/apps/app_osplookup.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_osplookup.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_osplookup.c (original)
+++ team/rmudgett/cid/apps/app_osplookup.c Mon May 24 15:37:28 2010
@@ -2225,7 +2225,10 @@
ast_debug(1, "OSPAuth: source '%s'\n", source);
ast_debug(1, "OSPAuth: token size '%zd'\n", strlen(token));
- if ((res = osp_auth(provider, &handle, source, chan->cid.cid_num, chan->exten, token, &timelimit)) > 0) {
+ res = osp_auth(provider, &handle, source,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL),
+ chan->exten, token, &timelimit);
+ if (res > 0) {
status = AST_OSP_SUCCESS;
} else {
timelimit = OSP_DEF_TIMELIMIT;
@@ -2417,7 +2420,10 @@
return OSP_AST_ERROR;
}
- if ((res = osp_lookup(provider, callidtypes, srcdev, chan->cid.cid_num, args.exten, snetid, &np, &div, cinfo, &results)) > 0) {
+ res = osp_lookup(provider, callidtypes, srcdev,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL),
+ args.exten, snetid, &np, &div, cinfo, &results);
+ if (res > 0) {
status = AST_OSP_SUCCESS;
} else {
results.tech[0] = '\0';
Modified: team/rmudgett/cid/apps/app_parkandannounce.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_parkandannounce.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_parkandannounce.c (original)
+++ team/rmudgett/cid/apps/app_parkandannounce.c Mon May 24 15:37:28 2010
@@ -126,10 +126,13 @@
ast_parseable_goto(chan, args.return_context);
}
- ast_verb(3, "Return Context: (%s,%s,%d) ID: %s\n", chan->context, chan->exten, chan->priority, chan->cid.cid_num);
- if (!ast_exists_extension(chan, chan->context, chan->exten, chan->priority, chan->cid.cid_num)) {
+ ast_verb(3, "Return Context: (%s,%s,%d) ID: %s\n", chan->context, chan->exten,
+ chan->priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, ""));
+ if (!ast_exists_extension(chan, chan->context, chan->exten, chan->priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
ast_verb(3, "Warning: Return Context Invalid, call will return to default|s\n");
- }
+ }
/* we are using masq_park here to protect * from touching the channel once we park it. If the channel comes out of timeout
before we are done announcing and the channel is messed with, Kablooeee. So we use Masq to prevent this. */
Modified: team/rmudgett/cid/apps/app_queue.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_queue.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_queue.c (original)
+++ team/rmudgett/cid/apps/app_queue.c Mon May 24 15:37:28 2010
@@ -2384,7 +2384,8 @@
return 0;
/* If the extension is bad, then reset the digits to blank */
- if (!ast_canmatch_extension(qe->chan, qe->context, qe->digits, 1, qe->chan->cid.cid_num)) {
+ if (!ast_canmatch_extension(qe->chan, qe->context, qe->digits, 1,
+ S_COR(qe->chan->caller.id.XXX_number.valid, qe->chan->caller.id.XXX_number.str, NULL))) {
qe->digits[0] = '\0';
return 0;
}
@@ -5675,8 +5676,10 @@
set_queue_result(chan, reason);
return 0;
}
- ast_queue_log(args.queuename, chan->uniqueid, "NONE", "ENTERQUEUE", "%s|%s|%d", S_OR(args.url, ""),
- S_OR(chan->cid.cid_num, ""), qe.opos);
+ ast_queue_log(args.queuename, chan->uniqueid, "NONE", "ENTERQUEUE", "%s|%s|%d",
+ S_OR(args.url, ""),
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, ""),
+ qe.opos);
copy_rules(&qe, args.rule);
qe.pr = AST_LIST_FIRST(&qe.qe_rules);
check_turns:
Modified: team/rmudgett/cid/apps/app_readexten.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_readexten.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_readexten.c (original)
+++ team/rmudgett/cid/apps/app_readexten.c Mon May 24 15:37:28 2010
@@ -240,8 +240,11 @@
}
exten[x] = res;
- if (!ast_matchmore_extension(chan, arglist.context, exten, 1 /* priority */, chan->cid.cid_num)) {
- if (!ast_exists_extension(chan, arglist.context, exten, 1, chan->cid.cid_num) && res == '#') {
+ if (!ast_matchmore_extension(chan, arglist.context, exten, 1 /* priority */,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
+ if (!ast_exists_extension(chan, arglist.context, exten, 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))
+ && res == '#') {
exten[x] = '\0';
}
break;
@@ -251,7 +254,8 @@
if (!ast_strlen_zero(status))
break;
- if (ast_exists_extension(chan, arglist.context, exten, 1, chan->cid.cid_num)) {
+ if (ast_exists_extension(chan, arglist.context, exten, 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
ast_debug(3, "User entered valid extension '%s'\n", exten);
pbx_builtin_setvar_helper(chan, arglist.variable, exten);
status = "OK";
@@ -296,10 +300,12 @@
else
priority_int = atoi(args.priority);
- if (ast_exists_extension(chan, args.context, args.extension, priority_int, chan->cid.cid_num))
+ if (ast_exists_extension(chan, args.context, args.extension, priority_int,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
ast_copy_string(buffer, "1", buflen);
- else
+ } else {
ast_copy_string(buffer, "0", buflen);
+ }
return 0;
}
Modified: team/rmudgett/cid/apps/app_rpt.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_rpt.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_rpt.c (original)
+++ team/rmudgett/cid/apps/app_rpt.c Mon May 24 15:37:28 2010
@@ -5808,9 +5808,9 @@
if (debug > 3)
ast_log(LOG_NOTICE, "rpt (remote) initiating call to %s/%s on %s\n",
deststr, tele, l->chan->name);
- if(l->chan->cid.cid_num)
- ast_free(l->chan->cid.cid_num);
- l->chan->cid.cid_num = ast_strdup(myrpt->name);
+ l->chan->caller.id.XXX_number.valid = 1;
+ ast_free(l->chan->caller.id.XXX_number.str);
+ l->chan->caller.id.XXX_number.str = ast_strdup(myrpt->name);
ast_call(l->chan,tele,999);
}
else {
@@ -10388,9 +10388,9 @@
if (option_verbose > 2)
ast_verbose(VERBOSE_PREFIX_3 "rpt (attempt_reconnect) initiating call to %s/%s on %s\n",
deststr, tele, l->chan->name);
- if(l->chan->cid.cid_num)
- ast_free(l->chan->cid.cid_num);
- l->chan->cid.cid_num = ast_strdup(myrpt->name);
+ l->chan->caller.id.XXX_number.valid = 1;
+ ast_free(l->chan->caller.id.XXX_number.str);
+ l->chan->caller.id.XXX_number.str = ast_strdup(myrpt->name);
ast_call(l->chan,tele,999);
}
@@ -13412,8 +13412,11 @@
}
if(option_verbose > 2) {
- ast_verbose( VERBOSE_PREFIX_3 "Return Context: (%s,%s,%d) ID: %s\n", chan->context,chan->exten, chan->priority, chan->cid.cid_num);
- if(!ast_exists_extension(chan, chan->context, chan->exten, chan->priority, chan->cid.cid_num)) {
+ ast_verbose(VERBOSE_PREFIX_3 "Return Context: (%s,%s,%d) ID: %s\n",
+ chan->context, chan->exten, chan->priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, ""));
+ if(!ast_exists_extension(chan, chan->context, chan->exten, chan->priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
ast_verbose( VERBOSE_PREFIX_3 "Warning: Return Context Invalid, call will return to default|s\n");
}
}
@@ -13443,7 +13446,8 @@
char hisip[100],nodeip[100],*val, *s, *s1, *s2, *s3, *b,*b1;
/* look at callerid to see what node this comes from */
- if (!chan->cid.cid_num) /* if doesn't have caller id */
+ b = S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL);
+ if (!b) /* if doesn't have caller id */
{
ast_log(LOG_WARNING, "Does not have callerid on %s\n",tmp);
return -1;
@@ -13467,7 +13471,7 @@
return -1;
}
- ast_callerid_parse(chan->cid.cid_num,&b,&b1);
+ b1 = ast_strdupa(b);
ast_shrink_phone_number(b1);
if (!strcmp(myrpt->name,b1))
{
@@ -13564,13 +13568,14 @@
return -1;
}
/* look at callerid to see what node this comes from */
- if (!chan->cid.cid_num) /* if doesn't have caller id */
+ b = S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL);
+ if (!b) /* if doesn't have caller id */
{
ast_log(LOG_WARNING, "Doesnt have callerid on %s\n",tmp);
return -1;
}
- ast_callerid_parse(chan->cid.cid_num,&b,&b1);
+ b1 = ast_strdupa(b);
ast_shrink_phone_number(b1);
if (!strcmp(myrpt->name,b1))
{
@@ -14036,11 +14041,12 @@
ast_cli_command(nullfd,mycmd);
} else ast_cli_command(nullfd,mycmd);
/* look at callerid to see what node this comes from */
- if (!chan->cid.cid_num) /* if doesn't have caller id */
+ b = S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL);
+ if (!b) /* if doesn't have caller id */
{
b1 = "0";
} else {
- ast_callerid_parse(chan->cid.cid_num,&b,&b1);
+ b1 = ast_strdupa(b);
ast_shrink_phone_number(b1);
}
sprintf(mycmd,"CONNECT,%s",b1);
@@ -14546,11 +14552,12 @@
char mycmd[100],*b,*b1;
/* look at callerid to see what node this comes from */
- if (!chan->cid.cid_num) /* if doesn't have caller id */
+ b = S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL);
+ if (!b) /* if doesn't have caller id */
{
b1 = "0";
} else {
- ast_callerid_parse(chan->cid.cid_num,&b,&b1);
+ b1 = ast_strdupa(b);
ast_shrink_phone_number(b1);
}
sprintf(mycmd,"DISCONNECT,%s",b1);
Modified: team/rmudgett/cid/apps/app_sms.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_sms.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_sms.c (original)
+++ team/rmudgett/cid/apps/app_sms.c Mon May 24 15:37:28 2010
@@ -1890,8 +1890,9 @@
h.ipc0 = h.ipc1 = 20; /* phase for cosine */
h.dcs = 0xF1; /* default */
- if (chan->cid.cid_num)
- ast_copy_string(h.cli, chan->cid.cid_num, sizeof(h.cli));
+ ast_copy_string(h.cli,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, ""),
+ sizeof(h.cli));
if (ast_strlen_zero(sms_args.queue)) {
ast_log(LOG_ERROR, "Requires queue name\n");
Modified: team/rmudgett/cid/apps/app_stack.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_stack.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_stack.c (original)
+++ team/rmudgett/cid/apps/app_stack.c Mon May 24 15:37:28 2010
@@ -413,7 +413,9 @@
return -1;
}
- if (!ast_exists_extension(chan, chan->context, chan->exten, ast_test_flag(chan, AST_FLAG_IN_AUTOLOOP) ? chan->priority + 1 : chan->priority, chan->cid.cid_num)) {
+ if (!ast_exists_extension(chan, chan->context, chan->exten,
+ ast_test_flag(chan, AST_FLAG_IN_AUTOLOOP) ? chan->priority + 1 : chan->priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
ast_log(LOG_ERROR, "Attempt to reach a non-existent destination for gosub: (Context:%s, Extension:%s, Priority:%d)\n",
chan->context, chan->exten, ast_test_flag(chan, AST_FLAG_IN_AUTOLOOP) ? chan->priority + 1 : chan->priority);
ast_copy_string(chan->context, newframe->context, sizeof(chan->context));
@@ -588,12 +590,15 @@
if (sscanf(argv[3], "%30d", &priority) != 1 || priority < 1) {
/* Lookup the priority label */
- if ((priority = ast_findlabel_extension(chan, argv[1], argv[2], argv[3], chan->cid.cid_num)) < 0) {
+ priority = ast_findlabel_extension(chan, argv[1], argv[2], argv[3],
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL));
+ if (priority < 0) {
ast_log(LOG_ERROR, "Priority '%s' not found in '%s@%s'\n", argv[3], argv[2], argv[1]);
ast_agi_send(agi->fd, chan, "200 result=-1 Gosub label not found\n");
return RESULT_FAILURE;
}
- } else if (!ast_exists_extension(chan, argv[1], argv[2], priority, chan->cid.cid_num)) {
+ } else if (!ast_exists_extension(chan, argv[1], argv[2], priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
ast_agi_send(agi->fd, chan, "200 result=-1 Gosub label not found\n");
return RESULT_FAILURE;
}
Modified: team/rmudgett/cid/apps/app_talkdetect.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_talkdetect.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_talkdetect.c (original)
+++ team/rmudgett/cid/apps/app_talkdetect.c Mon May 24 15:37:28 2010
@@ -175,7 +175,8 @@
char t[2];
t[0] = fr->subclass.integer;
t[1] = '\0';
- if (ast_canmatch_extension(chan, chan->context, t, 1, chan->cid.cid_num)) {
+ if (ast_canmatch_extension(chan, chan->context, t, 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
/* They entered a valid extension, or might be anyhow */
res = fr->subclass.integer;
ast_frfree(fr);
Modified: team/rmudgett/cid/apps/app_voicemail.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_voicemail.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_voicemail.c (original)
+++ team/rmudgett/cid/apps/app_voicemail.c Mon May 24 15:37:28 2010
@@ -5505,25 +5505,34 @@
/* Check current or macro-calling context for special extensions */
if (ast_test_flag(vmu, VM_OPERATOR)) {
if (!ast_strlen_zero(vmu->exit)) {
- if (ast_exists_extension(chan, vmu->exit, "o", 1, chan->cid.cid_num)) {
+ if (ast_exists_extension(chan, vmu->exit, "o", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "0", sizeof(ecodes) - strlen(ecodes) - 1);
ouseexten = 1;
}
- } else if (ast_exists_extension(chan, chan->context, "o", 1, chan->cid.cid_num)) {
+ } else if (ast_exists_extension(chan, chan->context, "o", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "0", sizeof(ecodes) - strlen(ecodes) - 1);
ouseexten = 1;
- } else if (!ast_strlen_zero(chan->macrocontext) && ast_exists_extension(chan, chan->macrocontext, "o", 1, chan->cid.cid_num)) {
+ } else if (!ast_strlen_zero(chan->macrocontext)
+ && ast_exists_extension(chan, chan->macrocontext, "o", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "0", sizeof(ecodes) - strlen(ecodes) - 1);
ousemacro = 1;
}
}
if (!ast_strlen_zero(vmu->exit)) {
- if (ast_exists_extension(chan, vmu->exit, "a", 1, chan->cid.cid_num))
+ if (ast_exists_extension(chan, vmu->exit, "a", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "*", sizeof(ecodes) - strlen(ecodes) - 1);
- } else if (ast_exists_extension(chan, chan->context, "a", 1, chan->cid.cid_num))
+ }
+ } else if (ast_exists_extension(chan, chan->context, "a", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "*", sizeof(ecodes) - strlen(ecodes) - 1);
- else if (!ast_strlen_zero(chan->macrocontext) && ast_exists_extension(chan, chan->macrocontext, "a", 1, chan->cid.cid_num)) {
+ } else if (!ast_strlen_zero(chan->macrocontext)
+ && ast_exists_extension(chan, chan->macrocontext, "a", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, "*", sizeof(ecodes) - strlen(ecodes) - 1);
ausemacro = 1;
}
@@ -5532,8 +5541,11 @@
for (code = alldtmf; *code; code++) {
char e[2] = "";
e[0] = *code;
- if (strchr(ecodes, e[0]) == NULL && ast_canmatch_extension(chan, chan->context, e, 1, chan->cid.cid_num))
+ if (strchr(ecodes, e[0]) == NULL
+ && ast_canmatch_extension(chan, chan->context, e, 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
strncat(ecodes, e, sizeof(ecodes) - strlen(ecodes) - 1);
+ }
}
}
@@ -9394,15 +9406,16 @@
return -1;
}
if (ast_strlen_zero(mailbox)) {
- if (chan->cid.cid_num) {
- ast_copy_string(mailbox, chan->cid.cid_num, mailbox_size);
+ if (chan->caller.id.XXX_number.valid && chan->caller.id.XXX_number.str) {
+ ast_copy_string(mailbox, chan->caller.id.XXX_number.str, mailbox_size);
} else {
ast_verb(3, "Username not entered\n");
return -1;
}
} else if (mailbox[0] == '*') {
/* user entered '*' */
- if (ast_exists_extension(chan, chan->context, "a", 1, chan->cid.cid_num)) {
+ if (ast_exists_extension(chan, chan->context, "a", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
return -1;
}
mailbox[0] = '\0';
@@ -9433,7 +9446,8 @@
return -1;
} else if (password[0] == '*') {
/* user entered '*' */
- if (ast_exists_extension(chan, chan->context, "a", 1, chan->cid.cid_num)) {
+ if (ast_exists_extension(chan, chan->context, "a", 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
mailbox[0] = '*';
return -1;
}
Modified: team/rmudgett/cid/apps/app_while.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_while.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_while.c (original)
+++ team/rmudgett/cid/apps/app_while.c Mon May 24 15:37:28 2010
@@ -163,7 +163,11 @@
/* This is the matching context we want */
int cur_priority = chan->priority + 1, level=1;
- for (e = find_matching_priority(c, chan->exten, cur_priority, chan->cid.cid_num); e; e = find_matching_priority(c, chan->exten, ++cur_priority, chan->cid.cid_num)) {
+ for (e = find_matching_priority(c, chan->exten, cur_priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL));
+ e;
+ e = find_matching_priority(c, chan->exten, ++cur_priority,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
if (!strcasecmp(ast_get_extension_app(e), "WHILE")) {
level++;
} else if (!strcasecmp(ast_get_extension_app(e), "ENDWHILE")) {
Modified: team/rmudgett/cid/apps/app_zapateller.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/apps/app_zapateller.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/apps/app_zapateller.c (original)
+++ team/rmudgett/cid/apps/app_zapateller.c Mon May 24 15:37:28 2010
@@ -103,8 +103,12 @@
res = ast_safe_sleep(chan, 500);
}
- if (!ast_strlen_zero(chan->cid.cid_num) && nocallerid)
+ if (nocallerid /* Zap caller if no caller id. */
+ && chan->caller.id.XXX_number.valid
+ && !ast_strlen_zero(chan->caller.id.XXX_number.str)) {
+ /* We have caller id. */
return res;
+ }
if (!res)
res = ast_tonepair(chan, 950, 0, 330, 0);
Modified: team/rmudgett/cid/channels/chan_agent.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/channels/chan_agent.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/channels/chan_agent.c (original)
+++ team/rmudgett/cid/channels/chan_agent.c Mon May 24 15:37:28 2010
@@ -1488,16 +1488,17 @@
if (p->chan) {
loginChan = ast_strdupa(p->chan->name);
if (p->owner && p->owner->_bridge) {
- talkingto = p->chan->cid.cid_num;
+ talkingto = S_COR(p->chan->caller.id.XXX_number.valid,
+ p->chan->caller.id.XXX_number.str, "n/a");
if (ast_bridged_channel(p->owner))
talkingtoChan = ast_strdupa(ast_bridged_channel(p->owner)->name);
else
talkingtoChan = "n/a";
- status = "AGENT_ONCALL";
+ status = "AGENT_ONCALL";
} else {
talkingto = "n/a";
talkingtoChan = "n/a";
- status = "AGENT_IDLE";
+ status = "AGENT_IDLE";
}
} else {
loginChan = "n/a";
@@ -2147,10 +2148,12 @@
if (strchr(data, 'c'))
changeoutgoing = 1;
}
- if (chan->cid.cid_num) {
+ if (chan->caller.id.XXX_number.valid
+ && !ast_strlen_zero(chan->caller.id.XXX_number.str)) {
const char *tmp;
char agentvar[AST_MAX_BUF];
- snprintf(agentvar, sizeof(agentvar), "%s_%s", GETAGENTBYCALLERID, chan->cid.cid_num);
+ snprintf(agentvar, sizeof(agentvar), "%s_%s", GETAGENTBYCALLERID,
+ chan->caller.id.XXX_number.str);
if ((tmp = pbx_builtin_getvar_helper(NULL, agentvar))) {
struct agent_pvt *p;
ast_copy_string(agent, tmp, sizeof(agent));
Modified: team/rmudgett/cid/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/team/rmudgett/cid/channels/chan_dahdi.c?view=diff&rev=265448&r1=265447&r2=265448
==============================================================================
--- team/rmudgett/cid/channels/chan_dahdi.c (original)
+++ team/rmudgett/cid/channels/chan_dahdi.c Mon May 24 15:37:28 2010
@@ -2018,7 +2018,8 @@
*/
ast_mutex_unlock(&p->lock);
ast_channel_unlock(ast);
- if (ast_exists_extension(ast, target_context, "fax", 1, ast->cid.cid_num)) {
+ if (ast_exists_extension(ast, target_context, "fax", 1,
+ S_COR(ast->caller.id.XXX_number.valid, ast->caller.id.XXX_number.str, NULL))) {
ast_channel_lock(ast);
ast_mutex_lock(&p->lock);
ast_verb(3, "Redirecting %s to fax extension\n", ast->name);
@@ -5050,7 +5051,7 @@
c = "";
}
if (!p->hidecallerid) {
- l = ast->cid.cid_num;
+ l = ast->caller.id.XXX_number.valid ? ast->caller.id.XXX_number.str : NULL;
} else {
l = NULL;
}
@@ -7216,7 +7217,8 @@
*/
ast_mutex_unlock(&p->lock);
ast_channel_unlock(ast);
- if (ast_exists_extension(ast, target_context, "fax", 1, ast->cid.cid_num)) {
+ if (ast_exists_extension(ast, target_context, "fax", 1,
+ S_COR(ast->caller.id.XXX_number.valid, ast->caller.id.XXX_number.str, NULL))) {
ast_channel_lock(ast);
ast_mutex_lock(&p->lock);
ast_verb(3, "Redirecting %s to fax extension\n", ast->name);
@@ -9450,7 +9452,8 @@
}
}
- if (ast_exists_extension(chan, chan->context, exten, 1, chan->cid.cid_num)) {
+ if (ast_exists_extension(chan, chan->context, exten, 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))) {
ast_copy_string(chan->exten, exten, sizeof(chan->exten));
if (p->dsp) ast_dsp_digitreset(p->dsp);
res = ast_pbx_run(chan);
@@ -9699,9 +9702,12 @@
ast_hangup(chan);
goto quit;
}
- } else if (!ast_canmatch_extension(chan, chan->context, exten, 1, chan->cid.cid_num) &&
- ((exten[0] != '*') || (strlen(exten) > 2))) {
- ast_debug(1, "Can't match %s from '%s' in context %s\n", exten, chan->cid.cid_num ? chan->cid.cid_num : "<Unknown Caller>", chan->context);
+ } else if (!ast_canmatch_extension(chan, chan->context, exten, 1,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, NULL))
+ && ((exten[0] != '*') || (strlen(exten) > 2))) {
+ ast_debug(1, "Can't match %s from '%s' in context %s\n", exten,
+ S_COR(chan->caller.id.XXX_number.valid, chan->caller.id.XXX_number.str, "<Unknown Caller>"),
+ chan->context);
break;
}
if (!timeout)
Modified: team/rmudgett/cid/channels/chan_local.c
[... 771 lines stripped ...]
More information about the asterisk-commits
mailing list