Problem

Im Display eines Yealink Endgeräts erscheint die Meldung "Internal Server Error" oder "Server Internal Failure". Benutzer gehen hierbei des Öfteren von Fehlern in der STARFACE aus.

Lösung

Vorweg: Die Meldung bedeutet keinen Fehler in der STARFACE oder im Endgerät!

Die Meldung kann verschiedene Ursachen haben, z.B.:

  • Der Benutzer wählt eine Rufnummer, die nicht existiert.
  • Der Benutzer wählt eine Rufnummer, die ungültig ist (Rufnummernformat).
  • Es liegt ein Netzproblem beim Zielteilnehmer vor ("Destination out of Order").
  • Es liegt eine Überlastsituation im Amt vor oder es stehen nicht ausreichend Sprachkanäle zur Verfügung.
  • Es ist eine Zeitüberschreitung bei der Anwahl des Zielteilnehmers aufgetreten.
  • Der Anruf wurde vom Amt aus nicht näher spezifizierten Gründen abgewiesen.

Erklärung

Eine Hybrid-Telefonanlage, wie die STARFACE, die sowohl im ISDN-Netz als auch in SIP-Netzen hängt, steht vor der schwierigen Aufgabe, bestimmte Zustände und Informationen von einem ISDN-Code in einen SIP-Code zu übersetzen (siehe https://wiki.asterisk.org/wiki/displ...Cause+Mappings).
ISDN kann sehr detailliert Auskunft darüber geben, warum ein Anruf nicht zustande kommt. Das Problem ist, dass man sich bei der Entwicklung des SIP-Standards mehr an HTTP, als existierenden TK-Vermittlungstechniken orientiert hat. Hierdurch werden Übersetzungen notwendig, bei denen viele Information verloren gehen bzw. nicht eindeutig übersetzt werden können.

ISDN kann beispielsweise sehr genau über den Grund eines abgewiesenen Anrufs wegen eines Rufnummernfehlers informieren:

  • UNALLOCATED (Hangup Cause 1)
  • MISDIALLED TRUNK PREFIX (Hangup Cause 5)
  • SUBSCRIBER ABSENT (Hangup Cause 20)
  • INVALID NUMBER FORMAT (Hangup Cause 28)
  • ...

Je nach Provider und Gateway-Konfiguration können leider auch weniger passende "Hangup Causes" (HC) gesendet werden.

Bei der Übersetzung in SIP Status Codes kann ein HC 1 zu einem SIP/404 (Not Found), SIP/485 (Ambiguous) oder SIP/604 (Does Not Exist Anywhere) werden.
Ein HC 20 wird vielleicht zu einem Not Found (SIP/404) oder einem Gone (SIP/410).
Der HC 28 kann zum Beispiel zu einem SIP/484 werden oder einem SIP/414, SIP/416.

In manchen Fällen werden Gespräche auch ohne einen hilfreichen Hinweis aus dem Amt terminiert und ein HC 0 (CAUSE UNSPECIFIED) gesendet.
Oder es handelt sich um ein Problem der ISDN-Gegenstelle und der Provider sendet uns ein Network Out of Order (HC 38), Destination Out of Order (HC 27), No Route to Destination (HC 2/3), Timer Expiration (HC 102) oder ein No Circuit/Channel Available (HC 34).

Und wie das bei Übersetzungen eben so ist: In vielen Fällen passt kein SIP-Code so richtig oder manchmal auch mehrere Codes auf einmal.
Wenn ein an der Übermittlung beteiligter Server eine Nachricht aus solchen Gründen nicht weiter bearbeiten kann ist ein 5xx SIP-Code zu setzen.

Zur Auswahl stehen:

  • SIP/500 Internal Server Error
  • SIP/501 Not Implemented
  • SIP/502 Bad Gateway
  • SIP/503 Service Unavailable
  • SIP/504 Server Time-Out
  • SIP/505 Version Not Supported
  • SIP/513 Message Too Large
  • SIP/580 Precondition Failure

Aus der Auswahl wird schnell ersichtlich, dass sehr oft nur der generelle Fall eines SIP/500 passt. Alle anderen Fällen beschreiben einen Umstand, der spezieller ist und somit nicht zwingend vorliegt.

Was nun am Telefon angezeigt wird, hängt davon ab, was

  1. der Provider des Angerufenen als Status übermittelt,
  2. was an den Transitprovidergrenzen daraus wird,
  3. was der eigene Provider daraus macht,
  4. was unser Gateway hineininterpretiert,
  5. wie die STARFACE diese Codes übersetzt und
  6. was das Endgerät dann zu einem SIP-Code für eine Meldung im Display anzeigt.

Wenn man sich vor Augen führt, dass auf dem Weg eines Anrufs unter Umständen mehrere Protokollwandlungen stattfinden und Status Codes nur von präzise zu unpräzise verändert werden um keine Falschinformationen zu generieren, wird klar, warum in vielen Fällen letztlich ein generischer SIP/500 aka "Internal Server Error" daraus wird.

In vielen Fällen erscheint deshalb ein "Server Internal Error" auf dem Telefondisplay, weil es das Endgerät schlicht nicht besser weiß. Übersetzen ließe sich dies mit "Es ging nicht und ich weiß nicht warum".

Verwandte Artikel