Hi.
I faced a problem with mod call centre strange
behaviour. I
have a queue with the strategy "ring all", queue has got 30 agents, all
of them always have status available, but only 6 agents can be really
active (e.g.: registered and connected) at a time.
Those 6 simultaneously
answer calls (e.g. can answer 200 on the same INVITE request before CANCEL arrives). Sometimes an agent might get stuck in the state "In a
queue call" while he is not in a call. In that case waiting agent stops getting calls.
CLI command:
> callcenter_config agent set state <agent> waiting
changes
state of an agent at DB, but call center still won't offer calls to
him. The only fix I found is to reload mod_callcenter, but during
reload all active calls would be dropped.
Calls are
coming one by one (maximum call rate I had ever seen at this site was
~600 calls/hour). But I didn't notice any correlation with the call
rate. Agent may get stuck at any time of day with any call rate ranging
between ~150 calls/hour to 400 calls/hour.
Most of calls last from 5 to 20 seconds.
I tried to switch from sqlite to odbc postgresql, but that changed nothing. Currently switch is connected to ODBC Postgresql.
OS version:
Linux local.pbx 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) x86_64 GNU/Linux
FS version:
FreeSWITCH version: 1.6.6+git~20160111T201612Z~d2d0b3283a~64bit (git d2d0b32 2016-01-11 20:16:12Z 64bit)
sqlite package:
llibsqlite3-0:amd64 3.8.7.1-1+deb8u1 amd64 SQLite 3 shared library
PostgreSQL / ODBC packages:
odbc-postgresql:amd64 1:09.03.0300-1 amd64 ODBC driver for PostgreSQL
postgresql-9.4 9.4.6-0+deb8u1 amd64 object-relational SQL database, version 9.4 server
XML configs:
callcenter/queues/queue.xml:
<queue name="dispatchers">
<param name="discard-abandoned-after" value="300"/>
<param name="max-wait-time" value="0"/>
<param name="max-wait-time-with-no-agent" value="120"/>
<param name="moh-sound" value="$${hold_music}"/>
<param name="strategy" value="ring-all"/>
<param name="tier-rule-no-agent-no-wait" value="false"/>
<param name="tier-rule-wait-multiply-level" value="true"/>
<param name="tier-rule-wait-second" value="300"/>
<param name="tier-rules-apply" value="false"/>
<param name="time-base-score" value="queue"/>
</queue>