log('Init'); $client = $this->getAgi(); $client->answer(); } /** * Logs to asterisk console. * * @param string $msg Message to log. * * @return void */ public function log($msg) { $agi = $this->getAgi(); $this->logger->debug($msg); $agi->consoleLog($msg); } /** * (non-PHPdoc) * @see PAGI\Application.PAGIApplication::shutdown() */ public function shutdown() { return true; try { // $this->log('Shutdown'); $client = $this->getAgi(); $client->hangup(); } catch(\Exception $e) { } } /** * (non-PHPdoc) * @see PAGI\Application.PAGIApplication::run() */ public function run() { // $this->log('Run'); $client = $this->getAgi(); // $result = $client->getData('ar/custom/ar-enter-order-id', '#', 20); // if (!$result->isTimeout()) { // // Order id Numbers are entered correctly, // // Check routine to get the correspondant phone number for the merge // // return "01000046195"; // // $this->log('Read: ' . $result->getDigits()); // $client->sayDigits($result->getDigits(), '12#'); // $client->setVariable('TARGET_NUMBER', '01000046195'); // $client->exec('Set', array('TARGET_NUMBER=01000046195')); // } else { // // $this->log('Timeouted for get data with: ' . $result->getDigits()); // } // return true; // $loggerFacade = $client->getAsteriskLogger(); // $loggerFacade->notice('hello notice'); // $loggerFacade->warn('hello warn'); // $loggerFacade->debug('hello debug'); // $loggerFacade->error('hello error'); // $loggerFacade->dtmf('hello dtmf'); //$this->log($client->faxReceive('/tmp/a.tiff')->__toString()); //$this->log($client->faxSend('/tmp/a.tiff')->__toString()); // $variables = $client->getChannelVariables(); // $this->log('Config dir: ' . $variables->getDirectoryConfig()); // $this->log('Config file: ' . $variables->getConfigFile()); // $this->log('Module dir: ' . $variables->getDirectoryModules()); // $this->log('Spool dir: ' . $variables->getDirectorySpool()); // $this->log('Monitor dir: ' . $variables->getDirectoryMonitor()); // $this->log('Var dir: ' . $variables->getDirectoryVar()); // $this->log('Data dir: ' . $variables->getDirectoryData()); // $this->log('Log dir: ' . $variables->getDirectoryLog()); // $this->log('Agi dir: ' . $variables->getDirectoryAgi()); // $this->log('Key dir: ' . $variables->getDirectoryKey()); // $this->log('Run dir: ' . $variables->getDirectoryRun()); // $this->log('Request: '. $variables->getRequest()); // $this->log('Channel: '. $variables->getChannel()); // $this->log('Language: '. $variables->getLanguage()); // $this->log('Type: '. $variables->getType()); // $this->log('UniqueId: ' . $variables->getUniqueId()); // $this->log('Version: ' . $variables->getVersion()); // $this->log('CallerId: ' . $variables->getCallerId()); // $this->log('CallerId name: ' . $variables->getCallerIdName()); // $this->log('CallerId pres: ' . $variables->getCallingPres()); // $this->log('CallingAni2: ' . $variables->getCallingAni2()); // $this->log('CallingTon: ' . $variables->getCallingTon()); // $this->log('CallingTNS: ' . $variables->getCallingTns()); // $this->log('DNID: ' . $variables->getDNID()); // $this->log('RDNIS: ' . $variables->getRDNIS()); // $this->log('Context: ' . $variables->getContext()); // $this->log('Extension: ' . $variables->getDNIS()); // $this->log('Priority: ' . $variables->getPriority()); // $this->log('Enhanced: ' . $variables->getEnhanced()); // $this->log('AccountCode: ' . $variables->getAccountCode()); // $this->log('ThreadId: ' . $variables->getThreadId()); // $this->log('Arguments: ' . intval($variables->getTotalArguments())); // for ($i = 0; $i < $variables->getTotalArguments(); $i++) { // $this->log(' -- Argument ' . intval($i) . ': ' . $variables->getArgument($i)); // } // $result = $client->sayDigits('12345', '12#'); // if (!$result->isTimeout()) { // $this->log('Read: ' . $result->getDigits()); // } else { // $this->log('Timeouted for say digits.'); // } // $result = $client->sayNumber('12345', '12#'); // if (!$result->isTimeout()) { // $this->log('Read: ' . $result->getDigits()); // } else { // $this->log('Timeouted for say number.'); // } // $client->log("01000046195"); // $client->hangup(); // \Log::debug('==================== Input from DTMF ===================='); // \Log::debug($result->getDigits()); // \Log::debug('==================== Input from DTMF ===================='); // $result = $client->getOption('welcome', '0123456789*#', 10000); // if (!$result->isTimeout()) { // $this->log('Read: ' . $result->getDigits()); // } else { // $this->log('Timeouted for get option.'); // } // $result = $client->streamFile('welcome', '#'); // if (!$result->isTimeout()) { // $this->log('Read: ' . $result->getDigits()); // } else { // $this->log('Timeouted for stream file.'); // } // $this->log('Channel status: ' . ChannelStatus::toString($client->channelStatus())); // $this->log('Channel status: ' . ChannelStatus::toString($client->channelStatus($variables->getChannel()))); // $this->log('Variable: ' . $client->getVariable('EXTEN')); // $this->log('FullVariable: ' . $client->getFullVariable('EXTEN')); // $cdr = $client->getCDR(); // $this->log('CDRVariable: ' . $cdr->getSource()); // $cdr->setAccountCode('foo'); // $this->log('CDRVariable: ' . $cdr->getAccountCode()); // $callerId = $client->getCallerId(); // $this->log('CallerID: ' . $callerId); // $callerId->setName('pepe'); // $this->log('CallerID: ' . $callerId); // $client->setCallerId('foo', '123123'); // $this->log('CallerID: ' . $callerId); // $client->exec('Dial', array('PJSIP/01000046195@pri', 50, 'r')); // $client->exec('Bridge', array('PJSIP/01000046195@pri')); // $result = $client->sayDigits($result->getDigits()); // $this->log($client->dial('PJSIP/01000046195@pri', array(50, 'r'))); // $result = $client->sayDigits($result->getDigits()); // if (!$result->isTimeout()) { // $this->log('Read: ' . $result->getDigits()); // } else { // $this->log('Timeouted for say phonetic.'); // } // $result = $client->sayAlpha('marcelog', '123#'); // if (!$result->isTimeout()) { // $this->log('Read: ' . $result->getDigits()); // } else { // $this->log('Timeouted for say alpha.'); // } // $result = $client->sayTime(time(), '123#'); // if (!$result->isTimeout()) { // $this->log('Read: ' . $result->getDigits()); // } else { // $this->log('Timeouted for say time.'); // } // $result = $client->sayDateTime(time(), 'mdYHMS', '123#'); // if (!$result->isTimeout()) { // $this->log('Read: ' . $result->getDigits()); // } else { // $this->log('Timeouted for say datetime.'); // } // $result = $client->sayDate(time(), '123#'); // if (!$result->isTimeout()) { // $this->log('Read: ' . $result->getDigits()); // } else { // $this->log('Timeouted for say date.'); // } // $client->setPriority(1000); // $client->setExtension(1000); // $client->setContext('foo'); // $client->setMusic(true); // sleep(10); // $client->setMusic(false); // $result = $client->waitDigit(10000); // if (!$result->isTimeout()) { // $this->log('Read: ' . $result->getDigits()); // } else { // $this->log('Timeouted for waitdigit.'); // } // $result = $client->record('/tmp/asd', 'wav', '#'); // if ($result->isInterrupted()) { // if ($result->isHangup()) { // $this->log('hangup when recording.'); // } else { // $this->log('interrupted with: ' . $result->getDigits()); // } // $this->log('Recorded: ' . $result->getEndPos()); // } //$this->log($client->databaseGet('SIP', 'Registry')); //$client->setAutoHangup(10); //sleep(20); } /** * (non-PHPdoc) * @see PAGI\Application.PAGIApplication::errorHandler() */ public function errorHandler($type, $message, $file, $line) { $this->log( 'ErrorHandler: ' . implode(' ', array($type, $message, $file, $line)) ); } /** * (non-PHPdoc) * @see PAGI\Application.PAGIApplication::signalHandler() */ public function signalHandler($signal) { $this->log('SignalHandler got signal: ' . $signal); $this->shutdown(); exit(0); } }