PHP Version 5
Author: Marcelo Gornstein (marcelog@gmail.com)
Exemplo n.º 1
0
 /**
  * @test
  */
 public function can_correct_status()
 {
     $this->assertEquals(ChannelStatus::toString(ChannelStatus::DOWN_AVAILABLE), 'Channel is down and available');
     $this->assertEquals(ChannelStatus::toString(ChannelStatus::DOWN_RESERVED), 'Channel is down, but reserved');
     $this->assertEquals(ChannelStatus::toString(ChannelStatus::OFF_HOOK), 'Channel is off hook');
     $this->assertEquals(ChannelStatus::toString(ChannelStatus::DIGITS_DIALED), 'Digits (or equivalent) have been dialed');
     $this->assertEquals(ChannelStatus::toString(ChannelStatus::LINE_RINGING), 'Line is ringing');
     $this->assertEquals(ChannelStatus::toString(ChannelStatus::REMOTE_RINGING), 'Remote end is ringing');
     $this->assertEquals(ChannelStatus::toString(ChannelStatus::LINE_UP), 'Line is up');
     $this->assertEquals(ChannelStatus::toString(ChannelStatus::LINE_BUSY), 'Line is busy');
     $this->assertFalse(ChannelStatus::toString(123123));
 }
Exemplo n.º 2
0
 /**
  * (non-PHPdoc)
  * @see PAGI\Application.PAGIApplication::run()
  */
 public function run()
 {
     $this->log('Run');
     $client = $this->getAgi();
     $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.');
     }
     $result = $client->getData('/var/lib/asterisk/sounds/welcome', 10000, 4);
     if (!$result->isTimeout()) {
         $this->log('Read: ' . $result->getDigits());
     } else {
         $this->log('Timeouted for get data with: ' . $result->getDigits());
     }
     $result = $client->getOption('/var/lib/asterisk/sounds/welcome', '0123456789*#', 10000);
     if (!$result->isTimeout()) {
         $this->log('Read: ' . $result->getDigits());
     } else {
         $this->log('Timeouted for get option.');
     }
     $result = $client->streamFile('/var/lib/asterisk/sounds/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);
     //$this->log($client->exec('Dial', array('SIP/sip', 30, 'r')));
     $this->log($client->dial('SIP/01', array(30, 'r')));
     $result = $client->sayPhonetic('marcelog', '123#');
     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);
 }