mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 20:20:07 +00:00
s/pu->chan/chan in a few places;
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@20626 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -565,8 +565,7 @@ static int builtin_blindtransfer(struct ast_channel *chan, struct ast_channel *p
|
||||
|
||||
set_peers(&transferer, &transferee, peer, chan, sense);
|
||||
transferer_real_context = real_ctx(transferer, transferee);
|
||||
/* Start autoservice on chan while we talk
|
||||
to the originator */
|
||||
/* Start autoservice on chan while we talk to the originator */
|
||||
ast_indicate(transferee, AST_CONTROL_HOLD);
|
||||
ast_autoservice_start(transferee);
|
||||
ast_moh_start(transferee, NULL);
|
||||
@@ -680,8 +679,7 @@ static int builtin_atxfer(struct ast_channel *chan, struct ast_channel *peer, st
|
||||
ast_log(LOG_DEBUG, "Executing Attended Transfer %s, %s (sense=%d) XXX\n", chan->name, peer->name, sense);
|
||||
set_peers(&transferer, &transferee, peer, chan, sense);
|
||||
transferer_real_context = real_ctx(transferer, transferee);
|
||||
/* Start autoservice on chan while we talk
|
||||
to the originator */
|
||||
/* Start autoservice on chan while we talk to the originator */
|
||||
ast_indicate(transferee, AST_CONTROL_HOLD);
|
||||
ast_autoservice_start(transferee);
|
||||
ast_moh_start(transferee, NULL);
|
||||
@@ -1459,6 +1457,7 @@ static void *do_parking_thread(void *ignore)
|
||||
pl = NULL;
|
||||
pu = parkinglot;
|
||||
while(pu) {
|
||||
struct ast_channel *chan = pu->chan; /* shorthand */
|
||||
int tms; /* timeout for this item */
|
||||
int x; /* fd index in channel */
|
||||
struct ast_context *con;
|
||||
@@ -1472,8 +1471,8 @@ static void *do_parking_thread(void *ignore)
|
||||
tms = ast_tvdiff_ms(ast_tvnow(), pu->start);
|
||||
if (tms > pu->parkingtime) {
|
||||
/* Stop music on hold */
|
||||
ast_moh_stop(pu->chan);
|
||||
ast_indicate(pu->chan, AST_CONTROL_UNHOLD);
|
||||
ast_moh_stop(chan);
|
||||
ast_indicate(chan, AST_CONTROL_UNHOLD);
|
||||
/* Get chan, exten from derived kludge */
|
||||
if (pu->peername[0]) {
|
||||
peername = ast_strdupa(pu->peername);
|
||||
@@ -1492,16 +1491,11 @@ static void *do_parking_thread(void *ignore)
|
||||
snprintf(returnexten, sizeof(returnexten), "%s||t", peername);
|
||||
ast_add_extension2(con, 1, peername, 1, NULL, NULL, "Dial", strdup(returnexten), FREE, registrar);
|
||||
}
|
||||
ast_copy_string(pu->chan->exten, peername, sizeof(pu->chan->exten));
|
||||
ast_copy_string(pu->chan->context, parking_con_dial, sizeof(pu->chan->context));
|
||||
pu->chan->priority = 1;
|
||||
|
||||
set_c_e_p(chan, parking_con_dial, peername, 1);
|
||||
} else {
|
||||
/* They've been waiting too long, send them back to where they came. Theoretically they
|
||||
should have their original extensions and such, but we copy to be on the safe side */
|
||||
ast_copy_string(pu->chan->exten, pu->exten, sizeof(pu->chan->exten));
|
||||
ast_copy_string(pu->chan->context, pu->context, sizeof(pu->chan->context));
|
||||
pu->chan->priority = pu->priority;
|
||||
set_c_e_p(chan, pu->context, pu->exten, pu->priority);
|
||||
}
|
||||
|
||||
manager_event(EVENT_FLAG_CALL, "ParkedCallTimeOut",
|
||||
@@ -1509,16 +1503,16 @@ static void *do_parking_thread(void *ignore)
|
||||
"Channel: %s\r\n"
|
||||
"CallerID: %s\r\n"
|
||||
"CallerIDName: %s\r\n"
|
||||
,pu->parkingnum, pu->chan->name
|
||||
,(pu->chan->cid.cid_num ? pu->chan->cid.cid_num : "<unknown>")
|
||||
,(pu->chan->cid.cid_name ? pu->chan->cid.cid_name : "<unknown>")
|
||||
,pu->parkingnum, chan->name
|
||||
,(chan->cid.cid_num ? chan->cid.cid_num : "<unknown>")
|
||||
,(chan->cid.cid_name ? chan->cid.cid_name : "<unknown>")
|
||||
);
|
||||
|
||||
if (option_verbose > 1)
|
||||
ast_verbose(VERBOSE_PREFIX_2 "Timeout for %s parked on %d. Returning to %s,%s,%d\n", pu->chan->name, pu->parkingnum, pu->chan->context, pu->chan->exten, pu->chan->priority);
|
||||
ast_verbose(VERBOSE_PREFIX_2 "Timeout for %s parked on %d. Returning to %s,%s,%d\n", chan->name, pu->parkingnum, chan->context, chan->exten, chan->priority);
|
||||
/* Start up the PBX, or hang them up */
|
||||
if (ast_pbx_start(pu->chan)) {
|
||||
ast_log(LOG_WARNING, "Unable to restart the PBX for user on '%s', hanging them up...\n", pu->chan->name);
|
||||
if (ast_pbx_start(chan)) {
|
||||
ast_log(LOG_WARNING, "Unable to restart the PBX for user on '%s', hanging them up...\n", chan->name);
|
||||
ast_hangup(pu->chan);
|
||||
}
|
||||
/* And take them out of the parking lot */
|
||||
@@ -1540,16 +1534,16 @@ static void *do_parking_thread(void *ignore)
|
||||
for (x = 0; x < AST_MAX_FDS; x++) {
|
||||
struct ast_frame *f;
|
||||
|
||||
if (pu->chan->fds[x] < 0 || (!FD_ISSET(pu->chan->fds[x], &rfds) && !FD_ISSET(pu->chan->fds[x], &efds)))
|
||||
if (chan->fds[x] < 0 || (!FD_ISSET(chan->fds[x], &rfds) && !FD_ISSET(chan->fds[x], &efds)))
|
||||
continue;
|
||||
|
||||
if (FD_ISSET(pu->chan->fds[x], &efds))
|
||||
ast_set_flag(pu->chan, AST_FLAG_EXCEPTION);
|
||||
if (FD_ISSET(chan->fds[x], &efds))
|
||||
ast_set_flag(chan, AST_FLAG_EXCEPTION);
|
||||
else
|
||||
ast_clear_flag(pu->chan, AST_FLAG_EXCEPTION);
|
||||
pu->chan->fdno = x;
|
||||
ast_clear_flag(chan, AST_FLAG_EXCEPTION);
|
||||
chan->fdno = x;
|
||||
/* See if they need servicing */
|
||||
f = ast_read(pu->chan);
|
||||
f = ast_read(chan);
|
||||
if (!f || ((f->frametype == AST_FRAME_CONTROL) && (f->subclass == AST_CONTROL_HANGUP))) {
|
||||
if (f)
|
||||
ast_frfree(f);
|
||||
@@ -1558,15 +1552,15 @@ static void *do_parking_thread(void *ignore)
|
||||
"Channel: %s\r\n"
|
||||
"CallerID: %s\r\n"
|
||||
"CallerIDName: %s\r\n"
|
||||
,pu->parkingnum, pu->chan->name
|
||||
,(pu->chan->cid.cid_num ? pu->chan->cid.cid_num : "<unknown>")
|
||||
,(pu->chan->cid.cid_name ? pu->chan->cid.cid_name : "<unknown>")
|
||||
,pu->parkingnum, chan->name
|
||||
,(chan->cid.cid_num ? chan->cid.cid_num : "<unknown>")
|
||||
,(chan->cid.cid_name ? chan->cid.cid_name : "<unknown>")
|
||||
);
|
||||
|
||||
/* There's a problem, hang them up*/
|
||||
if (option_verbose > 1)
|
||||
ast_verbose(VERBOSE_PREFIX_2 "%s got tired of being parked\n", pu->chan->name);
|
||||
ast_hangup(pu->chan);
|
||||
ast_verbose(VERBOSE_PREFIX_2 "%s got tired of being parked\n", chan->name);
|
||||
ast_hangup(chan);
|
||||
/* And take them out of the parking lot */
|
||||
if (pl)
|
||||
pl->next = pu->next;
|
||||
@@ -1586,9 +1580,9 @@ static void *do_parking_thread(void *ignore)
|
||||
} else {
|
||||
/* XXX Maybe we could do something with packets, like dial "0" for operator or something XXX */
|
||||
ast_frfree(f);
|
||||
if (pu->moh_trys < 3 && !pu->chan->generatordata) {
|
||||
if (pu->moh_trys < 3 && !chan->generatordata) {
|
||||
ast_log(LOG_DEBUG, "MOH on parked call stopped by outside source. Restarting.\n");
|
||||
ast_moh_start(pu->chan, NULL);
|
||||
ast_moh_start(chan, NULL);
|
||||
pu->moh_trys++;
|
||||
}
|
||||
goto std; /* XXX Ick: jumping into an else statement??? XXX */
|
||||
@@ -1598,11 +1592,11 @@ static void *do_parking_thread(void *ignore)
|
||||
if (x >= AST_MAX_FDS) {
|
||||
std: for (x=0; x<AST_MAX_FDS; x++) {
|
||||
/* Keep this one for next one */
|
||||
if (pu->chan->fds[x] > -1) {
|
||||
FD_SET(pu->chan->fds[x], &nrfds);
|
||||
FD_SET(pu->chan->fds[x], &nefds);
|
||||
if (pu->chan->fds[x] > max)
|
||||
max = pu->chan->fds[x];
|
||||
if (chan->fds[x] > -1) {
|
||||
FD_SET(chan->fds[x], &nrfds);
|
||||
FD_SET(chan->fds[x], &nefds);
|
||||
if (chan->fds[x] > max)
|
||||
max = chan->fds[x];
|
||||
}
|
||||
}
|
||||
/* Keep track of our longest wait */
|
||||
|
Reference in New Issue
Block a user