Fehlende deutsche Umlaute in SMS, Versand via PHP Klasse von Christian Schmidt

167 views
Skip to first unread message

P.G.

unread,
Jan 8, 2010, 7:19:29 AM1/8/10
to sipgate API
hallo zusammen,

ich verwende die php klasse von Christian Schmidt (http://
tools.assembla.com/sipgateapi) um automatisierte sms nachrichten zu
versenden. leider werden keine deutschen umlaute äüö im sms-text
mitgeschickt.

hat jemand das selbe problem und eine lösung hierfür?

danke im vorraus.

grüße. p.g.

Sandro

unread,
Jan 8, 2010, 8:07:06 AM1/8/10
to sipga...@googlegroups.com
Moin,

ich weiß nicht konkret wie das bei dieser php-klasse aussieht, aber allgemein
musst du drauf achten, dass alles im richtigen encoding weitergereicht wird.
Ich kann empfehlen alles zu utf-8 einzustellen. Danach sollte das klappen. Die
Punkte die du prüfen musst: nimmt php die daten als utf-8 entgegen - werden
sie als utf-8 verarbeitet, und an samurai.sipgate auch als utf-8
weitergegeben...

viel spaß beim einstellen ;)

sandro

Viktor Dite

unread,
Jan 28, 2014, 7:59:53 AM1/28/14
to sipga...@googlegroups.com
Ich habe leider auch das Problem. Alles ist UTF-8 kodiert. Selbst das xmlrpc Objekt gibt korrekte Werte zurück.
Erst beim Aufruf von $r = $xmlclient->send($m); werden äöü total zerfetzt und wenn ein ß im Text ist, gibt es einen Status Code 5 zurück

Marcus Boos

unread,
Oct 25, 2016, 4:22:44 PM10/25/16
to sipgate API
Die Frage ist zwar schon alt aber vielleicht stolpert noch jemand hier vorbei der wie ich nach der Lösung sucht.
Ich konnte das Problem wie folgt lösen:

Der Text der SMS ist zunächst per iconv von UTF-8 zu iso-8859-1 zu konvertieren:
$_text = iconv("UTF-8","iso-8859-1",$_text):


Hier meine komplette Funktion auf Basis der API Beispiele (Da fehlen noch Checks bevor die Produktiv benutzt werden kann!)
Die defines wie
SIPGATE_USERNAME müssen noch gesetzt werden.

  public function sendSMS($_remoteUri, $_localUri, $_text) {

      if (empty($_localUri)) {$_localUri = SIPGATE_LOCALURI;}

      //Auth bauen
      $auth = base64_encode(sprintf('%s:%s',SIPGATE_USERNAME, SIPGATE_PASSWORD));

      //requestParameter Bauen
      $requestParameter = array(
        'RemoteUri' => sprintf('sip:%s...@sipgate.de', $_remoteUri),
        'LocalUri' => sprintf('sip:%s...@sipgate.de', $_localUri),
        'TOS' => 'text',
        'Content' => iconv("UTF-8","iso-8859-1",$_text)
      );

      //request erstellen
      $request = xmlrpc_encode_request("samurai.SessionInitiate", $requestParameter);

      //
      $context = stream_context_create(
          array('http' => array(
              'method' => "POST",
              'header' => sprintf("Content-Type: text/xml; charset=utf-8\r\nAuthorization: Basic %s)", $auth),
              'content' => $request
          ))
      );

      $response_xml = file_get_contents(SIPGATE_XMLRPC, false, $context);

      return xmlrpc_decode($response_xml);
Reply all
Reply to author
Forward
0 new messages