/** * Returns the singleton instance of this class. * * @return PBX_Asterisk_AGI */ public static function getInstance() { if (!isset(self::$instance)) { self::$instance = new self(); } return self::$instance; }
* You should have received a copy of the GNU General Public License * along with SNEP. If not, see <http://www.gnu.org/licenses/>. */ // Controle da exibição de erros error_reporting(E_ALL | E_STRICT); ini_set('display_startup_errors', 1); ini_set('display_errors', 1); require_once "Bootstrap.php"; new Bootstrap(); require_once "Snep/Config.php"; require_once "Snep/Logger.php"; require_once "PBX/Asterisk/AGI.php"; require_once "Zend/Console/Getopt.php"; $config = Snep_Config::getConfig(); $log = Snep_Logger::getInstance(); $asterisk = PBX_Asterisk_AGI::getInstance(); // Configuração das opções da linha de comando try { $opts = new Zend_Console_Getopt(array('version|v' => 'Prints version.', 'outgoing_number|o=s' => 'Define a outgoing number', 'xfer|x=s' => 'Replace the channel used for source identification.')); $opts->parse(); } catch (Zend_Console_Getopt_Exception $e) { $log->err($e->getMessage()); $log->err($e->getUsageMessage()); exit; } if ($opts->version) { echo "SNEP Version " . Zend_Registry::get('snep_version') . "\n"; exit; } if ($opts->xfer) { $asterisk->request['agi_channel'] = $opts->xfer;
protected function startLogger() { $asterisk = PBX_Asterisk_AGI::getInstance(); $config = Snep_Config::getConfig(); $log = Snep_Logger::getInstance(); Zend_Registry::set("log", $log); // Log em arquivo $writer = new Zend_Log_Writer_Stream($config->system->path->log . '/agi.log'); $format = sprintf("%%timestamp%% - %s -> %s - %%priorityName%% (%%priority%%):%%message%%", $asterisk->request['agi_callerid'], $asterisk->request['agi_extension']) . PHP_EOL; $formatter = new Zend_Log_Formatter_Simple($format); $writer->setFormatter($formatter); $log->addWriter($writer); // Log no console do Asterisk $console_writer = new PBX_Asterisk_Log_Writer($asterisk); $format = sprintf("%s -> %s %%priorityName%% (%%priority%%):%%message%%", $asterisk->request['agi_callerid'], $asterisk->request['agi_extension']) . PHP_EOL; $console_formatter = new Zend_Log_Formatter_Simple($format . PHP_EOL); $console_writer->setFormatter($console_formatter); $log->addWriter($console_writer); if (!$config->system->debug) { $writer->addFilter(new Zend_Log_Filter_Priority(Zend_Log::NOTICE)); $console_writer->addFilter(new Zend_Log_Filter_Priority(Zend_Log::INFO)); } }