summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorTerry Wilson <twilson@digium.com>2012-03-13 18:20:34 +0000
committerTerry Wilson <twilson@digium.com>2012-03-13 18:20:34 +0000
commit786f5898d12d30c481b1d178bb80e5801dbf666f (patch)
tree2b5e07ed1b5fbd7aae1187f068eff498621878a2 /channels
parent73ec67e008ca6db76625bfc1f992fa726c948837 (diff)
Finalize ast_channel opaquification
Review: https://reviewboard.asterisk.org/r/1786/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@358907 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_agent.c18
-rw-r--r--channels/chan_bridge.c4
-rw-r--r--channels/chan_dahdi.c8
-rw-r--r--channels/chan_local.c38
-rw-r--r--channels/chan_phone.c2
-rw-r--r--channels/chan_sip.c10
-rw-r--r--channels/chan_unistim.c10
-rw-r--r--channels/chan_vpb.cc4
-rw-r--r--channels/sig_analog.c4
9 files changed, 49 insertions, 49 deletions
diff --git a/channels/chan_agent.c b/channels/chan_agent.c
index 836154092..0c79a66de 100644
--- a/channels/chan_agent.c
+++ b/channels/chan_agent.c
@@ -601,7 +601,7 @@ static struct ast_frame *agent_read(struct ast_channel *ast)
p->start = cur_time;
}
if (p->chan) {
- ast_copy_flags(p->chan, ast, AST_FLAG_EXCEPTION);
+ ast_copy_flags(ast_channel_flags(p->chan), ast_channel_flags(ast), AST_FLAG_EXCEPTION);
ast_channel_fdno_set(p->chan, (ast_channel_fdno(ast) == AST_AGENT_FD) ? AST_TIMING_FD : ast_channel_fdno(ast));
f = ast_read(p->chan);
} else
@@ -609,7 +609,7 @@ static struct ast_frame *agent_read(struct ast_channel *ast)
if (!f) {
/* If there's a channel, make it NULL */
if (p->chan) {
- p->chan->_bridge = NULL;
+ ast_channel_internal_bridged_channel_set(p->chan, NULL);
p->chan = NULL;
ast_devstate_changed(AST_DEVICE_UNAVAILABLE, "Agent/%s", p->agent);
p->acknowledged = 0;
@@ -697,11 +697,11 @@ static struct ast_frame *agent_read(struct ast_channel *ast)
}
CLEANUP(ast,p);
- if (p->chan && !p->chan->_bridge) {
+ if (p->chan && !ast_channel_internal_bridged_channel(p->chan)) {
if (strcasecmp(ast_channel_tech(p->chan)->type, "Local")) {
- p->chan->_bridge = ast;
+ ast_channel_internal_bridged_channel_set(p->chan, ast);
if (p->chan)
- ast_debug(1, "Bridge on '%s' being set to '%s' (3)\n", ast_channel_name(p->chan), ast_channel_name(p->chan->_bridge));
+ ast_debug(1, "Bridge on '%s' being set to '%s' (3)\n", ast_channel_name(p->chan), ast_channel_name(ast_channel_internal_bridged_channel(p->chan)));
}
}
ast_mutex_unlock(&p->lock);
@@ -964,7 +964,7 @@ static int agent_hangup(struct ast_channel *ast)
} else
p->start = 0;
if (p->chan) {
- p->chan->_bridge = NULL;
+ ast_channel_internal_bridged_channel_set(p->chan, NULL);
/* If they're dead, go ahead and hang up on the agent now */
if (p->dead) {
ast_channel_lock(p->chan);
@@ -1083,8 +1083,8 @@ static struct ast_channel *agent_bridgedchannel(struct ast_channel *chan, struct
if (p) {
if (chan == p->chan)
- ret = bridge->_bridge;
- else if (chan == bridge->_bridge)
+ ret = ast_channel_internal_bridged_channel(bridge);
+ else if (chan == ast_channel_internal_bridged_channel(bridge))
ret = p->chan;
}
@@ -1586,7 +1586,7 @@ static int action_agents(struct mansession *s, const struct message *m)
if (p->chan) {
loginChan = ast_strdupa(ast_channel_name(p->chan));
- if (owner && owner->_bridge) {
+ if (owner && ast_channel_internal_bridged_channel(owner)) {
talkingto = S_COR(ast_channel_caller(p->chan)->id.number.valid,
ast_channel_caller(p->chan)->id.number.str, "n/a");
if ((bridge = ast_bridged_channel(owner))) {
diff --git a/channels/chan_bridge.c b/channels/chan_bridge.c
index 3ec157601..1670cba65 100644
--- a/channels/chan_bridge.c
+++ b/channels/chan_bridge.c
@@ -121,12 +121,12 @@ static int bridge_call(struct ast_channel *ast, const char *dest, int timeout)
struct bridge_pvt *p = ast_channel_tech_pvt(ast);
/* If no bridge has been provided on the input channel, bail out */
- if (!ast->bridge) {
+ if (!ast_channel_internal_bridge(ast)) {
return -1;
}
/* Impart the output channel upon the given bridge of the input channel */
- ast_bridge_impart(p->input->bridge, p->output, NULL, NULL, 0);
+ ast_bridge_impart(ast_channel_internal_bridge(p->input), p->output, NULL, NULL, 0);
return 0;
}
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 6751d0d0c..5dad53910 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -7741,7 +7741,7 @@ static int attempt_transfer(struct dahdi_pvt *p)
} else {
ast_debug(1, "Neither %s nor %s are in a bridge, nothing to transfer\n",
ast_channel_name(p->subs[SUB_REAL].owner), ast_channel_name(p->subs[SUB_THREEWAY].owner));
- ast_channel_softhangup_internal_flag_set(p->subs[SUB_THREEWAY].owner, ast_channel_softhangup_internal_flag(p->subs[SUB_THREEWAY].owner) | AST_SOFTHANGUP_DEV);
+ ast_channel_softhangup_internal_flag_add(p->subs[SUB_THREEWAY].owner, AST_SOFTHANGUP_DEV);
return -1;
}
return 0;
@@ -9150,7 +9150,7 @@ static struct ast_frame *dahdi_read(struct ast_channel *ast)
readbuf = ((unsigned char *)p->subs[idx].buffer) + AST_FRIENDLY_OFFSET;
CHECK_BLOCKING(ast);
res = read(p->subs[idx].dfd, readbuf, p->subs[idx].linear ? READ_SIZE * 2 : READ_SIZE);
- ast_clear_flag(ast, AST_FLAG_BLOCKING);
+ ast_clear_flag(ast_channel_flags(ast), AST_FLAG_BLOCKING);
/* Check for hangup */
if (res < 0) {
f = NULL;
@@ -10549,7 +10549,7 @@ static void *analog_ss_thread(void *data)
* emulation. The DTMF digits can come so fast that emulation
* can drop some of them.
*/
- ast_set_flag(chan, AST_FLAG_END_DTMF_ONLY);
+ ast_set_flag(ast_channel_flags(chan), AST_FLAG_END_DTMF_ONLY);
res = 4000;/* This is a typical OFF time between rings. */
for (;;) {
struct ast_frame *f;
@@ -10580,7 +10580,7 @@ static void *analog_ss_thread(void *data)
ast_channel_state(chan) == AST_STATE_RINGING)
break; /* Got ring */
}
- ast_clear_flag(chan, AST_FLAG_END_DTMF_ONLY);
+ ast_clear_flag(ast_channel_flags(chan), AST_FLAG_END_DTMF_ONLY);
dtmfbuf[k] = '\0';
dahdi_setlinear(p->subs[idx].dfd, p->subs[idx].linear);
/* Got cid and ring. */
diff --git a/channels/chan_local.c b/channels/chan_local.c
index c6780d223..c0657c97b 100644
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -339,8 +339,8 @@ static struct ast_channel *local_bridgedchannel(struct ast_channel *chan, struct
/* Now see if the opposite channel is bridged to anything */
if (!bridged) {
bridged = bridge;
- } else if (bridged->_bridge) {
- bridged = bridged->_bridge;
+ } else if (ast_channel_internal_bridged_channel(bridged)) {
+ bridged = ast_channel_internal_bridged_channel(bridged);
}
}
@@ -502,7 +502,7 @@ static void check_bridge(struct local_pvt *p)
/* since we had to unlock p to get the bridged chan, validate our
* data once again and verify the bridged channel is what we expect
* it to be in order to perform this optimization */
- if (ast_test_flag(p, LOCAL_ALREADY_MASQED) || !p->owner || !p->chan || (p->chan->_bridge != bridged_chan)) {
+ if (ast_test_flag(p, LOCAL_ALREADY_MASQED) || !p->owner || !p->chan || (ast_channel_internal_bridged_channel(p->chan) != bridged_chan)) {
return;
}
@@ -511,24 +511,24 @@ static void check_bridge(struct local_pvt *p)
frames on the owner channel (because they would be transferred to the
outbound channel during the masquerade)
*/
- if (p->chan->_bridge /* Not ast_bridged_channel! Only go one step! */ && AST_LIST_EMPTY(ast_channel_readq(p->owner))) {
+ if (ast_channel_internal_bridged_channel(p->chan) /* Not ast_bridged_channel! Only go one step! */ && AST_LIST_EMPTY(ast_channel_readq(p->owner))) {
/* Masquerade bridged channel into owner */
/* Lock everything we need, one by one, and give up if
we can't get everything. Remember, we'll get another
chance in just a little bit */
- if (!ast_channel_trylock(p->chan->_bridge)) {
- if (!ast_check_hangup(p->chan->_bridge)) {
+ if (!ast_channel_trylock(ast_channel_internal_bridged_channel(p->chan))) {
+ if (!ast_check_hangup(ast_channel_internal_bridged_channel(p->chan))) {
if (!ast_channel_trylock(p->owner)) {
if (!ast_check_hangup(p->owner)) {
- if (ast_channel_monitor(p->owner) && !ast_channel_monitor(p->chan->_bridge)) {
+ if (ast_channel_monitor(p->owner) && !ast_channel_monitor(ast_channel_internal_bridged_channel(p->chan))) {
/* If a local channel is being monitored, we don't want a masquerade
* to cause the monitor to go away. Since the masquerade swaps the monitors,
* pre-swapping the monitors before the masquerade will ensure that the monitor
* ends up where it is expected.
*/
tmp = ast_channel_monitor(p->owner);
- ast_channel_monitor_set(p->owner, ast_channel_monitor(p->chan->_bridge));
- ast_channel_monitor_set(p->chan->_bridge, tmp);
+ ast_channel_monitor_set(p->owner, ast_channel_monitor(ast_channel_internal_bridged_channel(p->chan)));
+ ast_channel_monitor_set(ast_channel_internal_bridged_channel(p->chan), tmp);
}
if (ast_channel_audiohooks(p->chan)) {
struct ast_audiohook_list *audiohooks_swapper;
@@ -547,26 +547,26 @@ static void check_bridge(struct local_pvt *p)
if (ast_channel_caller(p->owner)->id.name.valid || ast_channel_caller(p->owner)->id.number.valid
|| ast_channel_caller(p->owner)->id.subaddress.valid || ast_channel_caller(p->owner)->ani.name.valid
|| ast_channel_caller(p->owner)->ani.number.valid || ast_channel_caller(p->owner)->ani.subaddress.valid) {
- SWAP(*ast_channel_caller(p->owner), *ast_channel_caller(p->chan->_bridge));
+ SWAP(*ast_channel_caller(p->owner), *ast_channel_caller(ast_channel_internal_bridged_channel(p->chan)));
}
if (ast_channel_redirecting(p->owner)->from.name.valid || ast_channel_redirecting(p->owner)->from.number.valid
|| ast_channel_redirecting(p->owner)->from.subaddress.valid || ast_channel_redirecting(p->owner)->to.name.valid
|| ast_channel_redirecting(p->owner)->to.number.valid || ast_channel_redirecting(p->owner)->to.subaddress.valid) {
- SWAP(*ast_channel_redirecting(p->owner), *ast_channel_redirecting(p->chan->_bridge));
+ SWAP(*ast_channel_redirecting(p->owner), *ast_channel_redirecting(ast_channel_internal_bridged_channel(p->chan)));
}
if (ast_channel_dialed(p->owner)->number.str || ast_channel_dialed(p->owner)->subaddress.valid) {
- SWAP(*ast_channel_dialed(p->owner), *ast_channel_dialed(p->chan->_bridge));
+ SWAP(*ast_channel_dialed(p->owner), *ast_channel_dialed(ast_channel_internal_bridged_channel(p->chan)));
}
ast_app_group_update(p->chan, p->owner);
- ast_channel_masquerade(p->owner, p->chan->_bridge);
+ ast_channel_masquerade(p->owner, ast_channel_internal_bridged_channel(p->chan));
ast_set_flag(p, LOCAL_ALREADY_MASQED);
}
ast_channel_unlock(p->owner);
}
}
- ast_channel_unlock(p->chan->_bridge);
+ ast_channel_unlock(ast_channel_internal_bridged_channel(p->chan));
}
}
}
@@ -629,7 +629,7 @@ static int local_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
}
/* Do not let a masquerade cause a Local channel to be bridged to itself! */
- if (!ast_check_hangup(newchan) && ((p->owner && p->owner->_bridge == p->chan) || (p->chan && p->chan->_bridge == p->owner))) {
+ if (!ast_check_hangup(newchan) && ((p->owner && ast_channel_internal_bridged_channel(p->owner) == p->chan) || (p->chan && ast_channel_internal_bridged_channel(p->chan) == p->owner))) {
ast_log(LOG_WARNING, "You can not bridge a Local channel to itself!\n");
ao2_unlock(p);
ast_queue_hangup(newchan);
@@ -859,8 +859,8 @@ static int local_call(struct ast_channel *ast, const char *dest, int timeout)
ast_channel_cc_params_init(chan, ast_channel_get_cc_config_params(owner));
/* Make sure we inherit the ANSWERED_ELSEWHERE flag if it's set on the queue/dial call request in the dialplan */
- if (ast_test_flag(ast, AST_FLAG_ANSWERED_ELSEWHERE)) {
- ast_set_flag(chan, AST_FLAG_ANSWERED_ELSEWHERE);
+ if (ast_test_flag(ast_channel_flags(ast), AST_FLAG_ANSWERED_ELSEWHERE)) {
+ ast_set_flag(ast_channel_flags(chan), AST_FLAG_ANSWERED_ELSEWHERE);
}
/* copy the channel variables from the incoming channel to the outgoing channel */
@@ -980,8 +980,8 @@ static int local_hangup(struct ast_channel *ast)
isoutbound = IS_OUTBOUND(ast, p); /* just comparing pointer of ast */
- if (p->chan && ast_test_flag(ast, AST_FLAG_ANSWERED_ELSEWHERE)) {
- ast_set_flag(p->chan, AST_FLAG_ANSWERED_ELSEWHERE);
+ if (p->chan && ast_test_flag(ast_channel_flags(ast), AST_FLAG_ANSWERED_ELSEWHERE)) {
+ ast_set_flag(ast_channel_flags(p->chan), AST_FLAG_ANSWERED_ELSEWHERE);
ast_debug(2, "This local call has the ANSWERED_ELSEWHERE flag set.\n");
}
diff --git a/channels/chan_phone.c b/channels/chan_phone.c
index f7e7c335e..a781b232a 100644
--- a/channels/chan_phone.c
+++ b/channels/chan_phone.c
@@ -563,7 +563,7 @@ static struct ast_frame *phone_read(struct ast_channel *ast)
/* Try to read some data... */
CHECK_BLOCKING(ast);
res = read(p->fd, p->buf, PHONE_MAX_BUF);
- ast_clear_flag(ast, AST_FLAG_BLOCKING);
+ ast_clear_flag(ast_channel_flags(ast), AST_FLAG_BLOCKING);
if (res < 0) {
#if 0
if (errno == EAGAIN) {
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index b955566a8..3aa2bf262 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -6328,7 +6328,7 @@ static int sip_hangup(struct ast_channel *ast)
ast_debug(1, "Asked to hangup channel that was not connected\n");
return 0;
}
- if (ast_test_flag(ast, AST_FLAG_ANSWERED_ELSEWHERE) || ast_channel_hangupcause(ast) == AST_CAUSE_ANSWERED_ELSEWHERE) {
+ if (ast_test_flag(ast_channel_flags(ast), AST_FLAG_ANSWERED_ELSEWHERE) || ast_channel_hangupcause(ast) == AST_CAUSE_ANSWERED_ELSEWHERE) {
ast_debug(1, "This call was answered elsewhere");
if (ast_channel_hangupcause(ast) == AST_CAUSE_ANSWERED_ELSEWHERE) {
ast_debug(1, "####### It's the cause code, buddy. The cause code!!!\n");
@@ -6358,7 +6358,7 @@ static int sip_hangup(struct ast_channel *ast)
return 0;
}
- if (ast_test_flag(ast, AST_FLAG_ZOMBIE)) {
+ if (ast_test_flag(ast_channel_flags(ast), AST_FLAG_ZOMBIE)) {
if (p->refer)
ast_debug(1, "SIP Transfer: Hanging up Zombie channel %s after transfer ... Call-ID: %s\n", ast_channel_name(ast), p->callid);
else
@@ -6690,9 +6690,9 @@ static int sip_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
int ret = -1;
struct sip_pvt *p;
- if (newchan && ast_test_flag(newchan, AST_FLAG_ZOMBIE))
+ if (newchan && ast_test_flag(ast_channel_flags(newchan), AST_FLAG_ZOMBIE))
ast_debug(1, "New channel is zombie\n");
- if (oldchan && ast_test_flag(oldchan, AST_FLAG_ZOMBIE))
+ if (oldchan && ast_test_flag(ast_channel_flags(oldchan), AST_FLAG_ZOMBIE))
ast_debug(1, "Old channel is zombie\n");
if (!newchan || !ast_channel_tech_pvt(newchan)) {
@@ -22415,7 +22415,7 @@ static int sip_pickup(struct ast_channel *chan)
static void ast_quiet_chan(struct ast_channel *chan)
{
if (chan && ast_channel_state(chan) == AST_STATE_UP) {
- if (ast_test_flag(chan, AST_FLAG_MOH))
+ if (ast_test_flag(ast_channel_flags(chan), AST_FLAG_MOH))
ast_moh_stop(chan);
else if (ast_channel_generatordata(chan))
ast_deactivate_generator(chan);
diff --git a/channels/chan_unistim.c b/channels/chan_unistim.c
index 48fde426b..f13105865 100644
--- a/channels/chan_unistim.c
+++ b/channels/chan_unistim.c
@@ -2306,7 +2306,7 @@ static int write_history(struct unistimsession *pte, char way, char ismissed)
static void unistim_quiet_chan(struct ast_channel *chan)
{
if (chan && ast_channel_state(chan) == AST_STATE_UP) {
- if (ast_test_flag(chan, AST_FLAG_MOH)) {
+ if (ast_test_flag(ast_channel_flags(chan), AST_FLAG_MOH)) {
ast_moh_stop(chan);
} else if (ast_channel_generatordata(chan)) {
ast_deactivate_generator(chan);
@@ -2959,11 +2959,11 @@ static void swap_subs(struct unistim_subchannel *a, struct unistim_subchannel *b
/* Step 1 : Music On Hold for peer, Dialing screen for us */
static void transfer_call_step1(struct unistimsession *pte)
{
- struct unistim_subchannel *sub, *sub_trans;
+ struct unistim_subchannel *sub /*, *sub_trans */;
struct unistim_device *d = pte->device;
sub = get_sub(d, SUB_REAL);
- sub_trans = get_sub(d, SUB_THREEWAY);
+ /* sub_trans = get_sub(d, SUB_THREEWAY); */
if (!sub || !sub->owner) {
ast_log(LOG_WARNING, "Unable to find subchannel for music on hold\n");
@@ -4856,7 +4856,7 @@ static int unistim_hangup(struct ast_channel *ast)
refresh_all_favorite(s); /* Update favicons in case of DND keys */
if (s->state == STATE_RINGING && sub->subtype == SUB_RING) {
send_no_ring(s);
- if (!ast_test_flag(ast, AST_FLAG_ANSWERED_ELSEWHERE) && ast_channel_hangupcause(ast) != AST_CAUSE_ANSWERED_ELSEWHERE) {
+ if (!ast_test_flag(ast_channel_flags(ast), AST_FLAG_ANSWERED_ELSEWHERE) && ast_channel_hangupcause(ast) != AST_CAUSE_ANSWERED_ELSEWHERE) {
d->missed_call++;
write_history(s, 'i', 1);
}
@@ -5872,7 +5872,7 @@ static char *unistim_show_info(struct ast_cli_entry *e, int cmd, struct ast_cli_
if (!sub->owner) {
tmp = (void *) -42;
} else {
- tmp = sub->owner->_bridge;
+ tmp = ast_channel_internal_bridged_channel(sub->owner);
}
ast_cli(a->fd,
"-->subtype=%s chan=%p rtp=%p bridge=%p line=%p alreadygone=%d softkey=%d\n",
diff --git a/channels/chan_vpb.cc b/channels/chan_vpb.cc
index 465c24408..e54cebda0 100644
--- a/channels/chan_vpb.cc
+++ b/channels/chan_vpb.cc
@@ -2257,8 +2257,8 @@ static void *do_chanreads(void *pvt)
bridgerec = 0;
} else {
ast_verb(5, "%s: chanreads: No native bridge.\n", p->dev);
- if (p->owner->_bridge) {
- ast_verb(5, "%s: chanreads: Got Asterisk bridge with [%s].\n", p->dev, ast_channel_name(p->owner->_bridge));
+ if (ast_channel_internal_bridged_channel(p->owner)) {
+ ast_verb(5, "%s: chanreads: Got Asterisk bridge with [%s].\n", p->dev, ast_channel_name(ast_channel_internal_bridged_channel(p->owner)));
bridgerec = 1;
} else {
bridgerec = 0;
diff --git a/channels/sig_analog.c b/channels/sig_analog.c
index 78963bb56..7112cf29d 100644
--- a/channels/sig_analog.c
+++ b/channels/sig_analog.c
@@ -2402,7 +2402,7 @@ static void *__analog_ss_thread(void *data)
* emulation. The DTMF digits can come so fast that emulation
* can drop some of them.
*/
- ast_set_flag(chan, AST_FLAG_END_DTMF_ONLY);
+ ast_set_flag(ast_channel_flags(chan), AST_FLAG_END_DTMF_ONLY);
res = 4000;/* This is a typical OFF time between rings. */
for (;;) {
struct ast_frame *f;
@@ -2435,7 +2435,7 @@ static void *__analog_ss_thread(void *data)
break; /* Got ring */
}
}
- ast_clear_flag(chan, AST_FLAG_END_DTMF_ONLY);
+ ast_clear_flag(ast_channel_flags(chan), AST_FLAG_END_DTMF_ONLY);
dtmfbuf[k] = '\0';
analog_set_linear_mode(p, idx, oldlinearity);