Sipgate-Api ntuzen um SMS per PHP-Sript zu versenden

Electron

Neuer User
Mitglied seit
7 Aug 2007
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
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...
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???
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.