Questions about elastixdialer of call center

gd5gd

Joined
May 25, 2008
Messages
16
Likes
0
Points
0
#1
After login call center agent, elastixdialer can't automatically make calls. I check the follows:

1. Call list was uploaded to the table calls in mysql
2. Daemon of elastixdialer was started before login
3. Queue in outbound Campaigns was set.

Questions

1. Is there any procedure that I omitted before making outbound call?
2. How to debug elastixdialer?
3. Is there any logs related to call center module?

I took a look to /opt/elastix/dialer/dialerd but didn't get any idea because I am a newbie and not very good in php. Also, decsriptions in spanish in dialerd is another issue.

Thank you

Frankie
 

a_villacis

Joined
Jun 2, 2008
Messages
36
Likes
0
Points
0
#2
Hello,

The dialing daemon writes out a log in the same directory as the startup script. On your case it would be at /opt/elastix/dialer/dialerd.log . This log shows startup information, and can also optionally show debugging information on the campaigns the dialer thinks it should do (according to the current date), and the number of free agents that are available to take calls.

To enable debugging, open up the file DialerProcess.class.php and search for the line that reads:

var $DEBUG = FALSE;

It should be around line 58 of the file. To enable debugging, change it to read:

var $DEBUG = TRUE;

and restart the dialer. The log should now display dumps of the structures that keep track of the campaigns and current calls.

If nothing obvious shows up (like a failure to connect to the database, for instance, or a failure to connect to the Asterisk Manager), please attach your log (with debug enabled) to your reply. Make sure that the campaign dates are still within bounds.

Sometimes agents are created on one queue, but the dialer is then configured to use a different queue to check for idle agents. Please make sure that agents are registered under the same queue as the one configured for the dialer. Please also ensure that the agents are registered as belonging to exactly one queue - the dialer does not (yet) support handling agents that belong to multiple queues, and undefined behavior arises if such a situation occurs (usually that the last seen queue is the one used, leading to the dialer ignoring some idle agents).

Hope this helps. Waiting for your reply...
 

gd5gd

Joined
May 25, 2008
Messages
16
Likes
0
Points
0
#3
First of all, billion thanks for your help. My Elastix version is 1.1 (Alpha2) with call_center_1.0-2.tar.gz. The following information were logged after I enabled debug of dialer process together with asterisk and mysql. Thank you.

dialerd.log:

2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede leer lista de campanas - DB Error: no database selected
2008/06/03 13:00 : (ProcessMonitor) PID = 3545, dialerd received signal #15, terminating...
2008/06/03 13:00 : (ProcessMonitor) Forwarding signal #15 to DialerProcess...
2008/06/03 13:00 : (ProcessMonitor) Completed signal forwarding to DialerProcess
2008/06/03 13:00 : (DialerProcess) PID = 3548, process received signal 15, terminating...
2008/06/03 13:00 : (DialerProcess) ERR: no se puede limpiar registro de llamada (actual) - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) ERR: no se puede marcar registro de llamada (log) - DB Error: no database selected
2008/06/03 13:00 : (DialerProcess) PID = 3548, process terminated normally.
2008/06/03 13:00 : (ProcessMonitor) PID = 3545, process terminated normally.
2008/06/03 13:02 : Main log opened correctly
----------------------------------------
Marcador predictivo en PHP
(PHP implementation, v1.0)
Powered by Palosanto Solutions

Please report bugs/issues at:
a_villacis@palosanto.com
----------------------------------------
2008/06/03 13:02 : Main log located at /opt/elastix/dialer/dialerd.log
2008/06/03 13:02 : (ProcessMonitor) PID = 2412, monitor started normally
2008/06/03 13:02 : (DialerProcess) starting up process...
2008/06/03 13:02 : (DialerProcess) Usando host de base de datos: localhost
2008/06/03 13:02 : (DialerProcess) Usando host de Asterisk Manager: 127.0.0.1
2008/06/03 13:02 : (DialerProcess) Usando umbral de llamada corta: 10 segundos.
2008/06/03 13:02 : (DialerProcess) INFO: Iniciando sesión de control de Asterisk...
2008/06/03 13:02 : (DialerProcess) PID = 2428, process started normally
2008/06/03 13:03 : (DialerProcess) DEBUG: estado actual de campanas => Array
(
[campanias] => Array
(
)

[llamadas] => Array
(
)

)

2008/06/03 13:03 : (DialerProcess) DEBUG: estado actual de llamadas esperadas => Array
(
)

2008/06/03 13:03 : (DialerProcess) DEBUG: estado actual de campanas => Array
(
[campanias] => Array
(
)

[llamadas] => Array
(
)

)

