Project

General

Profile

ISDN-Anbindung

Das gesamte Telefonnetz, das durch den Lehrstuhl- und OpenBSC-Asterisk aufgebaut wurde, soll nicht nur interne Gespräche routen können. Das eigene Netz soll vom gesamten Telefonnetz aus durch eine Festnetznummer erreichbar sein. Wir ließen uns ein Nebenstellenanschluss schalten, an dem wir den Lehrstuhl-Asterisk mit einer Diva-ISDN Karte (http://www.dialogic.com/products/tdm_boards/media_processing/Diva_Server_4BRI_8M.htm) anschlossen.

Die Treiber des Herstellers lassen sich problemlos installieren. Es reicht, den mitgelieferten Anweisungen zu folgen. Ein Script konfiguriert nach der Installation die einzelnen Anschlüsse der Karte. Die notwendigen Asteriskkonfigurationen erzeugt es ebenfalls.

Damit Asterisk mit der Karte kommunizieren kann, müssen nur noch Teile der capi.conf angepasst werden:

[general]
; ----------------------------------------------
; /usr/lib/eicon/divas/chancapi.general
; ----------------------------------------------
nationalprefix=0        ; or for example "+49" 
internationalprefix=00  ; or for example "+" 
;subscriberprefix=+4969 ; prefix including area code (some lines need this)
rxgain=1.0       ;linear receive gain, 1.0 = no change, use Diva rxdgain and rxagc for gain control
txgain=1.0       ;linear transmit gain, 1.0 = no change, use Diva txdgain and txagc for gain control
language=de      ;set default language
;ulaw=yes        ;set this, if you live in u-law world instead of a-law

;jb.....         ;with Asterisk 1.4 you can configure jitterbuffer,
                 ;see Asterisk documentation for all jb* setting available.
;mohinterpret=default ;Asterisk 1.4: default music on hold class when placed on hold.

[DIVA1]
ntmode=no 
isdnmode=did
incomingmsn=*
controller=1 ;wurde so im Configscript des Treibers definiert
group=1 ;wurde so im Configscript des Treibers definiert
softdtmf=off
relaxdtmf=off
faxdetect=off
context=fromcapi
devices=2
qsig=2

Die Einstellungen unter [General] waren vom Treiber bereits richtig gesetzt.

Was uns Probleme bereitete

Erste versuche, unser Netz von außen durch die zugewiesene Festnetznummer zu erreichen schlugen fehl. Der Verbindungsaufbau kam korrekt im Lehrstuhl-Asterisk an und wurde von dort aus zum OpenBSC geleitet, doch das entsprechende Handy klingelte nicht bei jedem Versuch. Meistens kam vom LCR die Meldung "Termination received". Näheres betrachten im Asterisk log ergab, dass der Verbindungsaufbau über IAX, LCR und OpenBSC zu lange dauerte und das ISDN-Interface einen Timeout generierte. Als Workaround konfigurierten wir den Lehrstuhl-Asterisk so, dass er alle ISDN-Gespräche zuerst selbst annimmt und danach erst weiterleitet. Somit wird der Timeout nicht erreicht und für den Gesprächsaufbau steht die nötige Zeit zur Verfügung:

extension.conf

[fromcapi]
;incoming calls from ISDN landline
;extern call from ISDN: send ringtone to phone. This way, the ISDN timeout gets extended
exten => _X.,1,Ringing
exten => _X.,2,Goto(incoming,${EXTEN},1)
exten => _X.,3,Hangup

Wegen dieses Workaround kann ein Anrufender jedoch nicht erkennen, ob die angerufene Gegenstelle tatsächlich klingelt. Wird ein Handy gewählt, dass sich zu diesem Zeitpunkt nicht im RZ-GSM befindet, bekommt der Anrufende trotzdem ein Klingelzeichen vom Lehrstuhl-Asterisk.

ISDN-Timeout: Direkte Antwort durch Lehrstuhl-Asterisk:

isdn-ok.png (22 KB) Richard Zahoransky, 10/13/2010 10:07 PM

isdn-timeout.png (20.9 KB) Richard Zahoransky, 10/13/2010 10:07 PM