Einleitung
Dieser Artikel beschreibt die Installation und Konfiguration eines Mediagateways Smartnode 4552 der Firma Patton/Inalp in Verbindung mit Asterisk. Ein Mediagateway wandelte Media Daten wie digitale Audio- und Videodaten von einem Netzwerktyp in einen anderen um. In diesem speziellen Fall finden eine Umwandlung ISDN zu SIP oder umgekehrt statt. Da ich schon mehrere ISDN Karten und Treiber verschiedener Hersteller mit Asterisk konfiguriert habe, wollte ich einfach einmal ein Mediagateway mit Asterisk nutzen., nachdem ich in verschiedenen Foren und Mailinglisten positive Feedbacks lesen konnte. Die Vorteile beim Einsatz von Mediagateways liegt auf der Hand:
- In Verbindung mit Asterisk muß man sich nicht mehr mit mehr oder weniger funktionierenden ISDN Channeltreibern "herumärgern"
- Ein Update von Asterisk zwingt nicht mehr zum Neuinstallieren der ISDN Channeltreiber
- Der Asterisk Server wird entlastet, da er keine Umwandlung von ISDN zu SIP durchführen muß
- Es stehen bessere Möglichkeiten zum Clustern zur Verfügung
Im folgendem Beispiel verwende ich einen Smartnode 4552, welcher über die Schnittstelle bri 0/0 an einem ISDN Mehrgeräteanschluß mit den fiktiven Rufnummern 792700, 792701, 792702 an das öffentliche Telefonnetz angeschlossen ist. Er ist mit der IP-Adresse 192.168.255.99 konfiguriert und soll eingehende Rufe vom Telefonnetz an die Asterisk PBX mit der IP Adresse 192.168.255.100 weiterleiten. Die zweite ISDN Schnittstelle bri 0/1, stellt einen interner S0 Bus zur Verfügung. An diesem ist ein analoges Faxgerät über einen AB Wandler angeschlössen. Ziel ist es eingehende Rufe vom Festnetz mit der Zielrufnummer 792701 an das Faxgrät zu senden. Alle anderen eingehenden Rufe sollen an den Asterisk Server geleitet werden. Rufe vom Asterisk un den Faxgerät sollenüber den SmartNode an das öffentliche ISDN-Telefonnetz geroutet werden.
Die folgende Skizze soll das Beispiel veranschaulichen:
Installation
Der Smartnode wird standarmäßig mit der LAN IP-Adresse 192.168.1.1 ausgeliefert. Konfigurieren lässt er sich über die WEB Oberfläche oder über Telnet. Beschrieben wird hier die Konfiguration über Telnet. Alle durchgeführten Schritte lassen sich aber über die WEB Oberfläche in der Advanced GUI durchführen. Firmware Version des SmartNode ist 5.2.
Anmeldung
Nach der Anmeldung als Administrator wechselt man mit "enable" in den Administratormodus und mit "configure" in den Konfigurationsmodus des Mediagateways. Im Auslieferungszustand ist kein Apsswort vergeben.
telnet 192.168.1.1 login: administrator passwort: 192.168.1.1>enable 192.168.1.1#configure 192.168.1.1#
Die Kommandozeile 192.168.1.1# weist darauf hin, daß sich das Gerät jetzt im Konfigurationsmodus befindet. Als erstes wird das Passwort für den Benutzer administrator gesetzt:
192.168.1.1#administrator administrator password geheim
IP Adresse der LAN Schnittstelle ändern (context ip router)
Als nächstes ändern wir die IP Adresse der LAN Schnittstelle auf 192.168.255.99. Dazu wechseln wir in den Kontext "ip router":
192.168.1.1#context ip router 192.168.1.1[router]#interface IF_IP_LAN 192.168.1.1[IF_IP_LAN]#ipaddress 192.168.255.99 255.255.255.0
Interface an Ethernet Port 0 1 binden
192.168.1.1[IF_IP_LAN]#port ethernet 0 1 192.168.1.1[0/1]#bind interface IF_IP_LAN
Nach Eingabe der neuen IP Adresse muß sich neu angemeldet und wieder in den Konfigurationsmudus gewechselt werden:
telnet 192.168.255.99 login: administrator passwort: 192.168.255.99>enable 192.168.255.99#configure 192.168.255.99#
DHCP Server deaktivieren und Standardroute setzen
Den DHCP Server kann ich deaktivieren, da dieser schon auf den Asterisk Server installiert ist.
192.168.255.99context ip router 192.168.255.99[router]#no dhcp-server
Die IP Routerfunktion des Smartnode wird auch nicht genutzt, da ein Router im Netzwerk mit der IP Adresse 192.168.255.1 vorhanden ist. Somit wird im nächsten Schritte die die Standardroute auf diese IP gesetzt. Mit dem Befehl "exit" wir der Kontext "ip router" verlassen.
192.168.255.99[router]#route 0.0.0.0 0.0.0.0 192.168.255.1 192.168.255.99[router]#exit 192.168.255.99#
DNS Client konfigurieren
Der Asterisk Server mit der IP 192.168.255.100 dient im Netzwerk auch als DNS Server. Dieser wird dem Mediagateway mitgeteilt:
192.168.255.99#dns-client server 192.168.255.100
Konfiguration abspeichern
Im Anschluß können wir uns die IP Konfiguration noch einmal betrachten und abspeichern.
192.168.255.99(cfg)#show ip interface IF_IP_LAN ------------------------------------------------------------ Context: router Name: IF_IP_LAN Local IP Address: 192.168.255.99 255.255.255.0 MTU: 1500 (Configured: 1500, Link: 1508) ICMP router-discovery: enabled ICMP redirect: send only Binding: ethernet 0 0 1/ip-demux/IF_IP_LAN/arp/ip State: OPENED
192.168.255.99(cfg)#show ip route Route Table of IP context 'router': Validity state (V): * valid, (*) duplicate, (-) down Flags: U up, H host, G Gateway, L local, D default ------------------------------------------------------------------------------- V Destination Traffic Cl. Interface (Next Hop) Protocol Met. Flags ------------------------------------------------------------------------------- * 192.168.255.99/32 loopback Local 0 ULH * 127.0.0.1/32 loopback Local 0 ULH * 192.168.255.0/24 IF_IP_LAN Local 1 UL * 127.0.0.0/8 loopback Local 1 UL * 0.0.0.0/0 IF_IP_LAN (192.168.255.1) Static 0 UDG
-------------------------------------------------------------------------------
Damit die Konfiguration auch nach einem Neustart des SmartNode verfügbar ist, wird diese in die Startkonfiguration geladen.
192.168.255.99(cfg)#copy running-config startup-config
SIP Gateway erstellen und aktivieren (context sip-gateway)
Das SIP Gateway ist für den Empfang von SIP Paketen über den Kontext IP Router (context ip) und die Weiterleitung den Call Router Context (Context CS) verantwortlich.
Für die Kommunikation mit Asterisk wird ein SIP Gateway mit dem Namen GW_ASTERISK erstell und aktiviert:
192.168.255.99#context sip-gateway GW_ASTERISK 192.168.255.99[GW_ASTERISK]no shutdown
Im nächsten Schritt wird für das SIP Gateway ein Transport Interface "IF_LAN" erstellt und an die physikalische LAN Schnittstelle "IF_IP_LAN" gebunden.
192.168.255.99[GW_ASTERISK]#interface IF_LAN 192.168.255.99[IF_LAN]#bind interface IF_IP_LAN port 5060
SIP-Interface erstellen und an SIP-Gateway binden (context cs)
Das SIP-Interface stellt das Bindeglied zwischen Call Contol und SIP Umgebung dar. So werden Rufe vom Kontext CS über das SIP-Interface zum Kontext SIP-Gateway geroutet. Mit Hilfe des SIP-Interfaces werden Regeln für die Übersetzung von Signalsierungdaten (SIP) oder Sprachdaten (VOIP) definiert. Im folgenden wird das SIP-Interface "IF_SIP_ASTERISK" erstellt und an das SIP-Gateway "GW_ASTERISK" gebunden:
192.168.255.99[IF_LAN]#context cs 192.168.255.99[switch]#interface sip IF_SIP_ASTERISK 192.168.255.99[IF_SIP_ASTERISK]#bind context sip-gateway GW_ASTERISK
Anschließend muß dem SIP-Interface noch mitgeteilt werden an welchen Host Calls gesendet werden sollen. Der Empfänger ist in unserem Beispiel immer der Asterisk Server mit der IP-Adresse 192.168.255.100, so daß wir diese Adresse als Remote Host Parameter einsetzen können.
Dieser Parameter bildet den Host Teil des To-Header-Feldes im SIP Protokoll.(192.168.255.100>) Alle Anrufe die das SIP-Gateway über dieses SIP Interface leitet werden an den Host mit dieser IP Adresse gesendet, solange kein SIP Proxy konfiguriert wird. In unserem Fall können wir auf einen SIP Proxy und/oder Location Service verzichten, da alle Rufe an den Asterisk gesendet werden solllen, und die Adresse des Asterisk Servers bekannt ist.
192.168.255.99[IF_SIP_ASTERISK]#remote 192.168.255.100
ISDN Interface zum Anschluß an das Festnetz konfigurieren
Nachdem die Schnittstelle auf IP Ebene konfiguriert ist, wird im nächsten Schritt die ISDN Schnittstellen zum Anschluß an das öffentliche Telefonnetz (PSTN) konfiguriert.
Dazu wird das logische Interface "IF_TE_00" erstellt.
192.168.255.99#context cs 192.168.255.99[switch]#interface isdn IF_TE_00
Das Interface IF_TE_00 wird nun an die physikalische Schnittstelle bri 0/0 gebunden. Zuvor wird diese Schnittstelle noch für den Anschluß an einen Mehrgeräteanschluß (PMP) konfiguriert.
192.168.255.99#port bri 0 0 192.168.255.99[0/0]#q921 192.168.255.99[0/0]#protocol pmp 192.168.255.99[0/0]#q931 192.168.255.99[0/0]#encapsulation cc-isdn 192.168.255.99[0/0]#bind interface IF_TE_00
Anschließend können wir uns die Konfiguration des Ports bri 0/0 anschauen:
192.168.255.99(q931)[0/0]#show port isdn 0 0 Logical Isdn Driver: 0 0 ========================
Slot: 0 Number of Ports: 2
Statistics ----------
Leased buffers: 14 Max. leased buffers: 21 Next Call Key: 0
Logical Port: 0 0 0 -------------------
Admin State: Open Real State: Open
Operating Layer: 3 Link State: up
Layer 2 Permanent Layer 2: off Protocol: PointToMultiPoint UniSide: User
Layer 3 Protocol: Dss1 UniSide: User MinChannel: 0 MaxChannel: 1 MaxCalls: 2 Hunt Mode: Ascending Signalling Mode: Etsi
Einfaches Routing zwischen beiden Schnittstellen konfigurieren (context cs-switch)
Nachdem beide Schnittstellen konfiguriert sind können nun die Routinregeln erstellt werden. Im erste Schritt beschränken wir uns auf das einfache Routung zwischen den Schnittstellen "IF_SIP_Asterisk" und "IF_TE_00".
Alle eingehende Rufe vom ISDN Festnetz sollen an Asterisk geleitet werden:
192.168.255.99>cfg>#context cs 192.168.255.99[switch]#interface isdn IF_TE_00 192.168.255.99[IF_TE0_00]#route call dest-interface IF_SIP_ASTERISK
Alle eingende Rufe von Asterisk sollen ans ISDN Festnetz geleitet werde:
192.168.255.99>cfg>#context cs 192.168.255.99[IF_TE_00]#interface sip IF_SIP_ASTERISK 192.168.255.99[IF_SIP_ASTERISK]#route call dest-interface IF_TE_00
Somit haben wir schon ein einfaches Routing zwischen beiden Schnittstellen konfiguriert und speichern unserer Einstellungen in die Startup Konfiguration:
192.168.255.99IF_SIP_ASTERISK]#exit 192.168.255.99exit 192.168.255.99(cfg)#copy running-config startup-config
Somit werden alle eingehen Rufe vom Asterisk an der Schnittstelle IF_SIP_ASTERISK über die Schnittstelle IF_TE_00 an das ISDN Festnetz weitergeleitet.
Im nächsten Abschnitt wollen wir nun das Faxgerät an der ISDN Schnittstelle "bri 0/1" einbinden. Dazu wird als erstes die Schnittstelle konfiguriert und anschließend eine Routingregel erstellt um eingehende Rufe vom ISDN Festnetz mit der Zielrufnummer 792701 an diese zu senden.
ISDN Interface zum Anschluß des Faxgerätes konfigurieren (context cs-switch)
Als erstes wird das logische Interface "IF_NT_01" erstellt. Anschließend wird der physikalische Port "bri 0/1" konfiguriert und an das Interface "IF_NT_01" gebunden.
192.168.255.99#context cs 192.168.255.99[switch]#interface isdn IF_NT_01 192.168.255.99[IF_NT_01]#port bri 0 1 192.168.255.99[0/1]#q921 192.168.255.99[0/1]#protocol pmp 192.168.255.99[0/1]#q931 192.168.255.99[0/1]#uni-side net 192.168.255.99[0/1]#bind interface IF_NT_01
Routingregel für eingehnde Rufe vom ISDN Festnetz konfigurieren
Die folgende Routingregel muß anhand der gewählten Rufnummer (called party number) entscheiden ob ein eingehender Ruf vom Festnetz an die Transportschnittstelle "IF_NT_01" (Faxgerät) oder "IF_SIP_ASTERISK" (Asterisk) gesendet werden soll. Also erstellen wir eine Routingtabelle vom Typ "called-e64" mit dem Namen "RT_FROM_PSTN" welche die Zielrufnummer auswertet.
In dieser angelegten Routingtabelle werden zwei Routen definiert:
1. Rufe mit der Zielrufnummer 792701 an das Interface "IF_NT_01" geleitet. 2. Rufe die der Zielrufnummer 7927 beginnen und eine odere mehrere beliebige Ziffern (.+) folgen, werden an das Interace "IF_SIP_ASTERISK" geleitet.
192.168.255.99#context cs 192.168.255.99[switch]#routing-table called-e164 RT_FROM_PSTN 192.168.255.99[RT_FROM_PSTN]#route 792701 dest-interface IF_NT_01 192.168.255.99[RT_FROM_PSTN]#route 7927.+ dest-interface IF_SIP_ASTERISK
Im nächsten Schritt wird die neu erstellte Routingtabelle an das Interface "IF_TE_00" gebunden:
192.168.255.99#context cs 192.168.255.99[switch]#interface isdn IF_TE_00 192.168.255.99[IF_TE_00]#route call dest-table RT_FROM_PSTN
Routingregel für ausgehende Rufe vom FAX zum Festnetz konfigurieren
Nun muß noch eine Routingregel für das Interface "IF_NT_01" erstellt werden, um ausgehende Rufe vom Faxgerät an das Festnetz (Interface "IF_TE_00") zu leiten:
192.168.255.99#context cs 192.168.255.99[switch]#interface isdn IF_NT_01 192.168.255.99[IF_TE_00]#route call dest-interface IF_TE_00
Überflüssige IP-Gateways, SIP-Interfaces, ISDN-Interfaces Routingtabellen etc. löschen
Im Anschluß kann man nicht verwendete vorkonfigurierte Interfaces und Gateways löschen:
192.168.255.99#no context sip-gateway sip 192.168.255.99#no context sip-gateway GW_SIP 192.168.255.99#context cs 192.168.255.99[switch]#no interface sip IF_SIP_SERVICE 192.168.255.99[switch]#no interface isdn IF_S0_00 192.168.255.99[switch]#no interface isdn IF_S0_01 192.168.255.99[switch]#no interface isdn IF_DEV0 192.168.255.99[switch]#no routing-table RT_CALL_ROUTING 192.168.255.99[switch]#no routing-table RT_INCOMING 192.168.255.99[switch]#no routing-table RT_NR_BLOCKING 192.168.255.99[switch]#no routing-table RT_SPEED_DIAL 192.168.255.99[switch]#exit 192.168.255.99#copy running-config startup-config
Nun wird die Konfiguration abgespeichert und der SmartNode neu gestartet:
192.168.255.99#copy running-config startup-config 192.168.255.99#reload
Die fertige Konfigurationsdatei kann hier betrachtet und heruntergeladen werden:
http://www.asterisk-kompakt.de/_myfiles/Asterisk+Smartnode+Fax
Asterisk Kontext erstellen
Als letztes muß natürlich auch Astersik konfiguriert werden um Calls von Smartnode entgegenzunehmen. Dazu wird in der sip.conf ein Kontext "gw_patton" erstellt der alle eingehenden Rufe an den Kontext "from-gw-patton" in der extensions.conf leitet.
[gw_patton] type = peer host = 192.168.255.99 port = 5060 context = from-gw-patton
Um das ganze einfach zu halten habe ich hier nur die notwendigsten Paremeter angegeben. Eine Ausführliche Dokumentation zur sip.conf findet man hier: http://www.voip-info.org/wiki-Asterisk+config+sip.conf.
Es ist an dieser Stelle nicht notwendig Angaben zur Authentifizierung wie "fromuser" oder "secret" zu machen, da sich der Smartnode gegenüber dem Asterisk nicht anmeldet. Auch erfolgt keine Authentifizierung oder Registrierung des Asterisk beim Smartnode statt.
Zum Anschluß noch ein Beispielkontext um Alle Rufe vom Asterisk, welche mit einer 0 beginnen (Amtskennung) an den Smartnode zu leiten. Dieser Kontext muß in der extensions.conf erstellt werden.
[patton_out] exten => _0.,1,Dial(SIP/${EXTEN:1}@gw-patton,25,tT) exten => _0.,n,Hangup
Hinweise zum Debuggen
ISDN debuggen:
192.168.255.99#debug isdn error 192.168.255.99#debug isdn event
192.168.255.99#debug isdn event 0 0 all 192.168.255.99#debug isdn event 0 0 layer2 192.168.255.99#debug isdn event 0 0 layer3
192.168.255.99#debug ccisdn signaling 192.168.255.99#debug caöö-control
Aktive Anrufe auf ISDN Ports:
192.168.255.99#show call-control call
Informationen über ISDN Ports
192.168.255.99#show port isdn 192.168.255.99#show port isdn 0 0 192.168.255.99#show port isdn detail 5 192.168.255.99#show port isdn 0 0 detail 5
Informationen über BRI Ports
192.168.255.99#show port bri
Aktive Anrufe auf VoIP Ebene
192.168.255.99#show dsp 0
Informationen über Call-Router Konfiguration
192.168.255.99#show call-router config 192.168.255.99#show call-router status
Call-Router debuggen
192.168.255.99#debug call-router detail 5 192.168.255.99#show call-router status
Links:
http://www.patton.com http://www.patton.com/manuals/SCG-r52.pdf http://www.amoocon.de/archives/pdf_of_slides/39/Asterisk_und_Mediagateways.pdf?1267743982 http://www.asterisk-kompakt.de/_myfiles/Asterisk+Smartnode+Fax http://www.voip-info.org/wiki-Asterisk+config+sip.conf
|