2008/06/03 13:03 : (DialerProcess) DEBUG: estado actual de llamadas esperadas => Array
(
)

2008/06/03 13:04 : (DialerProcess) DEBUG: estado actual de campanas => Array
(
[campanias] => Array
(
)

[llamadas] => Array
(
)

)

2008/06/03 13:04 : (DialerProcess) DEBUG: estado actual de llamadas esperadas => Array
(
)

2008/06/03 13:04 : (DialerProcess) DEBUG: originateresponse:
params => Array
(
[Event] => OriginateResponse
[Privilege] => call,all
[ActionID] => id_nada
[Response] => Success
[Channel] => SIP/3002-09c6e168
[Context] => from-internal
[Exten] => *88883002
[Reason] => 4
[Uniqueid] => 1212469474.0
[CallerID] => <unknown>
[CallerIDNum] => <unknown>
[CallerIDName] => <unknown>
)

mysql:

mysql> select * from calls;
+----+-------------+-----------+--------+----------+---------------+------------+----------+---------+----------+----------+----------+----------------------+---------------+
| id | id_campaign | phone | status | uniqueid | fecha_llamada | start_time | end_time | retries | duration | id_agent | transfer | datetime_entry_queue | duration_wait |
+----+-------------+-----------+--------+----------+---------------+------------+----------+---------+----------+----------+----------+----------------------+---------------+
| 1 | 1 | 996833777 | NULL | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL |
| 2 | 1 | 924288872 | NULL | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL |
+----+-------------+-----------+--------+----------+---------------+------------+----------+---------+----------+----------+----------+----------------------+---------------+
2 rows in set (0.00 sec)

mysql> select * from campaign;
+----+-------+---------------+--------------+--------------+-------------+---------+-------+---------------+-------+-------------+-----------------+----------+------------+-------------------+---------+
| id | name | datetime_init | datetime_end | daytime_init | daytime_end | retries | trunk | context | queue | max_canales | num_completadas | promedio | desviacion | script | estatus |
+----+-------+---------------+--------------+--------------+-------------+---------+-------+---------------+-------+-------------+-----------------+----------+------------+-------------------+---------+
| 1 | Camp1 | 2008-06-01 | 2008-08-29 | 14:56:00 | 14:56:00 | 3 | ZAP/2 | from-internal | 7002 | 3 | NULL | NULL | NULL | test for outbound | A |
+----+-------+---------------+--------------+--------------+-------------+---------+-------+---------------+-------+-------------+-----------------+----------+------------+-------------------+---------+
1 row in set (0.00 sec)

mysql> select * from queue_call_entry;
+----+-------+-----------+-----------+----------+----------+---------+-------------------------+
| id | queue | date_init | time_init | date_end | time_end | estatus | script |
+----+-------+-----------+-----------+----------+----------+---------+-------------------------+
| 1 | 7002 | NULL | NULL | NULL | NULL | I | test for incoming |
+----+-------+-----------+-----------+----------+----------+---------+-------------------------+

asterisk:

pbx*CLI> agent show
3002 (Agent002) not logged in (musiconhold is 'default')
3001 (Agent001) not logged in (musiconhold is 'default')
2 agents configured [0 online , 2 offline]

pbx*CLI> show queues
7002 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0, SL:0.0% within 0s
Members:
Local/3002@from-internal/n (Not in use) has taken no calls yet
No Callers

7001 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0, SL:0.0% within 0s
Members:
Local/3001@from-internal/n (Not in use) has taken no calls yet
No Callers

default has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0, SL:0.0% within 0s
No Members
No Callers

pbx*CLI> show channels
Channel Location State Application(Data)
0 active channels
0 active calls

pbx*CLI> zap show channels
Chan Extension Context Language MOH Interpret
pseudo default default
1 from-pstn default
2 from-pstn default
 

a_villacis

Joined
Jun 2, 2008
Messages
36
Likes
0
Points
0
#4
The output you have posted is interpreted as follows:

The result of 'SELECT * FROM campaign' shows both fields of 'daytime_init' and 'daytime_end' set to the exact same time. This would mean that the campaign starts and ends at the same moment, and the dialer program won't pick up this campaign because it expects the start time to be different from the end time (usually less than the end time). You can modify the campaign properties through the Web interface and set one of the two times to an appropriate hour.

In addition, your Asterisk output shows two agents configured, but neither one is logged into the expected queue (7002). Even if the campaign were to be picked up, the dialer program would see an empty queue and would therefore wait until at least one agent logs into that queue.

