Location: PHPKode > projects > Stelib > stelib-1.2.1/stelib_asterisk.php
<?php
/*
	stelib_asterisk.php [ Libreria Form ]
	Stefano Sangalli
	29 agosto 2006
*/
//!  Asterisk(): oggetto per la gestione di un pabx Asterisk.
/*!
	Questo oggetto permette di interagire con un server <I>Asterisk</I> (www.asterisk.org).
	<BR><I>Asterisk</I> è un'implementazione software open source di un PBX (Private Branch Exchange).
	<BR>Come ogni PBX, esso permette ad un illimitato numero di apparecchi telefonici ad esso connesso di connettersi con altri servizi telefonici, incluso la PSTN.
	ATTENZIONE!!! ASSICURARSI DEL LIVELLO DI PROTEZIONE LANCIANDO IL COMANDO system-config-securitylevel
	
*/

class Asterisk extends Page {
		/// Nome del sistema
		var $NAME;
		/// Directory `outgoing` dove posizionare il Call File. Es: /var/spool/asterisk/outgoing/
		var $PATH_OUT;
	function Asterisk(
		/// Nome del sistema
		$name,
		/// Directory `outgoing` dove posizionare il Call File. Es: /var/spool/asterisk/outgoing/
		$path_out
	) {
		if ($name)		{ $this->NAME		=$name; } 	else { $this->NAME 		="Asterisk"; }
		if ($path_out)	{ $this->PATH_OUT	=$path_out;}else { $this->PATH_OUT	="/var/spool/asterisk/outgoing/"; }
	}
	function makeCall (
		/// Canale da utilizzare (<B>CHIAMANTE</B>). Es: SIP/hostname
		$Channel,
		/// Numero del piano di numerazione da chiamare (<B>CHIAMATO</B>)
		$Extension,
		/// Contesto del piano di numerazione da prendere in considerazione (di default = `default`)
		$Context,
		/// Priorità con la quale chiamare Extension (di default = 1)
		$Priority,
		/// Tempo di attesa (di default = 30)
		$WaitTime,
		/// Attesa prima di ritentare(di default 5)
		$RetryTime,
		/// Numero di tentativi (di default = `default`)
		$MaxRetries,
		/// Id del chiamante, che comparirà sul display del chiamato.
		$callerID) {
		if ($Channel && $Extension) {
			if (!$Context) 		$Context		="default";
			if (!$Priority) 		$Priority	=1;
			if (!$WaitTime) 		$WaitTime	=30;
			if (!$RetryTime) 		$RetryTime	=5;
			if (!$MaxRetries) 	$MaxRetries	=1;
			if (!$callerID) 		$callerID	=$this->NAME;
			
			$buffer ="Channel: 		".$Channel."\n";
			$buffer.="WaitTime: 		".$WaitTime."\n";
			$buffer.="RetryTime: 	".$RetryTime."\n";
			$buffer.="MaxRetries: 	".$MaxRetries."\n";
			$buffer.="Context: 		".$Context."\n";
			$buffer.="Extension: 	".$Extension."\n";
			$buffer.="Priority: 		".$Priority."\n";
			$buffer.="CallerID: 		".$callerID."\n";
				
			$filename=date("Ymdhis")."_makeCall.call";
			$handle = fopen($this->PATH_OUT.$filename,'w');
				if (!fwrite($handle,$buffer)) {
					echo "<H1 align=\"center\">ACCESS DENIED</H1>";
					echo $this->PATH_OUT.$filename;
				}
			fclose($handle);
			return 1;
		} else {
			return 0;
		}
	}
}
//!  parseCommand(): oggetto per il parsing degli output di alcuni comandi per Asterisk.
/*!
	parseShowCodecs ...
*/
class parseCommand {
	function parseShowCodecs($AGIReference) {
			$myResult=$AGIReference->Command("core show codecs","");
			$tmpArray=split("\n",$myResult["data"]);
			$tmpArray=array_slice($tmpArray,5);
			array_pop($tmpArray);
			$myData=array();
				$myData[0]=array("INT","BINARY","HEX","TYPE","NAME","DESC");
			for ($cont_row=0;$cont_row<count($tmpArray);$cont_row++) {
				$myData[$cont_row+1]["INT"]	=trim(substr($tmpArray[$cont_row],1,11));
				$myData[$cont_row+1]["BINARY"]=trim(substr($tmpArray[$cont_row],12,9));
				$myData[$cont_row+1]["HEX"]	=trim(substr($tmpArray[$cont_row],22,10));
				$myData[$cont_row+1]["TYPE"]	=trim(substr($tmpArray[$cont_row],33,6));
				$myData[$cont_row+1]["NAME"]	=trim(substr($tmpArray[$cont_row],39,8));
				$myData[$cont_row+1]["DESC"]	=trim(substr($tmpArray[$cont_row],50,50));
			}
		return $myData;
	}
	
	function parseCommand() {
		// Costruttore
	}
}
?>
Return current item: Stelib