Ola Gemeinde!
Ich bin momentan dran ein PHP-Script zu schreiben, mit dem über die Sipgate-Api eine SMS versendet werden soll...
Das Skript läuft problemlos, heißt ich bekomme keine Fehlermeldung von samurai zurück sondern StatusCode 200, ist also alles iO. Allerdings kommt nie eine SMS auf dem Handy an...
Hier ist mein Skript...
Hat jemand eine Idee, warum die SMS nicht gesendet wird???
Ich bin momentan dran ein PHP-Script zu schreiben, mit dem über die Sipgate-Api eine SMS versendet werden soll...
Das Skript läuft problemlos, heißt ich bekomme keine Fehlermeldung von samurai zurück sondern StatusCode 200, ist also alles iO. Allerdings kommt nie eine SMS auf dem Handy an...
Hier ist mein Skript...
PHP:
sendsms('49152****','testsms',true);
function sendsms($number,$text,$time=false){
$text=utf8_encode($text);
$time=date(U);
// Initialisierung
$SIPGATE_SERVER='samurai.sipgate.net';
$SIPGATE_PATH='/RPC2';
$SIPGATE_USER='****';
$SIPGATE_PASS='****';
// Server Verbindung öffnen, SSL auf Port 443
if(($f = fsockopen('ssl://'.$SIPGATE_SERVER, 443, $errno, $errstr, 5)) === FALSE){
//Fehler: Fehlermeldung anzeigen
echo 'Fehler '.$errno.': '.$errstr;
return false;
}else{
// Verbindung zum Server erfolgreich hergestellt
// XML-Informatioen zum versenden von SMS:
$xml_data= '<?xml version ="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>samurai.SessionInitiate</methodName>
<params>
<param>
<value><struct>
<member>
<name>LocalUri</name>
<value><string>
sip:49341****@sipgate.net
</string></value>
</member>
<member>
<name>RemoteUri</name>
<value><string>
sip:'.$number.'@sipgate.net
</string></value>
</member>
<member>
<name>TOS</name>
<value><string>
text
</string></value>
</member>
<member>
<name>Content</name>
<value><string>
'.$text.'
</string></value>
</member>
<member>
<name>Schedule</name>
<value><string>
'.date("Y-m-d\TH:i:s+01:00",$time).'
</string></value>
</member>
</struct></value>
</param>
</params>
</methodCall>';
//Anschließend werden die Informationen an SIPGATE übermittelt.
//zunächst der Header
fputs($f, 'POST ' . $SIPGATE_PATH .
' HTTP/1.0' . "\r\n" .'Authorization: Basic ' .
base64_encode($SIPGATE_USER . ':' . $SIPGATE_PASS) .
"\r\n" .'Host: sipgate.net' .
"\r\n" .'User-Agent: PHPxmlParser' .
"\r\n" .'Content-type: text/xml' .
"\r\n" .'Content-Length: '. strlen($xml_data) .
"\r\n" .'Connection: close' . "\r\n" . "\r\n");
//anschließend die XML-Informationen
fputs($f, $xml_data);
//Auslesen der Serverantwort
$ret = '';
while(!feof($f)){
$ret .= fread($f, 1024);
}
//jetzt trennen wir Header und Body von der Serverantwort
list($header, $xml_response) = explode("\r\n\r\n", $ret);
//Und zerlegen den Header so, dass wir die HTTP-Status Message auslesen können
$status=explode("\n",$header);
echo $status[0];
$status=trim($status[0]);
if($status=="HTTP/1.1 200 OK"){
return true;
}else {
//im Fehlerfalle gibt die Funktion die Fehlermeldung aus, und false zurück.
echo "unknown error got \"$header\" $xml_response";
return false;
}
}
}
Hat jemand eine Idee, warum die SMS nicht gesendet wird???