Stand der Dinge, SMS versenden...

Hallo Hinti,

ich nutze die API von developergarden, einer Initiative der Deutschen Telekom.

diese API kann

[ul]
[li]SMS[/li][li]Conference Call[/li][li]VoiceCall[/li][li]und noch ein paar Dinge[/li][/ul]die API liegt in verschiedenen Umgebungen vor, mitunter PHP :smiley:

Seitens IPS ist nur eine Extension notwendig. php_soap.dll.

Das SDK in eine Webserver-Instanz kopieren, das Beispielskript anpassen und gut ist.

Einziger Haken. Man muss sich registrieren, kann aber dann 10 SMS kostenlos in der sogenannten SANDBOX-Umgebung senden. Brauchst Du mehr kannst Du auch eine Art Prepaidkonto aufladen.

Schöne Sache nebenbei. Die API kann auch FLASHSMS senden!!!

Hier mal das angepasste Beispielskript:

<?
/*
 * Telekom ODG PHP-SDK
 * Copyright 2009 Deutsche Telekom AG
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
 
/**
 * Include required classes.
 */
include_once('../webserver/odg/src/odgsdk/SmsClient.php');
echo "ODGSMSClientSample : Start
";
try
{
    $numbers = "+49-171-12345678, +49-171-7654321";
    $message = "IP-Symcon Information.

Aussentemperatur: ".GetValue(16321 /*[Terrasse\Wetterstation\Temperatur- und Feuchtigkeitssensor außen\Temperatur]*/)." C
Wohnzimmer: ".GetValue(36167 /*[Erdgeschoß\Wohnzimmer\Heizung Wohnzimmer\Temperatur]*/)." C";
//  $message = chr(utf8_encode(0xB0));
    $originator = "IPSymcon";
    // Instantiation of the SMS client:
    $smsClient = new SmsClient(
        'Benutzer',
        'Passwort',
    Environment::SANDBOX // SANDBOX, PRODUCTION, MOCK
    );
    // Send a sendSMS operation:
    $sendSmsResponse = $smsClient->sendFlashSMS($numbers, $message, $originator);
    // Check whether the sendSMS operation was successful or not.
    if('0000' == $sendSmsResponse->getStatus())
    {
        echo "The message was sent successfully
";
        echo $message;
    }
    else
    {
        echo "The sendSMS operation ended with an error. "
        ."The status of the response is: ".$sendSmsResponse->getStatus()
        .", the corresponding description message is: "
        .$sendSmsResponse->getDescription();
        exit;
    }
}
catch(SoapFault $sf)
{
    print_r($sf);
}
echo "
ODGSMSClientSample : Finish
";

Ich hab für die 2.2 mal ein Modul gebaut, welches direkt Clickatel ansprechen kann. (Die sind übrigens günstiger als alle anderen Anbieter die ich noch gesehen hatte. (z.b. 4,4cent zu D1) Und sie versenden Weltweit)

paresy

Hallo Paresy, welche Art von Clickateltool ist das dann?
Ich brauch die Info wegen anmelden bei Clickatel:

Für was muß ich mich denn bei Clickatell anmelden?

  1.  SMTP [E-mail to SMS] API, oder
    
  2. HTTP/S API, oder
    
  3. FTP API, oder
  4. SMPP API         etc etc

Es ist die SOAP API. Du kannst die API auch hinterher noch im Kundenbereich kostenlos hinzufügen.

paresy

Hallo paresy,

du sagtest:

Kannst Du mir bitte sagen wie Du das gemacht hast? Ich bin bei clickatell registriert allerdings im Moment nur über den Communicator - also Browser Benutzung. Ich konnte leider keine Möglich keit finden für mich die SOAP API hinzuzufügen.

Danke schon mal und eine wunderschöne Vorweihnachtszeit

Gruss babba

Hi babba,
Du mußt dich auf „Clickatell Central (API)“ anmelden. Das ist kostenlos. Bist du erstmal registriert und hast deinen Account aufgeladen, dann kannst du Kinderleicht in „Manage My Products“ die Funktion „Add Connection… SOAP“ auswählen :slight_smile:

PS: clickatell ist wirklich ne coole und auch günstige Sache. Ich verwende es seit kurzer Zeit und schicke mir andauernd SMS’es. Jetzt muß ich mir dann bald mal nur mehr die wichtigen Infos senden, sonst muß ich schon wieder Balances aufladen g

Hallo Hinti,

Danke für Deine Antwort - hat auch bestens geklappt.

Ich nutze schon etliche Jahre clickatell - das hatte mir der Jürgen beim letzten IPS-Treffen empfohlen - jedoch bisher nur über den Communicator, d.h. von jeden Computer der am Netz hängt kann man über ein WEB-Interface SMS versenden, was auchich häufig nutze - nun noch das SMS-Modulin IPS - einfach traumhaft :loveips:

Ich hatte nur gehofft, dass ich mein bisheriges Guthaben auf beiden Accounts nutzen kann, was wohl nicht geht :frowning:

Hast Du rund um das Modul schon ein paar scrips ‚verwurstet‘ - mir fehlt im Moment der Ansatz.

Dir eine schöne Weihnachtszeit und Gruss aus Wiesbaden

babba

Hallo wgripl,

