#!/usr/bin/php -q init(); $db = $app->getSysConn(); Agi::init(); // Formats the caller phone number $callerId = str_replace('+', '00', Agi::get('agi_callerid')); $countryPrefix = $db->getValue('SELECT countryPrefix FROM config'); $prefixLen = strlen($countryPrefix); if (substr($callerId, 0, $prefixLen) === $countryPrefix) $callerId = substr($callerId, $prefixLen); // Checks if phone number is on the blacklist if ($db->getValue('SELECT COUNT(*) > 0 FROM blacklist WHERE phone = #', [$callerId])) { Agi::exec('HANGUP'); exit; } // Checks whether its a festive day $sundayFestive = $db->getValue('SELECT sundayFestive FROM config'); if (date('N') == 7 && $sundayFestive) { Agi::exec('SET VARIABLE MACRO playback'); Agi::exec('SET VARIABLE ARG1 out-of-ours'); exit; } // Checks schedules $scheduledQueue = $db->getValue( 'SELECT `queue` FROM pbx.schedule WHERE `weekDay` = WEEKDAY(CURDATE()) AND CURTIME() BETWEEN timeStart AND timeEnd LIMIT 1' ); if ($scheduledQueue) { Agi::exec('SET VARIABLE MACRO queue'); Agi::exec("SET VARIABLE ARG1 $scheduledQueue"); exit; } // Gets the customer from the phone number $customer = $db->getValue('SELECT clientFromPhone(#)', [$callerId]); if ($customer) { // Gets the customer salesperson extension $extension = $db->getValue( 'SELECT s.extension FROM sip s JOIN vn2008.Trabajadores t ON t.user_id = s.user_id WHERE t.id_trabajador = vn2008.Averiguar_ComercialCliente_Id(#, CURDATE())' ,[$customer] ); if ($extension) { Agi::exec('SET VARIABLE MACRO exten'); Agi::exec("SET VARIABLE ARG1 $extension"); } else { Agi::exec('SET VARIABLE MACRO playback'); Agi::exec('SET VARIABLE ARG1 busy'); } }