1
0
moha/hooks/notifiers/notificationfreemobile.php

69 lines
1.7 KiB
PHP

<?php
class notificationFreemobile
{
private $url = "https://smsapi.free-mobile.fr/sendmsg?user=";
private $name = "freemobile";
public $active = true;
public $level;
public $curlErr;
public $lastTry;
public $lastTryTimeout = 5;
protected $dest = array(
"daniel" => "15480189&pass=yVpPmCWmUl2HGp",
);
function __construct()
{
$this->level = ALERT | ERROR;
}
function send($message, $destinataire=NOTIF_DEFAULT_DEST)
{
$error = false;
if ($this->active === true)
{
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, $this->url . $this->dest[$destinataire] . "&msg=" . urlencode(trim($message)));
//return the transfer as a string
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $result contains the output string
if ($this->curlErr <= 5)
{
logger(DEBUG, _("Curl sending message"), false, __FILE__ . ":" . __LINE__);
echo $this->url . urlencode(trim($message)) . EOL;
curl_exec($ch);
if (curl_errno($ch) != 0)
{
$this->curlErr += 1;
$this->lastTry = time();
logger(ERROR, sprintf( _("Curl return error %d: %s when sending notification"), curl_errno($ch), curl_error($ch)), false, __FILE__ . ":" . __LINE__);
$error = true;
}else
{
logger(DEBUG, sprintf(_("Curl return: %s when sending notification"), $result), false, __FILE__ . ":" . __LINE__);
$this->curlErr = 0;
}
}else
{
if ((time() - $this->lastTry) > ($this->lastTryTimeout*60))
{
$this->curlErr -= 1;
}
$error = true;
}
//TODO managing curl errors
// close curl resource to free up system resources
curl_close($ch);
}
return $error;
}
}
$notificationMethods["freemobile"] = new notificationFreemobile();
?>