vn-asterisk/agi-bin/incoming.php

73 lines
1.5 KiB
PHP
Executable File

#!/usr/bin/php -q
<?php
require_once ('agi.php');
require_once ('vn/lib/app.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 country_prefix 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 sunday_festive FROM config');
if (date ('N') == 6 && $sundayFestive)
{
Agi::exec ('SET VARIABLE MACRO playback');
Agi::exec ('SET VARIABLE ARG1 festive');
exit ();
}
// Gets the customer from the phone number
$customer = $db->getValue ('SELECT customer_from_phone(#)', [$callerId]);
if ($customer)
{
// Gets the customer salesperson extension
$extension = $db->getValue (
'SELECT a.extension
FROM vn2008.Trabajadores t
JOIN pbx.sip a ON t.user_id = a.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 heavy');
}
exit ();
}
?>