diff --git a/agc_2-X/branches/agc_2.0.4/agi/agi-IVR_recording_verification.agi b/agc_2-X/branches/agc_2.0.4/agi/agi-IVR_recording_verification.agi index 67f876b6..9fdb76dd 100644 --- a/agc_2-X/branches/agc_2.0.4/agi/agi-IVR_recording_verification.agi +++ b/agc_2-X/branches/agc_2.0.4/agi/agi-IVR_recording_verification.agi @@ -620,6 +620,7 @@ $interrupt_digit = $AGI->stream_file("$prompt",'123456789'); $digits_being_entered=1; $digit_loop_counter=0; +$digit_max_loop=0; $totalDTMF=''; if ($interrupt_digit > 1) { @@ -638,7 +639,7 @@ if ($interrupt_digit > 1) $digit_loop_counter++; } -while ($digit_loop_counter < 1) +while ( ($digit_loop_counter < 1) && ($digit_max_loop < 4) ) { $wait_ms = ($wait_sec * 1000); $digit = chr($AGI->wait_for_digit("$wait_ms")); # wait number of milli-seconds for input @@ -651,10 +652,17 @@ while ($digit_loop_counter < 1) } else { - $digit_loop_counter=1; + $digit_loop_counter=-1; } - + $digit_max_loop++; $digit_loop_counter++; + + &get_time_now; + $length_in_sec = ($now_date_epoch - $start_epoch); + if ($length_in_sec > 3600) + { + exit; + } } } ##### END collect the response to a prompt ##################################### diff --git a/agc_2-X/branches/agc_2.0.4/agi/agi-VDAD_ALL_inbound.agi b/agc_2-X/branches/agc_2.0.4/agi/agi-VDAD_ALL_inbound.agi index 9df97e68..2ff72c3c 100644 --- a/agc_2-X/branches/agc_2.0.4/agi/agi-VDAD_ALL_inbound.agi +++ b/agc_2-X/branches/agc_2.0.4/agi/agi-VDAD_ALL_inbound.agi @@ -40,7 +40,7 @@ #exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----INB-----7274515134-----Closer-----park----------999-----1-----OUTB) #exten => 1234,3,Hangup # -# Copyright (C) 2007 Matt Florell LICENSE: GPLv2 +# Copyright (C) 2008 Matt Florell LICENSE: GPLv2 # # changes: # 70828-0924 - First Build @@ -1112,9 +1112,10 @@ if ($agent_search_method =~ /^LO|^LB/) if ($hold_message_counter > $prompt_interval) { $AGI->stream_file('sip-silence'); # stop music-on-hold process - $AGI->stream_file("$onhold_prompt_filename"); + $AGI->stream_file("$onhold_prompt_filename"); # this prompt must be less than 10 seconds long $hold_message_counter = 0; $start_moh=1; + if ($drop_timer > 3) {$drop_timer = ($drop_timer + 5);} # add propmt play time to total queue time } else {$hold_message_counter++;} if ($hold_tone_counter > 3) diff --git a/agc_2-X/branches/agc_2.0.4/bin/AST_VDremote_agents.pl b/agc_2-X/branches/agc_2.0.4/bin/AST_VDremote_agents.pl index 5c8c7da2..594c455d 100644 --- a/agc_2-X/branches/agc_2.0.4/bin/AST_VDremote_agents.pl +++ b/agc_2-X/branches/agc_2.0.4/bin/AST_VDremote_agents.pl @@ -19,7 +19,7 @@ # It is good practice to keep this program running by placing the associated # KEEPALIVE script running every minute to ensure this program is always running # -# Copyright (C) 2007 Matt Florell LICENSE: GPLv2 +# Copyright (C) 2008 Matt Florell LICENSE: GPLv2 # # CHANGELOG: # 50215-0954 - First version of script @@ -34,6 +34,7 @@ # 70214-1243 - Added queuemetrics_log_id field to queue_log logging # 70222-1606 - Changed queue_log PAUSE/UNPAUSE to PAUSEALL/UNPAUSEALL # 70417-1346 - Fixed bug that would add unneeded simulated agent lines +# 80128-0105 - Fixed calls_today bug # ### begin parsing run-time options ### @@ -240,18 +241,20 @@ while($one_day_interval > 0) &event_logger; ##### grab number of calls today in this campaign and increment - $stmt="SELECT calls_today FROM vicidial_live_agents WHERE extension LIKE \"R/%\";"; - $rslt=mysql_query($stmt, $link); - if ($DB) {print "$stmt\n";} - $vla_cc_ct = mysql_num_rows($rslt); + $stmtA="SELECT calls_today FROM vicidial_live_agents WHERE extension LIKE \"R/%\";"; + $sthA = $dbhA->prepare($stmtA) or die "preparing: ",$dbhA->errstr; + $sthA->execute or die "executing: $stmtA ", $dbhA->errstr; + $vla_cc_ct=$sthA->rows; if ($vla_cc_ct > 0) { - $row=mysql_fetch_row($rslt); - $calls_today =$row[0]; + @aryA = $sthA->fetchrow_array; + $calls_today = "$aryA[0]"; + $rec_count++; } else {$calls_today ='0';} $calls_today++; + $sthA->finish(); $stmtA = "UPDATE vicidial_live_agents set status='INCALL', last_call_time='$SQLdate',comments='REMOTE',calls_today='$calls_today' where server_ip='$server_ip' and status IN('QUEUE') and extension LIKE \"R/%\";"; $affected_rows = $dbhA->do($stmtA); diff --git a/agc_2-X/branches/agc_2.0.4/bin/VICIDIAL_IN_new_leads_file.pl b/agc_2-X/branches/agc_2.0.4/bin/VICIDIAL_IN_new_leads_file.pl index 68e88213..249b07f3 100644 --- a/agc_2-X/branches/agc_2.0.4/bin/VICIDIAL_IN_new_leads_file.pl +++ b/agc_2-X/branches/agc_2.0.4/bin/VICIDIAL_IN_new_leads_file.pl @@ -8,7 +8,7 @@ # # It is recommended that you run this program on the local Asterisk machine # -# Copyright (C) 2007 Matt Florell LICENSE: GPLv2 +# Copyright (C) 2008 Matt Florell LICENSE: GPLv2 # # # CHANGES @@ -25,6 +25,7 @@ # 70510-1518 - Added campaign and system duplicate check and phonecode override # 70801-0912 - Added called count and status to import leads format (fields 24 and 25) # 70815-2128 - Added entry_date to import leads format (field 26) +# 80128-0105 - Fixed bugs in file loading # $secX = time(); diff --git a/agc_2-X/branches/agc_2.0.4/docs/BASE_INSTALL.txt b/agc_2-X/branches/agc_2.0.4/docs/BASE_INSTALL.txt index 03f00071..67e3e55b 100644 --- a/agc_2-X/branches/agc_2.0.4/docs/BASE_INSTALL.txt +++ b/agc_2-X/branches/agc_2.0.4/docs/BASE_INSTALL.txt @@ -91,7 +91,7 @@ cd ../asterisk-1.2.24 *OPTIONAL*(1.2.14 thru 1.2.24) rewrite of waitforsilence wget http://www.eflo.net/files/app_waitforsilence.c - mv app_waitforsilence.c apps/app_waitforsilence.c + mv -f app_waitforsilence.c apps/app_waitforsilence.c *OPTIONAL* shorter enter and leave sounds for meetme wget http://www.eflo.net/files/enter.h @@ -267,7 +267,7 @@ use asterisk; ##### make sure on these queries that you change the server_ip "10.10.10.15" ##### to the server IP that you are using -insert into servers (server_id,server_description,server_ip,active,asterisk_version)values('TESTasterisk','Test install of Asterisk server', '10.10.10.15','Y','1.2.24'); +insert into servers (server_id,server_description,server_ip,active,asterisk_version)values('TESTast','Test install of Asterisk server', '10.10.10.15','Y','1.2.26.2'); insert into server_updater values('10.10.10.15',''); @@ -550,8 +550,13 @@ PHASE 5: ADDING STARTUP ENTRIES FOR ASTGUICLIENT/VICIDIAL SCRIPTS - vi /etc/rc.d/rc.local - add the following entries(here's what we used): -### Path to local asterisk-perl_0.08 module if needed -PERL5LIB="/usr/share/astguiclient/libs"; export PERL5LIB +# OPTIONAL enable ip_relay(for same-machine trunking and blind monitoring) +# /usr/share/astguiclient/ip_relay/relay_control start 2>/dev/null 1>&2 + +# Disable console blanking and powersaving +setterm -blank +setterm -powersave off +setterm -powerdown ### start time server /usr/local/bin/ntpdate -u 18.145.0.30 @@ -814,3 +819,24 @@ Also, check out our weblog: http://astguiclient.blogspot.com/ read the REQUIREMENTS.txt for a minimum requirements list. *** End-user Manuals for Agents and Managers are available from http://www.eflo.net + + + + + +PHASE 11: Security Hardening: + +You may want to reduce the exposure of some of the elements of VICIDIAL. Here are some examples: + + ln -s /dev/null /usr/local/apache2/htdocs/vicidial/project_auth_entries.txt + ln -s /dev/null /usr/local/apache2/htdocs/agc/project_auth_entries.txt + ln -s /dev/null /usr/local/apache2/htdocs/vicidial/admin_changes_log.txt + +- Change the WWW writable in the admin.php server settings to "0" +- Change the default admin user "6666" or it's password from the default +- Change the Default secret(password) for the default SIP and IAX accounts that are set up with astGUIclient +- Possibly use static IP addresses for the IAX/SIP conf account entries +- Change the default port for Apache in httpd.conf from 80 to something else +- Change the default port for IAX in iax.conf from 4569 to something else +- Change the default control port for SIP in sip.conf from 5060 to something else +- Use a firewall to route access using different port numbers or restricting connection by VPN or set IP addresses diff --git a/agc_2-X/branches/agc_2.0.4/docs/PERFORMANCE_TESTING.txt b/agc_2-X/branches/agc_2.0.4/docs/PERFORMANCE_TESTING.txt index 9aec88fb..147054a0 100644 --- a/agc_2-X/branches/agc_2.0.4/docs/PERFORMANCE_TESTING.txt +++ b/agc_2-X/branches/agc_2.0.4/docs/PERFORMANCE_TESTING.txt @@ -105,3 +105,32 @@ exten => _91999NXXXXXX,3,Hangup exten => 999999999999,1,Answer exten => 999999999999,2,Dial(${TESTSIPTRUNK}/${EXTEN},,tTo) exten => 999999999999,2,Hangup + + +In the sip.conf file of the test server: +register => ASTtest2:test@10.10.10.16:5060 + +[VICItest] +disallow=all +allow=ulaw +type=friend +username=VICItest +secret=test +host=dynamic +dtmfmode=inband +defaultip=10.10.10.16 +qualify=1000 + + +In the sip.conf file of the control server: + +[VICItest] +disallow=all +allow=ulaw +type=friend +username=VICItest +secret=test +host=dynamic +dtmfmode=inband +defaultip=10.10.10.16 +qualify=1000 diff --git a/agc_2-X/branches/agc_2.0.4/docs/REQUIRED_APPS_INSTALL.txt b/agc_2-X/branches/agc_2.0.4/docs/REQUIRED_APPS_INSTALL.txt index 5ec95dda..2c2c9090 100644 --- a/agc_2-X/branches/agc_2.0.4/docs/REQUIRED_APPS_INSTALL.txt +++ b/agc_2-X/branches/agc_2.0.4/docs/REQUIRED_APPS_INSTALL.txt @@ -159,17 +159,17 @@ make install cd /usr/local -wget http://ploticus.sourceforge.net/download/pl232src.tar.gz -gunzip pl232src.tar.gz -tar xvf pl232src.tar -cd pl232src/src/ +wget http://superb-west.dl.sourceforge.net/sourceforge/ploticus/pl240src.tar.gz +gunzip pl240src.tar.gz +tar xvf pl240src.tar +cd pl240src/src/ make clean make make install cd /usr/local -wget http://apache.secsup.org/dist/httpd/httpd-2.0.61.tar.gz +wget http://mirror.candidhosting.com/pub/apache/httpd/httpd-2.0.61.tar.gz gunzip httpd-2.0.61.tar.gz tar xvf httpd-2.0.61.tar wget http://us2.php.net/distributions/php-4.4.7.tar.gz @@ -288,16 +288,16 @@ make install mkdir /usr/src/asterisk cd /usr/src/asterisk -wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.24.tar.gz -wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.21.tar.gz -wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.5.tar.gz -gunzip asterisk-1.2.24.tar.gz -tar xvf asterisk-1.2.24.tar -gunzip zaptel-1.2.21.tar.gz -tar xvf zaptel-1.2.21.tar -gunzip libpri-1.2.5.tar.gz -tar xvf libpri-1.2.5.tar -cd ./zaptel-1.2.21 +wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.26.2.tar.gz +wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.23.tar.gz +wget http://ftp.digium.com/pub/libpri/releases/libpri-1.2.7.tar.gz +gunzip asterisk-1.2.26.2.tar.gz +tar xvf asterisk-1.2.26.2.tar +gunzip zaptel-1.2.23.tar.gz +tar xvf zaptel-1.2.23.tar +gunzip libpri-1.2.7.tar.gz +tar xvf libpri-1.2.7.tar +cd ./zaptel-1.2.23 wget http://www.freedomphones.net/files/newt-0.51.6.tar.gz gunzip newt-0.51.6.tar.gz tar xvf newt-0.51.6.tar @@ -311,11 +311,11 @@ make clean make zttool make make install -cd ../libpri-1.2.5 +cd ../libpri-1.2.7 make clean make make install -cd ../asterisk-1.2.24 +cd ../asterisk-1.2.26.2 cd apps wget http://www.eflo.net/files/app_amd2.c mv app_amd2.c app_amd.c @@ -354,7 +354,7 @@ patch -p1 < ./cli_chan_concise_delimiter.patch wget http://www.eflo.net/files/app_waitforsilence.c -mv app_waitforsilence.c apps/app_waitforsilence.c +mv -f app_waitforsilence.c apps/app_waitforsilence.c wget http://www.eflo.net/files/enter.h wget http://www.eflo.net/files/leave.h mv -f enter.h apps/enter.h @@ -412,24 +412,24 @@ rm -f /usr/lib/asterisk/modules/pbx_functions.so mkdir /usr/src/asterisk-1.4 cd /usr/src/asterisk-1.4 -wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.4.14.tar.gz -wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.4.6.tar.gz -wget http://ftp.digium.com/pub/libpri/releases/libpri-1.4.2.tar.gz -gunzip asterisk-1.4.14.tar.gz -tar xvf asterisk-1.4.14.tar -gunzip zaptel-1.4.6.tar.gz -tar xvf zaptel-1.4.6.tar -gunzip libpri-1.4.2.tar.gz -tar xvf libpri-1.4.2.tar -cd ./zaptel-1.4.6 +wget http://ftp.digium.com/pub/asterisk/releases/asterisk-1.4.17.tar.gz +wget http://ftp.digium.com/pub/zaptel/releases/zaptel-1.4.8.tar.gz +wget http://ftp.digium.com/pub/libpri/releases/libpri-1.4.3.tar.gz +gunzip asterisk-1.4.17.tar.gz +tar xvf asterisk-1.4.17.tar +gunzip zaptel-1.4.8.tar.gz +tar xvf zaptel-1.4.8.tar +gunzip libpri-1.4.3.tar.gz +tar xvf libpri-1.4.3.tar +cd ./zaptel-1.4.8 ./configure make make install -cd ../libpri-1.4.2 +cd ../libpri-1.4.3 make clean make make install -cd ../asterisk-1.4.14 +cd ../asterisk-1.4.17 wget http://www.eflo.net/files/enter.h wget http://www.eflo.net/files/leave.h mv -f enter.h apps/enter.h diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample index a8890c64..cee6f721 100644 --- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample +++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample @@ -28,109 +28,109 @@ exten => 2020,2,Voicemail,u2000 ; Send to voicemail... exten => 401,1,Dial,(IAX2/firefly01@firefly01/s) exten => 401,2,Hangup ; extensions for other SIP and IAX call center phones -exten => 100,2,Dial,sip/cc100|20|to -exten => 101,2,Dial,sip/cc101|20|to -exten => 102,2,Dial,sip/cc102|20|to -exten => 103,2,Dial,sip/cc103|20|to -exten => 104,2,Dial,sip/cc104|20|to -exten => 105,2,Dial,sip/cc105|20|to -exten => 106,2,Dial,sip/cc106|20|to -exten => 107,2,Dial,sip/cc107|20|to -exten => 108,2,Dial,sip/cc108|20|to -exten => 109,2,Dial,sip/cc109|20|to -exten => 110,2,Dial,sip/cc110|20|to -exten => 111,2,Dial,sip/cc111|20|to -exten => 112,2,Dial,sip/cc112|20|to -exten => 113,2,Dial,sip/cc113|20|to -exten => 114,2,Dial,sip/cc114|20|to -exten => 115,2,Dial,sip/cc115|20|to -exten => 116,2,Dial,sip/cc116|20|to -exten => 117,2,Dial,sip/cc117|20|to -exten => 118,2,Dial,sip/cc118|20|to -exten => 119,2,Dial,sip/cc119|20|to -exten => 120,2,Dial,sip/cc120|20|to -exten => 121,2,Dial,sip/cc121|20|to -exten => 122,2,Dial,sip/cc122|20|to -exten => 123,2,Dial,sip/cc123|20|to -exten => 124,2,Dial,sip/cc124|20|to -exten => 125,2,Dial,sip/cc125|20|to -exten => 126,2,Dial,sip/cc126|20|to -exten => 127,2,Dial,sip/cc127|20|to -exten => 128,2,Dial,sip/cc128|20|to -exten => 129,2,Dial,sip/cc129|20|to -exten => 130,2,Dial,sip/cc130|20|to -exten => 131,2,Dial,sip/cc131|20|to -exten => 132,2,Dial,sip/cc132|20|to -exten => 133,2,Dial,sip/cc133|20|to -exten => 134,2,Dial,sip/cc134|20|to -exten => 135,2,Dial,sip/cc135|20|to -exten => 136,2,Dial,sip/cc136|20|to -exten => 137,2,Dial,sip/cc137|20|to -exten => 138,2,Dial,sip/cc138|20|to -exten => 139,2,Dial,sip/cc139|20|to -exten => 140,2,Dial,sip/cc140|20|to -exten => 141,2,Dial,sip/cc141|20|to -exten => 142,2,Dial,sip/cc142|20|to -exten => 143,2,Dial,sip/cc143|20|to -exten => 144,2,Dial,sip/cc144|20|to -exten => 145,2,Dial,sip/cc145|20|to -exten => 146,2,Dial,sip/cc146|20|to -exten => 147,2,Dial,sip/cc147|20|to -exten => 148,2,Dial,sip/cc148|20|to -exten => 149,2,Dial,sip/cc149|20|to -exten => 150,2,Dial,sip/cc150|20|to +exten => 100,1,Dial,sip/cc100|20|to +exten => 101,1,Dial,sip/cc101|20|to +exten => 102,1,Dial,sip/cc102|20|to +exten => 103,1,Dial,sip/cc103|20|to +exten => 104,1,Dial,sip/cc104|20|to +exten => 105,1,Dial,sip/cc105|20|to +exten => 106,1,Dial,sip/cc106|20|to +exten => 107,1,Dial,sip/cc107|20|to +exten => 108,1,Dial,sip/cc108|20|to +exten => 109,1,Dial,sip/cc109|20|to +exten => 110,1,Dial,sip/cc110|20|to +exten => 111,1,Dial,sip/cc111|20|to +exten => 112,1,Dial,sip/cc112|20|to +exten => 113,1,Dial,sip/cc113|20|to +exten => 114,1,Dial,sip/cc114|20|to +exten => 115,1,Dial,sip/cc115|20|to +exten => 116,1,Dial,sip/cc116|20|to +exten => 117,1,Dial,sip/cc117|20|to +exten => 118,1,Dial,sip/cc118|20|to +exten => 119,1,Dial,sip/cc119|20|to +exten => 120,1,Dial,sip/cc120|20|to +exten => 121,1,Dial,sip/cc121|20|to +exten => 122,1,Dial,sip/cc122|20|to +exten => 123,1,Dial,sip/cc123|20|to +exten => 124,1,Dial,sip/cc124|20|to +exten => 125,1,Dial,sip/cc125|20|to +exten => 126,1,Dial,sip/cc126|20|to +exten => 127,1,Dial,sip/cc127|20|to +exten => 128,1,Dial,sip/cc128|20|to +exten => 129,1,Dial,sip/cc129|20|to +exten => 130,1,Dial,sip/cc130|20|to +exten => 131,1,Dial,sip/cc131|20|to +exten => 132,1,Dial,sip/cc132|20|to +exten => 133,1,Dial,sip/cc133|20|to +exten => 134,1,Dial,sip/cc134|20|to +exten => 135,1,Dial,sip/cc135|20|to +exten => 136,1,Dial,sip/cc136|20|to +exten => 137,1,Dial,sip/cc137|20|to +exten => 138,1,Dial,sip/cc138|20|to +exten => 139,1,Dial,sip/cc139|20|to +exten => 140,1,Dial,sip/cc140|20|to +exten => 141,1,Dial,sip/cc141|20|to +exten => 142,1,Dial,sip/cc142|20|to +exten => 143,1,Dial,sip/cc143|20|to +exten => 144,1,Dial,sip/cc144|20|to +exten => 145,1,Dial,sip/cc145|20|to +exten => 146,1,Dial,sip/cc146|20|to +exten => 147,1,Dial,sip/cc147|20|to +exten => 148,1,Dial,sip/cc148|20|to +exten => 149,1,Dial,sip/cc149|20|to +exten => 150,1,Dial,sip/cc150|20|to -exten => 300,2,Dial,IAX2/cc300|20|to -exten => 301,2,Dial,IAX2/cc301|20|to -exten => 302,2,Dial,IAX2/cc302|20|to -exten => 303,2,Dial,IAX2/cc303|20|to -exten => 304,2,Dial,IAX2/cc304|20|to -exten => 305,2,Dial,IAX2/cc305|20|to -exten => 306,2,Dial,IAX2/cc306|20|to -exten => 307,2,Dial,IAX2/cc307|20|to -exten => 308,2,Dial,IAX2/cc308|20|to -exten => 309,2,Dial,IAX2/cc309|20|to -exten => 310,2,Dial,IAX2/cc310|20|to -exten => 311,2,Dial,IAX2/cc311|20|to -exten => 312,2,Dial,IAX2/cc312|20|to -exten => 313,2,Dial,IAX2/cc313|20|to -exten => 314,2,Dial,IAX2/cc314|20|to -exten => 315,2,Dial,IAX2/cc315|20|to -exten => 316,2,Dial,IAX2/cc316|20|to -exten => 317,2,Dial,IAX2/cc317|20|to -exten => 318,2,Dial,IAX2/cc318|20|to -exten => 319,2,Dial,IAX2/cc319|20|to -exten => 320,2,Dial,IAX2/cc320|20|to -exten => 321,2,Dial,IAX2/cc321|20|to -exten => 322,2,Dial,IAX2/cc322|20|to -exten => 323,2,Dial,IAX2/cc323|20|to -exten => 324,2,Dial,IAX2/cc324|20|to -exten => 325,2,Dial,IAX2/cc325|20|to -exten => 326,2,Dial,IAX2/cc326|20|to -exten => 327,2,Dial,IAX2/cc327|20|to -exten => 328,2,Dial,IAX2/cc328|20|to -exten => 329,2,Dial,IAX2/cc329|20|to -exten => 330,2,Dial,IAX2/cc330|20|to -exten => 331,2,Dial,IAX2/cc331|20|to -exten => 332,2,Dial,IAX2/cc332|20|to -exten => 333,2,Dial,IAX2/cc333|20|to -exten => 334,2,Dial,IAX2/cc334|20|to -exten => 335,2,Dial,IAX2/cc335|20|to -exten => 336,2,Dial,IAX2/cc336|20|to -exten => 337,2,Dial,IAX2/cc337|20|to -exten => 338,2,Dial,IAX2/cc338|20|to -exten => 339,2,Dial,IAX2/cc339|20|to -exten => 340,2,Dial,IAX2/cc340|20|to -exten => 341,2,Dial,IAX2/cc341|20|to -exten => 342,2,Dial,IAX2/cc342|20|to -exten => 343,2,Dial,IAX2/cc343|20|to -exten => 344,2,Dial,IAX2/cc344|20|to -exten => 345,2,Dial,IAX2/cc345|20|to -exten => 346,2,Dial,IAX2/cc346|20|to -exten => 347,2,Dial,IAX2/cc347|20|to -exten => 348,2,Dial,IAX2/cc348|20|to -exten => 349,2,Dial,IAX2/cc349|20|to -exten => 350,2,Dial,IAX2/cc350|20|to +exten => 300,1,Dial,IAX2/cc300|20|to +exten => 301,1,Dial,IAX2/cc301|20|to +exten => 302,1,Dial,IAX2/cc302|20|to +exten => 303,1,Dial,IAX2/cc303|20|to +exten => 304,1,Dial,IAX2/cc304|20|to +exten => 305,1,Dial,IAX2/cc305|20|to +exten => 306,1,Dial,IAX2/cc306|20|to +exten => 307,1,Dial,IAX2/cc307|20|to +exten => 308,1,Dial,IAX2/cc308|20|to +exten => 309,1,Dial,IAX2/cc309|20|to +exten => 310,1,Dial,IAX2/cc310|20|to +exten => 311,1,Dial,IAX2/cc311|20|to +exten => 312,1,Dial,IAX2/cc312|20|to +exten => 313,1,Dial,IAX2/cc313|20|to +exten => 314,1,Dial,IAX2/cc314|20|to +exten => 315,1,Dial,IAX2/cc315|20|to +exten => 316,1,Dial,IAX2/cc316|20|to +exten => 317,1,Dial,IAX2/cc317|20|to +exten => 318,1,Dial,IAX2/cc318|20|to +exten => 319,1,Dial,IAX2/cc319|20|to +exten => 320,1,Dial,IAX2/cc320|20|to +exten => 321,1,Dial,IAX2/cc321|20|to +exten => 322,1,Dial,IAX2/cc322|20|to +exten => 323,1,Dial,IAX2/cc323|20|to +exten => 324,1,Dial,IAX2/cc324|20|to +exten => 325,1,Dial,IAX2/cc325|20|to +exten => 326,1,Dial,IAX2/cc326|20|to +exten => 327,1,Dial,IAX2/cc327|20|to +exten => 328,1,Dial,IAX2/cc328|20|to +exten => 329,1,Dial,IAX2/cc329|20|to +exten => 330,1,Dial,IAX2/cc330|20|to +exten => 331,1,Dial,IAX2/cc331|20|to +exten => 332,1,Dial,IAX2/cc332|20|to +exten => 333,1,Dial,IAX2/cc333|20|to +exten => 334,1,Dial,IAX2/cc334|20|to +exten => 335,1,Dial,IAX2/cc335|20|to +exten => 336,1,Dial,IAX2/cc336|20|to +exten => 337,1,Dial,IAX2/cc337|20|to +exten => 338,1,Dial,IAX2/cc338|20|to +exten => 339,1,Dial,IAX2/cc339|20|to +exten => 340,1,Dial,IAX2/cc340|20|to +exten => 341,1,Dial,IAX2/cc341|20|to +exten => 342,1,Dial,IAX2/cc342|20|to +exten => 343,1,Dial,IAX2/cc343|20|to +exten => 344,1,Dial,IAX2/cc344|20|to +exten => 345,1,Dial,IAX2/cc345|20|to +exten => 346,1,Dial,IAX2/cc346|20|to +exten => 347,1,Dial,IAX2/cc347|20|to +exten => 348,1,Dial,IAX2/cc348|20|to +exten => 349,1,Dial,IAX2/cc349|20|to +exten => 350,1,Dial,IAX2/cc350|20|to ; extensions if using a T1 channelbank exten => 1901,1,Dial,Zap/1|30|o @@ -300,9 +300,9 @@ exten => _**3429,6,Voicemail,u2000 exten => _*NXXNXXXXXX*3429,1,Ringing exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log) exten => _*NXXNXXXXXX*3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) -exten => _*NXXNXXXXXX*3429,3,Answer -exten => _*NXXNXXXXXX*3429,4,Dial,sip/spa2000&sip/spa2001|30|to -exten => _*NXXNXXXXXX*3429,5,Voicemail,u2000 +exten => _*NXXNXXXXXX*3429,4,Answer +exten => _*NXXNXXXXXX*3429,5,Dial,sip/spa2000&sip/spa2001|30|to +exten => _*NXXNXXXXXX*3429,6,Voicemail,u2000 ; BE SURE TO CHANGE THESE FOR YOUR IP ADDRESS! exten => _010*010*010*015*8600XXX,1,Goto(default,${EXTEN:16},1) diff --git a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample-1.4 b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample-1.4 index 9fa08fd5..61fea180 100644 --- a/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample-1.4 +++ b/agc_2-X/branches/agc_2.0.4/docs/conf_examples/extensions.conf.sample-1.4 @@ -27,109 +27,109 @@ exten => 2020,2,Voicemail,u2000 ; Send to voicemail... exten => 401,1,Dial,(IAX2/firefly01@firefly01/s) exten => 401,2,Hangup ; extensions for other SIP and IAX call center phones -exten => 100,2,Dial,sip/cc100|20|to -exten => 101,2,Dial,sip/cc101|20|to -exten => 102,2,Dial,sip/cc102|20|to -exten => 103,2,Dial,sip/cc103|20|to -exten => 104,2,Dial,sip/cc104|20|to -exten => 105,2,Dial,sip/cc105|20|to -exten => 106,2,Dial,sip/cc106|20|to -exten => 107,2,Dial,sip/cc107|20|to -exten => 108,2,Dial,sip/cc108|20|to -exten => 109,2,Dial,sip/cc109|20|to -exten => 110,2,Dial,sip/cc110|20|to -exten => 111,2,Dial,sip/cc111|20|to -exten => 112,2,Dial,sip/cc112|20|to -exten => 113,2,Dial,sip/cc113|20|to -exten => 114,2,Dial,sip/cc114|20|to -exten => 115,2,Dial,sip/cc115|20|to -exten => 116,2,Dial,sip/cc116|20|to -exten => 117,2,Dial,sip/cc117|20|to -exten => 118,2,Dial,sip/cc118|20|to -exten => 119,2,Dial,sip/cc119|20|to -exten => 120,2,Dial,sip/cc120|20|to -exten => 121,2,Dial,sip/cc121|20|to -exten => 122,2,Dial,sip/cc122|20|to -exten => 123,2,Dial,sip/cc123|20|to -exten => 124,2,Dial,sip/cc124|20|to -exten => 125,2,Dial,sip/cc125|20|to -exten => 126,2,Dial,sip/cc126|20|to -exten => 127,2,Dial,sip/cc127|20|to -exten => 128,2,Dial,sip/cc128|20|to -exten => 129,2,Dial,sip/cc129|20|to -exten => 130,2,Dial,sip/cc130|20|to -exten => 131,2,Dial,sip/cc131|20|to -exten => 132,2,Dial,sip/cc132|20|to -exten => 133,2,Dial,sip/cc133|20|to -exten => 134,2,Dial,sip/cc134|20|to -exten => 135,2,Dial,sip/cc135|20|to -exten => 136,2,Dial,sip/cc136|20|to -exten => 137,2,Dial,sip/cc137|20|to -exten => 138,2,Dial,sip/cc138|20|to -exten => 139,2,Dial,sip/cc139|20|to -exten => 140,2,Dial,sip/cc140|20|to -exten => 141,2,Dial,sip/cc141|20|to -exten => 142,2,Dial,sip/cc142|20|to -exten => 143,2,Dial,sip/cc143|20|to -exten => 144,2,Dial,sip/cc144|20|to -exten => 145,2,Dial,sip/cc145|20|to -exten => 146,2,Dial,sip/cc146|20|to -exten => 147,2,Dial,sip/cc147|20|to -exten => 148,2,Dial,sip/cc148|20|to -exten => 149,2,Dial,sip/cc149|20|to -exten => 150,2,Dial,sip/cc150|20|to +exten => 100,1,Dial,sip/cc100|20|to +exten => 101,1,Dial,sip/cc101|20|to +exten => 102,1,Dial,sip/cc102|20|to +exten => 103,1,Dial,sip/cc103|20|to +exten => 104,1,Dial,sip/cc104|20|to +exten => 105,1,Dial,sip/cc105|20|to +exten => 106,1,Dial,sip/cc106|20|to +exten => 107,1,Dial,sip/cc107|20|to +exten => 108,1,Dial,sip/cc108|20|to +exten => 109,1,Dial,sip/cc109|20|to +exten => 110,1,Dial,sip/cc110|20|to +exten => 111,1,Dial,sip/cc111|20|to +exten => 112,1,Dial,sip/cc112|20|to +exten => 113,1,Dial,sip/cc113|20|to +exten => 114,1,Dial,sip/cc114|20|to +exten => 115,1,Dial,sip/cc115|20|to +exten => 116,1,Dial,sip/cc116|20|to +exten => 117,1,Dial,sip/cc117|20|to +exten => 118,1,Dial,sip/cc118|20|to +exten => 119,1,Dial,sip/cc119|20|to +exten => 120,1,Dial,sip/cc120|20|to +exten => 121,1,Dial,sip/cc121|20|to +exten => 122,1,Dial,sip/cc122|20|to +exten => 123,1,Dial,sip/cc123|20|to +exten => 124,1,Dial,sip/cc124|20|to +exten => 125,1,Dial,sip/cc125|20|to +exten => 126,1,Dial,sip/cc126|20|to +exten => 127,1,Dial,sip/cc127|20|to +exten => 128,1,Dial,sip/cc128|20|to +exten => 129,1,Dial,sip/cc129|20|to +exten => 130,1,Dial,sip/cc130|20|to +exten => 131,1,Dial,sip/cc131|20|to +exten => 132,1,Dial,sip/cc132|20|to +exten => 133,1,Dial,sip/cc133|20|to +exten => 134,1,Dial,sip/cc134|20|to +exten => 135,1,Dial,sip/cc135|20|to +exten => 136,1,Dial,sip/cc136|20|to +exten => 137,1,Dial,sip/cc137|20|to +exten => 138,1,Dial,sip/cc138|20|to +exten => 139,1,Dial,sip/cc139|20|to +exten => 140,1,Dial,sip/cc140|20|to +exten => 141,1,Dial,sip/cc141|20|to +exten => 142,1,Dial,sip/cc142|20|to +exten => 143,1,Dial,sip/cc143|20|to +exten => 144,1,Dial,sip/cc144|20|to +exten => 145,1,Dial,sip/cc145|20|to +exten => 146,1,Dial,sip/cc146|20|to +exten => 147,1,Dial,sip/cc147|20|to +exten => 148,1,Dial,sip/cc148|20|to +exten => 149,1,Dial,sip/cc149|20|to +exten => 150,1,Dial,sip/cc150|20|to -exten => 300,2,Dial,IAX2/cc300|20|to -exten => 301,2,Dial,IAX2/cc301|20|to -exten => 302,2,Dial,IAX2/cc302|20|to -exten => 303,2,Dial,IAX2/cc303|20|to -exten => 304,2,Dial,IAX2/cc304|20|to -exten => 305,2,Dial,IAX2/cc305|20|to -exten => 306,2,Dial,IAX2/cc306|20|to -exten => 307,2,Dial,IAX2/cc307|20|to -exten => 308,2,Dial,IAX2/cc308|20|to -exten => 309,2,Dial,IAX2/cc309|20|to -exten => 310,2,Dial,IAX2/cc310|20|to -exten => 311,2,Dial,IAX2/cc311|20|to -exten => 312,2,Dial,IAX2/cc312|20|to -exten => 313,2,Dial,IAX2/cc313|20|to -exten => 314,2,Dial,IAX2/cc314|20|to -exten => 315,2,Dial,IAX2/cc315|20|to -exten => 316,2,Dial,IAX2/cc316|20|to -exten => 317,2,Dial,IAX2/cc317|20|to -exten => 318,2,Dial,IAX2/cc318|20|to -exten => 319,2,Dial,IAX2/cc319|20|to -exten => 320,2,Dial,IAX2/cc320|20|to -exten => 321,2,Dial,IAX2/cc321|20|to -exten => 322,2,Dial,IAX2/cc322|20|to -exten => 323,2,Dial,IAX2/cc323|20|to -exten => 324,2,Dial,IAX2/cc324|20|to -exten => 325,2,Dial,IAX2/cc325|20|to -exten => 326,2,Dial,IAX2/cc326|20|to -exten => 327,2,Dial,IAX2/cc327|20|to -exten => 328,2,Dial,IAX2/cc328|20|to -exten => 329,2,Dial,IAX2/cc329|20|to -exten => 330,2,Dial,IAX2/cc330|20|to -exten => 331,2,Dial,IAX2/cc331|20|to -exten => 332,2,Dial,IAX2/cc332|20|to -exten => 333,2,Dial,IAX2/cc333|20|to -exten => 334,2,Dial,IAX2/cc334|20|to -exten => 335,2,Dial,IAX2/cc335|20|to -exten => 336,2,Dial,IAX2/cc336|20|to -exten => 337,2,Dial,IAX2/cc337|20|to -exten => 338,2,Dial,IAX2/cc338|20|to -exten => 339,2,Dial,IAX2/cc339|20|to -exten => 340,2,Dial,IAX2/cc340|20|to -exten => 341,2,Dial,IAX2/cc341|20|to -exten => 342,2,Dial,IAX2/cc342|20|to -exten => 343,2,Dial,IAX2/cc343|20|to -exten => 344,2,Dial,IAX2/cc344|20|to -exten => 345,2,Dial,IAX2/cc345|20|to -exten => 346,2,Dial,IAX2/cc346|20|to -exten => 347,2,Dial,IAX2/cc347|20|to -exten => 348,2,Dial,IAX2/cc348|20|to -exten => 349,2,Dial,IAX2/cc349|20|to -exten => 350,2,Dial,IAX2/cc350|20|to +exten => 300,1,Dial,IAX2/cc300|20|to +exten => 301,1,Dial,IAX2/cc301|20|to +exten => 302,1,Dial,IAX2/cc302|20|to +exten => 303,1,Dial,IAX2/cc303|20|to +exten => 304,1,Dial,IAX2/cc304|20|to +exten => 305,1,Dial,IAX2/cc305|20|to +exten => 306,1,Dial,IAX2/cc306|20|to +exten => 307,1,Dial,IAX2/cc307|20|to +exten => 308,1,Dial,IAX2/cc308|20|to +exten => 309,1,Dial,IAX2/cc309|20|to +exten => 310,1,Dial,IAX2/cc310|20|to +exten => 311,1,Dial,IAX2/cc311|20|to +exten => 312,1,Dial,IAX2/cc312|20|to +exten => 313,1,Dial,IAX2/cc313|20|to +exten => 314,1,Dial,IAX2/cc314|20|to +exten => 315,1,Dial,IAX2/cc315|20|to +exten => 316,1,Dial,IAX2/cc316|20|to +exten => 317,1,Dial,IAX2/cc317|20|to +exten => 318,1,Dial,IAX2/cc318|20|to +exten => 319,1,Dial,IAX2/cc319|20|to +exten => 320,1,Dial,IAX2/cc320|20|to +exten => 321,1,Dial,IAX2/cc321|20|to +exten => 322,1,Dial,IAX2/cc322|20|to +exten => 323,1,Dial,IAX2/cc323|20|to +exten => 324,1,Dial,IAX2/cc324|20|to +exten => 325,1,Dial,IAX2/cc325|20|to +exten => 326,1,Dial,IAX2/cc326|20|to +exten => 327,1,Dial,IAX2/cc327|20|to +exten => 328,1,Dial,IAX2/cc328|20|to +exten => 329,1,Dial,IAX2/cc329|20|to +exten => 330,1,Dial,IAX2/cc330|20|to +exten => 331,1,Dial,IAX2/cc331|20|to +exten => 332,1,Dial,IAX2/cc332|20|to +exten => 333,1,Dial,IAX2/cc333|20|to +exten => 334,1,Dial,IAX2/cc334|20|to +exten => 335,1,Dial,IAX2/cc335|20|to +exten => 336,1,Dial,IAX2/cc336|20|to +exten => 337,1,Dial,IAX2/cc337|20|to +exten => 338,1,Dial,IAX2/cc338|20|to +exten => 339,1,Dial,IAX2/cc339|20|to +exten => 340,1,Dial,IAX2/cc340|20|to +exten => 341,1,Dial,IAX2/cc341|20|to +exten => 342,1,Dial,IAX2/cc342|20|to +exten => 343,1,Dial,IAX2/cc343|20|to +exten => 344,1,Dial,IAX2/cc344|20|to +exten => 345,1,Dial,IAX2/cc345|20|to +exten => 346,1,Dial,IAX2/cc346|20|to +exten => 347,1,Dial,IAX2/cc347|20|to +exten => 348,1,Dial,IAX2/cc348|20|to +exten => 349,1,Dial,IAX2/cc349|20|to +exten => 350,1,Dial,IAX2/cc350|20|to ; extensions if using a T1 channelbank exten => 1901,1,Dial,Zap/1|30|o @@ -299,9 +299,9 @@ exten => _**3429,6,Voicemail,u2000 exten => _*NXXNXXXXXX*3429,1,Ringing exten => _*NXXNXXXXXX*3429,2,AGI(agi://127.0.0.1:4577/call_log) exten => _*NXXNXXXXXX*3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w) -exten => _*NXXNXXXXXX*3429,3,Answer -exten => _*NXXNXXXXXX*3429,4,Dial,sip/spa2000&sip/spa2001|30|to -exten => _*NXXNXXXXXX*3429,5,Voicemail,u2000 +exten => _*NXXNXXXXXX*3429,4,Answer +exten => _*NXXNXXXXXX*3429,5,Dial,sip/spa2000&sip/spa2001|30|to +exten => _*NXXNXXXXXX*3429,6,Voicemail,u2000 ; BE SURE TO CHANGE THESE FOR YOUR IP ADDRESS! exten => _010*010*010*015*8600XXX,1,Goto(default,${EXTEN:16},1) diff --git a/agc_2-X/branches/agc_2.0.4/www/agc/vdc_db_query.php b/agc_2-X/branches/agc_2.0.4/www/agc/vdc_db_query.php index 06da692e..eff3e23e 100644 --- a/agc_2-X/branches/agc_2.0.4/www/agc/vdc_db_query.php +++ b/agc_2-X/branches/agc_2.0.4/www/agc/vdc_db_query.php @@ -1,7 +1,7 @@ LICENSE: GPLv2 +# Copyright (C) 2008 Matt Florell LICENSE: GPLv2 # # This script is designed purely to send whether the meetme conference has live channels connected and which they are # This script depends on the server_ip being sent and also needs to have a valid user/pass from the vicidial_users table @@ -140,10 +140,11 @@ # 71125-1751 - Added inbound-group default inbound group sending to vicidial.php # 71129-2025 - restricted callbacks count and list to campaign only # 71226-1117 - added option to kick all calls from conference upon logout +# 80128-1159 - fixed vicidial_log bugs # -$version = '2.0.4-66'; -$build = '71226-1117'; +$version = '2.0.4-67'; +$build = '80128-1159'; require("dbconnect.php"); @@ -1053,7 +1054,8 @@ if ($stage == "end") if ($format=='debug') {echo "\n";} $rslt=mysql_query($stmt, $link); $row=mysql_fetch_row($rslt); - if ($row[0] > 0) + $check_inbound = $row[0]; + if ($check_inbound > 0) { ##### look for the start epoch in the vicidial_closer_log table $stmt="SELECT start_epoch FROM vicidial_closer_log where phone_number='$phone_number' and lead_id='$lead_id' and user='$user' order by closecallid desc limit 1;"; @@ -1076,11 +1078,8 @@ if ($stage == "end") { $length_in_sec = 0; } - $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ( ($length_in_sec < 1) and ($row[0] > 0) ) + + if ( ($length_in_sec < 1) and ($check_inbound > 0) ) { ##### start epoch in the vicidial_log table, couldn't find one in vicidial_closer_log $stmt="SELECT start_epoch FROM vicidial_log where uniqueid='$uniqueid' and lead_id='$lead_id';"; @@ -1101,15 +1100,20 @@ if ($stage == "end") } else {$length_in_sec = ($StarTtime - $start_epoch);} - $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) + $closer_logged=0; + if ($check_inbound > 0) { - $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' order by start_epoch desc limit 1;"; + $four_hours_ago = date("Y-m-d H:i:s", mktime(date("H")-4,date("i"),date("s"),date("m"),date("d"),date("Y"))); + + $stmt = "UPDATE vicidial_closer_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where lead_id='$lead_id' and call_date > \"$four_hours_ago\" order by start_epoch desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); + if ($affected_rows > 0) + { + $closer_logged=1; + echo "$uniqueid\n$channel\n"; + } } ############################################# @@ -1351,19 +1355,22 @@ if ($stage == "end") } } - ##### look for the channel in the UPDATED vicidial_manager record of the call initiation - $stmt="UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $affected_rows = mysql_affected_rows($link); + if ($closer_logged < 1) + { + ##### update the duration and end time in the vicidial_log table + $stmt="UPDATE vicidial_log set end_epoch='$StarTtime', length_in_sec='$length_in_sec' where uniqueid='$uniqueid' and lead_id='$lead_id';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $affected_rows = mysql_affected_rows($link); - if ($affected_rows > 0) - { - echo "$uniqueid\n$channel\n"; - } - else - { - echo "LOG NOT ENTERED\n\n"; + if ($affected_rows > 0) + { + echo "$uniqueid\n$channel\n"; + } + else + { + echo "LOG NOT ENTERED\n\n"; + } } } @@ -1646,41 +1653,69 @@ if ($ACTION == 'VDADcheckINCOMING') $row=mysql_fetch_row($rslt); $user_group = trim("$row[0]"); } - $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; + + + $stmt = "select campaign_id,phone_number,alt_dial,call_type from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - - $stmt = "select count(*) from vicidial_campaigns where campaign_id='$campaign' and campaign_allow_inbound='Y';"; - if ($format=='debug') {echo "\n";} - $rslt=mysql_query($stmt, $link); - $row=mysql_fetch_row($rslt); - if ($row[0] > 0) + $VDAC_cid_ct = mysql_num_rows($rslt); + if ($VDAC_cid_ct > 0) { - ### update the vicidial_closer_log user to INCALL - $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + $row=mysql_fetch_row($rslt); + $VDADchannel_group =$row[0]; + $dialed_number =$row[1]; + $dialed_label =$row[2]; + $call_type =$row[3]; + } + else + { + if ($WeBRooTWritablE > 0) + { + $fp = fopen ("./vicidial_debug.txt", "a"); + fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|\n"); + fclose($fp); + } + } + + if ( ($call_type=='OUT') or ($call_type=='OUTBALANCE') ) + { + $stmt = "UPDATE vicidial_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' and uniqueid='$uniqueid';"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); - $stmt = "select campaign_id,phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; + $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number from vicidial_campaigns where campaign_id='$campaign';"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); + $VDIG_cid_ct = mysql_num_rows($rslt); + if ($VDIG_cid_ct > 0) + { + $row=mysql_fetch_row($rslt); + $VDCL_campaign_script = $row[0]; + $VDCL_get_call_launch = $row[1]; + $VDCL_xferconf_a_dtmf = $row[2]; + $VDCL_xferconf_a_number = $row[3]; + $VDCL_xferconf_b_dtmf = $row[4]; + $VDCL_xferconf_b_number = $row[5]; + } + echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|\n|\n"; + + $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; if ($DB) {echo "$stmt\n";} $rslt=mysql_query($stmt, $link); $VDAC_cid_ct = mysql_num_rows($rslt); if ($VDAC_cid_ct > 0) { $row=mysql_fetch_row($rslt); - $VDADchannel_group =$row[0]; - $dialed_number =$row[1]; - $dialed_label =$row[2]; - } - else - { - if ($WeBRooTWritablE > 0) - { - $fp = fopen ("./vicidial_debug.txt", "a"); - fwrite ($fp, "$NOW_TIME|INBND|$callerid|$user|$user_group|$list_id|$lead_id|$phone_number|$uniqueid|\n"); - fclose($fp); - } + $dialed_number =$row[0]; + $dialed_label =$row[1]; } + } + else + { + ### update the vicidial_closer_log user to INCALL + $stmt = "UPDATE vicidial_closer_log set user='$user', comments='AUTO', list_id='$list_id', status='INCALL', user_group='$user_group' where lead_id='$lead_id' order by closecallid desc limit 1;"; + if ($DB) {echo "$stmt\n";} + $rslt=mysql_query($stmt, $link); $stmt = "select count(*) from vicidial_log where lead_id='$lead_id' and uniqueid='$uniqueid';"; if ($DB) {echo "$stmt\n";} @@ -1752,35 +1787,6 @@ if ($ACTION == 'VDADcheckINCOMING') } else {echo '|' . $tsr . "\n";} } - else - { - $stmt = "select campaign_script,get_call_launch,xferconf_a_dtmf,xferconf_a_number,xferconf_b_dtmf,xferconf_b_number from vicidial_campaigns where campaign_id='$campaign';"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $VDIG_cid_ct = mysql_num_rows($rslt); - if ($VDIG_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $VDCL_campaign_script = $row[0]; - $VDCL_get_call_launch = $row[1]; - $VDCL_xferconf_a_dtmf = $row[2]; - $VDCL_xferconf_a_number = $row[3]; - $VDCL_xferconf_b_dtmf = $row[4]; - $VDCL_xferconf_b_number = $row[5]; - } - echo "|||||$VDCL_campaign_script|$VDCL_get_call_launch|$VDCL_xferconf_a_dtmf|$VDCL_xferconf_a_number|$VDCL_xferconf_b_dtmf|$VDCL_xferconf_b_number|\n|\n"; - - $stmt = "select phone_number,alt_dial from vicidial_auto_calls where callerid = '$callerid' order by call_time desc limit 1;"; - if ($DB) {echo "$stmt\n";} - $rslt=mysql_query($stmt, $link); - $VDAC_cid_ct = mysql_num_rows($rslt); - if ($VDAC_cid_ct > 0) - { - $row=mysql_fetch_row($rslt); - $dialed_number =$row[0]; - $dialed_label =$row[1]; - } - } $comments = eregi_replace("\r",'',$comments); $comments = eregi_replace("\n",'!N',$comments); diff --git a/agc_2-X/branches/agc_2.0.4/www/agc/vicidial.php b/agc_2-X/branches/agc_2.0.4/www/agc/vicidial.php index db142a43..d38d49d8 100644 --- a/agc_2-X/branches/agc_2.0.4/www/agc/vicidial.php +++ b/agc_2-X/branches/agc_2.0.4/www/agc/vicidial.php @@ -1,7 +1,7 @@ LICENSE: GPLv2 +# Copyright (C) 2008 Matt Florell LICENSE: GPLv2 # # make sure you have added a user to the vicidial_users MySQL table with at least # user_level 1 or greater to access this page. Also, you need to have the login @@ -262,7 +262,7 @@ $volumecontrol_active = '1'; # set to 1 to allow agents to alter volume of chann $PreseT_DiaL_LinKs = '1'; # set to 1 to show a DIAL link for Dial Presets $LogiNAJAX = '1'; # set to 1 to do lookups $HidEMonitoRSessionS = '1'; # set to 1 to hide remote monitoring channels from "session calls" -$LogouTKicKAlL = '0'; # set to 1 to hangup all calls in session upon agent logout +$LogouTKicKAlL = '1'; # set to 1 to hangup all calls in session upon agent logout $TEST_all_statuses = '0'; # TEST variable allows all statuses in dispo screen diff --git a/agc_2-X/branches/agc_2.0.4/www/vicidial/admin.php b/agc_2-X/branches/agc_2.0.4/www/vicidial/admin.php index 2b4b948b..02f1e90b 100644 --- a/agc_2-X/branches/agc_2.0.4/www/vicidial/admin.php +++ b/agc_2-X/branches/agc_2.0.4/www/vicidial/admin.php @@ -4140,7 +4140,9 @@ if ($ADD==11) echo "Hopper Level: $NWB#vicidial_campaigns-hopper_level$NWE\n"; echo "Auto Dial Level: (0 = off)$NWB#vicidial_campaigns-auto_dial_level$NWE\n"; echo "Next Agent Call: $NWB#vicidial_campaigns-next_agent_call$NWE\n"; - echo "Local Call Time: $NWB#vicidial_campaigns-local_call_time$NWE\n"; + echo "Local Call Time: $NWB#vicidial_campaigns-local_call_time$NWE\n"; echo "Voicemail: $NWB#vicidial_campaigns-voicemail_ext$NWE\n"; echo "Script: