PHP Version 5
Author: Marcelo Gornstein (marcelog@gmail.com)
Inheritance: extends PAGI\Client\AbstractClient
Esempio n. 1
0
 /**
  * @test
  */
 public function can_get_cdr_variables()
 {
     global $standardAGIStart;
     setFgetsMock($standardAGIStart, array());
     $client = \PAGI\Client\Impl\ClientImpl::getInstance($this->_properties);
     $cdr = $client->getCDR();
     $cdrW = array('GET FULL VARIABLE "${CDR(dcontext)}"', 'GET FULL VARIABLE "${CDR(dstchannel)}"', 'GET FULL VARIABLE "${CDR(dst)}"', 'GET FULL VARIABLE "${CDR(src)}"', 'GET FULL VARIABLE "${CDR(clid)}"', 'GET FULL VARIABLE "${CDR(channel)}"', 'GET FULL VARIABLE "${CDR(lastapp)}"', 'GET FULL VARIABLE "${CDR(lastdata)}"', 'GET FULL VARIABLE "${CDR(userfield)}"', 'GET FULL VARIABLE "${CDR(uniqueid)}"', 'GET FULL VARIABLE "${CDR(accountcode)}"', 'GET FULL VARIABLE "${CDR(amaflags)}"', 'GET FULL VARIABLE "${CDR(start)}"', 'GET FULL VARIABLE "${CDR(answer)}"', 'GET FULL VARIABLE "${CDR(end)}"', 'GET FULL VARIABLE "${CDR(duration)}"', 'GET FULL VARIABLE "${CDR(billsec)}"', 'GET FULL VARIABLE "${CDR(disposition)}"');
     $cdrR = array('200 result=1 "dcontext"', '200 result=1 "dchannel"', '200 result=1 "dst"', '200 result=1 "src"', '200 result=1 "clid"', '200 result=1 "channel"', '200 result=1 "lastapp"', '200 result=1 "lastdata"', '200 result=1 "userfield"', '200 result=1 "uniqueid"', '200 result=1 "accountcode"', '200 result=1 "amaflags"', '200 result=1 "start"', '200 result=1 "answer"', '200 result=1 "end"', '200 result=1 "duration"', '200 result=1 "billsec"', '200 result=1 "disposition"');
     setFgetsMock($cdrR, $cdrW);
     $this->assertEquals($cdr->getDestinationContext(), 'dcontext');
     $this->assertEquals($cdr->getDestinationChannel(), 'dchannel');
     $this->assertEquals($cdr->getDestination(), 'dst');
     $this->assertEquals($cdr->getSource(), 'src');
     $this->assertEquals($cdr->getCallerId(), 'clid');
     $this->assertEquals($cdr->getChannel(), 'channel');
     $this->assertEquals($cdr->getLastApp(), 'lastapp');
     $this->assertEquals($cdr->getLastAppData(), 'lastdata');
     $this->assertEquals($cdr->getUserfield(), 'userfield');
     $this->assertEquals($cdr->getUniqueId(), 'uniqueid');
     $this->assertEquals($cdr->getAccountCode(), 'accountcode');
     $this->assertEquals($cdr->getAMAFlags(), 'amaflags');
     $this->assertEquals($cdr->getStartTime(), 'start');
     $this->assertEquals($cdr->getAnswerTime(), 'answer');
     $this->assertEquals($cdr->getEndTime(), 'end');
     $this->assertEquals($cdr->getTotalLength(), 'duration');
     $this->assertEquals($cdr->getAnswerLength(), 'billsec');
     $this->assertEquals($cdr->getStatus(), 'disposition');
 }
Esempio n. 2
0
 /**
  * @test
  */
 public function can_get_logger()
 {
     global $standardAGIStart;
     setFgetsMock($standardAGIStart, array());
     $client = \PAGI\Client\Impl\ClientImpl::getInstance($this->_properties);
     $logger = $client->getAsteriskLogger();
     $logger = $client->getAsteriskLogger();
     // should return the same instance.
 }
Esempio n. 3
0
 /**
  * @test
  */
 public function can_app()
 {
     global $standardAGIStart;
     setFgetsMock($standardAGIStart, array());
     $this->_properties['pagiClient'] = \PAGI\Client\Impl\ClientImpl::getInstance($this->_properties);
     $application = new MyPAGIApplication($this->_properties);
     $refObject = new \ReflectionObject($application);
     $refMethod = $refObject->getMethod('getAgi');
     $refMethod->setAccessible(true);
     $agi = $refMethod->invoke($application);
     $this->assertTrue($agi instanceof \PAGI\Client\Impl\ClientImpl);
 }
Esempio n. 4
0
 /**
  * @test
  */
 public function can_set_callerid()
 {
     global $standardAGIStart;
     setFgetsMock($standardAGIStart, array());
     $client = \PAGI\Client\Impl\ClientImpl::getInstance($this->_properties);
     $clid = $client->getCallerId();
     $callerIdW = array('GET FULL VARIABLE "${CALLERID(name)}"', 'SET VARIABLE "CALLERID(num)" "666"', 'SET VARIABLE "CALLERID(all)" "pepe zamora<666>"', 'GET FULL VARIABLE "${CALLERID(num)}"', 'SET VARIABLE "CALLERID(name)" "pepe zamora"', 'SET VARIABLE "CALLERID(all)" "pepe zamora<666>"', 'SET VARIABLE "CALLERID(ani)" "222"', 'SET VARIABLE "CALLERID(rdnis)" "333"', 'SET VARIABLE "CALLERID(dnid)" "555"');
     $callerIdR = array('200 result=1 "pepe zamora"', '200 result=1', '200 result=1', '200 result=1 "666"', '200 result=1', '200 result=1', '200 result=1', '200 result=1', '200 result=1');
     setFgetsMock($callerIdR, $callerIdW);
     $clid->setNumber('666');
     $clid->setName('pepe zamora');
     $clid->setANI('222');
     $clid->setRDNIS('333');
     $clid->setDNID('555');
 }
