Grandstream HT502 ATA-Router SIP-Router/Analog-Gateway

Lync ist einfach genial, aber irgendwie gibt es doch immer noch ein paar analoge Endgeräte wie Faxgeräte, Portomaschinen etc., die natürlich auch arbeiten sollen. Lync selbst spricht leider kein "nacktes SIP", so dass gewöhnliche SIP-Endgeräte erst mal nicht einfach verwaltet werden können. Mit den SBAs hat Microsoft nun die Option geschaffen, auch am SBA ein paar analoge Endgeräte anzuschließen. Aber sie sieht das mit den gängigen ATA-Adaptern aus, die es für kleines Geld im Markt gibt ? Am Beispiel des Grandstream HT502 versuche ich aufzuzeigen, wie so ein paar analoge Geräte angebunden werden können.

Dies soll keine Empfehlung für ein Gerät darstellen, sondern nur als Beispiel dienen. Die Box ist für knapp 40 Euro zu bekommen und ist nicht nur ein 2x AB-ATA Adapter, sondern könnte sogar noch DSL-Router spielen. Quasi eine moderne Art eines Netzabschluss, der VoIP zum Provider über DSL macht und intern einen LAN-Port für das Netzwerk und zwei AB-Anschlüsse für Telefon anbietet.

Das Gerät unterstützt nicht die Funktion SIP Options und ist daher nicht direkt als Gateway an Lync verwendbar. Es kann aber über Zusatzprodukte wie Audiocodes SPS oder Ferrari SIP2Lync natürlich angebunden werden.

Das Gerät und der Anschluss

So groß wie zwei Zigarettenschachteln kann das Gerät sehr einfach überall versteckt werden. Interessant ist, dass es zwei analoge Ausgänge für Endgeräte hat, von denen jeder eine eigene SIP-Identität haben darf und eigenständig genutzt werden kann.

Achtung:
Die Box ist auf dem LAN-Port ein DHCP-Server, der Adressen für 192.168.2.x verteilt. für den Firmeneinsatz müssen Sie diese Optionen per Telefon DTMF abstellen oder sie verbinden die Box mit einem Kreuzkabel an einem PC. Der WAN-Port bleibt bei meiner Anwendung ungenutzt.

Für den Firmeneinsatz sollten Sie das Gerät also erst mal mit einem PC an Anschluss LAN direkt verbinden, dem PC per DHCP eine Adresse des HT502 erhalten. Per Browser auf http://192.168.2.1 kommen Sie dann auf die Weboberfläche und sollten dort:

  • Admin-Kennwort ändern
    Der Default ist "admin" und sollte umgehend geändert werden.
  • IP-Adresse oder DHCP konfigurieren
    Wenn Sie die Box als reiner AT-Adapter betreiben wollen, dann können Sie diese am WAN-Port anschließen und entweder per DHCP eine IP-Adresse bekommen oder statisch eine vorgeben. Die MAC-Adresse auf dem WAN-Port ist dabei die aufgedruckte MAC-Adresse +1. Sie sollten dann aber auch die Verwaltung auf dem WAN-Interface und ICMP-Antworten, damit Sie per PING die Erreichbarkeit sicherstellen können.
  • Router mit NAT oder Bridge
    Wenn Sie den LAN-Port nutzen wollen, können Sie die Netzwerkbindung als auch "Bridge" betreiben. Dann sollten Sie den eingebauten DHCP-Server natürlich deaktivieren.
  • WAN-Port freischalten
    Per Default ist eine "Verwaltung" über den WAN-Port nicht möglich. Der Anschluss an den Switch im unternehmen erfolgt aber über den Port

