2016-03-15 13:00:07 +01:00
< ? php
/**
* PHP Server Monitor
* Monitor your servers and websites .
*
* This file is part of PHP Server Monitor .
* PHP Server Monitor is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 of the License , or
* ( at your option ) any later version .
*
* PHP Server Monitor is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with PHP Server Monitor . If not , see < http :// www . gnu . org / licenses />.
*
2018-05-29 14:13:49 +02:00
* @ package phpservermon
* @ author Alexis Urien < Alexis . urien @ free . fr >
* @ Author Tim Zandbergen < Tim @ Xervion . nl >
* @ author Ward Pieters < ward @ wardpieters . nl >
* @ copyright Copyright ( c ) 2016 Alexis Urien < alexis . urien @ free . fr >
* @ license http :// www . gnu . org / licenses / gpl . txt GNU GPL v3
* @ version Release : @ package_version @
* @ link http :// www . phpservermonitor . org /
* @ since phpservermon 2.1
2016-03-15 13:00:07 +01:00
**/
namespace psm\Txtmsg ;
class Octopush extends Core {
2018-05-29 14:13:49 +02:00
/**
2018-07-05 19:59:57 +02:00
* Send sms using the Octopush API
* @ var string $message
* @ var string $this -> username
* @ var string $this -> password
* @ var array $this -> recipients
* @ var array $this -> originator
*
* @ var resource $curl
* @ var SimpleXMLElement $xmlResults
* @ var string $err
* @ var string $recipient
* @ var string $smsType
* @ var mixed $result
*
* @ var int $success
* @ var string $error
*
* @ return int or string
*/
2018-05-29 14:13:49 +02:00
public function sendSMS ( $message ) {
$error = " " ;
$success = 1 ;
$smsType = " XXX " ; //FR = premium, WWW = world, XXX = Low cost
$recipients = join ( ',' , $this -> recipients );
2018-07-05 19:59:57 +02:00
$message = ( $smsType == " FR " ) ? urlencode ( $message . " STOP au XXXX " ) : urlencode ( $message );
2016-03-15 13:00:07 +01:00
2018-05-29 14:13:49 +02:00
$curl = curl_init ();
2018-07-05 19:59:57 +02:00
curl_setopt ( $curl , CURLOPT_URL , " http://www.octopush-dm.com/api/sms/? " . http_build_query (
2018-05-29 14:13:49 +02:00
array (
" user_login " => $this -> username ,
" api_key " => $this -> password ,
" sms_recipients " => $recipients ,
" sms_type " => $smsType ,
" sms_sender " => substr ( $this -> originator , 0 , 11 ),
" sms_text " => $message ,
)
)
);
2018-07-05 19:59:57 +02:00
curl_setopt ( $curl , CURLOPT_RETURNTRANSFER , true );
2018-05-29 14:13:49 +02:00
$result = curl_exec ( $curl );
$httpcode = curl_getinfo ( $curl , CURLINFO_HTTP_CODE );
$xmlResults = simplexml_load_string ( $result );
2016-03-15 13:00:07 +01:00
2018-07-05 19:59:57 +02:00
if ( $err = curl_errno ( $curl ) || $httpcode != 200 || $xmlResults === false || $xmlResults -> error_code != '000' ) {
2018-05-29 14:13:49 +02:00
$success = 0 ;
$error = " HTTP_code: " . $httpcode . " . \n cURL error ( " . $err . " ): " . curl_strerror ( $err ) . " . \n Result: " . $xmlResults -> error_code . " . Look at http://www.octopush-dm.com/en/errors for the error description. " ;
}
curl_close ( $curl );
2018-07-05 19:59:57 +02:00
if ( $success ) {
return 1 ;
}
2018-05-29 14:13:49 +02:00
return $error ;
}
2018-07-05 19:59:57 +02:00
}