Fix SETUP_ACK handling so that we change channels if so requested

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@14522 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.2
Matthew Fredrickson 19 years ago
parent 41feb1c7ff
commit b89b296584

@ -9031,15 +9031,19 @@ static void *pri_dchannel(void *vpri)
ast_log(LOG_WARNING, "Received SETUP_ACKNOWLEDGE on unconfigured channel %d/%d span %d\n",
PRI_SPAN(e->setup_ack.channel), PRI_CHANNEL(e->setup_ack.channel), pri->span);
} else {
ast_mutex_lock(&pri->pvts[chanpos]->lock);
pri->pvts[chanpos]->setup_ack = 1;
/* Send any queued digits */
for (x=0;x<strlen(pri->pvts[chanpos]->dialdest);x++) {
ast_log(LOG_DEBUG, "Sending pending digit '%c'\n", pri->pvts[chanpos]->dialdest[x]);
pri_information(pri->pri, pri->pvts[chanpos]->call,
pri->pvts[chanpos]->dialdest[x]);
}
ast_mutex_unlock(&pri->pvts[chanpos]->lock);
chanpos = pri_fixup_principle(pri, chanpos, e->ring.call);
if (chanpos > -1) {
ast_mutex_lock(&pri->pvts[chanpos]->lock);
pri->pvts[chanpos]->setup_ack = 1;
/* Send any queued digits */
for (x=0;x<strlen(pri->pvts[chanpos]->dialdest);x++) {
ast_log(LOG_DEBUG, "Sending pending digit '%c'\n", pri->pvts[chanpos]->dialdest[x]);
pri_information(pri->pri, pri->pvts[chanpos]->call,
pri->pvts[chanpos]->dialdest[x]);
}
ast_mutex_unlock(&pri->pvts[chanpos]->lock);
} else
ast_log(LOG_WARNING, "Unable to move channel %d!\n", e->setup_ack.channel);
}
break;
case PRI_EVENT_NOTIFY:

Loading…
Cancel
Save