forked from IssabelFoundation/callcenter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
2014 lines (1975 loc) · 112 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2.2.0-17 (SVN Revision 7678)
* CHANGED: Dialer: remove unused attribute "channel" from sqlinsertcalls message
sent to SQLWorkerProcess. Ported from CallCenterPRO.
* CHANGED: Dialer: implement explicit request flag for AMI credentials message.
This flag is used to discard credentials that were explicitly requested if the
initial credentials arrived in the meantime, to prevent unnecessary AMI
reconnections. Ported from CallCenterPRO.
* FIXED: Dialer: discard queue/agent enumeration if AMI connection is lost. This
prevents a stale enumeration from blocking valid future enumerations until
dialer restart. Ported from CallCenterPRO.
* FIXED: Dialer: prevent AMIEventProcess crash due to NULL object if a request
to refresh agents comes while in the middle of AMI disconnection. Ported from
CallCenterPRO.
* FIXED: Dialer: fix AMIEventProcess inability to reconnect to AMI after a
process crash, since SQLWorkerProcess had no way to be notified that the
instance needed to be sent the AMI credentials. Ported from CallCenterPRO.
* CHANGED: Added Turkish translations for Agent Console, Callcenter Config,
Ingoing Calls Success, Campaign Out, Campaign Monitoring.
* FIXED: Dialer: implement abort of pending but undialed calls in case of
database deadlock. This prevents undialed calls from accumulating in
AMIEventProcess and preventing future retries due to dialstring duplication.
Additionally update the campaign revision timestamp more often to prevent a
busy CPU loop in case of a persistent database error that prevents updates.
Ported from CallCenterPRO.
* FIXED: Agent Console: pick up and use agentconsole ECCP password if different
from the default. This prevents the console from breaking if eccp_users module
changes the password for the "agentconsole" user. Ported from CallCenterPRO.
2.2.0-16 (SVN Revision 7606)
* FIXED: Dialer: check whether /etc/localtime is a symlink and use it as an
additional way to find out the current timezone. Fixes part 2 of Elastix
bug #2507.
SVN Rev[7598]
* CHANGED: Dialer: do not call stream_select() with only empty socket arrays.
SVN Rev[7597]
* CHANGED: Added Russian translations by user Russian.
SVN Rev[7589]
* CHANGED: Break Report: prune all translations that are actually the same value
as the English one.
SVN Rev[7588]
* CHANGED: Trunks per Hour: prune all translations that are actually the same
value as the English one.
SVN Rev[7587]
* CHANGED: Incoming Call Monitoring: prune all translations that are actually
the same value as the English one.
SVN Rev[7586]
* CHANGED: Agent Monitoring: prune all translations that are actually the same
value as the English one.
SVN Rev[7585]
* CHANGED: Agent Information: prune all translations that are actually the same
value as the English one.
SVN Rev[7584]
* CHANGED: Queues: prune all translations that are actually the same value as
the English one.
SVN Rev[7583]
* CHANGED: Login Logout: prune all translations that are actually the same value
as the English one.
SVN Rev[7582]
* CHANGED: Ingoing Calls Success: prune all translations that are actually the
same value as the English one.
SVN Rev[7581]
* CHANGED: Hold Time: prune all translations that are actually the same value as
the English one.
SVN Rev[7580]
* CHANGED: Graphic Calls: prune all translations that are actually the same
value as the English one.
SVN Rev[7579]
* CHANGED: Form List: prune all translations that are actually the same value as
the English one.
SVN Rev[7578]
* CHANGED: Form Designer: prune all translations that are actually the same
value as the English one.
SVN Rev[7577]
* CHANGED: Dont Call List: prune all translations that are actually the same
value as the English one.
SVN Rev[7576]
* CHANGED: Clients: prune all translations that are actually the same value as
the English one.
SVN Rev[7575]
* CHANGED: Callback Extensions: prune all translations that are actually the
same value as the English one.
SVN Rev[7574]
* CHANGED: Calls Per Hour: prune all translations that are actually the same
value as the English one.
SVN Rev[7573]
* CHANGED: Calls Per Agent: prune all translations that are actually the same
value as the English one.
SVN Rev[7572]
* CHANGED: Calls Detail: prune all translations that are actually the same value
as the English one.
SVN Rev[7571]
* CHANGED: Break Administrator: prune all translations that are actually the
same value as the English one.
SVN Rev[7570]
* CHANGED: Agents: prune all translations that are actually the same value
as the English one.
SVN Rev[7569]
* FIXED: Dialer: remove event parameter not appearing in CallCenter Community.
SVN Rev[7567]
* CHANGED: Campaign Out: add documentation on the API for custom uploaders.
SVN Rev[7564]
* CHANGED: Campaign Out: move translations used only by CSV upload to CSV
plugin. Fix incorrect uploader translation path.
SVN Rev[7562]
* CHANGED: Campaign Out: prune all translations that are actually the same value
as the English one.
SVN Rev[7561]
* CHANGED: Campaign Out: factor out contact loading via CSV as a plugin and a
reference implementation of contact loader plugins.
SVN Rev[7559]
* FIXED: Dialer: restore periodic read of configuration in CampaignProcess.
SVN Rev[7558]
* CHANGED: Dialer: add timing for each SQL action in SQLWorkerProcess. Ported
from CallCenterPRO.
SVN Rev[7557]
* CHANGED: Dialer: perform SQL commit before removing the action and delivering
events, not after. Ported from CallCenterPRO.
SVN Rev[7556]
* CHANGED: Dialer: handle QueueCallerAbandon event. This is required to properly
mark as abandoned when a call times out in a queue and is transferred to a
second queue without immediately hanging up. Fixes Elastix bug #2500. Ported
from CallCenterPRO.
SVN Rev[7555]
* CHANGED: Dialer: minor optimization to save 1 RPC on idle queue. Ported from
CallCenterPRO.
SVN Rev[7554]
* CHANGED: Dialer: assume queue events for Asterisk 12 and later. Ported from
CallCenterPRO.
SVN Rev[7553]
* CHANGED: Dialer: make construirEventoProgresoLlamada private to
SQLWorkerProcess. Ported from CallCenterPRO.
SVN Rev[7552]
* CHANGED: Dialer: remove unused database connection code from ECCPProcess.
Ported from CallCenterPRO.
SVN Rev[7551]
* CHANGED: Dialer: move audit fixing to SQLWorkerProcess. Ported from
CallCenterPRO.
SVN Rev[7549]
* CHANGED: Dialer (ECCP): move call update events to SQLWorkerProcess. Ported
from CallCenterPRO.
SVN Rev[7548]
* CHANGED: Dialer (ECCP): move SQL code for call progress notification to
SQLWorkerProcess. This introduces a message handler to forward events from
SQLWorkerProcess, and uses it to forward call progress messages. Ported from
CallCenterPRO.
SVN Rev[7547]
* CHANGED: Dialer: remove debugging messages on code involving Hold. Ported
from CallCenterPRO.
SVN Rev[7546]
* CHANGED: Dialer: update UniqueidAgente when entering and leaving Hold. This
prevents the call from being mis-identified as a transferred call. Ported from
CallCenterPRO.
SVN Rev[7545]
* CHANGED: Dialer: use ParkedCallGiveUp event instead of a Hangup special case
to detect a call hangup while on a parking lot. Ported from CallCenterPRO.
SVN Rev[7544]
* CHANGED: Dialer: store new Uniqueid when parking call. This allows removal of
the Unlink handler. This also allows identification of the call that returns
from Hold without having to lookup the call by channel. Ported from
CallCenterPRO.
SVN Rev[7543]
* CHANGED: Dialer: store parkinglot extension from ParkedCall event. This allows
removal of the "parkedcalls show" command invocation in ECCPConn. Ported from
CallCenterPRO.
SVN Rev[7542]
* CHANGED: Dialer: reimplement Hold using Park instead of Redirect. This moves
responsibility for agent pause/unpause to Agente class, just like the other
pauses. Last use of AMI by ECCPProcess class is now removed. Ported from
CallCenterPRO.
SVN Rev[7541]
* CHANGED: Dialer: remove unused _cb_QueuePause callback from AMIEventProcess.
Ported from CallCenterPRO.
SVN Rev[7540]
* CHANGED: Dialer: add call parking commands to AMIClientConn. Ported from
CallCenterPRO.
SVN Rev[7539]
* CHANGED: Dialer: move QueuePause from ECCPProcess to AMIEventProcess. Step 2
of removal of AMI connection from ECCPProcess. Ported from CallCenterPRO.
SVN Rev[7538]
* CHANGED: Dialer: each Agente object has its own reference to message pipe.
Ported from CallCenterPRO.
SVN Rev[7537]
* CHANGED: Dialer: move msg_ECCPProcess_AgentLogoff to Agente class. This
message is always paired to the Agente::terminarLoginAgente method. Ported
from CallCenterPRO.
SVN Rev[7536]
* CHANGED: Dialer: move QueuePause from ECCPProcess to AMIEventProcess. Step 1
of removal of AMI connection from ECCPProcess. Ported from CallCenterPRO.
SVN Rev[7535]
* CHANGED: Dialer: remove unused message canalRemotoAgente from AMIEventProcess.
Ported from CallCenterPRO.
SVN Rev[7534]
* CHANGED: Dialer: move call state update to SQLWorkerProcess. With this change
call updates will no longer block on heavy reads from calls table. Ported from
CallCenterPRO.
SVN Rev[7533]
* CHANGED: Dialer: introduce SQLWorkerProcess. This class will handle all
database writes required by state changes that were previously executed in
CampaignProcess. This should allow updates to be processed even when
CampaignProcess is busy reading calls for outgoing campaigns. All operations
are wrapped in transactions and will be restarted on errors without retry
limits. This commit migrates the query of active agents.
SVN Rev[7532]
* CHANGED: Dialer: move Originate call into AMIEventProcess. This puts all
responsibility of database state changes on AMIEventProcess, preventing races
when implementing SQLWorkerProcess.
SVN Rev[7531]
* FIXED: Campaign Monitoring: fix lingering errors in event refactoring. Ported
from CallCenterPRO.
SVN Rev[7530]
* CHANGED: Dialer: use is_callable() instead of open-coding it. Ported from
CallCenterPRO.
SVN Rev[7529]
* CHANGED: Dialer: move execution of "database show QPENALTY" to AMIEventProcess
using asynchronous AMI. This removes the last AMI use from event handlers in
CampaignProcess as preparation for SQLWorkerProcess. Ported from
CallCenterPRO.
SVN Rev[7528]
* CHANGED: Dialer: factor out parse_database_data from AMI functions for a
future commit. Ported from CallCenterPRO.
SVN Rev[7527]
* CHANGED: Dialer: use asynchronous AMI for GetVar to retrieve the channel
variable MIXMONITOR_FILENAME instead of going through CampaignProcess, thus
removing one use of AMI from CampaignProcess. Ported from CallCenterPRO.
SVN Rev[7526]
* CHANGED: Dialer: remove unused parameter in _verificarFinLlamadasAgendables
since now schedule unpause is done by AMIEventProcess. Ported from
CallCenterPRO.
SVN Rev[7525]
* CHANGED: Dialer: retry call update operation on deadlock or timeout. This
reduces the chances of an exception interruting the Predictor enumeration
wait. Ported from CallCenterPRO.
SVN Rev[7524]
* FIXED: Dialer: synchronize pause state when updating queue membership.
Otherwise a static agent added to a new queue while paused will not inherit
the paused state and will receive calls through the new membership. Ported
from CallCenterPRO.
SVN Rev[7523]
* CHANGED: Dialer: encapsulate check for restartable exception. Ported from
CallCenterPRO.
SVN Rev[7522]
* FIXED: Dialer: re-throw exception after removing event handlers. Fixes failure
to install event handlers on next iteration. Ported from CallCenterPRO.
SVN Rev[7521]
* CHANGED: Do Not Call: switch to use of PDO for DNC number inserts. This is
3x as fast as the same operations using the paloDB class.
SVN Rev[7520]
* CHANGED: Agent Console: instead of blanking the call information panel, it is
now colored in a "disabled" color.
SVN Rev[7513]
* CHANGED: Campaign Out: isolate database inserts for outgoing campaign from
CSV import code. Phase 2 of pluggable contact import support.
SVN Rev[7506]
2.2.0-15 (SVN Revision 7502)
* FIXED: Dialer: fix incomplete parameter replacement on call prediction after
QueueShadow patch that caused newly created outgoing campaigns to remain
stalled even with free agents.
SVN Rev[7500]
* FIXED: Agent Console: ensure that the inactivity timeout value is never lower
than the AJAX poll interval, to prevent inactivity logouts.
SVN Rev[7499]
* FIXED: Agent Console: work around missing Array.map() on IE8.
SVN Rev[7498]
* CHANGED: Dialer (ECCP): do not depend on currentcallid for call verification,
and explicitly test for outgoing campaign on hold. Ported from CallCenterPRO.
SVN Rev[7497]
* FIXED: Dialer: reject channel assigment if agent channel is prefix of it.
This is a stronger check than equality and is required to handle dynamic
agents. Ported from CallCenterPRO.
SVN Rev[7496]
* CHANGED: Dialer (ECCP): synchronize login process with CallCenterPRO and add
warning when dynamic agent is already in some queues at login time.
SVN Rev[7495]
* CHANGED: Dialer: show PID of process that writes log message. Ported from
CallCenterPRO.
SVN Rev[7494]
* CHANGED: Dialer: attempt to load queue configuration flags from the file
queues_additional.conf. This saves AMIEventProcess from having to reject calls
from CampaignProcess until events are received to validate the queue flags.
Ported from CallCenterPRO.
SVN Rev[7493]
* CHANGED: Dialer: refactor event firing on agent login to Agente class. Ported
from CallCenterPRO.
SVN Rev[7492]
* CHANGED: Dialer: implement opportunistic use of Agent* and QueueMemberStatus
messages if enabled. These messages allow keeping a shadow status of the
queues so that CampaignProcess does not have to invoke AND parse the output
of CoreShowChannels and QueueStatus every 3 seconds, and burden the asterisk
process on the way.
SVN Rev[7491]
* CHANGED: Dialer: silence useless messages that appear on EAGAIN when not all
8K chunks of data can be written to socket.
SVN Rev[7487]
* CHANGED: Campaign Monitoring: fix agent formatting. Now oncall status has
priority over paused status. Also, pause name is now displayed next to the
"On Break" status label.
SVN Rev[7486]
* CHANGED: Campaign Monitoring: refactoring of agent extraction into a single
method, used by campaign and agent formatting. The main affected module is
Campaign Monitoring.
SVN Rev[7485]
* FIXED: Dialer (ECCP): oncall status must take priority over paused status.
SVN Rev[7484]
* CHANGED: part 3 of refactoring between getcampaignstatus and getagentstatus.
The _agregarAgentStatusInfo method is reimplemented through the method
getcampaignstatus_setagent after unifying the use of resumenLlamada to get
the connected call information. Ported from CallCenterPRO.
SVN Rev[7483]
* CHANGED: part 2 of refactoring between getcampaignstatus and getagentstatus.
Llamada::resumenLlamada() now reports additional fields in order to replace
Agente::resumenSeguimientoLlamada(). In this process, a few bugs were
uncovered and fixed. Also, the fields reported were unified to allow for
XML conversion via loops instead of successive calls. Ported from
CallCenterPRO.
SVN Rev[7482]
* CHANGED: part 1 of refactoring between getcampaignstatus and getagentstatus.
These two requests expose the agent status in different formats using separate
code paths. This commit unifies the use of a single method to load the break
name for both code paths without external API changes. Ported from
CallCenterPRO.
SVN Rev[7481]
* FIXED: Dialer: fix typo that broke call prediction since AMI rewrite.
SVN Rev[7480]
* FIXED: Dialer: fix incorrect parameter ordering of AMI Atxfer call.
SVN Rev[7479]
* CHANGED: Dialer (ECCP): refactoring of common code: get[multiple]agentstatus.
SVN Rev[7478]
* CHANGED: Agent Console: i18n for scheduled call waiting state.
SVN Rev[7477]
* CHANGED: Campaign Out: i18n for contact loading.
SVN Rev[7475]
* FIXED: Agent Console: fixed scenario in which events received in the same
buffer as a <response> packet would remain undelivered if a wait_response()
call is issued immediately after.
SVN Rev[7474]
* CHANGED: Dialer: zero out wait interval in MultiplexServer when pending
unparsed data is present right before the select() call. This removes a
nonzero wait before dealing with the unparsed data.
SVN Rev[7470]
* CHANGED: Campaign Out: move contact loading to a separate action. Phase one of
pluggable contact source changeset. Also display all campaigns by default,
instead of active only, since campaigns now are created in inactive state.
SVN Rev[7469]
* FIXED: Dialer: allow Dialing as a valid state for Llamada->status property.
Otherwise Llamada->status might remain NULL, which propagates to the
call_progress_log insertion and causes a SQL failure.
SVN Rev[7468]
* CHANGED: Dialer: tweak MultiplexServer class to perform reading and writing
of buffers at every possible opportunity, and therefore reduce the chance of
remote available data to read lingering too long.
SVN Rev[7467]
* FIXED: fix race in which ECCPWorkerProcess sent the response to the last ECCP
request and immediately terminated but HubProcess caught the process
termination before having a chance to receive and route the ECCP response.
SVN Rev[7458]
* FIXED: fix incorrect logging-out of static agent when msg_AgentsComplete is
received while agent is AGENT_LOGGEDIN but state is "logging" because the
Agentlogin message was not yet received.
* FIXED: fix condition in which actualchannel is incorrectly assigned with the
same value as channel when different from actualchannel.
SVN Rev[7457]
* CHANGED: do not use CampaignProcess to invoke "agent show online" from
AMIEventProcess. Instead, piggyback on existing AgentsComplete callback to
check every call associated to a logged-in agent when one call is missing
actualchannel.
SVN Rev[7454]
* CHANGED: by using asynchronous AMI requests, agent reservation for scheduled
calls is now reimplemented race-free in AMIEventProcess.
SVN Rev[7453]
* CHANGED: Dialer: bind the act of QueuePause to setBreak and clearBreak.
SVN Rev[7452]
* CHANGED: Dialer: bind the act of QueueUnpause to clearFormPause. Also prepare
methods to increment and decrement pause counts with associated
asyncQueuePause for later refactoring.
SVN Rev[7450]
* CHANGED: Dialer (ECCP): move responsibility to unpause agent from
ECCPWorkerProcess to AMIEventProcess to expose a pattern of asyncQueuePause
right after clearFormPause.
SVN Rev[7449]
* CHANGED: Dialer: remove CampaignProcess_asyncQueuePause.
SVN Rev[7448]
* CHANGED: Dialer: add QueuePause callback to Agent object for future commits.
SVN Rev[7446]
* CHANGED: Dialer: the Agent object now needs a reference to the log.
SVN Rev[7445]
* CHANGED: CallCenter: add index to calls table for queries by schedule date.
SVN Rev[7443]
* CHANGED: Agent Console: add campaign name and call ID to the call information
panel. Ported from CallCenterPRO.
SVN Rev[7442]
* CHANGED: Dialer: repeat signal propagation on shutdown in case child process
has trouble processing it. Also silence warning message on shutdown of core
process when the shutdown is intended. Ported from CallCenterPRO.
SVN Rev[7441]
* CHANGED: Dialer: remove logged-off agent from all known queues on which it is
present outside dialer control. This prevents calls from being assigned from
the queue to the logged-off agent.
SVN Rev[7440]
* CHANGED: Dialer (ECCP): reimplement pauseagent in order to recover from TOCTOU
condition. Agent status is verified in AMIEventProcess a second time in order
to signal ECCPWorkerProcess to remove just-inserted pause audit if agent state
becomes invalid.
SVN Rev[7439]
* CHANGED: Dialer: add timestamp fields to AMI Response packets in order to find
out which AMI requests are more costly.
SVN Rev[7438]
* CHANGED: Dialer (ECCP): optimize agent existence verification in DB. This
change removes a number of cases in which the entire list of active agents is
read just to check for one of them.
SVN Rev[7437]
* CHANGED: CallCenter: add index to agent table for queries by agent number.
SVN Rev[7436]
* FIXED: Dialer: fix scenario in which an agent refresh right in the middle of
a static agent login would undo the login attempt and leave the dialer in
an inconsistent state.
SVN Rev[7435]
* CHANGED: Dialer: by using asynchronous AMI requests, channel unmuting is now
reimplemented without bouncing off CampaignProcess.
SVN Rev[7434]
* CHANGED: Dialer: by using asynchronous AMI requests, dynamic addition and
removal of dynamic agents from queues on configuration refresh is now
reimplemented without bouncing off CampaignProcess.
SVN Rev[7433]
* CHANGED: Dialer: by using asynchronous AMI requests, forced agent logoff is
now reimplemented without bouncing off CampaignProcess.
SVN Rev[7431]
* CHANGED: Dialer: big rewrite of AMIClientConn. This rewrite allows for
asynchronous AMI requests. Instead of waiting for the response, the code can
register a callback to be run once the response to the command arrives. In
this way Queue operations from AMIEventProcess do not need to be bounced off
CampaignProcess anymore.
SVN Rev[7430]
* FIXED: Campaign In: also delete from call_recording as done in outgoing
campaigns. Fixes Elastix bug #2436.
SVN Rev[7428]
* CHANGED: Dialer: remove duplicate SQL in call update after generation.
SVN Rev[7427]
* CHANGED: Dialer: set ticks=8 for slightly better performance.
SVN Rev[7426]
* CHANGED: Dialer: blacklist high-frequency events not necessary for the dialer.
SVN Rev[7425]
* CHANGED: Dialer: implement static Agent enumeration from Asterisk in order to
catch instances where the in-memory login status falls out of sync with the
actual Asterisk status.
SVN Rev[7421]
* CHANGED: Dialer: fix SysV script to wait for daemon by NOT specifying signal
to use. Otherwise the system might shut down before the daemon cleans up.
SVN Rev[7418]
* CHANGED: Dialer: disable AMI event notification on CampaignProcess. The events
emitted in response to QueueStatus are still received.
SVN Rev[7417]
* CHANGED: Dialer: disable AMI event notification on ECCPWorkerProcess and
ECCPProcess. These two do not have any event handlers installed, and disabling
events saves on CPU time and network bandwidth to Asterisk.
SVN Rev[7416]
* FIXED: Dialer: fix undefined variable error introduced in previous commit.
SVN Rev[7409]
* FIXED: Dialer: evaluate queue membership for agents that are not mentioned
in queue enumeration.
SVN Rev[7408]
* FIXED: Dialer: allow refreshing agents from worker process. Ported from
CallCenterPRO.
SVN Rev[7407]
* CHANGED: Added Russian translations by user Russian.
SVN Rev[7406]
* FIXED: Dialer: add proper error handling support when invoking database_*
methods through AMI. This prevents an error condition from being mistaken for
an empty response, as observed in a production system. Ported from
CallCenterPRO.
SVN Rev[7400]
* CHANGED: Agent Monitoring: display pause name when agent enters a break.
Ported from CallCenterPRO.
SVN Rev[7399]
* CHANGED: Dialer (ECCP): extend the getmultipleagentstatus to report the pause
information for the agent, using the structure already used for
getagentstatus. Ported from CallCenterPRO.
SVN Rev[7398]
* CHANGED: Dialer (ECCP): add new column calls.scheduled and use it to mark
scheduled calls as distinct from calls loaded through CSV. Ported from
CallCenterPRO.
SVN Rev[7397]
* CHANGED: Agent Console: introduce partial waitingenter/waitingexit support
from CallCenterPRO in order to show visual notification of scheduled call
activity.
SVN Rev[7391]
* CHANGED: Dialer (ECCP): introduce schedulecallstart and schedulecallfailed
events to notify that a scheduled call has been started on behalf of a
particular agent. This is required for the next commit on the agent console
to implement visual notification of scheduled call start.
SVN Rev[7390]
* FIXED: Dialer: fix incorrect validation on number of agent pauses.
* FIXED: Dialer: reset reservation flag to FALSE on agent logout.
SVN Rev[7389]
* FIXED: Dialer (ECCP): when unpausing an agent, the agent was issued a
QueuePause(FALSE) when the pause count was nonzero. This is incorrect because
the agent might be simultaneously in other states that require the pause to
be maintained. Instead, unpause when the agent count is exactly one, as was
already done on return from hold.
SVN Rev[7384]
* CHANGED: Dialer: clear form pause state on logoff, and validate auditable
pause states before decrementing pause count.
SVN Rev[7383]
* CHANGED: Dialer (ECCP): remove redundant code invoked on agent logoff and
formalize closing of multiple auditable pauses.
SVN Rev[7382]
* CHANGED: Campaign In, Campaign Out: fix some i18n.
SVN Rev[7378]
* CHANGED: Dialer: cache local_timestamp_received for entire event batch.
SVN Rev[7377]
* CHANGED: Agent Console: optimize event wait so timeouts to select() calls are
as long as possible (up to 30s) instead of looping at 1/10s as before. Ported
from CallCenterPRO.
SVN Rev[7376]
* CHANGED: Dialer: restrict schedulable agent report to the agents actually
listed in the parameters. This prevents looking up nonexistent scheduled calls
for agents that are scheduled for calls on a different simultaneous campaign.
SVN Rev[7373]
* CHANGED: Dialer: undo queue optimization for outgoing calls. This introduces
unacceptable delays and risks evaluation of campaigns with stale data.
Additionally attempt to run some messages after each campaign evaluation to
reduce instances of queued updates from AMIEventProcess.
SVN Rev[7372]
* CHANGED: Dialer: silence messages about missing incoming call ID - they
clutter the log on heavy load without actually being useful.
SVN Rev[7371]
* CHANGED: Agent Console: allow scheduling of terminated outgoing call. Ported
from CallCenterPRO.
SVN Rev[7358]
* CHANGED: Dialer (ECCP): implement scheduling of call to number not currently
on-call, by specifying call ID. Ported from CallCenterPRO.
SVN Rev[7357]
* CHANGED: Dialer (ECCP): partial synchronization with CallCenterPRO for next
commits in schedule functionality.
SVN Rev[7356]
* FIXED: Dialer: verify that AMI is available when receiving new agent list. If
not, the QueueStatus run should be delayed until AMI is available. Ported from
CallCenterPRO.
SVN Rev[7348]
* FIXED: Calls Details: fix page count when displaying all types of calls.
SVN Rev[7329]
* FIXED: Agent Console: fix External URL tab handling with older jQueryUI.
SVN Rev[7257]
* FIXED: Dialer: ensure call status is non-NULL after handling OriginateResponse
to prevent database failures when recording call progress.
SVN Rev[7248]
* CHANGED: CallCenter: massive s/www.elastix.org/www.elastix.com/g
SVN Rev[7247]
SVN Rev[7246]
* FIXED: External URL: specify an icon for module.
SVN Rev[7226]
* FIXED: Dialer (ECCP): emit a failure condition as soon as it is evident that
the dynamic agent trying to log in does not belong to any queue.
SVN Rev[7177]
* FIXED: Calls Details: do not display duplicate rows when multiple recordings
are found. Instead collect them all and display the most recent one as the
main one, and hide the rest until clicked on. Fixes Elastix bug #2350.
SVN Rev[7174]
2.2.0-14 (SVN Revision 7164)
* FIXED: Campaign Out: allow outgoing campaign without forms to be created.
SVN Rev[7163]
* CHANGED: Dialer: (trivial) partial synchronization with CallCenterPRO.
SVN Rev[7162]
* CHANGED: Dialer: dynamic agents now honor penalty from astdb. Previously the
QueueAdd() call for a dynamic agent was done with penalty=0 regardless of the
value stored in the astdb. Fixes Elastix bug #2362.
SVN Rev[7161]
* FIXED: Dialer: use Location instead of Name in msg_QueueMember. When
enumerating queue members, Name and Location are identical if QueueAdd() did
not specify a friendly name, but are now different as of SVN commit #7137.
This breaks detection of queue membership changes for dynamic agents until
fixed here.
SVN Rev[7160]
* CHANGED: Dialer (ECCP): implement timeout for mixmonitormute. New ECCP events
recordingmute and recordingunmute were created.
SVN Rev[7158]
2.2.0-13 (SVN Revision 7154)
* FIXED: Campaign Monitoring: removed dead code that references the old
dialer prediction class that no longer exists.
SVN Rev[7153]
* CHANGED: Dialer (ECCP): implement initial version of mixmonitormute and
mixmonitorunmute ECCP requests.
SVN Rev[7151]
2.2.0-12 (SVN Revision 7150)
* CHANGED: Agent Console: implemented a standard API for adding custom panels
to the active agent console.
SVN Rev[7149]
* CHANGED: Agent Console: remove restriction of SIP/IAX2 as extensions to use
for static agents. Ported from CallCenterPRO.
SVN Rev[7143]
* CHANGED: Dialer (ECCP): remove restriction of SIP/IAX2 as extensions to use
for login. Ported from CallCenterPRO.
SVN Rev[7142]
* CHANGED: Dialer: lookup by uniqueid too when assiging recording filename.
Ported from CallCenterPRO.
SVN Rev[7141]
* FIXED: Agent Console: remove unnecessary HTML escaping that breaks URLs on
contact information.
SVN Rev[7140]
* CHANGED: Dialer: warn if queue snapshot for prediction could be stale.
SVN Rev[7139]
* CHANGED: Agent Console: dispatch JSON methods using function_exists instead of
switch block. Preparation for console plugins.
SVN Rev[7138]
* CHANGED: Dialer: use dynamic agent name as MemberName in queue.
SVN Rev[7137]
* CHANGED: Dialer: complete rewrite of prediction class. This rewrite
reimplements the queue analysis using AMI enumeration events instead of
parsing the output of "queue show" and "core show channels". This rewrite
deliberately omits an equivalent of "agent show" in order to abstract itself
from the Agent/XXXX implementation detail. Additionally this rewrite lifts a
restriction that prevented the querying of the talk time on a non-Agent member
by filtering the CoreShowChannel events by AppQueue. The restriction on
SIP/IAX2 for dynamic agents is also lifted. Finally, this rewrite allows
setting a MemberName for a dynamic queue member without breaking the parsing.
SVN Rev[7136]
* CHANGED: Dialer: use strtolower for remove_event_handler as done in
add_event_handler.
SVN Rev[7135]
* CHANGED: Dialer: add new optional parameter queue for QueueStatus command.
SVN Rev[7134]
* CHANGED: Dialer: add new AMI command CoreShowChannels. Add optional parameter
membername for QueueAdd command.
SVN Rev[7133]
* CHANGED: Dialer (ECCP): use Agent/NNNN as hangup channel if required for
static agents. Ported from CallCenterPRO.
SVN Rev[7132]
* CHANGED: Dialer: unlink scheduled call from scheduled agent on failure. Ported
from CallCenterPro.
SVN Rev[7131]
* CHANGED: Dialer (ECCP): report on scheduled call. Ported from CallCenterPRO.
SVN Rev[7130]
* CHANGED: Dialer (ECCP): implement hangup of call not yet connected to agent.
Ported from CallCenterPRO.
SVN Rev[7129]
* FIXED: Dialer: do not overwrite Failure state with Placing state. This could
happen if a call is originated but immediately fails before CampaignProcess
sends the signal that call is expected to be Placing. Ported from
CallCenterPRO.
SVN Rev[7128]
* FIXED: Dialer: prevent ID collision when removing incoming/outgoing call.
Ported from CallCenterPRO.
SVN Rev[7127]
* FIXED: Dialer: do not use id_llamada_* for calls other than incoming/outgoing.
Ported from CallCenterPRO.
SVN Rev[7126]
* CHANGED: Dialer (ECCP): factorize names of form tables by calltype into a new
method. Ported from CallCenterPRO.
SVN Rev[7125]
* CHANGED: Dialer (ECCP): factorize reading of call attributes as a new method.
Ported from CallCenterPRO.
SVN Rev[7124]
* FIXED: Graphic Calls: recent Elastix framework no longer embeds jpgraph. This
breaks the graphic_calls module unless fixed by requiring the Elastix graphic
library that already knows about the change.
SVN Rev[7123]
* CHANGED: Agent Console: make addition and removal of External URL tab
independent of its position in the tab control.
SVN Rev[7122]
* FIXED: Campaign In, Campaign Out: increase timeout to 3600s for CSV download.
SVN Rev[7121]
* FIXED: Agent Console: fixed incorrect jQuery selector that resulted in an
External URL tab being inserted in the Forms tablist.
SVN Rev[7120]
* FIXED: Dialer: fixed incorrect use of Channel instead of Uniqueid on lookup by
auxchannel. This fixes failure to pick up the recording filename when
recording by outbound route.
SVN Rev[7119]
* FIXED: Calls Details: fix special case where file appears in monitor format
as .wav49 but is written to directory as .WAV. Ported from CallCenterPRO.
SVN Rev[7118]
2.2.0-11 (SVN Revision 7115)
* FIXED: Agent Console: fix tab add/remove for jQueryUI-1.11.4
SVN Rev[7114]
* FIXED: Dialer: fix copy-paste error from synchronization with ccPRO that
causes SQL errors on call progress events.
SVN Rev[7113]
2.2.0-10 (SVN Revision 7112)
* CHANGED: add migration of call_recording table to InnoDB engine.
SVN Rev[7111]
* CHANGED: Dialer: stop trying to decide when to increment retry count in
Llamada.class.php. Instead, just increment it unconditionally on every
Originate. This rule is simpler to follow and more robust. This fixes reports
of double increment reported by some users.
SVN Rev[7099]
* CHANGED: Agent Console: add styles to resize handles to make them visible.
SVN Rev[7095]
* CHANGED: Agent Console: reorganize layout to group all information on the call
in a single screen. Resizable panes implemented using jquery-layout from
http://layout.jquery-dev.com/index.cfm . Partial synchronization with
CallCenterPRO.
SVN Rev[7094]
* FIXED: Incoming Calls Monitoring: display additional column for count of
incoming calls assigned to agents but not finished. Fixes Elastix bug #2268.
SVN Rev[7090]
* FIXED: Dialer: make agent channel discrimination more robust. As a side effect
this removes hardcoding of Agent/SIP/IAX2 channel types.
SVN Rev[7087]
* FIXED: Dialer: forward Bridge with Bridgestate=Unlink to the Unlink handler.
SVN Rev[7086]
* CHANGED: Dialer: do not handle Dial events that signal the end of Dial app.
SVN Rev[7085]
* CHANGED: Dialer: do not hardcode from-internal in new channel recognition.
SVN Rev[7084]
* CHANGED: Dialer: reject channel in OriginateResponse if it happens to be the
same as the scheduled agent. Then, assign remote channel in Link if it happens
to be NULL at that time. Partial synchronization with CallCenterPRO.
SVN Rev[7083]
* CHANGED: Dialer: use campaign type to build message field names before
notification. Partial synchronization with CallCenterPRO.
SVN Rev[7082]
* CHANGED: Dialer: move call progress notification for new channel into class.
With this, all call progress notifications are now contained inside class.
SVN Rev[7081]
* CHANGED: Dialer (ECCP): use campaign type to build column and table names.
Partial synchronization with CallCenterPRO.
SVN Rev[7080]
* FIXED: Dialer (ECCP): do not blindly append Agent type to the actual agent
number. Use the real agent type from the table instead.
SVN Rev[7079]
* CHANGED: Dialer (ECCP): collapse two near-identical SQL queries into a single
function called by both clients.
SVN Rev[7076]
* CHANGED: Dialer: make ECCP request handling more robust in the event of an
unhandled worker process crash or exception while handling a request. This
prevents the ECCP client from waiting forever for a response.
SVN Rev[7075]
* FIXED: Dialer: track IDs of calls that were untracked before knowing the
assigned ID on the current_calls table. This prevents most messages about not
being able to find a call on the msg_idcurrentcall message handler.
SVN Rev[7074]
* FIXED: Dialer (ECCP): fix leftovers from the prefork migration that cause
exceptions when events are received by ECCPProxyConn.
SVN Rev[7073]
* CHANGED: Dialer (ECCP): put execution of QueueAdd/QueueRemove back in
ECCPConn. After the migration to the prefork model, it is not longer necessary
to worry about blocking other requests while executing QueueAdd or
QueueRemove. So bring back the queue manipulation for dynamic login into
ECCPConn. CampaignProcess no longer has to deal with blocks while logging in
agents, and simultaneous logins may now happen in parallel.
SVN Rev[7072]
* CHANGED: Dialer (ECCP): switch to a prefork process model for ECCP requests.
The ECCPConn object is now hosted in a separate process, of which there are at
least two, and more will be spawned if all previous processes are blocked on
requests. This eliminates blocking delays caused by serialization of ECCP
requests on a single process. The serialization of database access due to ECCP
events remains to be fixed.
SVN Rev[7070]
* CHANGED: Dialer (ECCP): introduce new class ECCPProxyConn. This class contains
the portion of connection information that will be shared in a single process,
and contains the packet parsing logic, moved from ECCPConn. This separation is
required for hosting ECCPConn in a separate process.
SVN Rev[7068]
* CHANGED: Dialer (ECCP): move all of the methods provided by ECCPProcess class
for use of ECCPConn class into a library, included by both classes. This cuts
loose the dependency between the two classes in order to run them on different
processes.
SVN Rev[7067]
* CHANGED: Dialer (ECCP): events provided by ECCPProcess that fire events
internally are now reworked to return required events instead, in order to
return them as part of a response.
SVN Rev[7066]
* CHANGED: Dialer (ECCP): add support for specifying events to fire as part of
a ECCP response. Test it by firing the pausestart events through it. This is
required to allow the worker process to specify these events to fire.
SVN Rev[7065]
* CHANGED: Dialer (ECCP): separate activities to perform with the ECCP results
into a separate method. This method will end up in a future class,
ECCPProxyConn.
SVN Rev[7064]
* CHANGED: Dialer: introduce support for message inspectors in HubServer. A
message inspector, once registered, can read and modify messages before being
routed to their destination, including changing the destination. This support
is required for handling a message to a destination class with no specific
destination, such as ECCP worker processes.
SVN Rev[7063]
* CHANGED: Dialer: unify handling of static and dynamic processes. Static
processes are now read from a separate list, instead of having their slots
filled with NULL. In this way, all tasks are either unset or set with the
process PID. Two methods for handling and spawning dynamic processes are
introduced for future commits.
SVN Rev[7062]
* CHANGED: Dialer: allow spawning of processes from a classname that differs
from the actual name of the process. This is required to spawn multiple
uniquely-named processes from the same worker process class.
SVN Rev[7061]
* CHANGED: Dialer: internal messages previously sent from ECCPProcess to
AMIEventProcess are now accepted from anyone. This is required to accept
multiple message sources from the various ECCP workers.
SVN Rev[7060]
* CHANGED: Dialer (ECCP): transform the handling of ECCP requests into a form
that can easily be translated into a message delegation to worker processes.
SVN Rev[7059]
* CHANGED: Dialer: instead of always processing one AMI event at a time, events
are now consumed until one is found whose handler exists and does not return
the special string "AMI_EVENT_DISCARD". The msg_Default and msg_VarSet handlers
make use of this string.
SVN Rev[7058]
* CHANGED: Dialer: add AMI commands for MixMonitor control and SIP NOTIFY.
SVN Rev[7057]
* FIXED: Dialer (ECCP): fix getcampaignstatus request bug that caused a failure
to report the pending call count when not specifying a start date.
SVN Rev[7056]
* CHANGED: Dialer (ECCP): factor out common elements in incoming/outgoing
campaign information into a single method.
SVN Rev[7054]
* CHANGED: After testing, it was shown that the elastix-framework version from
a recently-installed Elastix 2.4 is quite sufficient to run the CallCenter
modules. The minimum elastix-framework version can be lowered so users are not
forced to upgrade.
SVN Rev[7053]
* FIXED: Dialer: fix long-standing bug in which failure cause of failed calls
is available but fired *after* the call object is removed from tracking by
the OriginateResponse or Hangup handlers.
SVN Rev[7052]
* FIXED: Dialer: for static agents, queuemembership event must be fired with
list of actual membership, since there is no dynamic queuelist. Also fix typo.
SVN Rev[7050]
* CHANGED: Campaign Monitoring: make use of the new queuemembership event.
SVN Rev[7049]
* CHANGED: Dialer (ECCP): new event queuemembership has been created. This event
is fired whenever a monitored agent is added or removed from campaign queues
(not exactly the same as Asterisk queues). This is required for proper update
of the Campaign Monitoring report when performing queue membership.
modifications.
SVN Rev[7048]
* CHANGED: Dialer: collapse notification method pattern into a single __call.
SVN Rev[7047]
* DELETED: Agent Console, Campaign Monitoring: Elastix 2.4.0 already ships with
jQuery 1.8.3 and jQueryUI 1.8.24. Therefore, the private copies are now
obsolete.
SVN Rev[7045], SVN Rev[7046]
2.2.0-9 (SVN revision 7044)
* CHANGED: Calls Detail: add field filter controls. Partially synchronize with
CallCenterPRO.
* FIXED: Dialer: make dynamic agent login conditions more strict. Check whether
agent already belongs to all dynamic queues, and transition directly to
logged-in state if so. This prevents agents waiting for QueueMemberAdded
events that will never come. Check for stuck login agents and fail them after
5 minutes. Ignore queue membership additions for queues when not processing a
loginagent request. Ignore queue membership additions for queues outside the
set of dynamic queues.
* CHANGED: Dialer: ignore a queue membership start when another queue membership
update is already in progress.
* FIXED: Agents Monitoring, Incoming Calls Monitoring: in case of an EventSource
error, reload after a timeout, not immediately. This prevents race conditions
that prevent the browser from leaving the module.
* CHANGED: Form Preview: synchronize partially with CallCenterPRO. Fix invalid
HTML syntax.
* CHANGED: Calls Detail: implement access to the recording file associated with
the call. For now, no basename transformation is performed on the file.
* CHANGED: Dialer: downgrade QueueStatus start/end messages to DEBUG.
* FIXED: Dialer: fix bug in incoming queue cleanup that causes an undefined
index access in the queue array in CampaignProcess.
* CHANGED: Dialer: sometimes a failed call will report a Hangup on its channel
before AMIEventProcess manages to receive the origination start message. This
causes annoying messages about an originated call not found. Fix this by
setting a flag on the call object in this case, and keeping it around until
both the origination message AND OriginateResponse are received.
* CHANGED: Dialer: AMIEventProcess is now Single Source of Truth for queue
membership. On customer tests, it was observed that the blocking query to
astdb takes longer and longer with increasing asterisk load. Since the event
handling process already contains queue membership information for each agent,
it is now possible to query information from it without querying astdb. This
speeds up handling of agentlogin/agentlogout. Additionally QueueAdd/QueueRemove
are now delegated to CampaignProcess since they take much longer under heavy
load.
* CHANGED: Agent Console: fix for undocumented fwrite() behavior. According to
http://php.net/manual/en/function.fwrite.php#96951 fwrite() returns 0, not
FALSE, when writing to a blocking socket and encountering an error that
prevents any data from being written. This behavior is not documented anywhere
in the PHP manual and causes infinite loops unless taken into account.
* CHANGED: Dialer: remove astdb query in the middle of asterisk AMI event
processing when handling PeerStatus. Instead use the queue membership cached
in Agent objects and delegate the actual forced logoff to CampaignProcess.
* CHANGED: Dialer: clear agent list use by QueueStatus after enumeration. Check
that expected events arising from QueueStatus enumeration have an ActionID
and that our own value is non-null before processing.
* CHANGED: Campaign Monitoring, Agents Monitoring, Incoming Calls Monitoring:
close (and reload if required) EventSource when getting an error. This should
prevent retries with obsolete state hash.
* CHANGED: Campaign Monitoring, Agents Monitoring, Incoming Calls Monitoring:
raise SSE retry interval to 5000 ms.
* CHANGED: Dialer: add tracking of recording files associated with incoming
calls, by asking for the value of MIXMONITOR_FILENAME on the channel just
after inserting the incoming call record.
* CHANGED: Campaign Out, Campaign In: move edit link into the campaign name as
done in CallCenterPRO.
* CHANGED: Dialer: add tracking of recording files associated with outgoing
calls, by monitoring assignment to MIXMONITOR_FILENAME on tracked channels.
* CHANGED: Dialer: on OriginateRespose, only evaluate CallerID when CallerIDNum
is empty. This cuts down on unnecessary calls to AMI GetVar.
* FIXED: Dialer: fix incorrect variable verification after GetVar call.
* FIXED: Report Break: remove unnecessary <form> tag around grid filter which
leads to nested <form> tag.
* FIXED: Dialer: Originate through Local@from-internal requires setting
CallerID in order to guarantee a nonempty src field in the CDR record. This
is the root cause behind various reports of empty src on dialer calls.
* CHANGED: Dialer: do not attempt to fetch a caller-id from the channel of a
failed call in OriginateRespose. Also compare against possible value of
CallerIDNum and report any differences.
* FIXED: Dialer: remove use of print_r which risks memory exhaustion by
recursive dumping of linked objects. Use dump function instead.
* CHANGED: Dialer: perform consistency checks to diagnose when a logged-out
agent gets stuck with a call.
* CHANGED: Agent Console: fix second use of jscalendar icon. Also enable month
and year selection on date field.
* CHANGED: Agent Console: use framework calendar icon instead of jscalendar
icon which might be removed soon.
* CHANGED: Agent Console - jQuery-1.11.2 migration: fix incorrect use of
attribute instead of property.
* CHANGED: Campaign Out: change default value of max channels to 0, in order to
allow unlimited calls by default as allowed by SVN commit #6916.
* CHANGED: Dialer: accept max channels value of 0 as equivalent to NULL, which
in turn is equivalent to unlimited simultaneous calls per campaign.
* CHANGED: Queues: implement pagination. Use more of the PaloSantoGrid API and
synchronize partially with Call Center PRO.
* CHANGED: Agent Console: implement a periodic ping to the server in an attempt
to keep the PHP session from expiring. The chosen interval is half the value
reported by session.gc_maxlifetime.
* CHANGED: Dialer (ECCP): create new request refreshagents. This request causes
CampaignProcess to reload and send the updated agent status to AMIEventProcess
for it to add or remove queue members as required.
* CHANGED: Dialer: count number of AMI events received, classified by event, and
dump this count in the dumpstatus handler. This count can help optimize AMI
event filters in order to improve performance.
* CHANGED: Dialer: add tracking of queue membership by agent. For dynamic agents
this allows detection of changes in queue membership as saved by FreePBX in
order to update the in-memory membership in asterisk. This in turn enables
moving of live dynamic agents between queues once the Reload event is hooked.
* CHANGED: Dialer (ECCP): create new request dumpstatus. This request causes
AMIEventProcess to dump its internal status to the log file. This request is
intended for debugging.
2.2.0-8 (SVN revision 6836)
* FIXED: Dialer (ECCP): implement optional filtering in the database_show AMI
wrapper, and use it to cut down on the amount of data to parse for collecting
queues for each agent.
* CHANGED: Dialer: any active campaign (incoming or outgoing) with end date past
current date will now get marked as inactive.
* CHANGED: Dialer (ECCP): scheduled calls now inherit any form values entered
from the original call.
* CHANGED: Ingoing Calls Success: complete rewrite. Database queries were
rewritten to make use of joins and foreign keys, parametrized to remove SQL
vulnerabilities, and module logic was simplified. Updated to latest grid
API.
* FIXED: Dialer (ECCP): emit queue number in scenario of delayed AgentLinked
event on database async write.
* CHANGED: Queues: update paloSantoGrid API usage to latest Elastix 2.4
* CHANGED: ECCP Users: update paloSantoGrid API usage to latest Elastix 2.4
* CHANGED: External URL: update paloSantoGrid API usage to latest Elastix 2.4
* CHANGED: Form Designer: switch incorrect use of list control on button strip
with proper dropdown filter. Add filter control.
* FIXED: Incoming Calls Monitoring: explictly require paloSantoGrid class which
has been previously included via spl_issabel_class_autoload and therefore
fails to load in elastix-framework earlier than 2.4.0-7.
* CHANGED: Update minimum elastix-framework to 2.4.0-7 or later.
* CHANGED: Form Designer: add placeholder content for new field name.
* CHANGED: Form Designer: update cursor styles on draggable rows to indicate
draggable capability.
* CHANGED: Campaign Out: update paloSantoGrid API usage to latest Elastix 2.4
* CHANGED: Campaign In: update paloSantoGrid API usage to latest Elastix 2.4
* CHANGED: CallCenter Config: reorganize form fields.
* CHANGED: Break Administrator: update paloSantoGrid API usage to latest
Elastix 2.4. Fix potential undefined variable reference on validation error.
* CHANGED: Callback Extensions: update paloSantoGrid API usage to latest
Elastix 2.4.
* CHANGED: Agents: update paloSantoGrid API usage to latest Elastix 2.4.
2.2.0-7 (SVN revision 6740)
* CHANGED: Dialer (ECCP): create new request getmultipleagentstatus. This
request allows for a report of agent status for a group of agents at once.
This cuts down again on the number of ECCP requests required for the Agent
Monitoring report. Part of the fix for Elastix bug #1820.
* CHANGED: Dialer (ECCP): create new request getmultipleagentqueues. This
request allows for a report of agents subscribed on queues for a group of
agents at once. This cuts down on the number of ECCP requests required for
the Agent Monitoring report. Part of the fix for Elastix bug #1820.
* CHANGED: Do Not Call List: complete rewrite. This rewrite uses ordinary grid
pagination instead of loading the entire recordset in memory, and simplifies
the support libraries. Additionally a new index is added to the dont_call
table to speed up lookup by caller_id. Finally, a small utility is now
provided to load a CSV file to the DNC list from the command line. Fixes
Elastix bug #1984.
* CHANGED: Form Designer: complete rewrite. This rewrite removes the use of
xajax, fixes a few potential SQL injection scenarios, streamlines the form
creation interface, and updates the report grid to the latest support.
* CHANGED: Dialer (ECCP): add debugging information to getagentstatus request to
catch inconsistent state being returned to the client.
* CHANGED: Incoming Calls Monitoring: complete rewrite. This rewrite removes the
use of xajax and periodic database reads, and replaces it with an ECCP client
that uses Server Sent Events if available, just like the Agent Console. This
also fixes a serious scenario where a query that takes more than 5 seconds
would cause the server to accumulate unfinished SQL queries.