Wenn Sie dann schon mal dabei sind, sollten Sie auch die Firmware (http://www.grandstream.com/firmware.html)überprüfen und gegebenenfalls aktualisieren. Wer die kleine Box nicht selbst direkt ins Internet gehen lassen will, sollte vielleicht die Updates erst einmal lokal herunterladen und mit einem eigenen TFTP-Server oder Webserver bereit stellen. Die kleine Box kann sogar Meldungen per "Syslog" versenden.

Das Firmware-Update löscht nicht die Konfiguration !, d.h. auch das Admin-Kennwort und die DHCP-Einstellungen bleiben erhalten.

Ungeschickt ist aber auch, dass fast jede KonfigurationsÄnderung einen Neustart benötigt, der aber nach 30 Sek schon fertig ist.

AT-Adapter, SIP und Lync

Ok, es ist natürlich klar, dass der HT502 sich sicher nicht wie ein Lync-Client direkt am Lync anmelden kann und zur Anbindungen als einfaches Gerät an einer SBA braucht es eben eine SBA. Das Gerät als "SIP-Trunk" an Lync anzubinden könnte technisch möglich sein, aber ziehe ich mangels Zertifizierung nicht in Betracht. Zudem ist es nicht betriebssicher genug. Lync erwartet ein bestimmtes Verhalten eines SIP-Trunks und das kann durch eine Rollup auch schon mal geändert werden (Interroute und Lync 2010 Rollup2 sind so ein Beispiel).

Insofern gibt es technisch zwei Wege:

  • SIP-Endgerät/Trunk am primären Gateway
    Die meisten Gateways erlauben die Verbindung zu mehreren "Peers" und genau genommen ist ein HT502 auch nur ein SIP-Peer. Klar darf man dann keine Anmeldung mit Benutzername/Kennwort erwarten und muss fixe IP-Adressen verwenden. Aber das ist in der Konfiguration kein Problem
  • SIP-Endgerät an einer SIP-Software, die mit Lync verbunden ist
    Es gibt einige Produkte, die die Reichweite von Lync zu SIP-Geräten erweitern, z.B. NET SmartSIP oder Audiocodes SPS oder Ferrari SIP2Lync

Sicher k����nnte ich versuchen den HT502 einfach an den Audiocodes als "Proxy/Gateway" zu verbinden und so vor Lync zu verbergen, dass hier ein Gerät sich meldet, welches vielleicht nicht alle Optionen unterstützt. Ich habe mich aber absichtlich dagegen entschieden, denn ich möchte schon eine "supportete" Umgebung haben und der Status des Teilnehmers sollte man schon sehen, auch wenn es nur "Grün, Am Telefon, Offline" gibt. Zudem unterstützt das HT502 in der von mir verwendeten Firmware nicht den Befehl Options, so dass eine direkte Anbindung an Lync ausgeschlossen ist.

Anmeldung an Audiocodes SPS

Für jeden FXS-Port können eigene Anmeldedaten und SIP-Server angegeben werden. Hier ist die 192.168.100.64 ein Audiocodes SPS-Server, der die Anmeldung des "SIP-Clients" durchführt:

Auf den ersten Blick sehen die Anmeldedaten natürlich "falsch" aus. Die Details dazu finden Sie aber weiter unten.

Zudem wurden noch folgende Einstellungen geändert, damit sich das Geräte per REGISTER anmeldet. Der HT502 könnte nämlich auch ohne vorherige Registrierung einen INVITE senden.

Damit muss das Gerät sich per SIP REGISTER anmelden und beim normalen "Reboot" meldet sich das Gerät auch wieder ab. Das ist wichtig, damit der Status in Lync auch auf "Offline" geht. Ausgehende Calls sollen auch nur möglich sein, wenn der Register erfolgreich war.

Beim SIP REGISTER wird ein Timeout von 60 Minuten angegeben. Diesen Wert könnte man z.B. auf 10 Min setzen, so dass die Registrierung schneller ungültig wird, wenn der HT502 sich nicht mehr meldet (Strom aus)

Hinweis: Der HT502 kann auch einfach einen "INVITE" senden. Wenn das Gateway zum Amt so eingestellt ist, dass es von dieser IP-Adresse auch einen INVITE annimmt und man das Gateway zum Amt als "Backup Registrar" einstellt, dann kann so eine Notfallfunktion bereitgestellt werden, um beim Ausfall des primären Registrars zumindest ausgehend zum Amt rufen zu können

RTP, SRTP, MediaBypass

Das HT502 muss über ein Media-Relay gehen. Audiocodes SPS und andere unterstützen durchaus auch hier die Funktion "Media Bypass", weisen aber darauf hin, dass das Endgerät "Lync kompatibles SRTP" machen muss. Es gibt im HT502 tatsächlich auch eine SRTP Einstellung.

Die Ergebnisse waren bei mir etwas gemischt. Ich konnte mit aktiviertem Media Bypass natürlich den Verbindungsaufbau wie gewohnt starten aber nicht immer konnte eine Audioverbindung aufgebaut werden. Die Richtung von Lync zum HT502 scheint manchmal nicht zu klappen. Das muss aber erst ein Dauertest beweisen.

Key Timeout

Bei einem "analogen" Endgerät muss die Gegenstelle irgendwie entscheiden, wann eine Rufnummer komplett ist. Sie kann natürlich partielle nummern schon annehmen und einen Rufaufbau "versuchen", aber ein INVITE mit einer unvollständigen Nummer wird von dem Vermittlungssystem natürlich als "nicht erreichbar" gemeldet. Hier ist wichtig, dass die Gegenstelle die Verbindung damit nicht komplett abbaut, sondern auch die Nachwahl von Ziffern zulässt.

Um aber zu viele partielle "INVITE" zu provozieren, sollte ein Timeout hinterlegt werden. Beim HT502 sind das als Standard 4 Sekunden, die aber pro FXS-Port geändert werden können. Nach diesem Timeout startet das Gerät eine Anwahl. Die Nummer muss dann aber komplett sein ansonsten liefert zumindest Audiocodes SPS direkt einen "404 Not Found".

Die meisten analogen DECT-Telefone erlauben aber auch heute schon die Blockeingabe der Rufnummer um dann den Wahl zu starten. Wenn die Anwender so arbeiten, dann kann der Timeout auch auf vielleicht 2 Sekunden reduziert werden. Aber auch das ist knifflig, da einige Telefone bei einer führenden "0" in der Nummer doch wieder eine Pause einlegen. Der Einsatz von EarlyDial hingegen sehe ich kritisch, da der HT502 mit jeder Nummer einen neuen INVITE sendet, der zwar den vorherigen Ersetz, aber vom Proxy natürlich komplett verarbeitet werden muss.

Die Nutzung von analogen Endgeräten unterliegt eben der ein oder anderen Beschränkung. Verzögerungen bei der Anwahl sind aber sicher tolerierbar.

Rufnummernanzeige, Namen und E164

Die Anzeige von Anrufern ist schon lange kein Privileg der ISDN-Telefone mehr. Auch über analoge Leitungen können solche Informationen übertragen werden. Das HT502 unterstützt diese Funktion, aber sie müssen pro FXS-Port natürlich das Länderschema konfigurieren.

Dass im SIP-Protokoll Namen und Nummern übertragen werden ist ja nichts ungewöhnliches. Interessant wird es aber, wenn hinter dem HT502 ein relativ altes GigaSet A240 analog angeschlossen wird. Bei eingehenden Anrufen wird hier sowohl die Nummer als auch der Name angezeigt.

Allerdings ist die Anzeige der Nummer nur "halb" richtig, da die Nummer so nicht "Rückrufbar" ist. Es fehlen die "00" davor oder eine vereinfachte Version mit einer 0 und Wegfall der 49. Da das HT502 hier keine Unterstützung mitliefert, muss diese Normalisierung "davor" passieren. Das HT502 ist also nur bedingt geeignet, eine E-164-Nummer des Anrufers korrekt umzusetzen.

DTMF

Gerade in der analogen Technik müssen Steuerungen natürlich auch "per Ton" übertragen werden. Ein gängiges Verfahren ist dabei DTMF, welches auch die Grandstream-Box versteht. Interessant sind hier beide Richtungen

  • Analog-Telefon als Anrufer
    Ein Mensch könnte über ein angeschlossenes Telefon z.B. seine Exchange Voicemail oder eine Lync Konferenz anrufen und muss für die Steuerung mit DTMF arbeiten-.
  • Analog-Telefon als angerufenes Gerät
    Umgekehrt gibt es natürlich auch Türsprechstellen, die als "Telefon" daher kommen. Sie rufen als per Lync dann die Nebenstelle an, die dann über das Grandstream klingelt. Hebt diese Stelle dann ab, dann möchten Sie z.B. per Lync Client mit der Nummerneingabe eine Aktion auslösen.

Natürlich kann auch das Grandstream HT502 diese Töne sowohl annehmen, verstehen und auch senden. Allerdings ist die Default-Einstellung ungeschickt, da es die Töne auch einfach als Töne mit überträgt und erwartet. In der SIP-Feld gibt es leider mehrere Standards, wie ich auf DTMF schon erläutert habe. Schade ist natürlich, dass die Einstellung nicht nur den Weg von Telefon zu SIP sondern auch in der Gegenstelle beeinflusst, d.h. auch wenn das HT502 intern per SIP sehr wohl verstehen könnte, was da kommt, setzt er es nur um, wenn es in der Konfiguration auch freigegeben ist. möglich sind (FW Stand 1.0.1.21)

Aktiv ist aber per Default nur "in-Audio". Damit Sie per Lync Client DTMF an eine analoge Endstelle senden können, muss hier DTMF via RTP (RFC2833) eingeschaltet werden.

Besonderheit bei der Anmeldung

Auf der Seite SIP Authentication habe ich beispielhaft eine "normale" Anmeldung per SIP beschrieben. Das Grandstream HT502 muss sich natürlich auch anmelden. Allerdings musste ich einige Optionen ausprobieren, bis ich die Konfigurationsfelder auf die SIP-Felder zuordnen konnte:

SIPUser AuthID SIP-Register Inhalte Status

694@netatwork.de

694@netatwork.de

Contact: <sip:694@netatwork.de@192.168.100.67:5060;transport=tcp>"
Authorization: Digest username="694@netatwork.de"
Authorization: realm="netatwork.de@192.168.100.64"
Authorization: uri="sip:192.168.100.64"

Failed

694@netatwork.de

694

Contact: <sip:694@netatwork.de@192.168.100.67:5060;transport=tcp>
Authorization: Digest username="694"
Authorization: realm="netatwork.de@192.168.100.64"
Authorization: uri="sip:192.168.100.64"

Failed

694

694

Contact: <sip:694@192.168.100.67:5060;transport=tcp>
Authorization: Digest username="694",
Authorization: realm="192.168.100.64",
Authorization: uri="sip:192.168.100.64

OK

694

694@netatwork.de

Contact: <sip:694@192.168.100.67:5060;transport=tcp>
Authorization: Digest username="694@netatwork.de",
Authorization: realm="192.168.100.64",
Authorization: uri="sip:192.168.100.64

Failed

Der Eintrag aus "SIPUser" wird im Feld "Kontakt" verwendet während der AuthID im Feld "Username" der Digest-Anmeldung landet. Allerdings sehen Sie, dass sich auf der "realm" verändert und in manchen Konstellationen ein "@" einbaut wird.

Der REALM ist eigentlich der String, der dem Anwender bei der Authentifizierung angezeigt wird. Das ist bei SIP aber so ungewöhnlich und eher bei der Anmeldebox beim Webbrowser relevant:

realm
A string to be displayed to users so they know which username and password to use. This string should contain at least the name of the host performing the authentication and might additionally indicate the collection of users who might have access. An example might be "registered_users@gotham.news.com".
Quelle: http://tools.ietf.org/html/rfc2617#section-3.2.1

Beim ersten anonymen Request sendet der HT502 noch kein REALM aber die 401-Anwort enthält einen realm vom Registrar

- SIP: Response: SIP/2.0 401 unauthorized
  - SipParser: Response: SIP/2.0 401 unauthorized
   - ResponseHeaders: 
    + Via: SIP/2.0/TCP 192.168.100.67:5060;branch=z9hG4bK1385550975;rport=2048;alias
    + From: <sip:694@192.168.100.64;user=phone>;tag=1908711975
    + To: <sip:694@192.168.100.64;user=phone>;tag=SDB9XeQmgU6pK
      CallID: 1687851542-5060-1
    + CSeq: 2000 REGISTER user-Agent: FreeSWITCH-mod_sofia/1.1.beta1-git-
      Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, uPDATE,
              INFO, REGISTER, REFER, PRACK, NOTIFY, PUBLISH, SUBSCRIBE
      Supported: 100rel, timer, precondition, path, replaces
    - Authorization:
       scheme: Digest
       Realm: "192.168.100.64"
       nonce: "3f58abae-6140-456a-a262-e7a8d3a00e6c"
       Algorithm: MD5
       QualityOfProtection: "auth"

Anfang habe ich als SIP-URI natürlich etwas in der Art eingetragen.

Ich denke nicht dass davon abgeleitete "From"-Feld durch den Standard gedeckt ist.:

- SIP: Request: REGISTER sip:192.168.100.64 SIP/2.0
  - SipParser: Request: REGISTER sip:192.168.100.64 SIP/2.0
   + RequestLine: REGISTER sip:192.168.100.64 SIP/2.0
   - RequestHeaders: 
    + Via: SIP/2.0/TCP 192.168.100.67:5060;branch=z9hG4bK1498403045;rport;alias
    + From: <sip:694@sipdomain.tld@192.168.100.64;user=phone>;tag=163626389
    + To: <sip:694@sipdomain.tld@192.168.100.64;user=phone>
      CallID: 1083750484-5060-1
    + CSeq: 2000 REGISTER
    + Contact: *
      Max-Forwards: 70 user-Agent: Grandstream HT-502  V1.2A 1.0.6.13  chip V2.2
      Expires: 0
      Allow: INVITE, ACK, OPTIONS, CANCEL, BYE, SUBSCRIBE, NOTIFY, INFO, REFER, uPDATE
      ContentLength: 0
      HeaderEnd: CRLF

Leider ist auch noch die Zeile "contact" nur mit einem "*" besetzt. Interessant ist dann aber auch die Antwort der SPS/Freeswitch.

- SIP: Response: SIP/2.0 401 unauthorized
  - SipParser: Response: SIP/2.0 401 unauthorized
   + StatusLine: SIP/2.0 401 unauthorized
   - ResponseHeaders: 
    + Via: SIP/2.0/TCP 192.168.100.67:5060;branch=z9hG4bK1498403045;rport=2048;alias
    + From: <sip:694@sipdomain.tld@192.168.100.64;user=phone>;tag=163626389
    + To: <sip:694@sipdomain.tld@192.168.100.64;user=phone>;tag=K04Qjv5p1BHFp
      CallID: 1083750484-5060-1
    + CSeq: 2000 REGISTER user-Agent: FreeSWITCH-mod_sofia/1.1.beta1-git-
      Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, uPDATE,
              INFO, REGISTER, REFER, PRACK, NOTIFY, PUBLISH, SUBSCRIBE
      Supported: 100rel, timer, precondition, path, replaces
    - Authorization:
       scheme: Digest
       Realm: "sipdomain.tld@192.168.100.64"
       nonce: "3ad452e9-0c87-405a-9646-7f630ef46b67"
       Algorithm: MD5
       QualityOfProtection: "auth"

      ContentLength: 0
      HeaderEnd: CRLF

Die Audiocodes SPS/Freeswitch übernimmt als REALM also den String hinter dem ersten "@" in der FROM-Zeile.

Töne

Am Ende bleibt nur noch eine kleine Schönheitskorrektur: Die amerikanischen Töne für Freizeichen etc. sind für deutsche Ohren doch eher ungewöhnlich. In den "Advanced Settings" werden die Töne als folge von Frequenzen und Pausen angegeben. Hier die Standardwerte.

Für europäische Ohren sind die folgenden Werte familiärer. Als Text können Sie diese sicher einfacher per Cut/Copy/Paste übertragen

Deutsche Bezeichnung HT502 Bezeichnung Werte

Wählton
Das lange "tuuuut" zeigt an, dass Sie wählen können

Dial Tone

f1=425;

Freiton
Die Verbindung zur gegenstelle wurde hergestellt und es "klingelt" auf der anderen Seite

Ring Back Tone

f1=425,f2=425,c=1000/4000;

Besetzt
Leider ist die Gegenseite besetzt

Busy Tone

f1=425,f2=425,c=480/480;

Gassenbesetzt
Es ist keine Kapazität auf dem Weg zum Ziel frei. Früher war tatsächlich keine Leitung frei. Bei VoIP könnte Bandbreitenmanagement (Call Admission Control)dies bewirken

Reorder Tone

f1=425,f2=425,c=240/240

?

Confirmation Tone

f1=350@-11,f2=440@-11,c=100/100-100/100-100/100;

?

Call-Waiting Tone

f1=425,f2=425,c=20/20-20/500

?

Prompt Tone

<habe ich belassen>

Weitere Links