könntest du die Einrichtung der SDK aus demdevlopergardenetwas genauer erklären, wäre Klasse. Was muss wo hin und wie angepasst werden.

Nachdem ich mich nun angemeldet habe bekomme ich nun die folgende Fehlermeldung:

ODGSMSClientSample : Start

Fatal error: Class ‚SoapClient‘ not found in C:\IP-Symcon\webfront\smsclient\DG\src\webservice\SmsService.php on line 69

Gruß KH

Hallo KH,

2 Fragen.

[ol]
[li]Hast Du die php_soap.dll Extension in den /ext-Ordner kopiert[/li][li]Poste doch mal dein IPS-Testskript[/li][/ol]Dann sehen wir weiter.

Also vor allem für die Österreicher hier, aber eigentlich für alle Nummern weltweit könnte ich günstig ein SMS-Modul via Handywelt.at anbieten.

läuft bei mir im Test.

lg, christian

Hallo wgreipl,

die php_soap.dll befindet sich im /ext-Ordner.
Hier ein Scriptauszug. Ich habe deines kopiert und den Pfad angepasst(???) die Mobilfunkrufnummer, die Message und die Zugangsdaten.


/**
 * Include required classes.
 */
 
include_once('../Webfront/smsclient/DG/src/SmsClient.php');
echo "ODGSMSClientSample : Start
";
try
{
    $numbers = "+49-160-1234567";  //, +49-171-7654321"
    $message = "IP-Symcon Test";
//  $message = chr(utf8_encode(0xB0));
    $originator = "IPSymcon";
    // Instantiation of the SMS client:
    $smsClient = new SmsClient(
        'xxxx',
        'xxxx',
    Environment::SANDBOX // SANDBOX, PRODUCTION, MOCK
    );

Gruß KH

Hallo KH,

mir kommt der der Pfad zu dem SDK ein wenig seltsam vor.

include_once('../Webfront/smsclient/DG/src/SmsClient.php');

Wenn Du den Pfad „smsclient/DG“ selbst angelegt hast dann sollte darunter eigentlich ein

src/odgsdk/SmsClient.php

auftauchen.

Da ich deine Ordnerstruktur nicht kenne kann ich nicht mehr darüber sagen.

Hallo wgreipl,

ich bin ein Stück weitergekommen, allerdings habe ich die nächste Fehlermeldung:

Fatal error: Call to undefined function mhash() in C:\IP-Symcon\webfront\smsclient\DeveloperGarden_2.5.3_PHP\src\Telekom\STS\SecurityTokenSaml2Impl.php on line 721

Ich habe dann mal im developergarden gesucht und die dort aufgeführten dlls eingefügt

Ich habe die dll´s php_mcript, php_mhash, php_openssl und php_soap im IPS-Ordner \ext, sowie auch unter Windows im System- sowohl als auch im systen32-Ordner eingefügt.

Zur Ordnerstruktur:
Habe ich gelöscht und neu angelegt und entpackt. Die Struktur wie im Script von wgreipl wird bei mir nicht angelegt. Unter \webfront habe ich einen Ordner \smsclient angelegt und dort den DeveloperGarden_2.5.3_PHP entpackt. Sieht dann so aus C:\IP-Symcon\webfront\smsclient\DeveloperGarden_2.5.3_PHP\src.

Müssen irgendwelche dlls noch eingefügt werden? Oder liegt es daran dass ich über einen Router rausgehe?

Gruß KH

Langsam bekommen wir die Sache ans laufen.

Nächste Frage. Welche IPS-Version benutzt Du. Allem Anschein nach noch eine Version < 2.2 da werden crypt und hash nicht mehr gebrauch. Und sorry, die openssl hatte ich vergessen zu erwähnen :rolleyes:

Wie gesagt nun stellt sich die Frage welche IPS-Version Du nutzt.

Ich benutze die Version 2.1 mir dem Update vom 13.10.09.
Ich dachte die 2.2er gibt es nur als beta.

Gruß KH

Hy, glaube bei der 2.1 brauchst Du noch die crypt und hash.

Hallo KH,

da Du die crypt, hash sowie openssl bereits hast stellt sich natürlich die Frage ob es die korrekten Versionen sind.

Könntest Du mal die ersten 100 Zeilen laden wo man sieht welche DLL IPS lädt.

Klingt irgendwie kompliziert, wenn ich für SMS-Versand gleich mehrere Libs ( crypt, soap, ssl, … ) installieren muss.

wenn wer interesse hat, das Handywelt-gateway geht über einen einfachen GET-Request, die Versandfunktion hat keine 10 Zeilen…

lg, christian

Hallo Christian,

für bestimmte Funktionen benötigt man halt mal Extensions.

In der 2.2 beta werden die crypt und hash nicht mehr benötigt da diese in PHP 5.3 bereits integriert wurden :smiley:

Weiterer Vorteil des SDK´s.

[ol]
[li]10 SMS täglich umsonst (sollte den meisten User ausreichen)[/li][li]FLASH-SMS (kenne derzeit nichts vergleichbares)[/li][/ol]Dafür binde ich gerne ein paar Extensions, Libaries und den SDK ein, bleibt aber jedem selber überlassen.

naja, bei Handywelt zahlt man nach SMS 6 Cent, Flash geht auch.

wer mal testen will, der soll sich melden

lg, chris