Those are the two main problems, as far as I can tell. Please fix them and tell us back whether your problem was solved.
 

gd5gd

Joined
May 25, 2008
Messages
16
Likes
0
Points
0
#5
After changed all as your suggestion, the result was similar to before. The following information are logged after agent login:

Dialerd.log:

no hay agentes libres ni a punto de desocuparse!

2008/06/04 00:00 : (DialerProcess) DEBUG: estado actual de llamadas esperadas => Array
(
[7002] => 0
)

2008/06/04 00:00 : (DialerProcess) DEBUG: estado actual de campañas => Array
(
[campanias] => Array
(
)

[llamadas] => Array
(
)

)

2008/06/04 00:00 : (DialerProcess) DEBUG: estado actual de llamadas esperadas => Array
(
[7002] => 0
)

Asterisk:

pbx*CLI> show agents
3002 (Agent002) not logged in (musiconhold is 'default')
3001 (Agent001) not logged in (musiconhold is 'default')
3003 (Agent003) logged in on SIP/3003-09392af8 is idle (musiconhold is 'default')
3 agents configured [1 online , 2 offline]

pbx*CLI> show channels
Channel Location State Application(Data)
SIP/3003-09392af8 *88883003@from-inter Up AgentLogin(3003)
1 active channel
1 active call

pbx*CLI> show queues
7002 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0,
SL:0.0% within 0s
Members:
Local/3003@from-internal/n (Not in use) has taken no calls yet
Local/3002@from-internal/n (Not in use) has taken no calls yet
No Callers

7001 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0,
SL:0.0% within 0s
Members:
Local/3001@from-internal/n (Not in use) has taken no calls yet
No Callers

default has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0,
SL:0.0% within 0s
No Members
No Callers


mysql:

mysql> select * from queue_call_entry;
+----+-------+-----------+-----------+----------+----------+---------+-------------------------+
| id | queue | date_init | time_init | date_end | time_end | estatus | script |
+----+-------+-----------+-----------+----------+----------+---------+-------------------------+
| 1 | 7002 | NULL | NULL | NULL | NULL | I | test for incoming |
+----+-------+-----------+-----------+----------+----------+---------+-------------------------+
1 row in set (0.00 sec)

mysql> select * from campaign;
+----+-------+---------------+--------------+--------------+-------------+---------+-------+---------------+-------+-------------+-----------------+----------+------------+-------------------+---------+
| id | name | datetime_init | datetime_end | daytime_init | daytime_end | retries | trunk | context | queue | max_canales | num_completadas | promedio | desviacion | script | estatus |
+----+-------+---------------+--------------+--------------+-------------+---------+-------+---------------+-------+-------------+-----------------+----------+------------+-------------------+---------+
| 1 | Camp1 | 2008-06-01 | 2008-08-29 | 14:56:00 | 23:59:00 | 3 | ZAP/2 | from-internal | 7002 | 3 | NULL | NULL | NULL | test for outbound | A |
+----+-------+---------------+--------------+--------------+-------------+---------+-------+---------------+-------+-------------+-----------------+----------+------------+-------------------+---------+
1 row in set (0.00 sec)

Both in/outbound call of Ext. 3003 and queue 7002 are work fine when it worked as an individual extension. I use the translator over internet, dialerd seems mentioned that no agent available. However, I checked that agent was login by command prompt of asterisk.

Any more suggestion?

Frankie
 

gd5gd

Joined
May 25, 2008
Messages
16
Likes
0
Points
0
#6
Dear Villacis,

Please also take a look to my queues_additonal.conf and agents.conf

queues_addtional.conf:

[7002]
announce-frequency=15
periodic-announce-frequency=0
queue-callswaiting=queue-callswaiting
queue-thankyou=queue-thankyou
queue-thereare=queue-thereare
queue-youarenext=queue-youarenext
retry=5
strategy=ringall
timeout=15
monitor-join=yes
monitor-format=wav
announce-holdtime=yes
eventmemberstatus=no
eventwhencalled=yes
joinempty=yes
leavewhenempty=no
maxlen=0
member=Local/3002@from-internal/n,0
wrapuptime=0
member=Local/3003@from-internal/n,0

agents.conf

agent => 3002,3002,Agent002
agent => 3001,3001,Agent001
agent => 3003,3003,Agent003

Thank you

Frankie
 

a_villacis

Joined
Jun 2, 2008
Messages
36
Likes
0
Points
0
#7
he short explanation is that the agents were created incorrectly. The long explanation follows.



