|
|
|
@ -4020,45 +4020,27 @@ static int say_position(struct queue_ent *qe, int ringing)
|
|
|
|
|
/* Say we're next, if we are */
|
|
|
|
|
if (qe->pos == 1) {
|
|
|
|
|
res = play_file(qe->chan, qe->parent->sound_next);
|
|
|
|
|
if (res) {
|
|
|
|
|
goto playout;
|
|
|
|
|
}
|
|
|
|
|
if (!res) {
|
|
|
|
|
goto posout;
|
|
|
|
|
} else {
|
|
|
|
|
if (qe->parent->announceposition == ANNOUNCEPOSITION_MORE_THAN && qe->pos > qe->parent->announcepositionlimit){
|
|
|
|
|
/* More than Case*/
|
|
|
|
|
res = play_file(qe->chan, qe->parent->queue_quantity1);
|
|
|
|
|
if (res) {
|
|
|
|
|
goto playout;
|
|
|
|
|
}
|
|
|
|
|
res = ast_say_number(qe->chan, qe->parent->announcepositionlimit, AST_DIGIT_ANY, ast_channel_language(qe->chan), NULL); /* Needs gender */
|
|
|
|
|
if (res) {
|
|
|
|
|
goto playout;
|
|
|
|
|
/* Say there are more than N callers */
|
|
|
|
|
} else if (qe->parent->announceposition == ANNOUNCEPOSITION_MORE_THAN && qe->pos > qe->parent->announcepositionlimit) {
|
|
|
|
|
res = (
|
|
|
|
|
play_file(qe->chan, qe->parent->queue_quantity1) ||
|
|
|
|
|
ast_say_number(qe->chan, qe->parent->announcepositionlimit, AST_DIGIT_ANY,
|
|
|
|
|
ast_channel_language(qe->chan), NULL) || /* Needs gender */
|
|
|
|
|
play_file(qe->chan, qe->parent->queue_quantity2));
|
|
|
|
|
/* Say there are currently N callers waiting */
|
|
|
|
|
} else {
|
|
|
|
|
res = (
|
|
|
|
|
play_file(qe->chan, qe->parent->sound_thereare) ||
|
|
|
|
|
ast_say_number(qe->chan, qe->pos, AST_DIGIT_ANY,
|
|
|
|
|
ast_channel_language(qe->chan), NULL) || /* Needs gender */
|
|
|
|
|
play_file(qe->chan, qe->parent->sound_calls));
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
/* Normal Case */
|
|
|
|
|
res = play_file(qe->chan, qe->parent->sound_thereare);
|
|
|
|
|
if (res) {
|
|
|
|
|
goto playout;
|
|
|
|
|
}
|
|
|
|
|
res = ast_say_number(qe->chan, qe->pos, AST_DIGIT_ANY, ast_channel_language(qe->chan), NULL); /* Needs gender */
|
|
|
|
|
if (res) {
|
|
|
|
|
goto playout;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (qe->parent->announceposition == ANNOUNCEPOSITION_MORE_THAN && qe->pos > qe->parent->announcepositionlimit){
|
|
|
|
|
/* More than Case*/
|
|
|
|
|
res = play_file(qe->chan, qe->parent->queue_quantity2);
|
|
|
|
|
if (res) {
|
|
|
|
|
goto playout;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
res = play_file(qe->chan, qe->parent->sound_calls);
|
|
|
|
|
if (res) {
|
|
|
|
|
goto playout;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/* Round hold time to nearest minute */
|
|
|
|
|
avgholdmins = labs(((qe->parent->holdtime + 30) - (now - qe->start)) / 60);
|
|
|
|
|