aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-04-10 05:41:34 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-04-10 05:41:34 +0000
commit0b504720373aee466c5a08931fbf8210deaea9c0 (patch)
tree9a564f15ac25870f7fe98c097760dd5729177206 /channels
parent9cb664196b665847c05a4e915e6fdfb9a9ca8aac (diff)
Merged revisions 60989 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r60989 | murf | 2007-04-09 12:32:07 -0600 (Mon, 09 Apr 2007) | 1 line This is a big improvement over the current CDR fixes. It may still need refinement, but this won't have as many folks bothered. This also adds the mods from 1.4/r.61136; ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@61152 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_agent.c4
-rw-r--r--channels/chan_alsa.c2
-rw-r--r--channels/chan_features.c2
-rw-r--r--channels/chan_gtalk.c2
-rw-r--r--channels/chan_h323.c2
-rw-r--r--channels/chan_iax2.c6
-rw-r--r--channels/chan_local.c4
-rw-r--r--channels/chan_mgcp.c2
-rw-r--r--channels/chan_misdn.c2
-rw-r--r--channels/chan_nbs.c2
-rw-r--r--channels/chan_oss.c6
-rw-r--r--channels/chan_phone.c2
-rw-r--r--channels/chan_sip.c9
-rw-r--r--channels/chan_skinny.c2
-rw-r--r--channels/chan_vpb.cc2
-rw-r--r--channels/chan_zap.c2
16 files changed, 23 insertions, 28 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 26f8ca546..50b3666d9 100644
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -918,9 +918,9 @@ static struct ast_channel *agent_new(struct agent_pvt *p, int state)
}
#endif
if (p->pending)
- tmp = ast_channel_alloc(0, state, 0, 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, "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;
diff --git a/channels/chan_alsa.c b/channels/chan_alsa.c
index 2be93ef9f..aa444c5db 100644
--- a/channels/chan_alsa.c
+++ b/channels/chan_alsa.c
@@ -790,7 +790,7 @@ static struct ast_channel *alsa_new(struct chan_alsa_pvt *p, int state)
{
struct ast_channel *tmp = NULL;
- if (!(tmp = ast_channel_alloc(1, state, 0, 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;
diff --git a/channels/chan_features.c b/channels/chan_features.c
index 2fb720780..09792700c 100644
--- a/channels/chan_features.c
+++ b/channels/chan_features.c
@@ -472,7 +472,7 @@ static struct ast_channel *features_new(struct feature_pvt *p, int state, int in
if (y >= 3)
break;
}
- tmp = ast_channel_alloc(0, state, 0,0, b2);
+ tmp = ast_channel_alloc(0, state, 0,0, "", "", "", 0, b2);
/* free up the name, it was copied into the channel name */
if (b2)
free(b2);
diff --git a/channels/chan_gtalk.c b/channels/chan_gtalk.c
index bab6f9217..8c4a27bdb 100644
--- a/channels/chan_gtalk.c
+++ b/channels/chan_gtalk.c
@@ -904,7 +904,7 @@ static struct ast_channel *gtalk_new(struct gtalk *client, struct gtalk_pvt *i,
n2 = title;
else
n2 = i->us;
- tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, "Gtalk/%s-%04lx", n2, ast_random() & 0xffff);
+ 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);
if (!tmp) {
ast_log(LOG_WARNING, "Unable to allocate Gtalk channel structure!\n");
return NULL;
diff --git a/channels/chan_h323.c b/channels/chan_h323.c
index 6ab4ab5e1..70725aca7 100644
--- a/channels/chan_h323.c
+++ b/channels/chan_h323.c
@@ -1024,7 +1024,7 @@ static struct ast_channel *__oh323_new(struct oh323_pvt *pvt, int state, const c
/* 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, "H323/%s", host);
+ ch = ast_channel_alloc(1, state, cid_num, cid_name, 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);
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 2fa322f42..88e1ae58a 100644
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -3377,7 +3377,7 @@ static struct ast_channel *ast_iax2_new(int callno, int state, int capability)
/* Don't hold call lock */
ast_mutex_unlock(&iaxsl[callno]);
- tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, "IAX2/%s-%d", i->host, i->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);
ast_mutex_lock(&iaxsl[callno]);
if (!tmp)
return NULL;
@@ -6220,8 +6220,8 @@ static int iax_park(struct ast_channel *chan1, struct ast_channel *chan2)
struct iax_dual *d;
struct ast_channel *chan1m, *chan2m;
pthread_t th;
- chan1m = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "Parking/%s", chan1->name);
- chan2m = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "IAXPeer/%s",chan2->name);
+ 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);
if (chan2m && chan1m) {
/* Make formats okay */
chan1m->readformat = chan1->readformat;
diff --git a/channels/chan_local.c b/channels/chan_local.c
index 265d685c8..15a38a693 100644
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -584,8 +584,8 @@ static struct ast_channel *local_new(struct local_pvt *p, int state)
int randnum = ast_random() & 0xffff, fmt = 0;
/* Allocate two new Asterisk channels */
- if (!(tmp = ast_channel_alloc(1, state, 0, 0, "Local/%s@%s-%04x,1", p->exten, p->context, randnum))
- || !(tmp2 = ast_channel_alloc(1, AST_STATE_RING, 0, 0, "Local/%s@%s-%04x,2", p->exten, p->context, randnum))) {
+ if (!(tmp = ast_channel_alloc(1, state, 0, 0, "", p->exten, p->context, 0, "Local/%s@%s-%04x,1", p->exten, p->context, randnum))
+ || !(tmp2 = ast_channel_alloc(1, AST_STATE_RING, 0, 0, "", p->exten, p->context, 0, "Local/%s@%s-%04x,2", p->exten, p->context, randnum))) {
if (tmp)
ast_channel_free(tmp);
if (tmp2)
diff --git a/channels/chan_mgcp.c b/channels/chan_mgcp.c
index acabdc7e4..27ca2688c 100644
--- a/channels/chan_mgcp.c
+++ b/channels/chan_mgcp.c
@@ -1433,7 +1433,7 @@ static struct ast_channel *mgcp_new(struct mgcp_subchannel *sub, int state)
struct mgcp_endpoint *i = sub->parent;
int fmt;
- tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, "MGCP/%s@%s-%d", i->name, i->parent->name, sub->id);
+ 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);
if (tmp) {
tmp->tech = &mgcp_tech;
tmp->nativeformats = i->capability;
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index fa13d0383..37aec6261 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -3167,7 +3167,7 @@ static struct ast_channel *misdn_new(struct chan_list *chlist, int state, char
if (callerid)
ast_callerid_parse(callerid, &cid_name, &cid_num);
- tmp = ast_channel_alloc(1, state, cid_num, cid_name, "%s/%d-u%d", misdn_type, chan_offset + c, glob_channel++);
+ tmp = ast_channel_alloc(1, state, cid_num, cid_name, "", exten, "", 0, "%s/%d-u%d", misdn_type, chan_offset + c, glob_channel++);
if (tmp) {
chan_misdn_log(2, 0, " --> * NEW CHANNEL dad:%s oad:%s\n",exten,callerid);
diff --git a/channels/chan_nbs.c b/channels/chan_nbs.c
index 0e9a32950..2cb912e54 100644
--- a/channels/chan_nbs.c
+++ b/channels/chan_nbs.c
@@ -233,7 +233,7 @@ static int nbs_xwrite(struct ast_channel *ast, struct ast_frame *frame)
static struct ast_channel *nbs_new(struct nbs_pvt *i, int state)
{
struct ast_channel *tmp;
- tmp = ast_channel_alloc(1, state, 0, 0, "NBS/%s", i->stream);
+ tmp = ast_channel_alloc(1, state, 0, 0, "", "s", context, 0, "NBS/%s", i->stream);
if (tmp) {
tmp->tech = &nbs_tech;
tmp->fds[0] = nbs_fd(i->nbs);
diff --git a/channels/chan_oss.c b/channels/chan_oss.c
index d6757a636..d7344961d 100644
--- a/channels/chan_oss.c
+++ b/channels/chan_oss.c
@@ -1021,7 +1021,7 @@ static struct ast_channel *oss_new(struct chan_oss_pvt *o, char *ext, char *ctx,
{
struct ast_channel *c;
- c = ast_channel_alloc(1, state, o->cid_num, o->cid_name, "OSS/%s", o->device + 5);
+ c = ast_channel_alloc(1, state, o->cid_num, o->cid_name, "", o->ext, o->ctx, 0, "OSS/%s", o->device + 5);
if (c == NULL)
return NULL;
c->tech = &oss_tech;
@@ -1033,10 +1033,6 @@ static struct ast_channel *oss_new(struct chan_oss_pvt *o, char *ext, char *ctx,
c->writeformat = AST_FORMAT_SLINEAR;
c->tech_pvt = o;
- if (!ast_strlen_zero(ctx))
- ast_copy_string(c->context, ctx, sizeof(c->context));
- if (!ast_strlen_zero(ext))
- ast_copy_string(c->exten, ext, sizeof(c->exten));
if (!ast_strlen_zero(o->language))
ast_string_field_set(c, language, o->language);
/* Don't use ast_set_callerid() here because it will
diff --git a/channels/chan_phone.c b/channels/chan_phone.c
index 8312fabf0..76311fc56 100644
--- a/channels/chan_phone.c
+++ b/channels/chan_phone.c
@@ -865,7 +865,7 @@ static struct ast_channel *phone_new(struct phone_pvt *i, int state, char *conte
{
struct ast_channel *tmp;
struct phone_codec_data codec;
- tmp = ast_channel_alloc(1, state, i->cid_num, i->cid_name, "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;
tmp->fds[0] = i->fd;
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 5c3cac5f5..dd363276e 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4091,8 +4091,7 @@ static struct ast_channel *sip_new(struct sip_pvt *i, int state, const char *tit
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, "SIP/%s-%08x", my_name, (int)(long) i);
+ 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);
}
if (!tmp) {
@@ -4207,6 +4206,7 @@ static struct ast_channel *sip_new(struct sip_pvt *i, int state, const char *tit
ast_copy_string(tmp->context, i->context, sizeof(tmp->context));
ast_copy_string(tmp->exten, i->exten, sizeof(tmp->exten));
+
/* Don't use ast_set_callerid() here because it will
* generate an unnecessary NewCallerID event */
tmp->cid.cid_num = ast_strdup(i->cid_num);
@@ -13302,8 +13302,8 @@ static int sip_park(struct ast_channel *chan1, struct ast_channel *chan2, struct
/* Chan2m: The transferer, chan1m: The transferee */
pthread_t th;
- transferee = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "Parking/%s", chan1->name);
- transferer = ast_channel_alloc(0, AST_STATE_DOWN, 0, 0, "SIPPeer/%s", chan2->name);
+ 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);
if ((!transferer) || (!transferee)) {
if (transferee) {
transferee->hangupcause = AST_CAUSE_SWITCH_CONGESTION;
@@ -14116,7 +14116,6 @@ static int handle_request_invite(struct sip_pvt *p, struct sip_request *req, int
/* Initialize our tag */
make_our_tag(p->tag, sizeof(p->tag));
-
/* First invitation - create the channel */
c = sip_new(p, AST_STATE_DOWN, S_OR(p->username, NULL));
*recount = 1;
diff --git a/channels/chan_skinny.c b/channels/chan_skinny.c
index 8d88f8583..f06db4d58 100644
--- a/channels/chan_skinny.c
+++ b/channels/chan_skinny.c
@@ -2810,7 +2810,7 @@ static struct ast_channel *skinny_new(struct skinny_line *l, int state)
struct skinny_device *d = l->parent;
int fmt;
- tmp = ast_channel_alloc(1, state, l->cid_num, l->cid_name, "Skinny/%s@%s-%d", l->name, d->name, callnums);
+ 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);
if (!tmp) {
ast_log(LOG_WARNING, "Unable to allocate channel structure\n");
return NULL;
diff --git a/channels/chan_vpb.cc b/channels/chan_vpb.cc
index e85500b93..ddee75d99 100644
--- a/channels/chan_vpb.cc
+++ b/channels/chan_vpb.cc
@@ -2626,7 +2626,7 @@ static struct ast_channel *vpb_new(struct vpb_pvt *me, enum ast_channel_state st
if (option_verbose > 3)
ast_verbose("%s: New call for context [%s]\n",me->dev,context);
- tmp = ast_channel_alloc(1, state, 0, 0, me->dev);
+ tmp = ast_channel_alloc(1, state, 0, 0, "", me->exten, me->context, 0, me->dev);
if (tmp) {
if (use_ast_ind == 1){
tmp->tech = &vpb_tech_indicate;
diff --git a/channels/chan_zap.c b/channels/chan_zap.c
index 6479311e7..0aa37a8b8 100644
--- a/channels/chan_zap.c
+++ b/channels/chan_zap.c
@@ -5520,7 +5520,7 @@ static struct ast_channel *zt_new(struct zt_pvt *i, int state, int startpbx, int
}
y++;
} while (x < 3);
- tmp = ast_channel_alloc(0, state, 0, 0, b2);
+ tmp = ast_channel_alloc(0, state, 0, 0, i->accountcode, i->exten, i->context, i->amaflags, b2);
if (b2) /*!> b2 can be freed now, it's been copied into the channel structure */
free(b2);
if (!tmp)