For the dialer to work correctly, the user needs to declare agents in *two* places. One of them is the call center interface at Call Center-->Agents in the Web interface. All agents that are usable for call-center calls should be listed there.



The other place is the queue configuration at PBX-->PBX Configuration-->Queues in the Web interface. Every queue that should be used for call centers should have a list of static agents. The call-center agents should be declared as "A###" where ### represents the number assigned at the Call Center-->Agents module. For example, if the agent is assigned number 8001, it should be placed at the appropriate queue at the PBX configuration as "A8001,0". This convention is also explained in the mouse-over on the label "static agents:" at the PBX configuration.
 

gd5gd

Joined
May 25, 2008
Messages
16
Likes
0
Points
0
#8
Dear Villacis,

Thank you very much for your information. It is my mistake before try call center module. After changed the agent no. from 3002 to A3002. Inbound test is successful. However, outbound still not work. Any other point that I should pay attention?

Furthermore, I notice that show queues in CLI indicate that "Agent/3002 (Not in use) has taken no calls yet". Is it another issue? Also, please take a look to the following log:

elastix*CLI> show agents
3001 (3001) not logged in (musiconhold is 'default')
3002 (3002) logged in on SIP/4442-092960f0 is idle (musiconhold is 'default')
3003 (3003) not logged in (musiconhold is 'default')
3 agents configured [1 online , 2 offline]

elastix*CLI> show queues
7002 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0, SL:0.0% within 0s
Members:
Agent/3003 (Unavailable) has taken no calls yet
Agent/3002 (Not in use) has taken no calls yet
No Callers

7001 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0, SL:0.0% within 0s
Members:
Agent/3001 (Unavailable) has taken no calls yet
No Callers

default has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0, SL:0.0% within 0s
No Members
No Callers


2008/06/04 17:29 : (DialerProcess) DEBUG: originateresponse:
params => Array
(
[Event] => OriginateResponse
[Privilege] => call,all
[ActionID] => id_nada
[Response] => Success
[Channel] => SIP/4442-092960f0
[Context] => from-internal
[Exten] => *88883002
[Reason] => 4
[Uniqueid] => 1212571743.27
[CallerID] => <unknown>
[CallerIDNum] => <unknown>
[CallerIDName] => <unknown>
)

2008/06/04 17:29 : (DialerProcess) DEBUG: estado actual de campaA±as => Array
(
[campanias] => Array
(
)

[llamadas] => Array
(
)

)

2008/06/04 17:29 : (DialerProcess) DEBUG: estado actual de llamadas esperadas => Array
(
)

2008/06/04 17:29 : (DialerProcess) DEBUG: estado actual de campaA±as => Array
(
[campanias] => Array
(
)

[llamadas] => Array
(
)

)
 

a_villacis

Joined
Jun 2, 2008
Messages
36
Likes
0
Points
0
#9
Try to keep separate queues for the incoming campaign and the outgoing campaign (eg. 7002 for outgoing, 7003 for incoming). Also please try to assign separate agents for each campaign. The program is supposed to be capable of handling multiple campaigns simultaneously, but each one must run in its own queue. In particular, you should not configure the same queue for both an incoming campaign and an outgoing campaign.
 

gd5gd

Joined
May 25, 2008
Messages
16
Likes
0
Points
0
#10
Dear Villacis,

