Software Hoek

PHP Script Zendt SMS Berichten


Je wilt dat je web server SMS-jes kan versturen, maar je hebt geen shell toegang op de server. Aan het SMS shell script heb je dan niet veel. Gelukkig zijn er meer wegen die naar Rome leiden. Met dit PHP script kun je ook SMS-jes versturen, op precies dezelfde manier als met het shell script.

Om dit te laten werken moet wel de cURL library geïnstalleerd zijn op de web server. Je kunt controleren of cURL geïnstalleerd is door het volgende scriptje te uploaden naar je web server en het dan op te roepen met een browser.

<?php phpinfo(); ?>

Sla het scriptje dus bijvoorbeeld op met de naam info.php en upload het naar de server. Open daarna het bestand met je browser door te surfen naar www.jouwsite.nl/info.php. Op de getoonde pagina moet het volgende te vinden zijn:

cURL enabled

Als je deze tekst nergens kunt vinden dan is cURL niet geïnstalleerd en zal het SMS script daarom niet werken. Je kunt dan natuurlijk nog aan je hosting provider vragen of die cURL voor je wil installeren.

Aanmelden Bij Voipbuster


Voipbuster signup Net zoals bij het shell script zul je je eerst moeten aanmelden bij Voipbuster. Nadat je je hebt aangemeld moet je wat beltegoed aanschaffen. Er zijn talloze manieren waarop je dat kunt doen. Als je het systeem alleen maar even wilt uitproberen kun je een 0900 nummer bellen, dit kost je €1.30 waarna je zo'n 18 SMSjes kunt versturen. Goedkoper is het echter om via iDeal te betalen, dan betaal je wel meer maar je houdt netto meer beltegoed over. Met dat beltegoed kun je SMSjes over zowat de gehele wereld vesturen en dat is nu net wat we wilden. Berichtjes naar Nederlandse nummers kosten ongeveer €0.06 .

Je kunt je aanmelden door de Voipbuster soft phone te installeren (zie download link op www.voipbuster.com), waarin je je aan kunt melden als nieuw of bestaand lid. Met die soft phone kun je overigens ook nog eens 4 maanden gratis bellen naar vaste nummers binnen Nederland en enkele andere landen in Euro na elke opwaardering van €10 .
Linux en Mac mensen hebben niets aan die soft phone maar kunnen een andere link kiezen waarbij ze zich rechtstreeks op de website van Voipbuster kunnen aanmelden.

Het PHP Script


Neem het onderstaande PHP script over in je web pagina, of plaats het in een include php bestand. Let er wel even op dat je het bestand van de web pagina als een .php bestand moet opslaan natuurlijk, anders zal de web server de code erin niet uitvoeren.

Je moet natuurlijk nog wel de variabelen $user, $pass en $from aanpassen aan de gegevens van je eigen Voipbuster account. De $from variabele kan de naam van je account krijgen, of een van de door Voipbuster geverifieerde telefoonnummers die je aan je account gekoppeld hebt. Elke andere waarde zal je account naam als afzender gebruiken.

<?php

function SendSMS($to, $txt)
{
    $user = "youraccount";
    $pass = "yourpassword";
    $from = "fromyou";

    $txt = substr($txt, 0, 160);
    $url = "https://www.voipbuster.com/myaccount/sendsms.php?";
    $url .= "username=".$user."&password=".$pass;
    $url .= "&from=".$from."&to=".$to."&text=".str_replace(" ", "%20", $txt);

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $result = curl_exec($ch);
    curl_close($ch);
    $results = explode("\n", $result);

    return $results[4];
}

?>

Het script wordt aangeroepen met twee parameters. De eerste parameter is het telefoonnummer waar het SMS-je naar toe gestuurd moet worden. Dit telefoonnummer moet in internationale notatie gegeven worden, je kunt immers SMS-jes sturen naar de gehele wereld. Bijvoorbeeld 0031612345678.
De tweede parameter is de tekst die je wilt versturen. Deze tekst wordt automatisch afgekapt op 160 tekens, dus alles wat je meer had willen versturen gaat verloren.

Het script geeft ook een string retour. Deze string is "success" of "failed", afhankelijk van het wel of niet juist versturen van het berichtje. Hieronder staat een voorbeeld hoe het script aangeroepen kan worden:

<?php
$nummer = "0031612345678";
$tekst = "Deze tekst wordt verstuurd";
$resultaat = SendSMS($nummer, $tekst);
?>

Houdt er rekening mee dat het wel zo'n 10 seconden kan duren voordat het script met een resultaat terug komt. Dit wordt door de API van Voipbuster veroorzaakt, en kan daarom niet versneld worden.