Asterisk mit Smartnode 4552
Asterisk 1.4 - Quick & Dirty
Sonntag, den 14. Dezember 2008 um 00:00 Uhr

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:

Asterisk Smartnode

 

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