mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-16 17:53:15 +00:00
ast_channel opaquification of pointers and integral types
Review: https://reviewboard.asterisk.org/r/1753/ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@356042 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2233,7 +2233,7 @@ static void my_get_and_handle_alarms(void *pvt)
|
||||
|
||||
static void *my_get_sigpvt_bridged_channel(struct ast_channel *chan)
|
||||
{
|
||||
struct dahdi_pvt *p = ast_bridged_channel(chan)->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(ast_bridged_channel(chan));
|
||||
if (p)
|
||||
return p->sig_pvt;
|
||||
else
|
||||
@@ -3077,7 +3077,7 @@ static void my_pri_fixup_chans(void *chan_old, void *chan_new)
|
||||
new_chan->owner = old_chan->owner;
|
||||
old_chan->owner = NULL;
|
||||
if (new_chan->owner) {
|
||||
new_chan->owner->tech_pvt = new_chan;
|
||||
ast_channel_tech_pvt_set(new_chan->owner, new_chan);
|
||||
new_chan->owner->fds[0] = new_chan->subs[SUB_REAL].dfd;
|
||||
new_chan->subs[SUB_REAL].owner = old_chan->subs[SUB_REAL].owner;
|
||||
old_chan->subs[SUB_REAL].owner = NULL;
|
||||
@@ -3865,7 +3865,7 @@ static openr2_calling_party_category_t dahdi_r2_get_channel_category(struct ast_
|
||||
{
|
||||
openr2_calling_party_category_t cat;
|
||||
const char *catstr = pbx_builtin_getvar_helper(c, "MFCR2_CATEGORY");
|
||||
struct dahdi_pvt *p = c->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(c);
|
||||
if (ast_strlen_zero(catstr)) {
|
||||
ast_debug(1, "No MFC/R2 category specified for chan %s, using default %s\n",
|
||||
ast_channel_name(c), openr2_proto_get_category_string(p->mfcr2_category));
|
||||
@@ -3935,7 +3935,7 @@ static void dahdi_r2_on_protocol_error(openr2_chan_t *r2chan, openr2_protocol_er
|
||||
struct dahdi_pvt *p = openr2_chan_get_client_data(r2chan);
|
||||
ast_log(LOG_ERROR, "MFC/R2 protocol error on chan %d: %s\n", openr2_chan_get_number(r2chan), openr2_proto_get_error(reason));
|
||||
if (p->owner) {
|
||||
p->owner->hangupcause = AST_CAUSE_PROTOCOL_ERROR;
|
||||
ast_channel_hangupcause_set(p->owner, AST_CAUSE_PROTOCOL_ERROR);
|
||||
p->owner->_softhangup |= AST_SOFTHANGUP_DEV;
|
||||
}
|
||||
ast_mutex_lock(&p->lock);
|
||||
@@ -4109,7 +4109,7 @@ static void dahdi_r2_on_call_disconnect(openr2_chan_t *r2chan, openr2_call_disco
|
||||
}
|
||||
/* when we have an owner we don't call dahdi_r2_disconnect_call here, that will
|
||||
be done in dahdi_hangup */
|
||||
if (p->owner->_state == AST_STATE_UP) {
|
||||
if (ast_channel_state(p->owner) == AST_STATE_UP) {
|
||||
p->owner->_softhangup |= AST_SOFTHANGUP_DEV;
|
||||
ast_mutex_unlock(&p->lock);
|
||||
} else if (openr2_chan_get_direction(r2chan) == OR2_DIR_FORWARD) {
|
||||
@@ -4468,7 +4468,7 @@ static int dahdi_digit_begin(struct ast_channel *chan, char digit)
|
||||
int dtmf = -1;
|
||||
int res;
|
||||
|
||||
pvt = chan->tech_pvt;
|
||||
pvt = ast_channel_tech_pvt(chan);
|
||||
|
||||
ast_mutex_lock(&pvt->lock);
|
||||
|
||||
@@ -4522,7 +4522,7 @@ static int dahdi_digit_end(struct ast_channel *chan, char digit, unsigned int du
|
||||
int idx;
|
||||
int x;
|
||||
|
||||
pvt = chan->tech_pvt;
|
||||
pvt = ast_channel_tech_pvt(chan);
|
||||
|
||||
ast_mutex_lock(&pvt->lock);
|
||||
|
||||
@@ -5334,7 +5334,7 @@ static int send_callerid(struct dahdi_pvt *p)
|
||||
|
||||
static int dahdi_callwait(struct ast_channel *ast)
|
||||
{
|
||||
struct dahdi_pvt *p = ast->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(ast);
|
||||
struct ast_format tmpfmt;
|
||||
p->callwaitingrepeat = CALLWAITING_REPEAT_SAMPLES;
|
||||
if (p->cidspill) {
|
||||
@@ -5368,7 +5368,7 @@ static int dahdi_callwait(struct ast_channel *ast)
|
||||
|
||||
static int dahdi_call(struct ast_channel *ast, const char *rdest, int timeout)
|
||||
{
|
||||
struct dahdi_pvt *p = ast->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(ast);
|
||||
int x, res, mysig;
|
||||
char *dest;
|
||||
AST_DECLARE_APP_ARGS(args,
|
||||
@@ -5405,12 +5405,12 @@ static int dahdi_call(struct ast_channel *ast, const char *rdest, int timeout)
|
||||
ast_copy_string(p->exten, args.ext, sizeof(p->exten));
|
||||
}
|
||||
|
||||
if ((ast->_state == AST_STATE_BUSY)) {
|
||||
if ((ast_channel_state(ast) == AST_STATE_BUSY)) {
|
||||
p->subs[SUB_REAL].needbusy = 1;
|
||||
ast_mutex_unlock(&p->lock);
|
||||
return 0;
|
||||
}
|
||||
if ((ast->_state != AST_STATE_DOWN) && (ast->_state != AST_STATE_RESERVED)) {
|
||||
if ((ast_channel_state(ast) != AST_STATE_DOWN) && (ast_channel_state(ast) != AST_STATE_RESERVED)) {
|
||||
ast_log(LOG_WARNING, "dahdi_call called on %s, neither down nor reserved\n", ast_channel_name(ast));
|
||||
ast_mutex_unlock(&p->lock);
|
||||
return -1;
|
||||
@@ -5430,7 +5430,7 @@ static int dahdi_call(struct ast_channel *ast, const char *rdest, int timeout)
|
||||
ast_log(LOG_WARNING, "Unable to flush input on channel %d: %s\n", p->channel, strerror(errno));
|
||||
p->outgoing = 1;
|
||||
|
||||
if (IS_DIGITAL(ast->transfercapability)){
|
||||
if (IS_DIGITAL(ast_channel_transfercapability(ast))){
|
||||
set_actual_gain(p->subs[SUB_REAL].dfd, 0, 0, p->rxdrc, p->txdrc, p->law);
|
||||
} else {
|
||||
set_actual_gain(p->subs[SUB_REAL].dfd, p->rxgain, p->txgain, p->rxdrc, p->txdrc, p->law);
|
||||
@@ -5837,7 +5837,7 @@ static void destroy_dahdi_pvt(struct dahdi_pvt *pvt)
|
||||
ast_mutex_destroy(&p->lock);
|
||||
dahdi_close_sub(p, SUB_REAL);
|
||||
if (p->owner)
|
||||
p->owner->tech_pvt = NULL;
|
||||
ast_channel_tech_pvt_set(p->owner, NULL);
|
||||
ast_free(p);
|
||||
}
|
||||
|
||||
@@ -5934,7 +5934,7 @@ static int dahdi_send_keypad_facility_exec(struct ast_channel *chan, const char
|
||||
return -1;
|
||||
}
|
||||
|
||||
p = (struct dahdi_pvt *)chan->tech_pvt;
|
||||
p = (struct dahdi_pvt *)ast_channel_tech_pvt(chan);
|
||||
|
||||
if (!p) {
|
||||
ast_debug(1, "Unable to find technology private\n");
|
||||
@@ -5967,11 +5967,11 @@ static int dahdi_send_callrerouting_facility_exec(struct ast_channel *chan, cons
|
||||
ast_debug(1, "No data sent to application!\n");
|
||||
return -1;
|
||||
}
|
||||
if (chan->tech != &dahdi_tech) {
|
||||
if (ast_channel_tech(chan) != &dahdi_tech) {
|
||||
ast_debug(1, "Only DAHDI technology accepted!\n");
|
||||
return -1;
|
||||
}
|
||||
pvt = (struct dahdi_pvt *) chan->tech_pvt;
|
||||
pvt = (struct dahdi_pvt *) ast_channel_tech_pvt(chan);
|
||||
if (!pvt) {
|
||||
ast_debug(1, "Unable to find technology private\n");
|
||||
return -1;
|
||||
@@ -6003,7 +6003,7 @@ static int dahdi_send_callrerouting_facility_exec(struct ast_channel *chan, cons
|
||||
args.reason = NULL;
|
||||
}
|
||||
|
||||
pri_send_callrerouting_facility_exec(pvt->sig_pvt, chan->_state, args.destination,
|
||||
pri_send_callrerouting_facility_exec(pvt->sig_pvt, ast_channel_state(chan), args.destination,
|
||||
args.original, args.reason);
|
||||
|
||||
return res;
|
||||
@@ -6031,12 +6031,12 @@ static int dahdi_accept_r2_call_exec(struct ast_channel *chan, const char *data)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (chan->tech != &dahdi_tech) {
|
||||
if (ast_channel_tech(chan) != &dahdi_tech) {
|
||||
ast_debug(1, "Only DAHDI technology accepted!\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
p = (struct dahdi_pvt *)chan->tech_pvt;
|
||||
p = (struct dahdi_pvt *)ast_channel_tech_pvt(chan);
|
||||
if (!p) {
|
||||
ast_debug(1, "Unable to find technology private!\n");
|
||||
return -1;
|
||||
@@ -6182,11 +6182,11 @@ static int dahdi_hangup(struct ast_channel *ast)
|
||||
int idx,x;
|
||||
int law;
|
||||
/*static int restore_gains(struct dahdi_pvt *p);*/
|
||||
struct dahdi_pvt *p = ast->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(ast);
|
||||
struct dahdi_params par;
|
||||
|
||||
ast_debug(1, "dahdi_hangup(%s)\n", ast_channel_name(ast));
|
||||
if (!ast->tech_pvt) {
|
||||
if (!ast_channel_tech_pvt(ast)) {
|
||||
ast_log(LOG_WARNING, "Asked to hangup channel not connected\n");
|
||||
return 0;
|
||||
}
|
||||
@@ -6398,7 +6398,7 @@ static int dahdi_hangup(struct ast_channel *ast)
|
||||
swap_subs(p, SUB_CALLWAIT, SUB_REAL);
|
||||
unalloc_sub(p, SUB_CALLWAIT);
|
||||
p->owner = p->subs[SUB_REAL].owner;
|
||||
if (p->owner->_state != AST_STATE_UP)
|
||||
if (ast_channel_state(p->owner) != AST_STATE_UP)
|
||||
p->subs[SUB_REAL].needanswer = 1;
|
||||
if (ast_bridged_channel(p->subs[SUB_REAL].owner))
|
||||
ast_queue_control(p->subs[SUB_REAL].owner, AST_CONTROL_UNHOLD);
|
||||
@@ -6486,7 +6486,7 @@ static int dahdi_hangup(struct ast_channel *ast)
|
||||
const char *r2causestr = pbx_builtin_getvar_helper(ast, "MFCR2_CAUSE");
|
||||
int r2cause_user = r2causestr ? atoi(r2causestr) : 0;
|
||||
openr2_call_disconnect_cause_t r2cause = r2cause_user ? dahdi_ast_cause_to_r2_cause(r2cause_user)
|
||||
: dahdi_ast_cause_to_r2_cause(ast->hangupcause);
|
||||
: dahdi_ast_cause_to_r2_cause(ast_channel_hangupcause(ast));
|
||||
dahdi_r2_disconnect_call(p, r2cause);
|
||||
}
|
||||
} else if (p->mfcr2call) {
|
||||
@@ -6535,7 +6535,7 @@ static int dahdi_hangup(struct ast_channel *ast)
|
||||
case SIG_FXSKS:
|
||||
/* Make sure we're not made available for at least two seconds assuming
|
||||
we were actually used for an inbound or outbound call. */
|
||||
if (ast->_state != AST_STATE_RESERVED) {
|
||||
if (ast_channel_state(ast) != AST_STATE_RESERVED) {
|
||||
time(&p->guardtime);
|
||||
p->guardtime += 2;
|
||||
}
|
||||
@@ -6577,7 +6577,7 @@ static int dahdi_hangup(struct ast_channel *ast)
|
||||
p->cid_suppress_expire = 0;
|
||||
p->oprmode = 0;
|
||||
hangup_out:
|
||||
ast->tech_pvt = NULL;
|
||||
ast_channel_tech_pvt_set(ast, NULL);
|
||||
ast_free(p->cidspill);
|
||||
p->cidspill = NULL;
|
||||
|
||||
@@ -6600,7 +6600,7 @@ hangup_out:
|
||||
|
||||
static int dahdi_answer(struct ast_channel *ast)
|
||||
{
|
||||
struct dahdi_pvt *p = ast->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(ast);
|
||||
int res = 0;
|
||||
int idx;
|
||||
ast_setstate(ast, AST_STATE_UP);/*! \todo XXX this is redundantly set by the analog and PRI submodules! */
|
||||
@@ -6696,7 +6696,7 @@ static void enable_dtmf_detect(struct dahdi_pvt *p)
|
||||
static int dahdi_queryoption(struct ast_channel *chan, int option, void *data, int *datalen)
|
||||
{
|
||||
char *cp;
|
||||
struct dahdi_pvt *p = chan->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(chan);
|
||||
|
||||
/* all supported options require data */
|
||||
if (!p || !data || (*datalen < 1)) {
|
||||
@@ -6740,7 +6740,7 @@ static int dahdi_setoption(struct ast_channel *chan, int option, void *data, int
|
||||
signed char *scp;
|
||||
int x;
|
||||
int idx;
|
||||
struct dahdi_pvt *p = chan->tech_pvt, *pp;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(chan), *pp;
|
||||
struct oprmode *oprmode;
|
||||
|
||||
|
||||
@@ -6894,13 +6894,13 @@ static int dahdi_setoption(struct ast_channel *chan, int option, void *data, int
|
||||
case AST_OPTION_OPRMODE: /* Operator services mode */
|
||||
oprmode = (struct oprmode *) data;
|
||||
/* We don't support operator mode across technologies */
|
||||
if (strcasecmp(chan->tech->type, oprmode->peer->tech->type)) {
|
||||
if (strcasecmp(ast_channel_tech(chan)->type, ast_channel_tech(oprmode->peer)->type)) {
|
||||
ast_log(LOG_NOTICE, "Operator mode not supported on %s to %s calls.\n",
|
||||
chan->tech->type, oprmode->peer->tech->type);
|
||||
ast_channel_tech(chan)->type, ast_channel_tech(oprmode->peer)->type);
|
||||
errno = EINVAL;
|
||||
return -1;
|
||||
}
|
||||
pp = oprmode->peer->tech_pvt;
|
||||
pp = ast_channel_tech_pvt(oprmode->peer);
|
||||
p->oprmode = pp->oprmode = 0;
|
||||
/* setup peers */
|
||||
p->oprpeer = pp;
|
||||
@@ -6955,7 +6955,7 @@ static int dahdi_setoption(struct ast_channel *chan, int option, void *data, int
|
||||
|
||||
static int dahdi_func_read(struct ast_channel *chan, const char *function, char *data, char *buf, size_t len)
|
||||
{
|
||||
struct dahdi_pvt *p = chan->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(chan);
|
||||
int res = 0;
|
||||
|
||||
if (!p) {
|
||||
@@ -7094,7 +7094,7 @@ static int parse_buffers_policy(const char *parse, int *num_buffers, int *policy
|
||||
|
||||
static int dahdi_func_write(struct ast_channel *chan, const char *function, char *data, const char *value)
|
||||
{
|
||||
struct dahdi_pvt *p = chan->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(chan);
|
||||
int res = 0;
|
||||
|
||||
if (!p) {
|
||||
@@ -7278,8 +7278,8 @@ static enum ast_bridge_result dahdi_bridge(struct ast_channel *c0, struct ast_ch
|
||||
CHANNEL_DEADLOCK_AVOIDANCE(c0);
|
||||
}
|
||||
|
||||
p0 = c0->tech_pvt;
|
||||
p1 = c1->tech_pvt;
|
||||
p0 = ast_channel_tech_pvt(c0);
|
||||
p1 = ast_channel_tech_pvt(c1);
|
||||
/* cant do pseudo-channels here */
|
||||
if (!p0 || (!p0->sig) || !p1 || (!p1->sig)) {
|
||||
ast_channel_unlock(c0);
|
||||
@@ -7295,8 +7295,8 @@ static enum ast_bridge_result dahdi_bridge(struct ast_channel *c0, struct ast_ch
|
||||
return AST_BRIDGE_FAILED;
|
||||
}
|
||||
|
||||
op0 = p0 = c0->tech_pvt;
|
||||
op1 = p1 = c1->tech_pvt;
|
||||
op0 = p0 = ast_channel_tech_pvt(c0);
|
||||
op1 = p1 = ast_channel_tech_pvt(c1);
|
||||
ofd0 = c0->fds[0];
|
||||
ofd1 = c1->fds[0];
|
||||
oc0 = p0->owner;
|
||||
@@ -7413,12 +7413,12 @@ static enum ast_bridge_result dahdi_bridge(struct ast_channel *c0, struct ast_ch
|
||||
p1->subs[SUB_THREEWAY].inthreeway &&
|
||||
p1->subs[SUB_REAL].owner &&
|
||||
p1->subs[SUB_REAL].inthreeway &&
|
||||
(p1->subs[SUB_REAL].owner->_state == AST_STATE_RINGING)) {
|
||||
(ast_channel_state(p1->subs[SUB_REAL].owner) == AST_STATE_RINGING)) {
|
||||
ast_debug(1,
|
||||
"Playing ringback on %d/%d(%s) since %d/%d(%s) is in a ringing three-way\n",
|
||||
p0->channel, oi0, ast_channel_name(c0), p1->channel, oi1, ast_channel_name(c1));
|
||||
tone_zone_play_tone(p0->subs[oi0].dfd, DAHDI_TONE_RINGTONE);
|
||||
os1 = p1->subs[SUB_REAL].owner->_state;
|
||||
os1 = ast_channel_state(p1->subs[SUB_REAL].owner);
|
||||
} else {
|
||||
ast_debug(1, "Stopping tones on %d/%d(%s) talking to %d/%d(%s)\n",
|
||||
p0->channel, oi0, ast_channel_name(c0), p1->channel, oi1, ast_channel_name(c1));
|
||||
@@ -7428,12 +7428,12 @@ static enum ast_bridge_result dahdi_bridge(struct ast_channel *c0, struct ast_ch
|
||||
p0->subs[SUB_THREEWAY].inthreeway &&
|
||||
p0->subs[SUB_REAL].owner &&
|
||||
p0->subs[SUB_REAL].inthreeway &&
|
||||
(p0->subs[SUB_REAL].owner->_state == AST_STATE_RINGING)) {
|
||||
(ast_channel_state(p0->subs[SUB_REAL].owner) == AST_STATE_RINGING)) {
|
||||
ast_debug(1,
|
||||
"Playing ringback on %d/%d(%s) since %d/%d(%s) is in a ringing three-way\n",
|
||||
p1->channel, oi1, ast_channel_name(c1), p0->channel, oi0, ast_channel_name(c0));
|
||||
tone_zone_play_tone(p1->subs[oi1].dfd, DAHDI_TONE_RINGTONE);
|
||||
os0 = p0->subs[SUB_REAL].owner->_state;
|
||||
os0 = ast_channel_state(p0->subs[SUB_REAL].owner);
|
||||
} else {
|
||||
ast_debug(1, "Stopping tones on %d/%d(%s) talking to %d/%d(%s)\n",
|
||||
p1->channel, oi1, ast_channel_name(c1), p0->channel, oi0, ast_channel_name(c0));
|
||||
@@ -7489,8 +7489,8 @@ static enum ast_bridge_result dahdi_bridge(struct ast_channel *c0, struct ast_ch
|
||||
CHANNEL_DEADLOCK_AVOIDANCE(c0);
|
||||
}
|
||||
|
||||
p0 = c0->tech_pvt;
|
||||
p1 = c1->tech_pvt;
|
||||
p0 = ast_channel_tech_pvt(c0);
|
||||
p1 = ast_channel_tech_pvt(c1);
|
||||
|
||||
if (op0 == p0)
|
||||
i0 = dahdi_get_index(c0, p0, 1);
|
||||
@@ -7505,8 +7505,8 @@ static enum ast_bridge_result dahdi_bridge(struct ast_channel *c0, struct ast_ch
|
||||
(op1 != p1) ||
|
||||
(ofd0 != c0->fds[0]) ||
|
||||
(ofd1 != c1->fds[0]) ||
|
||||
(p0->subs[SUB_REAL].owner && (os0 > -1) && (os0 != p0->subs[SUB_REAL].owner->_state)) ||
|
||||
(p1->subs[SUB_REAL].owner && (os1 > -1) && (os1 != p1->subs[SUB_REAL].owner->_state)) ||
|
||||
(p0->subs[SUB_REAL].owner && (os0 > -1) && (os0 != ast_channel_state(p0->subs[SUB_REAL].owner))) ||
|
||||
(p1->subs[SUB_REAL].owner && (os1 > -1) && (os1 != ast_channel_state(p1->subs[SUB_REAL].owner))) ||
|
||||
(oc0 != p0->owner) ||
|
||||
(oc1 != p1->owner) ||
|
||||
(t0 != p0->subs[SUB_REAL].inthreeway) ||
|
||||
@@ -7614,7 +7614,7 @@ return_from_bridge:
|
||||
|
||||
static int dahdi_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
|
||||
{
|
||||
struct dahdi_pvt *p = newchan->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(newchan);
|
||||
int x;
|
||||
|
||||
ast_mutex_lock(&p->lock);
|
||||
@@ -7646,7 +7646,7 @@ static int dahdi_fixup(struct ast_channel *oldchan, struct ast_channel *newchan)
|
||||
|
||||
ast_mutex_unlock(&p->lock);
|
||||
|
||||
if (newchan->_state == AST_STATE_RINGING) {
|
||||
if (ast_channel_state(newchan) == AST_STATE_RINGING) {
|
||||
dahdi_indicate(newchan, AST_CONTROL_RINGING, NULL, 0);
|
||||
}
|
||||
return 0;
|
||||
@@ -7694,10 +7694,10 @@ static int attempt_transfer(struct dahdi_pvt *p)
|
||||
stop if now if appropriate */
|
||||
if (ast_bridged_channel(p->subs[SUB_THREEWAY].owner))
|
||||
ast_queue_control(p->subs[SUB_THREEWAY].owner, AST_CONTROL_UNHOLD);
|
||||
if (p->subs[SUB_REAL].owner->_state == AST_STATE_RINGING) {
|
||||
if (ast_channel_state(p->subs[SUB_REAL].owner) == AST_STATE_RINGING) {
|
||||
ast_indicate(ast_bridged_channel(p->subs[SUB_REAL].owner), AST_CONTROL_RINGING);
|
||||
}
|
||||
if (p->subs[SUB_THREEWAY].owner->_state == AST_STATE_RING) {
|
||||
if (ast_channel_state(p->subs[SUB_THREEWAY].owner) == AST_STATE_RING) {
|
||||
tone_zone_play_tone(p->subs[SUB_THREEWAY].dfd, DAHDI_TONE_RINGTONE);
|
||||
}
|
||||
if (ast_channel_masquerade(p->subs[SUB_THREEWAY].owner, ast_bridged_channel(p->subs[SUB_REAL].owner))) {
|
||||
@@ -7710,10 +7710,10 @@ static int attempt_transfer(struct dahdi_pvt *p)
|
||||
unalloc_sub(p, SUB_THREEWAY);
|
||||
} else if (ast_bridged_channel(p->subs[SUB_THREEWAY].owner)) {
|
||||
ast_queue_control(p->subs[SUB_REAL].owner, AST_CONTROL_UNHOLD);
|
||||
if (p->subs[SUB_THREEWAY].owner->_state == AST_STATE_RINGING) {
|
||||
if (ast_channel_state(p->subs[SUB_THREEWAY].owner) == AST_STATE_RINGING) {
|
||||
ast_indicate(ast_bridged_channel(p->subs[SUB_THREEWAY].owner), AST_CONTROL_RINGING);
|
||||
}
|
||||
if (p->subs[SUB_REAL].owner->_state == AST_STATE_RING) {
|
||||
if (ast_channel_state(p->subs[SUB_REAL].owner) == AST_STATE_RING) {
|
||||
tone_zone_play_tone(p->subs[SUB_REAL].dfd, DAHDI_TONE_RINGTONE);
|
||||
}
|
||||
if (ast_channel_masquerade(p->subs[SUB_REAL].owner, ast_bridged_channel(p->subs[SUB_THREEWAY].owner))) {
|
||||
@@ -7791,7 +7791,7 @@ static int get_alarms(struct dahdi_pvt *p)
|
||||
|
||||
static void dahdi_handle_dtmf(struct ast_channel *ast, int idx, struct ast_frame **dest)
|
||||
{
|
||||
struct dahdi_pvt *p = ast->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(ast);
|
||||
struct ast_frame *f = *dest;
|
||||
|
||||
ast_debug(1, "%s DTMF digit: 0x%02X '%c' on %s\n",
|
||||
@@ -7913,7 +7913,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
int res, x;
|
||||
int idx, mysig;
|
||||
char *c;
|
||||
struct dahdi_pvt *p = ast->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(ast);
|
||||
pthread_t threadid;
|
||||
struct ast_channel *chan;
|
||||
struct ast_frame *f;
|
||||
@@ -8015,7 +8015,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
#endif
|
||||
case DAHDI_EVENT_PULSE_START:
|
||||
/* Stop tone if there's a pulse start and the PBX isn't started */
|
||||
if (!ast->pbx)
|
||||
if (!ast_channel_pbx(ast))
|
||||
tone_zone_play_tone(p->subs[idx].dfd, -1);
|
||||
break;
|
||||
case DAHDI_EVENT_DIALCOMPLETE:
|
||||
@@ -8043,7 +8043,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
}
|
||||
#endif /* defined(HAVE_PRI) */
|
||||
#ifdef HAVE_OPENR2
|
||||
if ((p->sig & SIG_MFCR2) && p->r2chan && ast->_state != AST_STATE_UP) {
|
||||
if ((p->sig & SIG_MFCR2) && p->r2chan && ast_channel_state(ast) != AST_STATE_UP) {
|
||||
/* we don't need to do anything for this event for R2 signaling
|
||||
if the call is being setup */
|
||||
break;
|
||||
@@ -8067,7 +8067,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
p->dialing = 0;
|
||||
if ((mysig == SIG_E911) || (mysig == SIG_FGC_CAMA) || (mysig == SIG_FGC_CAMAMF)) {
|
||||
/* if thru with dialing after offhook */
|
||||
if (ast->_state == AST_STATE_DIALING_OFFHOOK) {
|
||||
if (ast_channel_state(ast) == AST_STATE_DIALING_OFFHOOK) {
|
||||
ast_setstate(ast, AST_STATE_UP);
|
||||
p->subs[idx].f.frametype = AST_FRAME_CONTROL;
|
||||
p->subs[idx].f.subclass.integer = AST_CONTROL_ANSWER;
|
||||
@@ -8077,7 +8077,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
ast_setstate(ast,AST_STATE_DIALING_OFFHOOK);
|
||||
}
|
||||
}
|
||||
if (ast->_state == AST_STATE_DIALING) {
|
||||
if (ast_channel_state(ast) == AST_STATE_DIALING) {
|
||||
if ((p->callprogress & CALLPROGRESS_PROGRESS) && CANPROGRESSDETECT(p) && p->dsp && p->outgoing) {
|
||||
ast_debug(1, "Done dialing, but waiting for progress detection before doing more...\n");
|
||||
} else if (p->confirmanswer || (!p->dialednone
|
||||
@@ -8177,7 +8177,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
p->cid_suppress_expire = 0;
|
||||
p->owner = NULL;
|
||||
/* Don't start streaming audio yet if the incoming call isn't up yet */
|
||||
if (p->subs[SUB_REAL].owner->_state != AST_STATE_UP)
|
||||
if (ast_channel_state(p->subs[SUB_REAL].owner) != AST_STATE_UP)
|
||||
p->dialing = 1;
|
||||
dahdi_ring_phone(p);
|
||||
} else if (p->subs[SUB_THREEWAY].owner) {
|
||||
@@ -8211,13 +8211,13 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
p->subs[SUB_THREEWAY].owner->_softhangup |= AST_SOFTHANGUP_DEV;
|
||||
ast_debug(1, "Looks like a bounced flash, hanging up both calls on %d\n", p->channel);
|
||||
ast_channel_unlock(p->subs[SUB_THREEWAY].owner);
|
||||
} else if ((ast->pbx) || (ast->_state == AST_STATE_UP)) {
|
||||
} else if ((ast_channel_pbx(ast)) || (ast_channel_state(ast) == AST_STATE_UP)) {
|
||||
if (p->transfer) {
|
||||
/* In any case this isn't a threeway call anymore */
|
||||
p->subs[SUB_REAL].inthreeway = 0;
|
||||
p->subs[SUB_THREEWAY].inthreeway = 0;
|
||||
/* Only attempt transfer if the phone is ringing; why transfer to busy tone eh? */
|
||||
if (!p->transfertobusy && ast->_state == AST_STATE_BUSY) {
|
||||
if (!p->transfertobusy && ast_channel_state(ast) == AST_STATE_BUSY) {
|
||||
ast_channel_unlock(p->subs[SUB_THREEWAY].owner);
|
||||
/* Swap subs and dis-own channel */
|
||||
swap_subs(p, SUB_THREEWAY, SUB_REAL);
|
||||
@@ -8280,7 +8280,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
}
|
||||
/* for E911, its supposed to wait for offhook then dial
|
||||
the second half of the dial string */
|
||||
if (((mysig == SIG_E911) || (mysig == SIG_FGC_CAMA) || (mysig == SIG_FGC_CAMAMF)) && (ast->_state == AST_STATE_DIALING_OFFHOOK)) {
|
||||
if (((mysig == SIG_E911) || (mysig == SIG_FGC_CAMA) || (mysig == SIG_FGC_CAMAMF)) && (ast_channel_state(ast) == AST_STATE_DIALING_OFFHOOK)) {
|
||||
c = strchr(p->dialdest, '/');
|
||||
if (c)
|
||||
c++;
|
||||
@@ -8311,7 +8311,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
case SIG_FXOLS:
|
||||
case SIG_FXOGS:
|
||||
case SIG_FXOKS:
|
||||
switch (ast->_state) {
|
||||
switch (ast_channel_state(ast)) {
|
||||
case AST_STATE_RINGING:
|
||||
dahdi_enable_ec(p);
|
||||
dahdi_train_ec(p);
|
||||
@@ -8353,7 +8353,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
return &p->subs[idx].f;
|
||||
case AST_STATE_DOWN:
|
||||
ast_setstate(ast, AST_STATE_RING);
|
||||
ast->rings = 1;
|
||||
ast_channel_rings_set(ast, 1);
|
||||
p->subs[idx].f.frametype = AST_FRAME_CONTROL;
|
||||
p->subs[idx].f.subclass.integer = AST_CONTROL_OFFHOOK;
|
||||
ast_debug(1, "channel %d picked up\n", p->channel);
|
||||
@@ -8374,13 +8374,13 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
res = tone_zone_play_tone(p->subs[SUB_REAL].dfd, DAHDI_TONE_DIALTONE);
|
||||
break;
|
||||
default:
|
||||
ast_log(LOG_WARNING, "FXO phone off hook in weird state %d??\n", ast->_state);
|
||||
ast_log(LOG_WARNING, "FXO phone off hook in weird state %d??\n", ast_channel_state(ast));
|
||||
}
|
||||
break;
|
||||
case SIG_FXSLS:
|
||||
case SIG_FXSGS:
|
||||
case SIG_FXSKS:
|
||||
if (ast->_state == AST_STATE_RING) {
|
||||
if (ast_channel_state(ast) == AST_STATE_RING) {
|
||||
p->ringt = p->ringt_base;
|
||||
}
|
||||
|
||||
@@ -8407,13 +8407,13 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
case SIG_SF_FEATD:
|
||||
case SIG_SF_FEATDMF:
|
||||
case SIG_SF_FEATB:
|
||||
if (ast->_state == AST_STATE_PRERING)
|
||||
if (ast_channel_state(ast) == AST_STATE_PRERING)
|
||||
ast_setstate(ast, AST_STATE_RING);
|
||||
if ((ast->_state == AST_STATE_DOWN) || (ast->_state == AST_STATE_RING)) {
|
||||
if ((ast_channel_state(ast) == AST_STATE_DOWN) || (ast_channel_state(ast) == AST_STATE_RING)) {
|
||||
ast_debug(1, "Ring detected\n");
|
||||
p->subs[idx].f.frametype = AST_FRAME_CONTROL;
|
||||
p->subs[idx].f.subclass.integer = AST_CONTROL_RING;
|
||||
} else if (p->outgoing && ((ast->_state == AST_STATE_RINGING) || (ast->_state == AST_STATE_DIALING))) {
|
||||
} else if (p->outgoing && ((ast_channel_state(ast) == AST_STATE_RINGING) || (ast_channel_state(ast) == AST_STATE_DIALING))) {
|
||||
ast_debug(1, "Line answered\n");
|
||||
if (p->confirmanswer) {
|
||||
p->subs[idx].f.frametype = AST_FRAME_NULL;
|
||||
@@ -8423,8 +8423,8 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
p->subs[idx].f.subclass.integer = AST_CONTROL_ANSWER;
|
||||
ast_setstate(ast, AST_STATE_UP);
|
||||
}
|
||||
} else if (ast->_state != AST_STATE_RING)
|
||||
ast_log(LOG_WARNING, "Ring/Off-hook in strange state %d on channel %d\n", ast->_state, p->channel);
|
||||
} else if (ast_channel_state(ast) != AST_STATE_RING)
|
||||
ast_log(LOG_WARNING, "Ring/Off-hook in strange state %d on channel %d\n", ast_channel_state(ast), p->channel);
|
||||
break;
|
||||
default:
|
||||
ast_log(LOG_WARNING, "Don't know how to handle ring/off hook for signalling %d\n", p->sig);
|
||||
@@ -8435,7 +8435,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
case SIG_FXSLS:
|
||||
case SIG_FXSGS:
|
||||
case SIG_FXSKS:
|
||||
if (ast->_state == AST_STATE_RING) {
|
||||
if (ast_channel_state(ast) == AST_STATE_RING) {
|
||||
p->ringt = p->ringt_base;
|
||||
}
|
||||
break;
|
||||
@@ -8509,7 +8509,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
tone_zone_play_tone(p->subs[SUB_REAL].dfd, -1);
|
||||
p->owner = p->subs[SUB_REAL].owner;
|
||||
ast_debug(1, "Making %s the new owner\n", ast_channel_name(p->owner));
|
||||
if (p->owner->_state == AST_STATE_RINGING) {
|
||||
if (ast_channel_state(p->owner) == AST_STATE_RINGING) {
|
||||
ast_setstate(p->owner, AST_STATE_UP);
|
||||
p->subs[SUB_REAL].needanswer = 1;
|
||||
}
|
||||
@@ -8554,9 +8554,9 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
}
|
||||
/* XXX This section needs much more error checking!!! XXX */
|
||||
/* Start a 3-way call if feasible */
|
||||
if (!((ast->pbx) ||
|
||||
(ast->_state == AST_STATE_UP) ||
|
||||
(ast->_state == AST_STATE_RING))) {
|
||||
if (!((ast_channel_pbx(ast)) ||
|
||||
(ast_channel_state(ast) == AST_STATE_UP) ||
|
||||
(ast_channel_state(ast) == AST_STATE_RING))) {
|
||||
ast_debug(1, "Flash when call not up or ringing\n");
|
||||
goto winkflashdone;
|
||||
}
|
||||
@@ -8607,7 +8607,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
/* Call is already up, drop the last person */
|
||||
ast_debug(1, "Got flash with three way call up, dropping last call on %d\n", p->channel);
|
||||
/* If the primary call isn't answered yet, use it */
|
||||
if ((p->subs[SUB_REAL].owner->_state != AST_STATE_UP) && (p->subs[SUB_THREEWAY].owner->_state == AST_STATE_UP)) {
|
||||
if ((ast_channel_state(p->subs[SUB_REAL].owner) != AST_STATE_UP) && (ast_channel_state(p->subs[SUB_THREEWAY].owner) == AST_STATE_UP)) {
|
||||
/* Swap back -- we're dropping the real 3-way that isn't finished yet*/
|
||||
swap_subs(p, SUB_THREEWAY, SUB_REAL);
|
||||
p->owner = p->subs[SUB_REAL].owner;
|
||||
@@ -8619,8 +8619,8 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
p->subs[SUB_THREEWAY].inthreeway = 0;
|
||||
} else {
|
||||
/* Lets see what we're up to */
|
||||
if (((ast->pbx) || (ast->_state == AST_STATE_UP)) &&
|
||||
(p->transfertobusy || (ast->_state != AST_STATE_BUSY))) {
|
||||
if (((ast_channel_pbx(ast)) || (ast_channel_state(ast) == AST_STATE_UP)) &&
|
||||
(p->transfertobusy || (ast_channel_state(ast) != AST_STATE_BUSY))) {
|
||||
int otherindex = SUB_THREEWAY;
|
||||
|
||||
ast_verb(3, "Building conference call with %s and %s\n",
|
||||
@@ -8629,7 +8629,7 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
|
||||
/* Put them in the threeway, and flip */
|
||||
p->subs[SUB_THREEWAY].inthreeway = 1;
|
||||
p->subs[SUB_REAL].inthreeway = 1;
|
||||
if (ast->_state == AST_STATE_UP) {
|
||||
if (ast_channel_state(ast) == AST_STATE_UP) {
|
||||
swap_subs(p, SUB_THREEWAY, SUB_REAL);
|
||||
otherindex = SUB_REAL;
|
||||
}
|
||||
@@ -8663,7 +8663,7 @@ winkflashdone:
|
||||
if (p->dialing)
|
||||
ast_debug(1, "Ignoring wink on channel %d\n", p->channel);
|
||||
else
|
||||
ast_debug(1, "Got wink in weird state %d on channel %d\n", ast->_state, p->channel);
|
||||
ast_debug(1, "Got wink in weird state %d on channel %d\n", ast_channel_state(ast), p->channel);
|
||||
break;
|
||||
case SIG_FEATDMF_TA:
|
||||
switch (p->whichwink) {
|
||||
@@ -8760,38 +8760,38 @@ winkflashdone:
|
||||
if (p->polarity == POLARITY_IDLE) {
|
||||
p->polarity = POLARITY_REV;
|
||||
if (p->answeronpolarityswitch &&
|
||||
((ast->_state == AST_STATE_DIALING) ||
|
||||
(ast->_state == AST_STATE_RINGING))) {
|
||||
((ast_channel_state(ast) == AST_STATE_DIALING) ||
|
||||
(ast_channel_state(ast) == AST_STATE_RINGING))) {
|
||||
ast_debug(1, "Answering on polarity switch!\n");
|
||||
ast_setstate(p->owner, AST_STATE_UP);
|
||||
if (p->hanguponpolarityswitch) {
|
||||
p->polaritydelaytv = ast_tvnow();
|
||||
}
|
||||
} else
|
||||
ast_debug(1, "Ignore switch to REVERSED Polarity on channel %d, state %d\n", p->channel, ast->_state);
|
||||
ast_debug(1, "Ignore switch to REVERSED Polarity on channel %d, state %d\n", p->channel, ast_channel_state(ast));
|
||||
}
|
||||
/* Removed else statement from here as it was preventing hangups from ever happening*/
|
||||
/* Added AST_STATE_RING in if statement below to deal with calling party hangups that take place when ringing */
|
||||
if (p->hanguponpolarityswitch &&
|
||||
(p->polarityonanswerdelay > 0) &&
|
||||
(p->polarity == POLARITY_REV) &&
|
||||
((ast->_state == AST_STATE_UP) || (ast->_state == AST_STATE_RING)) ) {
|
||||
((ast_channel_state(ast) == AST_STATE_UP) || (ast_channel_state(ast) == AST_STATE_RING)) ) {
|
||||
/* Added log_debug information below to provide a better indication of what is going on */
|
||||
ast_debug(1, "Polarity Reversal event occured - DEBUG 1: channel %d, state %d, pol= %d, aonp= %d, honp= %d, pdelay= %d, tv= %" PRIi64 "\n", p->channel, ast->_state, p->polarity, p->answeronpolarityswitch, p->hanguponpolarityswitch, p->polarityonanswerdelay, ast_tvdiff_ms(ast_tvnow(), p->polaritydelaytv) );
|
||||
ast_debug(1, "Polarity Reversal event occured - DEBUG 1: channel %d, state %d, pol= %d, aonp= %d, honp= %d, pdelay= %d, tv= %" PRIi64 "\n", p->channel, ast_channel_state(ast), p->polarity, p->answeronpolarityswitch, p->hanguponpolarityswitch, p->polarityonanswerdelay, ast_tvdiff_ms(ast_tvnow(), p->polaritydelaytv) );
|
||||
|
||||
if (ast_tvdiff_ms(ast_tvnow(), p->polaritydelaytv) > p->polarityonanswerdelay) {
|
||||
ast_debug(1, "Polarity Reversal detected and now Hanging up on channel %d\n", p->channel);
|
||||
ast_softhangup(p->owner, AST_SOFTHANGUP_EXPLICIT);
|
||||
p->polarity = POLARITY_IDLE;
|
||||
} else
|
||||
ast_debug(1, "Polarity Reversal detected but NOT hanging up (too close to answer event) on channel %d, state %d\n", p->channel, ast->_state);
|
||||
ast_debug(1, "Polarity Reversal detected but NOT hanging up (too close to answer event) on channel %d, state %d\n", p->channel, ast_channel_state(ast));
|
||||
|
||||
} else {
|
||||
p->polarity = POLARITY_IDLE;
|
||||
ast_debug(1, "Ignoring Polarity switch to IDLE on channel %d, state %d\n", p->channel, ast->_state);
|
||||
ast_debug(1, "Ignoring Polarity switch to IDLE on channel %d, state %d\n", p->channel, ast_channel_state(ast));
|
||||
}
|
||||
/* Added more log_debug information below to provide a better indication of what is going on */
|
||||
ast_debug(1, "Polarity Reversal event occured - DEBUG 2: channel %d, state %d, pol= %d, aonp= %d, honp= %d, pdelay= %d, tv= %" PRIi64 "\n", p->channel, ast->_state, p->polarity, p->answeronpolarityswitch, p->hanguponpolarityswitch, p->polarityonanswerdelay, ast_tvdiff_ms(ast_tvnow(), p->polaritydelaytv) );
|
||||
ast_debug(1, "Polarity Reversal event occured - DEBUG 2: channel %d, state %d, pol= %d, aonp= %d, honp= %d, pdelay= %d, tv= %" PRIi64 "\n", p->channel, ast_channel_state(ast), p->polarity, p->answeronpolarityswitch, p->hanguponpolarityswitch, p->polarityonanswerdelay, ast_tvdiff_ms(ast_tvnow(), p->polaritydelaytv) );
|
||||
break;
|
||||
default:
|
||||
ast_debug(1, "Dunno what to do with event %d on channel %d\n", res, p->channel);
|
||||
@@ -8805,7 +8805,7 @@ static struct ast_frame *__dahdi_exception(struct ast_channel *ast)
|
||||
int idx;
|
||||
struct ast_frame *f;
|
||||
int usedindex = -1;
|
||||
struct dahdi_pvt *p = ast->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(ast);
|
||||
|
||||
idx = dahdi_get_index(ast, p, 1);
|
||||
|
||||
@@ -8856,7 +8856,7 @@ static struct ast_frame *__dahdi_exception(struct ast_channel *ast)
|
||||
case DAHDI_EVENT_RINGOFFHOOK:
|
||||
dahdi_enable_ec(p);
|
||||
dahdi_set_hook(p->subs[SUB_REAL].dfd, DAHDI_OFFHOOK);
|
||||
if (p->owner && (p->owner->_state == AST_STATE_RINGING)) {
|
||||
if (p->owner && (ast_channel_state(p->owner) == AST_STATE_RINGING)) {
|
||||
p->subs[SUB_REAL].needanswer = 1;
|
||||
p->dialing = 0;
|
||||
}
|
||||
@@ -8870,7 +8870,7 @@ static struct ast_frame *__dahdi_exception(struct ast_channel *ast)
|
||||
p->flashtime = ast_tvnow();
|
||||
if (p->owner) {
|
||||
ast_verb(3, "Channel %d flashed to other channel %s\n", p->channel, ast_channel_name(p->owner));
|
||||
if (p->owner->_state != AST_STATE_UP) {
|
||||
if (ast_channel_state(p->owner) != AST_STATE_UP) {
|
||||
/* Answer if necessary */
|
||||
usedindex = dahdi_get_index(p->owner, p, 0);
|
||||
if (usedindex > -1) {
|
||||
@@ -8914,7 +8914,7 @@ static struct ast_frame *__dahdi_exception(struct ast_channel *ast)
|
||||
|
||||
static struct ast_frame *dahdi_exception(struct ast_channel *ast)
|
||||
{
|
||||
struct dahdi_pvt *p = ast->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(ast);
|
||||
struct ast_frame *f;
|
||||
ast_mutex_lock(&p->lock);
|
||||
if (analog_lib_handles(p->sig, p->radio, p->oprmode)) {
|
||||
@@ -8940,7 +8940,7 @@ static struct ast_frame *dahdi_read(struct ast_channel *ast)
|
||||
* analog ports can have more than one Asterisk channel using
|
||||
* the same private structure.
|
||||
*/
|
||||
p = ast->tech_pvt;
|
||||
p = ast_channel_tech_pvt(ast);
|
||||
while (ast_mutex_trylock(&p->lock)) {
|
||||
CHANNEL_DEADLOCK_AVOIDANCE(ast);
|
||||
|
||||
@@ -8949,7 +8949,7 @@ static struct ast_frame *dahdi_read(struct ast_channel *ast)
|
||||
* the call could move to another B channel while the Asterisk
|
||||
* channel is unlocked.
|
||||
*/
|
||||
p = ast->tech_pvt;
|
||||
p = ast_channel_tech_pvt(ast);
|
||||
}
|
||||
|
||||
idx = dahdi_get_index(ast, p, 0);
|
||||
@@ -9015,7 +9015,7 @@ static struct ast_frame *dahdi_read(struct ast_channel *ast)
|
||||
* now enqueue a progress frame to bridge the media up */
|
||||
if (p->mfcr2_call_accepted &&
|
||||
!p->mfcr2_progress_sent &&
|
||||
ast->_state == AST_STATE_RINGING) {
|
||||
ast_channel_state(ast) == AST_STATE_RINGING) {
|
||||
ast_debug(1, "Enqueuing progress frame after R2 accept in chan %d\n", p->channel);
|
||||
ast_queue_frame(p->owner, &fr);
|
||||
p->mfcr2_progress_sent = 1;
|
||||
@@ -9233,7 +9233,7 @@ static struct ast_frame *dahdi_read(struct ast_channel *ast)
|
||||
ast_debug(1, "Read %d of voice on %s\n", p->subs[idx].f.datalen, ast->name);
|
||||
#endif
|
||||
if (p->dialing || p->radio || /* Transmitting something */
|
||||
(idx && (ast->_state != AST_STATE_UP)) || /* Three-way or callwait that isn't up */
|
||||
(idx && (ast_channel_state(ast) != AST_STATE_UP)) || /* Three-way or callwait that isn't up */
|
||||
((idx == SUB_CALLWAIT) && !p->subs[SUB_CALLWAIT].inthreeway) /* Inactive and non-confed call-wait */
|
||||
) {
|
||||
/* Whoops, we're still dialing, or in a state where we shouldn't transmit....
|
||||
@@ -9261,7 +9261,7 @@ static struct ast_frame *dahdi_read(struct ast_channel *ast)
|
||||
|
||||
if (f) {
|
||||
if ((f->frametype == AST_FRAME_CONTROL) && (f->subclass.integer == AST_CONTROL_BUSY)) {
|
||||
if ((ast->_state == AST_STATE_UP) && !p->outgoing) {
|
||||
if ((ast_channel_state(ast) == AST_STATE_UP) && !p->outgoing) {
|
||||
/* Treat this as a "hangup" instead of a "busy" on the assumption that
|
||||
a busy */
|
||||
f = NULL;
|
||||
@@ -9375,7 +9375,7 @@ static int my_dahdi_write(struct dahdi_pvt *p, unsigned char *buf, int len, int
|
||||
|
||||
static int dahdi_write(struct ast_channel *ast, struct ast_frame *frame)
|
||||
{
|
||||
struct dahdi_pvt *p = ast->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(ast);
|
||||
int res;
|
||||
int idx;
|
||||
idx = dahdi_get_index(ast, p, 0);
|
||||
@@ -9440,7 +9440,7 @@ static int dahdi_write(struct ast_channel *ast, struct ast_frame *frame)
|
||||
|
||||
static int dahdi_indicate(struct ast_channel *chan, int condition, const void *data, size_t datalen)
|
||||
{
|
||||
struct dahdi_pvt *p = chan->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(chan);
|
||||
int res=-1;
|
||||
int idx;
|
||||
int func = DAHDI_FLASH;
|
||||
@@ -9480,8 +9480,8 @@ static int dahdi_indicate(struct ast_channel *chan, int condition, const void *d
|
||||
case AST_CONTROL_RINGING:
|
||||
res = tone_zone_play_tone(p->subs[idx].dfd, DAHDI_TONE_RINGTONE);
|
||||
|
||||
if (chan->_state != AST_STATE_UP) {
|
||||
if ((chan->_state != AST_STATE_RING) ||
|
||||
if (ast_channel_state(chan) != AST_STATE_UP) {
|
||||
if ((ast_channel_state(chan) != AST_STATE_RING) ||
|
||||
((p->sig != SIG_FXSKS) &&
|
||||
(p->sig != SIG_FXSLS) &&
|
||||
(p->sig != SIG_FXSGS)))
|
||||
@@ -9505,12 +9505,12 @@ static int dahdi_indicate(struct ast_channel *chan, int condition, const void *d
|
||||
break;
|
||||
case AST_CONTROL_CONGESTION:
|
||||
/* There are many cause codes that generate an AST_CONTROL_CONGESTION. */
|
||||
switch (chan->hangupcause) {
|
||||
switch (ast_channel_hangupcause(chan)) {
|
||||
case AST_CAUSE_USER_BUSY:
|
||||
case AST_CAUSE_NORMAL_CLEARING:
|
||||
case 0:/* Cause has not been set. */
|
||||
/* Supply a more appropriate cause. */
|
||||
chan->hangupcause = AST_CAUSE_CONGESTION;
|
||||
ast_channel_hangupcause_set(chan, AST_CAUSE_CONGESTION);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -9641,7 +9641,7 @@ static struct ast_channel *dahdi_new(struct dahdi_pvt *i, int state, int startpb
|
||||
ast_free(chan_name);
|
||||
if (!tmp)
|
||||
return NULL;
|
||||
tmp->tech = &dahdi_tech;
|
||||
ast_channel_tech_set(tmp, &dahdi_tech);
|
||||
#if defined(HAVE_PRI)
|
||||
if (i->pri) {
|
||||
ast_cc_copy_config_params(i->cc_params, i->pri->cc_params);
|
||||
@@ -9673,7 +9673,7 @@ static struct ast_channel *dahdi_new(struct dahdi_pvt *i, int state, int startpb
|
||||
}
|
||||
}
|
||||
ast_channel_set_fd(tmp, 0, i->subs[idx].dfd);
|
||||
ast_format_cap_add(tmp->nativeformats, &deflaw);
|
||||
ast_format_cap_add(ast_channel_nativeformats(tmp), &deflaw);
|
||||
/* Start out assuming ulaw since it's smaller :) */
|
||||
ast_format_copy(&tmp->rawreadformat, &deflaw);
|
||||
ast_format_copy(&tmp->readformat, &deflaw);
|
||||
@@ -9734,8 +9734,8 @@ static struct ast_channel *dahdi_new(struct dahdi_pvt *i, int state, int startpb
|
||||
}
|
||||
|
||||
if (state == AST_STATE_RING)
|
||||
tmp->rings = 1;
|
||||
tmp->tech_pvt = i;
|
||||
ast_channel_rings_set(tmp, 1);
|
||||
ast_channel_tech_pvt_set(tmp, i);
|
||||
if ((i->sig == SIG_FXOKS) || (i->sig == SIG_FXOGS) || (i->sig == SIG_FXOLS)) {
|
||||
/* Only FXO signalled stuff can be picked up */
|
||||
tmp->callgroup = i->callgroup;
|
||||
@@ -9750,7 +9750,7 @@ static struct ast_channel *dahdi_new(struct dahdi_pvt *i, int state, int startpb
|
||||
if (!ast_strlen_zero(i->accountcode))
|
||||
ast_channel_accountcode_set(tmp, i->accountcode);
|
||||
if (i->amaflags)
|
||||
tmp->amaflags = i->amaflags;
|
||||
ast_channel_amaflags_set(tmp, i->amaflags);
|
||||
i->subs[idx].owner = tmp;
|
||||
ast_channel_context_set(tmp, i->context);
|
||||
if (!analog_lib_handles(i->sig, i->radio, i->oprmode)) {
|
||||
@@ -9758,7 +9758,7 @@ static struct ast_channel *dahdi_new(struct dahdi_pvt *i, int state, int startpb
|
||||
}
|
||||
/* If we've been told "no ADSI" then enforce it */
|
||||
if (!i->adsi)
|
||||
tmp->adsicpe = AST_ADSI_UNAVAILABLE;
|
||||
ast_channel_adsicpe_set(tmp, AST_ADSI_UNAVAILABLE);
|
||||
if (!ast_strlen_zero(i->exten))
|
||||
ast_channel_exten_set(tmp, i->exten);
|
||||
if (!ast_strlen_zero(i->rdnis)) {
|
||||
@@ -9927,7 +9927,7 @@ static int canmatch_featurecode(const char *exten)
|
||||
static void *analog_ss_thread(void *data)
|
||||
{
|
||||
struct ast_channel *chan = data;
|
||||
struct dahdi_pvt *p = chan->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(chan);
|
||||
char exten[AST_MAX_EXTENSION] = "";
|
||||
char exten2[AST_MAX_EXTENSION] = "";
|
||||
unsigned char buf[256];
|
||||
@@ -10437,10 +10437,10 @@ static void *analog_ss_thread(void *data)
|
||||
struct dahdi_pvt *pbridge = NULL;
|
||||
/* set up the private struct of the bridged one, if any */
|
||||
if (nbridge && ast_bridged_channel(nbridge))
|
||||
pbridge = ast_bridged_channel(nbridge)->tech_pvt;
|
||||
pbridge = ast_channel_tech_pvt(ast_bridged_channel(nbridge));
|
||||
if (nbridge && pbridge &&
|
||||
(nbridge->tech == &dahdi_tech) &&
|
||||
(ast_bridged_channel(nbridge)->tech == &dahdi_tech) &&
|
||||
(ast_channel_tech(nbridge) == &dahdi_tech) &&
|
||||
(ast_channel_tech(ast_bridged_channel(nbridge)) == &dahdi_tech) &&
|
||||
ISTRUNK(pbridge)) {
|
||||
int func = DAHDI_FLASH;
|
||||
/* Clear out the dial buffer */
|
||||
@@ -10508,7 +10508,7 @@ static void *analog_ss_thread(void *data)
|
||||
/* If we want caller id, we're in a prering state due to a polarity reversal
|
||||
* and we're set to use a polarity reversal to trigger the start of caller id,
|
||||
* grab the caller id and wait for ringing to start... */
|
||||
} else if (p->use_callerid && (chan->_state == AST_STATE_PRERING &&
|
||||
} else if (p->use_callerid && (ast_channel_state(chan) == AST_STATE_PRERING &&
|
||||
(p->cid_start == CID_START_POLARITY || p->cid_start == CID_START_POLARITY_IN || p->cid_start == CID_START_DTMF_NOALERT))) {
|
||||
/* If set to use DTMF CID signalling, listen for DTMF */
|
||||
if (p->cid_signalling == CID_SIG_DTMF) {
|
||||
@@ -10549,8 +10549,8 @@ static void *analog_ss_thread(void *data)
|
||||
res = 4000;/* This is a typical OFF time between rings. */
|
||||
}
|
||||
ast_frfree(f);
|
||||
if (chan->_state == AST_STATE_RING ||
|
||||
chan->_state == AST_STATE_RINGING)
|
||||
if (ast_channel_state(chan) == AST_STATE_RING ||
|
||||
ast_channel_state(chan) == AST_STATE_RINGING)
|
||||
break; /* Got ring */
|
||||
}
|
||||
ast_clear_flag(chan, AST_FLAG_END_DTMF_ONLY);
|
||||
@@ -10661,8 +10661,8 @@ static void *analog_ss_thread(void *data)
|
||||
goto quit;
|
||||
}
|
||||
ast_frfree(f);
|
||||
if (chan->_state == AST_STATE_RING ||
|
||||
chan->_state == AST_STATE_RINGING)
|
||||
if (ast_channel_state(chan) == AST_STATE_RING ||
|
||||
ast_channel_state(chan) == AST_STATE_RINGING)
|
||||
break; /* Got ring */
|
||||
}
|
||||
|
||||
@@ -11027,7 +11027,7 @@ static void *analog_ss_thread(void *data)
|
||||
my_handle_notify_message(chan, p, flags, -1);
|
||||
|
||||
ast_setstate(chan, AST_STATE_RING);
|
||||
chan->rings = 1;
|
||||
ast_channel_rings_set(chan, 1);
|
||||
p->ringt = p->ringt_base;
|
||||
res = ast_pbx_run(chan);
|
||||
if (res) {
|
||||
@@ -16689,9 +16689,9 @@ static int dahdi_pri_cc_agent_init(struct ast_cc_agent *agent, struct ast_channe
|
||||
struct sig_pri_chan *pvt_chan;
|
||||
int res;
|
||||
|
||||
ast_assert(!strcmp(chan->tech->type, "DAHDI"));
|
||||
ast_assert(!strcmp(ast_channel_tech(chan)->type, "DAHDI"));
|
||||
|
||||
pvt = chan->tech_pvt;
|
||||
pvt = ast_channel_tech_pvt(chan);
|
||||
if (dahdi_sig_pri_lib_handles(pvt->sig)) {
|
||||
pvt_chan = pvt->sig_pvt;
|
||||
} else {
|
||||
@@ -18904,7 +18904,7 @@ static int dahdi_sendtext(struct ast_channel *c, const char *text)
|
||||
#define ASCII_BYTES_PER_CHAR 80
|
||||
|
||||
unsigned char *buf,*mybuf;
|
||||
struct dahdi_pvt *p = c->tech_pvt;
|
||||
struct dahdi_pvt *p = ast_channel_tech_pvt(c);
|
||||
struct pollfd fds[1];
|
||||
int size,res,fd,len,x;
|
||||
int bytes=0;
|
||||
|
Reference in New Issue
Block a user