[asterisk-users] Problems with positions in callqueues

Jan-Hendrik Palic jpalic at tng.de
Thu Nov 15 03:51:34 CST 2007


Good morning,

we have two configured queues on our asterisk server in the company
and have the following problem with the caller positions in the queue.

In our test case we have 5 agents logged in the queue and five test
persons calling the queues. Sometimes, this case unfortunately cannot
more specified, the caller at the first position does never get an agent
but the callers after him get already get agents.

I do not really know where I have to look deeper to solve the problem.
Any hints would be appreciated.

---snip---
The queue.conf:

[general]
persistentmembers = yes
autofill = yes

[support-schlange-rec-n]
strategy = leastrecent
joinempty = yes
leavewhenempty = no
timeout = 60

music = default
weight = 1 ; see http://bugs.digium.com/view.php?id=9561

wrapuptime = 120 ; 120 Sekunden nachbearbeitungszeit fuer den agenten
bevor der naechste call durchgestellt wird

queue-youarenext = queue-youarenext
queue-thereare = queue-thereare
queue-callswaiting = queue-callswaiting
queue-holdtime = queue-holdtime
queue-minutes = queue-minutes
queue-thankyou = queue-thankyou
announce-holdtime = yes
announce-frequency = 15

[support-schlange-rec-y]
strategy = leastrecent
joinempty = yes
leavewhenempty = no
timeout = 60

monitor-format = wav
monitor-join = yes

music = default
weight = 1 ; see http://bugs.digium.com/view.php?id=9561

wrapuptime = 120 ; 120 Sekunden nachbearbeitungszeit fuer den agenten
bevor der naechste call durchgestellt wird

queue-youarenext = queue-youarenext
queue-thereare = queue-thereare
queue-callswaiting = queue-callswaiting
queue-holdtime = queue-holdtime
queue-minutes = queue-minutes
queue-thankyou = queue-thankyou
announce-holdtime = yes
announce-frequency = 15

---snap---

The queues in the dialplan:

---snip---

macro support-schlange(rec) {
        Set(QUEUE_PRIO=0);
        loop:
        Queue(support-schlange-rec-${rec}|tw);
        Noop(DIALSTATUS is ${DIALSTATUS});
        Noop(QUEUESTATUS is ${QUEUESTATUS});
        Hangup();
}

context support-schlange-rec-y {
        s => {
                Answer();

Set(MONITOR_FILENAME=${STRFTIME(,,%Y%m%d%H%M%S)}-${CDR(uniqueid)}-${CDR(src)}-${CDR(dst)});
                &support-schlange(y);
        }
}

context support-schlange-rec-n {
        s => {
                Answer();
                &support-schlange(n);
        }
}

context support-schlange-rec-q {
        s => {
                Answer();
                Set(monp=${RAND(0,99)});
                if( ${monp} < 10 ) {
                        rec-q:
                        SayDigits(20);
                        Read(rec-a,dictate/record_mode,1);
                        NoOp(rec-a is ${rec-a});
                        switch(${rec-a}) {
                                case 0: goto support-schlange-rec-n,s,1;
                                        break;
                                case 2: goto support-schlange-rec-y,s,1;
                                        break;
                                default: goto rec-q;
                        }
                }
                goto support-schlange-rec-n,s,1;
        }
}

---snap---

Thank you in advance for help. :)

Best regards

Jan-Hendrik Palic


-- 
Jan-Hendrik Palic
TNG - NETWORK MANAGEMENT GmbH
Projensdorfer Str. 324, D-24106 Kiel, Germany
mailto:jpalic at tng.de http://www.tng.de




More information about the asterisk-users mailing list