PHP Version 5
Author: Marcelo Gornstein (marcelog@gmail.com)
コード例 #1
0
ファイル: CallSpoolImpl.php プロジェクト: marcelog/pagi
 /**
  * (non-PHPdoc)
  * @see PAGI\CallSpool.ICallSpool::spool()
  */
 public function spool(CallFile $call, $schedule = null)
 {
     $filename = tempnam($this->tmpDir, 'PAGICallFile');
     if ($filename === false) {
         throw new CallSpoolException('Could generate temporary filename');
     }
     if (@file_put_contents($filename, $call->serialize()) === false) {
         @unlink($filename);
         throw new CallSpoolException('Error writing: ' . $filename);
     }
     if (!is_null($schedule)) {
         if (@touch($filename, $schedule) === false) {
             @unlink($filename);
             throw new CallSpoolException('Error scheduling: ' . $filename);
         }
     }
     $newFilename = implode(DIRECTORY_SEPARATOR, array($this->spoolDir, 'outgoing', basename($filename)));
     $dir = dirname($newFilename);
     if (!file_exists($dir)) {
         if (@mkdir($dir, 0700, true) === false) {
             @unlink($filename);
             throw new CallSpoolException('Error spooling: ' . $newFilename);
         }
     }
     if (@rename($filename, $newFilename) === false) {
         @unlink($filename);
         throw new CallSpoolException('Error spooling: ' . $newFilename);
     }
     return $newFilename;
 }
コード例 #2
-1
ファイル: spooling.php プロジェクト: marcelog/pagi
use PAGI\DialDescriptor\SIPDialDescriptor;
use PAGI\DialDescriptor\DAHDIDialDescriptor;
$dialDescriptor = new DAHDIDialDescriptor('1949890333', 1);
$callFile = new CallFile($dialDescriptor);
$callFile->setContext('campaign');
$callFile->setExtension('failed');
$callFile->setVariable('foo', 'bar');
$callFile->setPriority('1');
$callFile->setMaxRetries('0');
$callFile->setWaitTime(10);
$callFile->setCallerId('some<123123>');
echo "Call file generated (DAHDI dial descriptor):\n";
echo $callFile->serialize();
echo "\n\n";
$dialDescriptor = new SIPDialDescriptor('24', 'example.com');
$callFile = new CallFile($dialDescriptor);
$callFile->setContext('default');
$callFile->setExtension('777');
$callFile->setVariable('foo', 'bar');
$callFile->setPriority('1');
$callFile->setMaxRetries('0');
$callFile->setWaitTime(10);
$callFile->setCallerId('some<123123>');
echo "Call file generated (SIP dial descriptor):\n";
echo $callFile->serialize();
echo "\n\n\n";
echo "Spooling generated SIP call\n";
$spool = CallSpoolImpl::getInstance(array('tmpDir' => '/tmp', 'spoolDir' => '/tmp/spoolExample'));
$spool->spool($callFile);
echo "Spooling generated SIP call to run in 30 seconds\n";
$spool->spool($callFile, time() + 30);