1
0
moha/hooks/notifiers/notificationfreemobile.php

71 lines
1.9 KiB
PHP
Raw Normal View History

<?php
class notificationFreemobile
{
private $url = "https://smsapi.free-mobile.fr/sendmsg?user=";
private $name = "freemobile";
2022-01-02 18:14:13 +01:00
public $active = true;
public $level;
public $curlErr;
public $lastTry;
public $lastTryTimeout = 5;
protected $dest = array(
2022-09-05 13:47:41 +02:00
"Daniel" => "15480189&pass=yVpPmCWmUl2HGp",
);
function __construct()
{
2022-01-23 09:46:06 +01:00
$this->level = ALERT | ERROR;
}
2022-04-23 02:00:52 +02:00
function send($message, $destinataire=NOTIF_DEFAULT_DEST)
{
2022-09-09 16:53:19 +02:00
logger(DEBUG, _("Function send SMS (with Curl)"), __FILE__ . ":" . __LINE__);
$error = false;
2022-05-29 01:55:22 +02:00
if ($this->active === true)
{
$ch = curl_init();
// set url
2022-04-23 02:00:52 +02:00
curl_setopt($ch, CURLOPT_URL, $this->url . $this->dest[$destinataire] . "&msg=" . urlencode(trim($message)));
2022-08-02 23:25:59 +02:00
// return the transfer as a string
2022-09-05 13:47:41 +02:00
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $result contains the output string
if ($this->curlErr <= 5)
2022-01-02 18:14:13 +01:00
{
logger(DEBUG, _("Curl sending message"), __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)), __FILE__ . ":" . __LINE__);
$error = true;
}else
{
logger(DEBUG, sprintf(_("Curl return: %s when sending notification"), curl_error($ch)), __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;
}
}
// constant definition
define("NOTIF_DEFAULT_DEST", "daniel");
//init class
2022-01-02 18:14:13 +01:00
$notificationMethods["freemobile"] = new notificationFreemobile();
?>