PHP-Script für den SMS-Versand via Sipgate API
Sipgate stellt eine hervorragend dokumentierte und via XML-RPC ansprechbare API zur Verfügung. Folgende PHP-Funktion nutzt diese Schnittstelle für den Versand einer SMS über diese Schnittstelle.
<?php
include ('xmlrpc/lib/xmlrpc.inc');
function sipgate_sendsms($smsnumber, $smstext)
{
// Festlegen der Konfigurationswerte.
define ('SIPGATE_SERVER', 'samurai.sipgate.net');
define ('SIPGATE_PATH', '/RPC2');
define ('SIPGATE_PROT', 'https');
define ('SIPGATE_PORT', '443');
define ('SIPGATE_SIPURI_PREFIX', 'sip:');
define ('SIPGATE_SIPURI_HOST', '@sipgate.net');
define ('SIPGATE_USER', 'WEB-LOGIN VON SIPGATE');
define ('SIPGATE_PASS', 'WEB-PASSWORT VON SIPGATE');
// Erstellen des xmlrpc clients.
$xmlurl = SIPGATE_PROT . "://" . SIPGATE_USER . ":" . SIPGATE_PASS . "@" .
SIPGATE_SERVER . ":" . SIPGATE_PORT . SIPGATE_PATH;
$xmlclient = new xmlrpc_client($xmlurl);
$xmlclient->setSSLVerifyPeer(FALSE);
// Rufnummer und Text für die SMS vorbereiten.
$smsnumber = SIPGATE_SIPURI_PREFIX . $smsnumber . SIPGATE_SIPURI_HOST;
$smstext = substr($smstext, 0, 160);
$val_a["RemoteUri"] = new xmlrpcval($smsnumber);
$val_a["TOS"] = new xmlrpcval("text");
$val_a["Content"] = new xmlrpcval($smstext);
//$val_a["Schedule"] = new xmlrpcval(iso8601_encode(NULL), "dateTime.iso8601");
$val_s = new xmlrpcval();
$val_s->addStruct($val_a);
$v = array();
$v[] = $val_s;
// Nachrichtenobjet erstellen.
$m = new xmlrpcmsg('samurai.SessionInitiate', $v);
// SMS senden.
$r = $xmlclient->send($m);
// Anzeigen von eventuellen Fehlern.
if ( $r->faultCode() )
{
return false;
} else
{
return true;
}
}
?>
Dieses Script nutzt die Möglichkeiten der XML-RPC Bibliothek. Diese ist nicht zu verwechseln mit der bereits integrierten xmlrpc-Library von PHP.
Hinweise:
- Im Script muss noch der Benutzername und das Passwort des Sipgate Webinterface Zugangs konfiguriert werden.
- Die Installation bzw. das Entpacken der XML-RPC Bibliothek muss im gleichen Verzeichnis erfolgen in dem sich auch das Script befindet. Ansonsten muß der Include-Pfad angepasst werden.
- Syntax der Funktion:
sipgate_sendsms("49421123456789", "Hallo Welt.");Wichtig ist, dass der internationale Wählcode vorangestellt wird. Ohne die doppelte 0 und ohne ein + Zeichen.
Letzte Kommentare