Final(?) version

This commit is contained in:
Polonkai Gergely
2011-09-30 13:42:45 +02:00
committed by Polonkai Gergely
parent 30f450df66
commit 31c6abc039
7 changed files with 345 additions and 72 deletions

56
gnokiiSMSBackend.php Normal file
View File

@@ -0,0 +1,56 @@
<?php
require_once 'smsBackend.php';
class gnokiiSMSBackend implements smsBackend
{
protected $gnokii_path = '/usr/bin/gnokii';
public function __construct($gnokii_path = null)
{
if ($gnokii_path !== null)
{
$this->gnokii_path = $gnokii_path;
}
if (!is_executable($this->gnokii_path))
{
throw new Exception('Gnokii executable not found (should be at ' . $this->gnokii_path . ')');
}
}
/**
* sendSMS() Sends an SMS message to the given recipient
*
* @param String $recipient
* @param String $message
* @return Boolean
*/
public function sendSMS($recipient, $message)
{
$descriptors = array(
0 => array('pipe', 'r'),
1 => array('pipe', 'w'),
2 => array('pipe', 'w'),
);
$cmd = escapeshellcmd($this->gnokii_path) . ' --sendsms ' . escapeshellarg($recipient);
$process = proc_open($cmd, $descriptors, $pipes);
if (is_resource($process))
{
fwrite($pipes[0], $message);
fclose($pipes[0]);
$stdout = stream_get_contents($pipes[1]);
$stderr = stream_get_contents($pipes[2]);
$return_value = proc_close($process);
if ($return_value != 0)
{
throw new Exception('Unable to send SMS: ' . $stderr . '; ' . $stdout);
}
}
else
{
throw new Exception('Unable to send SMS: cannot start gnokii');
}
}
}