diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ea9a40fa..e581897d 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -5,6 +5,7 @@ Changelog not yet released ---------------------------------- +* #170: Implement Nexmo SMS. * #161: Added Swedish translation. diff --git a/README.rst b/README.rst index 0874f5db..4473849c 100755 --- a/README.rst +++ b/README.rst @@ -46,6 +46,7 @@ The following SMS gateways are currently available: * SMSit - * Spryng - * Textmarketer - +* Nexmo - Please note: for these gateways you will need an account with sufficient credits. diff --git a/docs/credits.rst b/docs/credits.rst index 3bfa0950..6a62f93f 100644 --- a/docs/credits.rst +++ b/docs/credits.rst @@ -62,6 +62,10 @@ The following people have contributed to the development of PHP Server Monitor: * Icon +* Luis Rodriguez - https://github.com/ldrrp + + * Nexmo SMS gateway + Translators +++++++++++ diff --git a/docs/intro.rst b/docs/intro.rst index daaea398..67a7840a 100644 --- a/docs/intro.rst +++ b/docs/intro.rst @@ -55,6 +55,7 @@ The following SMS gateways are currently available: * SMSit - * Spryng - * Textmarketer - +* Nexmo - Please note: for these gateways you will need an account with sufficient credits. @@ -62,4 +63,4 @@ Please note: for these gateways you will need an account with sufficient credits Download ++++++++ -The latest version can be downloaded from http://www.phpservermonitor.org/. \ No newline at end of file +The latest version can be downloaded from http://www.phpservermonitor.org/. diff --git a/src/includes/functions.inc.php b/src/includes/functions.inc.php index 8a81dc2c..5a4c0e6b 100644 --- a/src/includes/functions.inc.php +++ b/src/includes/functions.inc.php @@ -466,6 +466,9 @@ function psm_build_sms() { case 'smsglobal': $sms = new \psm\Txtmsg\Smsglobal(); break; + case 'nexmo': + $sms = new \psm\Txtmsg\Nexmo(); + break; } // copy login information from the config file diff --git a/src/lang/bg_BG.lang.php b/src/lang/bg_BG.lang.php index 17ad0edd..5157f935 100644 --- a/src/lang/bg_BG.lang.php +++ b/src/lang/bg_BG.lang.php @@ -195,6 +195,7 @@ $sm_lang = array( 'sms_gateway_clickatell' => 'Clickatell', 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Потребител', 'sms_gateway_password' => 'Парола', 'sms_from' => 'Номер на изпращача', diff --git a/src/lang/cs_CZ.lang.php b/src/lang/cs_CZ.lang.php index ec32ea92..95a8c0ab 100644 --- a/src/lang/cs_CZ.lang.php +++ b/src/lang/cs_CZ.lang.php @@ -192,8 +192,9 @@ $sm_lang = array( 'sms_gateway_spryng' => 'Spryng', 'sms_gateway_inetworx' => 'Inetworx', 'sms_gateway_clickatell' => 'Clickatell', - 'sms_gateway_textmarketer' => 'Textmarketer', + 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_smsit' => 'Smsit', 'sms_gateway_username' => 'Uživatelské jméno brány', 'sms_gateway_password' => 'Heslo brány', diff --git a/src/lang/da_DK.lang.php b/src/lang/da_DK.lang.php index aa5e5b03..781fb5b0 100644 --- a/src/lang/da_DK.lang.php +++ b/src/lang/da_DK.lang.php @@ -195,6 +195,7 @@ $sm_lang = array( 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Gateway brugernavn/apikey', 'sms_gateway_password' => 'Gateway adgangskode', 'sms_from' => 'Afsenders navn.', diff --git a/src/lang/de_DE.lang.php b/src/lang/de_DE.lang.php index ad1cb964..d98227a7 100644 --- a/src/lang/de_DE.lang.php +++ b/src/lang/de_DE.lang.php @@ -195,6 +195,7 @@ $sm_lang = array( 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Gateway Benutzername', 'sms_gateway_password' => 'Gateway Passwort', 'sms_from' => 'SMS-Sendernummer', diff --git a/src/lang/en_US.lang.php b/src/lang/en_US.lang.php index 295f6e23..a11987e8 100644 --- a/src/lang/en_US.lang.php +++ b/src/lang/en_US.lang.php @@ -192,9 +192,10 @@ $sm_lang = array( 'sms_gateway_spryng' => 'Spryng', 'sms_gateway_inetworx' => 'Inetworx', 'sms_gateway_clickatell' => 'Clickatell', - 'sms_gateway_textmarketer' => 'Textmarketer', + 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Gateway username', 'sms_gateway_password' => 'Gateway password', 'sms_from' => 'Sender\'s phone number', diff --git a/src/lang/es_ES.lang.php b/src/lang/es_ES.lang.php index cd2bd0ce..43aed147 100644 --- a/src/lang/es_ES.lang.php +++ b/src/lang/es_ES.lang.php @@ -193,9 +193,10 @@ $sm_lang = array( 'sms_gateway_spryng' => 'Spryng', 'sms_gateway_inetworx' => 'Inetworx', 'sms_gateway_clickatell' => 'Clickatell', - 'sms_gateway_textmarketer' => 'Textmarketer', + 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Gateway username', 'sms_gateway_password' => 'Gateway password', 'sms_from' => 'Número origen del SMS', diff --git a/src/lang/fr_FR.lang.php b/src/lang/fr_FR.lang.php index c663b3c4..1d47a2cf 100644 --- a/src/lang/fr_FR.lang.php +++ b/src/lang/fr_FR.lang.php @@ -196,6 +196,7 @@ $sm_lang = array( 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Nom utilisateur de la passerelle', 'sms_gateway_password' => 'Mot de passe de la passerelle', 'sms_from' => 'SMS de l\'expéditeur', diff --git a/src/lang/it_IT.lang.php b/src/lang/it_IT.lang.php index f6160955..1a6bb2f8 100644 --- a/src/lang/it_IT.lang.php +++ b/src/lang/it_IT.lang.php @@ -195,6 +195,7 @@ $sm_lang = array( 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Nome Utente Gateway', 'sms_gateway_password' => 'Password Gateway', 'sms_from' => 'Numero di telefono del mittente', diff --git a/src/lang/ko_KR.lang.php b/src/lang/ko_KR.lang.php index 99f4ad3b..5bd8e722 100644 --- a/src/lang/ko_KR.lang.php +++ b/src/lang/ko_KR.lang.php @@ -193,6 +193,7 @@ $sm_lang = array( 'sms_gateway_inetworx' => 'Inetworx', 'sms_gateway_clickatell' => 'Clickatell', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_username' => 'Gateway username', diff --git a/src/lang/nl_NL.lang.php b/src/lang/nl_NL.lang.php index 41b181fd..712ae172 100644 --- a/src/lang/nl_NL.lang.php +++ b/src/lang/nl_NL.lang.php @@ -195,6 +195,7 @@ $sm_lang = array( 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Gateway gebruikersnaam', 'sms_gateway_password' => 'Gateway wachtwoord', 'sms_from' => 'Telefoonnummer afzender', diff --git a/src/lang/pl_PL.lang.php b/src/lang/pl_PL.lang.php index 4a871048..123ffa82 100644 --- a/src/lang/pl_PL.lang.php +++ b/src/lang/pl_PL.lang.php @@ -195,6 +195,7 @@ $sm_lang = array( 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Login do bramki', 'sms_gateway_password' => 'Hasło do bramki', 'sms_from' => 'Numer nadawcy', diff --git a/src/lang/pt_BR.lang.php b/src/lang/pt_BR.lang.php index 8942ed06..e61aa59e 100644 --- a/src/lang/pt_BR.lang.php +++ b/src/lang/pt_BR.lang.php @@ -185,19 +185,20 @@ $sm_lang = array( 'email_smtp_username' => 'SMTP username', 'email_smtp_password' => 'SMTP password', 'email_smtp_noauth' => 'Deixe em branco para nenhuma autenticação', - 'sms_status' => 'Habilitar o envio de mensagem de texto?', - 'sms_gateway' => 'Gateway para o uso de envio de mensagens', - 'sms_gateway_mosms' => 'Mosms', - 'sms_gateway_mollie' => 'Mollie', - 'sms_gateway_spryng' => 'Spryng', - 'sms_gateway_inetworx' => 'Inetworx', - 'sms_gateway_clickatell' => 'Clickatell', + 'sms_status' => 'Habilitar o envio de mensagem de texto?', + 'sms_gateway' => 'Gateway para o uso de envio de mensagens', + 'sms_gateway_mosms' => 'Mosms', + 'sms_gateway_mollie' => 'Mollie', + 'sms_gateway_spryng' => 'Spryng', + 'sms_gateway_inetworx' => 'Inetworx', + 'sms_gateway_clickatell' => 'Clickatell', 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', - 'sms_gateway_username' => 'Usuário do Gateway', - 'sms_gateway_password' => 'Senha do Gateway', - 'sms_from' => 'Número de telefone de envio', + 'sms_gateway_nexmo' => 'Nexmo', + 'sms_gateway_username' => 'Usuário do Gateway', + 'sms_gateway_password' => 'Senha do Gateway', + 'sms_from' => 'Número de telefone de envio', 'pushover_status' => 'Habilitar envio de mensagens Pushover', 'pushover_description' => 'Pushover é um serviço de notificações em tempo real. Veja o website para mais informações.', 'pushover_clone_app' => 'Clique aqui para criar sua app Pushover', diff --git a/src/lang/ru_RU.lang.php b/src/lang/ru_RU.lang.php index 48ecc14b..89bad0a3 100644 --- a/src/lang/ru_RU.lang.php +++ b/src/lang/ru_RU.lang.php @@ -195,6 +195,7 @@ $sm_lang = array( 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Пользователь', 'sms_gateway_password' => 'Пароль', 'sms_from' => 'Номер отправителя', diff --git a/src/lang/sv_SE.lang.php b/src/lang/sv_SE.lang.php index 238b98cd..de95aea9 100644 --- a/src/lang/sv_SE.lang.php +++ b/src/lang/sv_SE.lang.php @@ -192,9 +192,10 @@ $sm_lang = array( 'sms_gateway_spryng' => 'Spryng', 'sms_gateway_inetworx' => 'Inetworx', 'sms_gateway_clickatell' => 'Clickatell', - 'sms_gateway_textmarketer' => 'Textmarketer', + 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Gateway användarnamn', 'sms_gateway_password' => 'Gateway lösenord', 'sms_from' => 'Avsändarens telefonnummer', diff --git a/src/lang/tr_TR.lang.php b/src/lang/tr_TR.lang.php index caa5a6f0..ac6f9d7c 100644 --- a/src/lang/tr_TR.lang.php +++ b/src/lang/tr_TR.lang.php @@ -195,6 +195,7 @@ $sm_lang = array( 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'Servis kullanıcı adı', 'sms_gateway_password' => 'Servis şifresi', 'sms_from' => 'Gönderen numarası', diff --git a/src/lang/zh_CN.lang.php b/src/lang/zh_CN.lang.php index 05cbeee5..e64650ca 100644 --- a/src/lang/zh_CN.lang.php +++ b/src/lang/zh_CN.lang.php @@ -192,9 +192,10 @@ $sm_lang = array( 'sms_gateway_spryng' => 'Spryng', 'sms_gateway_inetworx' => 'Inetworx', 'sms_gateway_clickatell' => 'Clickatell', - 'sms_gateway_textmarketer' => 'Textmarketer', + 'sms_gateway_textmarketer' => 'Textmarketer', 'sms_gateway_smsglobal' => 'SMSGlobal', 'sms_gateway_smsit' => 'Smsit', + 'sms_gateway_nexmo' => 'Nexmo', 'sms_gateway_username' => 'SMS网关用户名', 'sms_gateway_password' => 'SMS网关密码', 'sms_from' => '发信人电话号', diff --git a/src/psm/Module/Config/Controller/ConfigController.class.php b/src/psm/Module/Config/Controller/ConfigController.class.php index c8216840..39161228 100644 --- a/src/psm/Module/Config/Controller/ConfigController.class.php +++ b/src/psm/Module/Config/Controller/ConfigController.class.php @@ -314,6 +314,7 @@ class ConfigController extends AbstractController { 'label_sms_gateway_textmarketer' => psm_get_lang('config', 'sms_gateway_textmarketer'), 'label_sms_gateway_smsit' => psm_get_lang('config', 'sms_gateway_smsit'), 'label_sms_gateway_smsglobal' => psm_get_lang('config', 'sms_gateway_smsglobal'), + 'label_sms_gateway_nexmo' => psm_get_lang('config', 'sms_gateway_nexmo'), 'label_sms_gateway_username' => psm_get_lang('config', 'sms_gateway_username'), 'label_sms_gateway_password' => psm_get_lang('config', 'sms_gateway_password'), 'label_sms_from' => psm_get_lang('config', 'sms_from'), diff --git a/src/psm/Txtmsg/Nexmo.class.php b/src/psm/Txtmsg/Nexmo.class.php new file mode 100644 index 00000000..f2c7aa9f --- /dev/null +++ b/src/psm/Txtmsg/Nexmo.class.php @@ -0,0 +1,58 @@ +. + * + * @package phpservermon + * @author Andreas Ek + * @copyright Copyright (c) 2008-2014 Pepijn Over + * @license http://www.gnu.org/licenses/gpl.txt GNU GPL v3 + * @version Release: @package_version@ + * @link http://www.phpservermonitor.org/ + * @since phpservermon 3.1.1 + **/ + +namespace psm\Txtmsg; + +class Nexmo extends Core { + // ========================================================================= + // [ Fields ] + // ========================================================================= + public $gateway = 1; + public $resultcode = null; + public $resultmessage = null; + public $success = false; + public $successcount = 0; + + public function sendSMS($message) { + $nexmo_url = "https://rest.nexmo.com/sms/json"; + $nexmo_data = rawurlencode( $message ); + + foreach( $this->recipients as $phone ){ + $result = file_get_contents( $nexmo_url . + "?api_key=" . $this->username . + "&api_secret=" . $this->password . + "&from=" . $this->originator . + "&to=" . $phone . + "&type=text" . + "&text=" . $nexmo_data + ); + } + + return $result; + } +}