Since Elastix1.1alpha2 caused kernel panic to my system 2 times, I downgraded it to Elastix 1.0-1 with call center module 1.0. (call center module 1.1 couldn't be installed into Elastix 1.1, right?) After downgraded, I followed your instruction by separating agents and queues for inbound and outbound. During first test of outbound, the calls could be dialed out but nothing pop-up and no form displayed in the page. Since I only inputted 2 telephone no. into the campaign for testing of outbound, status of campaign automatically changed to be terminated. Is it normal? After that, I created another campaign to keep on testing outbound. However, dialer stopped to work as similar situation as before even I restarted daemon of elastixdialer. I confess that I didn't change any parameter of agent and queues, I only created a new campaign. Any other suggestion?

Frankie
 

gd5gd

Joined
May 25, 2008
Messages
16
Likes
0
Points
0
#11
Furthermore, how can I manually make a outbound call through elastixdialer in order to debug it?

Frankie
 

gd5gd

Joined
May 25, 2008
Messages
16
Likes
0
Points
0
#12
Should I login the queue 7002 by dialing 7002* before using any agent no.?

Frankie
 

gd5gd

Joined
May 25, 2008
Messages
16
Likes
0
Points
0
#13
If I added telephone number into an old campaign and change the status of old campaign from "T" to "A", dialer can dial new added telephone number for this old campaign. If I create a new campaign, dialer don't work. In campaign of mysql, all are the same except id. Anyone know where I should pay attention?

Frankie
 

a_villacis

Joined
Jun 2, 2008
Messages
36
Likes
0
Points
0
#14
Please post again a fresh log of your dialer instance, after all corrections. Again, check your incoming and outgoing queues are separate, and that the campaign is still within bounds. Also please post the output of the Asterisk Manager when the agents are supposed to be logged in, to see whether the agent configuration has been corrected.
 

kiosklim

Joined
Dec 24, 2010
Messages
23
Likes
0
Points
0
#15
Hey villacis!
i jus get this error while agent console is not dialing out any calls
heres part of my dialer log:


2011-01-25 09:14:17 : (DialerProcess) DEBUG: estado actual de llamadas esperadas => Array
(
)

2011-01-25 09:14:17 : (DialerProcess) ERR: al consultar informaci?n de trunk 'SIP/Justvoip' en FreePBX (1) - trunk no se encuentra!
2011-01-25 09:14:17 : (DialerProcess) ERR: no se puede construir plantilla de marcado a partir de trunk 'SIP/Justvoip'!
2011-01-25 09:14:17 : (DialerProcess) ERR: Revise los mensajes previos. Si el problema es un tipo de trunk no manejado, se requiere informar este tipo de trunk y/o actualizar su versi?n de CallCenter
2011-01-25 09:14:21 : (DialerProcess) ERR: al consultar informaci?n de trunk 'SIP/Justvoip' en FreePBX (1) - trunk no se encuentra!
2011-01-25 09:14:21 : (DialerProcess) ERR: no se puede construir plantilla de marcado a partir de trunk 'SIP/Justvoip'!
2011-01-25 09:14:21 : (DialerProcess) ERR: Revise los mensajes previos. Si el problema es un tipo de trunk no manejado, se requiere informar este tipo de trunk y/o actualizar su versi?n de CallCenter
2011-01-25 09:14:25 : (DialerProcess) ERR: al consultar informaci?n de trunk 'SIP/Justvoip' en FreePBX (1) - trunk no se encuentra!
2011-01-25 09:14:25 : (DialerProcess) ERR: no se puede construir plantilla de marcado a partir de trunk 'SIP/Justvoip'!
2011-01-25 09:14:25 : (DialerProcess) ERR: Revise los mensajes previos. Si el problema es un tipo de trunk no manejado, se requiere informar este tipo de trunk y/o actualizar su versi?n de CallCenter
2011-01-25 09:14:29 : (DialerProcess) ERR: al consultar informaci?n de trunk 'SIP/Justvoip' en FreePBX (1) - trunk no se encuentra!
2011-01-25 09:14:29 : (DialerProcess) ERR: no se puede construir plantilla de marcado a partir de trunk 'SIP/Justvoip'!
2011-01-25 09:14:29 : (DialerProcess) ERR: Revise los mensajes previos. Si el problema es un tipo de trunk no manejado, se requiere informar este tipo de trunk y/o actualizar su versi?n de CallCenter
2011-01-25 09:14:33 : (DialerProcess) ERR: al consultar informaci?n de trunk 'SIP/Justvoip' en FreePBX (1) - trunk no se encuentra!
2011-01-25 09:14:33 : (DialerProcess) ERR: no se puede construir plantilla de marcado a partir de trunk 'SIP/Justvoip'!
2011-01-25 09:14:33 : (DialerProcess) ERR: Revise los mensajes previos. Si el problema es un tipo de trunk no manejado, se requiere informar este tipo de trunk y/o actualizar su versi?n de CallCenter
2011-01-25 09:14:37 : (DialerProcess) ERR: al consultar informaci?n de trunk 'SIP/Justvoip' en FreePBX (1) - trunk no se encuentra!
2011-01-25 09:14:37 : (DialerProcess) ERR: no se puede construir plantilla de marcado a partir de trunk 'SIP/Justvoip'!
2011-01-25 09:14:37 : (DialerProcess) ERR: Revise los mensajes previos. Si el problema es un tipo de trunk no manejado, se requiere informar este tipo de trunk y/o actualizar su versi?n de CallCenter
2011-01-25 09:14:51 : (DialerProcess) DEBUG: estado actual de campa?as => Array
(
[historial_contestada] => Array
(
)

[campanias] => Array
(
)

[llamadas] => Array
(
)

)
 

Members online

No members online now.

Latest posts

Forum statistics

Threads
30,902
Messages
130,886
Members
17,563
Latest member
dineshr
Top