[asterisk-commits] oej: branch oej/calleridutf8 r89565 - in /team/oej/calleridutf8: apps/ channe...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Sun Nov 25 14:57:13 CST 2007
Author: oej
Date: Sun Nov 25 14:57:12 2007
New Revision: 89565
URL: http://svn.digium.com/view/asterisk?view=rev&rev=89565
Log:
Major update of some internal functions that pass the caller ID name
Modified:
team/oej/calleridutf8/apps/app_dial.c
team/oej/calleridutf8/apps/app_disa.c
team/oej/calleridutf8/apps/app_followme.c
team/oej/calleridutf8/apps/app_minivm.c
team/oej/calleridutf8/apps/app_parkandannounce.c
team/oej/calleridutf8/apps/app_privacy.c
team/oej/calleridutf8/apps/app_rpt.c
team/oej/calleridutf8/apps/app_voicemail.c
team/oej/calleridutf8/channels/chan_agent.c
team/oej/calleridutf8/channels/chan_alsa.c
team/oej/calleridutf8/channels/chan_features.c
team/oej/calleridutf8/channels/chan_gtalk.c
team/oej/calleridutf8/channels/chan_h323.c
team/oej/calleridutf8/channels/chan_iax2.c
team/oej/calleridutf8/channels/chan_jingle.c
team/oej/calleridutf8/channels/chan_local.c
team/oej/calleridutf8/channels/chan_mgcp.c
team/oej/calleridutf8/channels/chan_misdn.c
team/oej/calleridutf8/channels/chan_nbs.c
team/oej/calleridutf8/channels/chan_oss.c
team/oej/calleridutf8/channels/chan_phone.c
team/oej/calleridutf8/channels/chan_sip.c
team/oej/calleridutf8/channels/chan_skinny.c
team/oej/calleridutf8/channels/chan_unistim.c
team/oej/calleridutf8/channels/chan_usbradio.c
team/oej/calleridutf8/channels/chan_zap.c
team/oej/calleridutf8/funcs/func_callerid.c
team/oej/calleridutf8/include/asterisk/channel.h
team/oej/calleridutf8/main/channel.c
team/oej/calleridutf8/main/logger.c
team/oej/calleridutf8/main/pbx.c
team/oej/calleridutf8/res/res_agi.c
team/oej/calleridutf8/res/res_features.c
Modified: team/oej/calleridutf8/apps/app_dial.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/apps/app_dial.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/apps/app_dial.c (original)
+++ team/oej/calleridutf8/apps/app_dial.c Sun Nov 25 14:57:12 2007
@@ -531,7 +531,7 @@
/* After calling, set callerid to extension */
if (!ast_test_flag64(peerflags, OPT_ORIGINAL_CLID)) {
char cidname[AST_MAX_EXTENSION] = "";
- ast_set_callerid(c, S_OR(in->macroexten, in->exten), get_cid_name(cidname, sizeof(cidname), in), NULL);
+ ast_set_callerid(c, S_OR(in->macroexten, in->exten), get_cid_name(cidname, sizeof(cidname), in), NULL, NULL, NULL);
}
/* Hangup the original channel now, in case we needed it */
ast_hangup(original);
@@ -1436,7 +1436,7 @@
senddialevent(chan, tc);
ast_verb(3, "Called %s\n", numsubst);
if (!ast_test_flag64(peerflags, OPT_ORIGINAL_CLID))
- ast_set_callerid(tc, S_OR(chan->macroexten, chan->exten), get_cid_name(cidname, sizeof(cidname), chan), NULL);
+ ast_set_callerid(tc, S_OR(chan->macroexten, chan->exten), get_cid_name(cidname, sizeof(cidname), chan), NULL, NULL, NULL);
}
/* Put them in the list of outgoing thingies... We're ready now.
XXX If we're forcibly removed, these outgoing calls won't get
Modified: team/oej/calleridutf8/apps/app_disa.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/apps/app_disa.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/apps/app_disa.c (original)
+++ team/oej/calleridutf8/apps/app_disa.c Sun Nov 25 14:57:12 2007
@@ -329,7 +329,7 @@
/* We're authenticated and have a target extension */
if (!ast_strlen_zero(args.cid)) {
ast_callerid_split(args.cid, ourcidname, sizeof(ourcidname), ourcidnum, sizeof(ourcidnum));
- ast_set_callerid(chan, ourcidnum, ourcidname, ourcidnum);
+ ast_set_callerid(chan, ourcidnum, ourcidname, NULL, NULL, ourcidnum); /* No support of cid_domain yet */
}
if (!ast_strlen_zero(acctcode))
Modified: team/oej/calleridutf8/apps/app_followme.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/apps/app_followme.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/apps/app_followme.c (original)
+++ team/oej/calleridutf8/apps/app_followme.c Sun Nov 25 14:57:12 2007
@@ -790,7 +790,7 @@
outbound = ast_request("Local", ast_best_codec(caller->nativeformats), dialarg, &dg);
if (outbound) {
- ast_set_callerid(outbound, caller->cid.cid_num, caller->cid.cid_name, caller->cid.cid_num);
+ ast_set_callerid(outbound, caller->cid.cid_num, caller->cid.cid_name, caller->cid.cid_utf8name, caller->cid.cid_domain, caller->cid.cid_num);
ast_channel_inherit_variables(tpargs->chan, outbound);
ast_verb(3, "calling %s\n", dialarg);
if (!ast_call(outbound,dialarg,0)) {
Modified: team/oej/calleridutf8/apps/app_minivm.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/apps/app_minivm.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/apps/app_minivm.c (original)
+++ team/oej/calleridutf8/apps/app_minivm.c Sun Nov 25 14:57:12 2007
@@ -960,7 +960,7 @@
return -1;
}
/* Allocate channel used for chanvar substitution */
- ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, 0);
+ ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", "", "",0, 0);
snprintf(dur, sizeof(dur), "%d:%02d", duration / 60, duration % 60);
Modified: team/oej/calleridutf8/apps/app_parkandannounce.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/apps/app_parkandannounce.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/apps/app_parkandannounce.c (original)
+++ team/oej/calleridutf8/apps/app_parkandannounce.c Sun Nov 25 14:57:12 2007
@@ -122,7 +122,7 @@
snprintf(buf, sizeof(buf), "%d", lot);
oh.parent_channel = chan;
oh.vars = ast_variable_new("_PARKEDAT", buf, "");
- dchan = __ast_request_and_dial(dialtech, AST_FORMAT_SLINEAR, args.dial, 30000, &outstate, chan->cid.cid_num, chan->cid.cid_name, &oh);
+ dchan = __ast_request_and_dial(dialtech, AST_FORMAT_SLINEAR, args.dial, 30000, &outstate, chan->cid.cid_num, chan->cid.cid_name, chan->cid.cid_utf8name, chan->cid.cid_domain, &oh);
if (dchan) {
if (dchan->_state == AST_STATE_UP) {
Modified: team/oej/calleridutf8/apps/app_privacy.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/apps/app_privacy.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/apps/app_privacy.c (original)
+++ team/oej/calleridutf8/apps/app_privacy.c Sun Nov 25 14:57:12 2007
@@ -170,7 +170,7 @@
if (!res)
res = ast_waitstream(chan, "");
- ast_set_callerid (chan, phone, "Privacy Manager", NULL);
+ ast_set_callerid (chan, phone, "Privacy Manager", NULL, NULL, NULL);
/* Clear the unavailable presence bit so if it came in on PRI
* the caller id will now be passed out to other channels
Modified: team/oej/calleridutf8/apps/app_rpt.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/apps/app_rpt.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/apps/app_rpt.c (original)
+++ team/oej/calleridutf8/apps/app_rpt.c Sun Nov 25 14:57:12 2007
@@ -6857,7 +6857,7 @@
phone_mode = 1;
if (*options == 'D')
phone_mode = 2;
- ast_set_callerid(chan, "0", "app_rpt user", "0");
+ ast_set_callerid(chan, "0", "app_rpt user", NULL, NULL, "0");
} else {
if (strncmp(chan->name, "IAX2", 4)) {
ast_log(LOG_WARNING, "We only accept links via IAX2!!\n");
Modified: team/oej/calleridutf8/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/apps/app_voicemail.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/apps/app_voicemail.c (original)
+++ team/oej/calleridutf8/apps/app_voicemail.c Sun Nov 25 14:57:12 2007
@@ -1968,7 +1968,7 @@
if (!ast_strlen_zero(fromstring)) {
struct ast_channel *ast;
- if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, 0))) {
+ if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", "", "", 0, 0))) {
char *passdata;
int vmlen = strlen(fromstring)*3 + 200;
if ((passdata = alloca(vmlen))) {
@@ -1990,7 +1990,7 @@
fprintf(p, "To: %s <%s>" ENDL, quote(vmu->fullname, passdata2, len_passdata), vmu->email);
if (!ast_strlen_zero(emailsubject)) {
struct ast_channel *ast;
- if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, 0))) {
+ if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", "", "", 0, 0))) {
char *passdata;
int vmlen = strlen(emailsubject) * 3 + 200;
if ((passdata = alloca(vmlen))) {
@@ -2045,7 +2045,7 @@
fprintf(p, "Content-Type: text/plain; charset=%s" ENDL "Content-Transfer-Encoding: 8bit" ENDL ENDL, charset);
if (emailbody) {
struct ast_channel *ast;
- if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, 0))) {
+ if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", "", "", 0, 0))) {
char *passdata;
int vmlen = strlen(emailbody)*3 + 200;
if ((passdata = alloca(vmlen))) {
@@ -2164,7 +2164,7 @@
if (*pagerfromstring) {
struct ast_channel *ast;
- if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, 0))) {
+ if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", "", "", 0, 0))) {
char *passdata;
int vmlen = strlen(fromstring)*3 + 200;
if ((passdata = alloca(vmlen))) {
@@ -2182,7 +2182,7 @@
fprintf(p, "To: %s\n", pager);
if (pagersubject) {
struct ast_channel *ast;
- if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, 0))) {
+ if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", "", "", 0, 0))) {
char *passdata;
int vmlen = strlen(pagersubject) * 3 + 200;
if ((passdata = alloca(vmlen))) {
@@ -2201,7 +2201,7 @@
ast_strftime(date, sizeof(date), "%A, %B %d, %Y at %r", &tm);
if (pagerbody) {
struct ast_channel *ast;
- if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", 0, 0))) {
+ if ((ast = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "", "", "", "", "", 0, 0))) {
char *passdata;
int vmlen = strlen(pagerbody) * 3 + 200;
passdata = alloca(vmlen);
Modified: team/oej/calleridutf8/channels/chan_agent.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_agent.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_agent.c (original)
+++ team/oej/calleridutf8/channels/chan_agent.c Sun Nov 25 14:57:12 2007
@@ -630,8 +630,7 @@
time(&p->start);
/* Call on this agent */
ast_verb(3, "outgoing agentcall, to agent '%s', on '%s'\n", p->agent, p->chan->name);
- ast_set_callerid(p->chan,
- ast->cid.cid_num, ast->cid.cid_name, NULL);
+ ast_set_callerid(p->chan, ast->cid.cid_num, ast->cid.cid_name, ast->cid.cid_utf8name, ast->cid.cid_domain, NULL);
ast_channel_inherit_variables(ast, p->chan);
res = ast_call(p->chan, p->loginchan, 0);
CLEANUP(ast,p);
@@ -927,9 +926,9 @@
}
#endif
if (p->pending)
- tmp = ast_channel_alloc(0, state, 0, 0, "", p->chan ? p->chan->exten:"", p->chan ? p->chan->context:"", 0, "Agent/P%s-%d", p->agent, ast_random() & 0xffff);
+ tmp = ast_channel_alloc(0, state, 0, 0, "", p->chan ? p->chan->exten:"", p->chan ? p->chan->context:"", "", "", 0, "Agent/P%s-%d", p->agent, ast_random() & 0xffff);
else
- tmp = ast_channel_alloc(0, state, 0, 0, "", p->chan ? p->chan->exten:"", p->chan ? p->chan->context:"", 0, "Agent/%s", p->agent);
+ tmp = ast_channel_alloc(0, state, 0, 0, "", p->chan ? p->chan->exten:"", p->chan ? p->chan->context:"", "", "", 0, "Agent/%s", p->agent);
if (!tmp) {
ast_log(LOG_WARNING, "Unable to allocate agent channel structure\n");
return NULL;
Modified: team/oej/calleridutf8/channels/chan_alsa.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_alsa.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_alsa.c (original)
+++ team/oej/calleridutf8/channels/chan_alsa.c Sun Nov 25 14:57:12 2007
@@ -780,7 +780,7 @@
{
struct ast_channel *tmp = NULL;
- if (!(tmp = ast_channel_alloc(1, state, 0, 0, "", p->exten, p->context, 0, "ALSA/%s", indevname)))
+ if (!(tmp = ast_channel_alloc(1, state, 0, 0, "", p->exten, p->context, "", "", 0, "ALSA/%s", indevname)))
return NULL;
tmp->tech = &alsa_tech;
Modified: team/oej/calleridutf8/channels/chan_features.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_features.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_features.c (original)
+++ team/oej/calleridutf8/channels/chan_features.c Sun Nov 25 14:57:12 2007
@@ -461,7 +461,7 @@
if (y >= 3)
break;
}
- tmp = ast_channel_alloc(0, state, 0,0, "", "", "", 0, "Feature/%s", b2);
+ tmp = ast_channel_alloc(0, state, 0,0, "", "", "", "", "", 0, "Feature/%s", b2);
/* free up the name, it was copied into the channel name */
if (b2)
ast_free(b2);
Modified: team/oej/calleridutf8/channels/chan_gtalk.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_gtalk.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_gtalk.c (original)
+++ team/oej/calleridutf8/channels/chan_gtalk.c Sun Nov 25 14:57:12 2007
@@ -108,7 +108,9 @@
struct gtalk_candidate *theircandidates;
struct gtalk_candidate *ourcandidates;
char cid_num[80]; /*!< Caller ID num */
- char cid_name[80]; /*!< Caller ID name */
+ char cid_name[80]; /*!< Caller ID name (ascii) */
+ char cid_utf8name[80]; /*!< Caller ID name (utf8) */
+ char cid_domain[80]; /*!< Caller ID domain */
char exten[80]; /*!< Called extension */
struct ast_channel *owner; /*!< Master Channel */
struct ast_rtp *rtp; /*!< RTP audio session */
@@ -921,7 +923,7 @@
n2 = title;
else
n2 = i->us;
- tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, client->accountcode, i->exten, client->context, client->amaflags, "Gtalk/%s-%04lx", n2, ast_random() & 0xffff);
+ tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, i->cid_utf8name, i->cid_domain, client->accountcode, i->exten, client->context, client->amaflags, "Gtalk/%s-%04lx", n2, ast_random() & 0xffff);
if (!tmp) {
ast_log(LOG_WARNING, "Unable to allocate Gtalk channel structure!\n");
return NULL;
Modified: team/oej/calleridutf8/channels/chan_h323.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_h323.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_h323.c (original)
+++ team/oej/calleridutf8/channels/chan_h323.c Sun Nov 25 14:57:12 2007
@@ -1015,7 +1015,7 @@
/* Don't hold a oh323_pvt lock while we allocate a chanel */
ast_mutex_unlock(&pvt->lock);
- ch = ast_channel_alloc(1, state, cid_num, cid_name, pvt->accountcode, pvt->exten, pvt->context, pvt->amaflags, "H323/%s", host);
+ ch = ast_channel_alloc(1, state, cid_num, cid_name, NULL, NULL, pvt->accountcode, pvt->exten, pvt->context, pvt->amaflags, "H323/%s", host);
/* Update usage counter */
ast_module_ref(ast_module_info->self);
ast_mutex_lock(&pvt->lock);
Modified: team/oej/calleridutf8/channels/chan_iax2.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_iax2.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_iax2.c (original)
+++ team/oej/calleridutf8/channels/chan_iax2.c Sun Nov 25 14:57:12 2007
@@ -298,6 +298,7 @@
AST_STRING_FIELD(language);
AST_STRING_FIELD(cid_num);
AST_STRING_FIELD(cid_name);
+ AST_STRING_FIELD(cid_utf8name);
);
int authmethods;
@@ -332,6 +333,7 @@
/* Suggested caller id if registering */
AST_STRING_FIELD(cid_num); /*!< Default context (for transfer really) */
AST_STRING_FIELD(cid_name); /*!< Default context (for transfer really) */
+ AST_STRING_FIELD(cid_utf8name); /*!< Default context (for transfer really) */
AST_STRING_FIELD(zonetag); /*!< Time Zone */
);
struct ast_codec_pref prefs;
@@ -549,6 +551,7 @@
/*! Caller ID if available */
AST_STRING_FIELD(cid_num);
AST_STRING_FIELD(cid_name);
+ AST_STRING_FIELD(cid_utf8name);
/*! Hidden Caller ID (i.e. ANI) if appropriate */
AST_STRING_FIELD(ani);
/*! DNID */
@@ -3821,7 +3824,7 @@
/* Don't hold call lock */
ast_mutex_unlock(&iaxsl[callno]);
- tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, i->accountcode, i->exten, i->context, i->amaflags, "IAX2/%s-%d", i->host, i->callno);
+ tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, i->cid_utf8name, NULL, i->accountcode, i->exten, i->context, i->amaflags, "IAX2/%s-%d", i->host, i->callno);
ast_mutex_lock(&iaxsl[callno]);
iax2_ami_channelupdate(i);
if (!tmp)
@@ -7033,8 +7036,8 @@
struct iax_dual *d;
struct ast_channel *chan1m, *chan2m;
pthread_t th;
- chan1m = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, chan2->accountcode, chan1->exten, chan1->context, chan1->amaflags, "Parking/%s", chan1->name);
- chan2m = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, chan2->accountcode, chan2->exten, chan2->context, chan2->amaflags, "IAXPeer/%s",chan2->name);
+ chan1m = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, NULL, NULL, chan2->accountcode, chan1->exten, chan1->context, chan1->amaflags, "Parking/%s", chan1->name);
+ chan2m = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, NULL, NULL, chan2->accountcode, chan2->exten, chan2->context, chan2->amaflags, "IAXPeer/%s",chan2->name);
if (chan2m && chan1m) {
/* Make formats okay */
chan1m->readformat = chan1->readformat;
Modified: team/oej/calleridutf8/channels/chan_jingle.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_jingle.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_jingle.c (original)
+++ team/oej/calleridutf8/channels/chan_jingle.c Sun Nov 25 14:57:12 2007
@@ -109,6 +109,8 @@
struct jingle_candidate *ourcandidates;
char cid_num[80]; /*!< Caller ID num */
char cid_name[80]; /*!< Caller ID name */
+ char cid_utf8name[80]; /*!< Caller ID name (utf8) */
+ char cid_domain[80]; /*!< Caller ID domain */
char exten[80]; /*!< Called extension */
struct ast_channel *owner; /*!< Master Channel */
struct ast_rtp *rtp; /*!< RTP audio session */
@@ -810,7 +812,7 @@
str = title;
else
str = i->them;
- tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, "", "", "", 0, "Jingle/%s-%04lx", str, ast_random() & 0xffff);
+ tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, i->cid_utf8name, i->cid_domain, "", "", "", 0, "Jingle/%s-%04lx", str, ast_random() & 0xffff);
if (!tmp) {
ast_log(LOG_WARNING, "Unable to allocate Jingle channel structure!\n");
return NULL;
Modified: team/oej/calleridutf8/channels/chan_local.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_local.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_local.c (original)
+++ team/oej/calleridutf8/channels/chan_local.c Sun Nov 25 14:57:12 2007
@@ -455,6 +455,8 @@
*/
p->chan->cid.cid_num = ast_strdup(p->owner->cid.cid_num);
p->chan->cid.cid_name = ast_strdup(p->owner->cid.cid_name);
+ p->chan->cid.cid_utf8name = ast_strdup(p->owner->cid.cid_utf8name);
+ p->chan->cid.cid_domain = ast_strdup(p->owner->cid.cid_domain);
p->chan->cid.cid_rdnis = ast_strdup(p->owner->cid.cid_rdnis);
p->chan->cid.cid_ani = ast_strdup(p->owner->cid.cid_ani);
p->chan->cid.cid_pres = p->owner->cid.cid_pres;
@@ -618,8 +620,8 @@
ama = p->owner->amaflags;
else
ama = 0;
- if (!(tmp = ast_channel_alloc(1, state, 0, 0, t, p->exten, p->context, ama, "Local/%s@%s-%04x;1", p->exten, p->context, randnum))
- || !(tmp2 = ast_channel_alloc(1, AST_STATE_RING, 0, 0, t, p->exten, p->context, ama, "Local/%s@%s-%04x;2", p->exten, p->context, randnum))) {
+ if (!(tmp = ast_channel_alloc(1, state, 0, 0, t, p->exten, p->context, NULL, NULL, ama, "Local/%s@%s-%04x;1", p->exten, p->context, randnum))
+ || !(tmp2 = ast_channel_alloc(1, AST_STATE_RING, 0, 0, t, p->exten, p->context, NULL, NULL, ama, "Local/%s@%s-%04x;2", p->exten, p->context, randnum))) {
if (tmp)
ast_channel_free(tmp);
if (tmp2)
Modified: team/oej/calleridutf8/channels/chan_mgcp.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_mgcp.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_mgcp.c (original)
+++ team/oej/calleridutf8/channels/chan_mgcp.c Sun Nov 25 14:57:12 2007
@@ -1451,7 +1451,7 @@
struct mgcp_endpoint *i = sub->parent;
int fmt;
- tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, i->accountcode, i->exten, i->context, i->amaflags, "MGCP/%s@%s-%d", i->name, i->parent->name, sub->id);
+ tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, NULL, NULL, i->accountcode, i->exten, i->context, i->amaflags, "MGCP/%s@%s-%d", i->name, i->parent->name, sub->id);
if (tmp) {
tmp->tech = &mgcp_tech;
tmp->nativeformats = i->capability;
@@ -2669,6 +2669,7 @@
ast_set_callerid(chan,
p->hidecallerid ? "" : p->cid_num,
p->hidecallerid ? "" : p->cid_name,
+ NULL, NULL,
chan->cid.cid_ani ? NULL : p->cid_num);
ast_setstate(chan, AST_STATE_RING);
/*zt_enable_ec(p);*/
@@ -2723,7 +2724,7 @@
ast_verb(3, "Disabling Caller*ID on %s\n", chan->name);
/* Disable Caller*ID if enabled */
p->hidecallerid = 1;
- ast_set_callerid(chan, "", "", NULL);
+ ast_set_callerid(chan, "", "", NULL, NULL, NULL);
/*res = tone_zone_play_tone(p->subs[index].zfd, ZT_TONE_DIALRECALL);*/
transmit_notify_request(sub, "L/sl");
len = 0;
@@ -2790,7 +2791,7 @@
ast_verb(3, "Enabling Caller*ID on %s\n", chan->name);
/* Enable Caller*ID if enabled */
p->hidecallerid = 0;
- ast_set_callerid(chan, p->cid_num, p->cid_name, NULL);
+ ast_set_callerid(chan, p->cid_num, p->cid_name, NULL, NULL, NULL);
/*res = tone_zone_play_tone(p->subs[index].zfd, ZT_TONE_DIALRECALL);*/
transmit_notify_request(sub, "L/sl");
len = 0;
Modified: team/oej/calleridutf8/channels/chan_misdn.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_misdn.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_misdn.c (original)
+++ team/oej/calleridutf8/channels/chan_misdn.c Sun Nov 25 14:57:12 2007
@@ -2139,7 +2139,7 @@
ast_copy_string(ast->exten, bc->dad, sizeof(ast->exten));
}
- ast_set_callerid(ast, bc->oad, NULL, bc->oad);
+ ast_set_callerid(ast, bc->oad, NULL, NULL, NULL, bc->oad);
if ( !ast_strlen_zero(bc->rad) ) {
if (ast->cid.cid_rdnis)
Modified: team/oej/calleridutf8/channels/chan_nbs.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_nbs.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_nbs.c (original)
+++ team/oej/calleridutf8/channels/chan_nbs.c Sun Nov 25 14:57:12 2007
@@ -222,7 +222,7 @@
static struct ast_channel *nbs_new(struct nbs_pvt *i, int state)
{
struct ast_channel *tmp;
- tmp = ast_channel_alloc(1, state, 0, 0, "", "s", context, 0, "NBS/%s", i->stream);
+ tmp = ast_channel_alloc(1, state, 0, 0, NULL, NULL, "", "s", context, 0, "NBS/%s", i->stream);
if (tmp) {
tmp->tech = &nbs_tech;
ast_channel_set_fd(tmp, 0, nbs_fd(i->nbs));
Modified: team/oej/calleridutf8/channels/chan_oss.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_oss.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_oss.c (original)
+++ team/oej/calleridutf8/channels/chan_oss.c Sun Nov 25 14:57:12 2007
@@ -1043,7 +1043,7 @@
{
struct ast_channel *c;
- c = ast_channel_alloc(1, state, o->cid_num, o->cid_name, "", ext, ctx, 0, "OSS/%s", o->device + 5);
+ c = ast_channel_alloc(1, state, o->cid_num, o->cid_name, "", "", "", ext, ctx, 0, "OSS/%s", o->device + 5);
if (c == NULL)
return NULL;
c->tech = &oss_tech;
Modified: team/oej/calleridutf8/channels/chan_phone.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_phone.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_phone.c (original)
+++ team/oej/calleridutf8/channels/chan_phone.c Sun Nov 25 14:57:12 2007
@@ -845,7 +845,7 @@
{
struct ast_channel *tmp;
struct phone_codec_data codec;
- tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, "", i->ext, i->context, 0, "Phone/%s", i->dev + 5);
+ tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, "", "", "", i->ext, i->context, 0, "Phone/%s", i->dev + 5);
if (tmp) {
tmp->tech = cur_tech;
ast_channel_set_fd(tmp, 0, i->fd);
Modified: team/oej/calleridutf8/channels/chan_sip.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_sip.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_sip.c (original)
+++ team/oej/calleridutf8/channels/chan_sip.c Sun Nov 25 14:57:12 2007
@@ -999,7 +999,7 @@
AST_STRING_FIELD(context); /*!< Context for this call */
AST_STRING_FIELD(subscribecontext); /*!< Subscribecontext */
AST_STRING_FIELD(subscribeuri); /*!< Subscribecontext */
- AST_STRING_FIELD(fromdomain); /*!< Domain to show in the from field */
+ AST_STRING_FIELD(fromdomain); /*!< Domain to show in the from field. Overrides cid_domain */
AST_STRING_FIELD(fromuser); /*!< User to show in the user field */
AST_STRING_FIELD(fromname); /*!< Name to show in the user field */
AST_STRING_FIELD(tohost); /*!< Host we should put in the "to" field */
@@ -1017,7 +1017,9 @@
AST_STRING_FIELD(peersecret); /*!< Password */
AST_STRING_FIELD(peermd5secret);
AST_STRING_FIELD(cid_num); /*!< Caller*ID number */
- AST_STRING_FIELD(cid_name); /*!< Caller*ID name (utf8) */
+ AST_STRING_FIELD(cid_name); /*!< Caller*ID name (ascii) */
+ AST_STRING_FIELD(cid_utf8name); /*!< Caller*ID name (utf8) */
+ AST_STRING_FIELD(cid_domain); /*!< Caller*ID domain (ascii) */
AST_STRING_FIELD(via); /*!< Via: header */
AST_STRING_FIELD(fullcontact); /*!< The Contact: that the UA registers with us */
/* we only store the part in <brackets> in this field. */
@@ -1194,7 +1196,8 @@
char context[AST_MAX_CONTEXT]; /*!< Default context for incoming calls */
char subscribecontext[AST_MAX_CONTEXT]; /* Default context for subscriptions */
char cid_num[80]; /*!< Caller ID num */
- char cid_name[80]; /*!< Caller ID name */
+ char cid_name[80]; /*!< Caller ID name, ascii */
+ char cid_utf8name[80]; /*!< Caller ID name, utf8 */
char accountcode[AST_MAX_ACCOUNT_CODE]; /* Account code */
char language[MAX_LANGUAGE]; /*!< Default language for this user */
char mohinterpret[MAX_MUSICCLASS];/*!< Music on Hold class */
@@ -1254,7 +1257,8 @@
char fromdomain[MAXHOSTNAMELEN]; /*!< From: domain when calling this peer */
char fullcontact[256]; /*!< Contact registered with us (not in sip.conf) */
char cid_num[80]; /*!< Caller ID num */
- char cid_name[80]; /*!< Caller ID name */
+ char cid_name[80]; /*!< Caller ID name, ascii */
+ char cid_utf8name[80]; /*!< Caller ID name, utf8 */
int callingpres; /*!< Calling id presentation */
int inUse; /*!< Number of calls in use */
int inRinging; /*!< Number of calls ringing */
@@ -4532,7 +4536,7 @@
sip_pvt_unlock(i);
/* Don't hold a sip pvt lock while we allocate a channel */
- tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, i->accountcode, i->exten, i->context, i->amaflags, "SIP/%s-%08x", my_name, (int)(long) i);
+ tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, i->cid_utf8name, i->accountcode, i->exten, i->context, i->amaflags, "SIP/%s-%08x", my_name, (int)(long) i);
}
if (!tmp) {
@@ -10391,8 +10395,11 @@
/* XXX here tries to map the username for invite things */
memset(calleridname, 0, sizeof(calleridname));
get_calleridname(from, calleridname, sizeof(calleridname));
- if (calleridname[0])
+ if (calleridname[0]) {
+ /* The first one should be converted from calleridname */
ast_string_field_set(p, cid_name, calleridname);
+ ast_string_field_set(p, cid_utf8name, calleridname);
+ }
rpid = get_header(req, "Remote-Party-ID");
memset(rpid_num, 0, sizeof(rpid_num));
@@ -10401,15 +10408,20 @@
of = get_in_brackets(from);
if (ast_strlen_zero(p->exten)) {
- char *t = uri2;
+ char *semi, *t = uri2;
if (!strncasecmp(t, "sip:", 4))
t+= 4;
ast_string_field_set(p, exten, t);
t = strchr(p->exten, '@'); /* Strip domain */
- if (t)
+ if (t) {
*t = '\0';
- t++;
- /* SKREP: Set caller's domain here to cid_domain */
+ t++;
+ semi = strchr(t, ';'); /* Strip parameters */
+ if (semi)
+ *semi = '\0';
+ /* Set caller's domain here to cid_domain */
+ ast_string_field_set(p, cid_domain, t);
+ }
if (ast_strlen_zero(p->our_contact))
build_contact(p);
}
@@ -14245,8 +14257,8 @@
/* Chan2m: The transferer, chan1m: The transferee */
pthread_t th;
- transferee = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, chan1->accountcode, chan1->exten, chan1->context, chan1->amaflags, "Parking/%s", chan1->name);
- transferer = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, chan2->accountcode, chan2->exten, chan2->context, chan2->amaflags, "SIPPeer/%s", chan2->name);
+ transferee = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, NULL, NULL, chan1->accountcode, chan1->exten, chan1->context, chan1->amaflags, "Parking/%s", chan1->name);
+ transferer = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, NULL, NULL, chan2->accountcode, chan2->exten, chan2->context, chan2->amaflags, "SIPPeer/%s", chan2->name);
if ((!transferer) || (!transferee)) {
if (transferee) {
transferee->hangupcause = AST_CAUSE_SWITCH_CONGESTION;
Modified: team/oej/calleridutf8/channels/chan_skinny.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_skinny.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_skinny.c (original)
+++ team/oej/calleridutf8/channels/chan_skinny.c Sun Nov 25 14:57:12 2007
@@ -3003,6 +3003,7 @@
ast_set_callerid(c,
l->hidecallerid ? "" : l->cid_num,
l->hidecallerid ? "" : l->cid_name,
+ NULL, NULL,
c->cid.cid_ani ? NULL : l->cid_num);
ast_setstate(c, AST_STATE_RING);
res = ast_pbx_run(c);
@@ -3490,7 +3491,7 @@
struct ast_variable *v = NULL;
int fmt;
- tmp = ast_channel_alloc(1, state, l->cid_num, l->cid_name, l->accountcode, l->exten, l->context, l->amaflags, "Skinny/%s@%s-%d", l->name, d->name, callnums);
+ tmp = ast_channel_alloc(1, state, l->cid_num, l->cid_name, NULL, NULL, l->accountcode, l->exten, l->context, l->amaflags, "Skinny/%s@%s-%d", l->name, d->name, callnums);
if (!tmp) {
ast_log(LOG_WARNING, "Unable to allocate channel structure\n");
return NULL;
Modified: team/oej/calleridutf8/channels/chan_unistim.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_unistim.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_unistim.c (original)
+++ team/oej/calleridutf8/channels/chan_unistim.c Sun Nov 25 14:57:12 2007
@@ -4462,7 +4462,7 @@
return NULL;
}
l = sub->parent;
- tmp = ast_channel_alloc(1, state, l->cid_num, NULL, l->accountcode, l->exten,
+ tmp = ast_channel_alloc(1, state, l->cid_num, NULL, NULL, NULL, l->accountcode, l->exten,
l->context, l->amaflags, "%s-%08x", l->fullname, (int) (long) sub);
if (unistimdebug)
ast_verbose("unistim_new sub=%d (%p) chan=%p\n", sub->subtype, sub, tmp);
Modified: team/oej/calleridutf8/channels/chan_usbradio.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_usbradio.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_usbradio.c (original)
+++ team/oej/calleridutf8/channels/chan_usbradio.c Sun Nov 25 14:57:12 2007
@@ -1535,7 +1535,7 @@
strcpy(device,"dsp");
if (o->devicenum) sprintf(device,"dsp%d",o->devicenum);
- c = ast_channel_alloc(1, state, o->cid_num, o->cid_name, "", ext, ctx, 0, "usbRadio/%s", device);
+ c = ast_channel_alloc(1, state, o->cid_num, o->cid_name, NULL, NULL, "", ext, ctx, 0, "usbRadio/%s", device);
if (c == NULL)
return NULL;
c->tech = &usbradio_tech;
Modified: team/oej/calleridutf8/channels/chan_zap.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/channels/chan_zap.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/channels/chan_zap.c (original)
+++ team/oej/calleridutf8/channels/chan_zap.c Sun Nov 25 14:57:12 2007
@@ -5137,6 +5137,7 @@
if (p->subs[index].needcallerid) {
ast_set_callerid(ast, S_OR(p->lastcid_num, NULL),
S_OR(p->lastcid_name, NULL),
+ NULL, NULL,
S_OR(p->lastcid_num, NULL)
);
p->subs[index].needcallerid = 0;
@@ -5676,7 +5677,7 @@
}
y++;
} while (x < 3);
- tmp = ast_channel_alloc(0, state, i->cid_num, i->cid_name, i->accountcode, i->exten, i->context, i->amaflags, "Zap/%s", chan_name->str);
+ tmp = ast_channel_alloc(0, state, i->cid_num, i->cid_name, NULL, NULL, i->accountcode, i->exten, i->context, i->amaflags, "Zap/%s", chan_name->str);
if (!tmp)
return NULL;
tmp->tech = &zap_tech;
Modified: team/oej/calleridutf8/funcs/func_callerid.c
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/funcs/func_callerid.c?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/funcs/func_callerid.c (original)
+++ team/oej/calleridutf8/funcs/func_callerid.c Sun Nov 25 14:57:12 2007
@@ -125,17 +125,22 @@
char num[256];
if (!ast_callerid_split(value, name, sizeof(name), num, sizeof(num)))
- ast_set_callerid(chan, num, name, num);
+ ast_set_callerid(chan, num, name, NULL, NULL, num);
} else if (!strncasecmp("name", data, 4)) {
- ast_set_callerid(chan, NULL, value, NULL);
+ ast_set_callerid(chan, NULL, value, NULL, NULL, NULL);
} else if (!strncasecmp("num", data, 3)) {
- ast_set_callerid(chan, value, NULL, NULL);
+ ast_set_callerid(chan, value, NULL, NULL, NULL, NULL);
} else if (!strncasecmp("ani", data, 3)) {
if (!strncasecmp(data + 3, "2", 1)) {
int i = atoi(value);
chan->cid.cid_ani2 = i;
} else
- ast_set_callerid(chan, NULL, NULL, value);
+ ast_set_callerid(chan, NULL, NULL, NULL, NULL, value);
+ } else if (!strncasecmp("domain", data, 6)) {
+ /* do we need to lock chan here? */
+ if (chan->cid.cid_domain)
+ ast_free(chan->cid.cid_domain);
+ chan->cid.cid_domain = ast_strdup(value);
} else if (!strncasecmp("dnid", data, 4)) {
/* do we need to lock chan here? */
if (chan->cid.cid_dnid)
Modified: team/oej/calleridutf8/include/asterisk/channel.h
URL: http://svn.digium.com/view/asterisk/team/oej/calleridutf8/include/asterisk/channel.h?view=diff&rev=89565&r1=89564&r2=89565
==============================================================================
--- team/oej/calleridutf8/include/asterisk/channel.h (original)
+++ team/oej/calleridutf8/include/asterisk/channel.h Sun Nov 25 14:57:12 2007
@@ -223,7 +223,7 @@
char *cid_name; /*!< Malloc'd Caller Name (ASCII) */
char *cid_ani; /*!< Malloc'd ANI */
char *cid_rdnis; /*!< Malloc'd RDNIS */
- char *cid_utf8; /*!< Malloc'd Caller ID name in utf8 */
+ char *cid_utf8name; /*!< Malloc'd Caller ID name in utf8 */
char *cid_domain; /*!< Malloc'd Caller ID domain (ascii. IDN supported) */
char *cid_e164; /*!< Malloc'd Alternative Caller ID E.164 (alternative to SIP/IAX2 utf8 uri, RPID) */
int cid_pres; /*!< Callerid presentation/screening */
@@ -589,6 +589,8 @@
int priority;
const char *cid_num;
const char *cid_name;
+ const char *cid_utf8name;
+ const char *cid_domain;
const char *account;
struct ast_variable *vars;
struct ast_channel *parent_channel;
@@ -655,7 +657,7 @@
by default set to the "default" context and
extension "s"
*/
-struct ast_channel *ast_channel_alloc(int needqueue, int state, const char *cid_num, const char *cid_name, const char *acctcode, const char *exten, const char *context, const int amaflag, const char *name_fmt, ...);
+struct ast_channel *ast_channel_alloc(int needqueue, int state, const char *cid_num, const char *cid_name, const char *cid_utf8name, const char *cid_domain, const char *acctcode, const char *exten, const char *context, const int amaflag, const char *name_fmt, ...);
/*! \brief Queue an outgoing frame */
int ast_queue_frame(struct ast_channel *chan, struct ast_frame *f);
@@ -719,15 +721,17 @@
* \param timeout maximum amount of time to wait for an answer
* \param reason why unsuccessful (if unsuccessful)
* \param cidnum Caller-ID Number
- * \param cidname Caller-ID Name
+ * \param cidname Caller-ID Name (ascii)
+ * \param cid_utf8name Caller-ID Name (utf8)
+ * \param cid_domain Caller-ID domain
* \return Returns an ast_channel on success or no answer, NULL on failure. Check the value of chan->_state
* to know if the call was answered or not.
*/
struct ast_channel *ast_request_and_dial(const char *type, int format, void *data,
- int timeout, int *reason, const char *cidnum, const char *cidname);
+ int timeout, int *reason, const char *cid_num, const char *cid_name, const char *cid_utf8name, const char *cid_domain);
struct ast_channel *__ast_request_and_dial(const char *type, int format, void *data,
- int timeout, int *reason, const char *cidnum, const char *cidname, struct outgoing_helper *oh);
+ int timeout, int *reason, const char *cidnum, const char *cid_name, const char *cid_utf8name, const char *cid_domain, struct outgoing_helper *oh);
/*!\brief Register a channel technology (a new channel driver)
* Called by a channel module to register the kind of channels it supports.
@@ -1206,7 +1210,8 @@
/*! Deactivate an active generator */
void ast_deactivate_generator(struct ast_channel *chan);
-void ast_set_callerid(struct ast_channel *chan, const char *cidnum, const char *cidname, const char *ani);
+/*! Set caller ID data */
[... 379 lines stripped ...]
More information about the asterisk-commits
mailing list