Esempio n. 5
0
 /**
  * @test
  */
 public function can_amd_cause_too_long()
 {
     global $standardAGIStart;
     global $mockTime;
     global $mockTimeReturn;
     setFgetsMock($standardAGIStart, array());
     $client = \PAGI\Client\Impl\ClientImpl::getInstance($this->_properties);
     $write = array('EXEC "AMD" ",,,,,,,,"', false, false);
     $read = array('200 result=0 endpos=0', '200 result=1 (NOTSURE)', '200 result=1 (TOOLONG)');
     setFgetsMock($read, $write);
     $result = $client->amd();
     $this->assertTrue($result->isNotSure());
     $this->assertTrue($result->isCauseTooLong());
 }
Esempio n. 6
0
#!/usr/bin/env php
<?php 
declare (ticks=1);
date_default_timezone_set('America/Buenos_Aires');
define('ROOT_PATH', realpath(__DIR__ . '/../../..'));
ini_set('include_path', implode(PATH_SEPARATOR, array(ROOT_PATH . '/src/mg', ROOT_PATH . '/vendor/php/log4php', ini_get('include_path'))));
require_once ROOT_PATH . '/src/mg/PAGI/Autoloader/Autoloader.php';
PAGI\Autoloader\Autoloader::register();
require_once __DIR__ . '/example.php';
use PAGI\Client\Impl\ClientImpl as PagiClient;
// Go, go, gooo!
$pagiClientOptions = array('log4php.properties' => ROOT_PATH . '/resources/log4php.properties');
$pagiClient = PagiClient::getInstance($pagiClientOptions);
$pagiAppOptions = array('pagiClient' => $pagiClient);
$pagiApp = new MyPagiApplication($pagiAppOptions);
pcntl_signal(SIGHUP, array($pagiApp, 'signalHandler'));
$pagiApp->init();
$pagiApp->run();
Esempio n. 7
0
 /**
  * @test
  */
 public function can_get_environment_variables()
 {
     global $standardAGIStart;
     setFgetsMock($standardAGIStart, array());
     $client = \PAGI\Client\Impl\ClientImpl::getInstance($this->_properties);
     putenv('AST_CONFIG_DIR=1');
     putenv('AST_CONFIG_FILE=2');
     putenv('AST_MODULE_DIR=3');
     putenv('AST_SPOOL_DIR=4');
     putenv('AST_MONITOR_DIR=5');
     putenv('AST_VAR_DIR=6');
     putenv('AST_DATA_DIR=7');
     putenv('AST_LOG_DIR=8');
     putenv('AST_AGI_DIR=9');
     putenv('AST_KEY_DIR=10');
     putenv('AST_RUN_DIR=11');
     $vars = $client->getChannelVariables();
     $this->assertEquals($vars->getDirectoryRun(), 11);
     $this->assertEquals($vars->getDirectoryKey(), 10);
     $this->assertEquals($vars->getDirectoryAgi(), 9);
     $this->assertEquals($vars->getDirectoryLog(), 8);
     $this->assertEquals($vars->getDirectoryData(), 7);
     $this->assertEquals($vars->getDirectoryVar(), 6);
     $this->assertEquals($vars->getDirectoryMonitor(), 5);
     $this->assertEquals($vars->getDirectorySpool(), 4);
     $this->assertEquals($vars->getDirectoryModules(), 3);
     $this->assertEquals($vars->getConfigFile(), 2);
     $this->assertEquals($vars->getDirectoryConfig(), 1);
 }
Esempio n. 8
0
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */
require_once 'Ding/Autoloader/Autoloader.php';
require_once 'PAGI/Autoloader/Autoloader.php';
\Ding\Autoloader\Autoloader::register();
\PAGI\Autoloader\Autoloader::register();
use PAGI\Application\Exception\InvalidApplicationException;
use Ding\Container\Impl\ContainerImpl;
use PAGI\Client\Impl\ClientImpl;
try {
    $bootstrap = getenv('PAGIBootstrap');
    include_once $bootstrap;
    $log4php = getenv('log4php_properties');
    $agiLogger = false;
    $agi = ClientImpl::getInstance(array('log4php.properties' => $log4php));
    $agiLogger = $agi->getAsteriskLogger();
    $container = ContainerImpl::getInstance($properties);
    $extension = $agi->getChannelVariables()->getDNIS();
    $mapper = $container->getBean('PagiExtensionMapper');
    $myApp = $mapper->resolve($extension);
    $agi->consoleLog('Launching ' . get_class($myApp));
    if ($myApp === false) {
        throw new \Exception('No applications found.');
    }
    $myApp->init();
    $myApp->run();
} catch (\Exception $e) {
    $agiLogger->error($e);
}