72 lines
1.5 KiB
PHP
72 lines
1.5 KiB
PHP
|
#!/usr/bin/php -q
|
||
|
<?php
|
||
|
|
||
|
require_once ('agi.php');
|
||
|
@include_once __DIR__.'/env.php';
|
||
|
require_once 'vn-autoload.php';
|
||
|
|
||
|
$app = new Vn\Lib\App ('vn-asterisk');
|
||
|
$app->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 ();
|
||
|
}
|
||
|
|
||
|
// 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');
|
||
|
}
|
||
|
}
|
||
|
|
||
|
?>
|