Wählplanerweiterungen für die ISDN-Anbindungen

Asterisk Logo

Im vorgenannten Kapitel haben wir unseren Asterisk-Server um das Thema ISDN1) ergänzt.

Im einzelnen wollen wir nun die unterschiedlichen Richtungen betrachten und dabei auf verschiedene Komfortstufen eingehen.

Im ersten Schritt erweitern wir nun unseren Dialplan um eine Option zum abgehenden Telefonieren.
Als erstes tragen definieren wir in der Konfigurationsdatei /etc/asterisk/misdn.conf unseren ISDN-Anschluss ein.

# vim /etc/asterisk/misdn.conf
; Django - 12.04.2010 erste Konfiguration für die M-net Aussenanbindung
[Mnet]
ports=1
context=ankommend_(mISDN)
msns=883176

Wie haben also einen ISDN-Anschluss, den wir im Kontext [Mnet] definieren. Bei der weiteren Konfiguration gehen wir davon aus, dass Rufnummern mit 4 oder mehr Stellen sich auf Teilnehmer außerhalb unserer Telefonanlage bezeihen. Wir tragen also in den Diaplan nach:

# vim /etc/asterisk/extensions.conf
[abgehend_(mISDN)]
;erste Version ohne setzen einer MSN
exten => _XXXX.,1,Dial(mISDN/g:Mnet/${EXTEN},120,TtrWw)
exten => _XXXX.,n,Hangup

[default]
include => echotest
include => asterisk-demo
include => local
include => abgehend_(mISDN)

Anschließend laden wir unseren neuen Dialplan - wir verbinden uns hierzu mit der Asterisk-Konsole.

# asterisk -r
Asterisk 1.6.2.6, Copyright (C) 1999 - 2010 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 1.6.2.6 currently running on office (pid = 5458)
Verbosity is at least 3
asterisk*CLI> dialplan reload

Die Anwahl einer externen Rufnummer von unserem SIP-Endgerät wird uns in der Konsole entsprechend dokumentiert. Im Nachfolgendem Beispiel hat der Teilnehmer mit der internen Rufnummer 13 die Rufnummer 08936046666 angerufen:

office*CLI> 
  == Using SIP RTP CoS mark 5
    -- Executing [08936046666@default:1] Dial("SIP/13-0000000b", "mISDN/g:Mnet/08936046666,120,TtrWw") in new stack
    -- Called g:Mnet/08936046666
    -- mISDN/1-u17 is proceeding passing it to SIP/13-0000000b
    -- mISDN/1-u17 is ringing
    -- mISDN/1-u17 answered SIP/13-0000000b
  == Spawn extension (default, 08936046666, 1) exited non-zero on 'SIP/13-0000000b'

Bei unserem Mehrgeräteanschluß hat uns unser Netzbetreiber nicht nur eine Rufnummer zugeteilt, sondern mehrere. Diese MSN2) haben wir einzelnen Teilnehmern zugeordnet. Rufen wir nun von einer Nebenstelle unseres Asterisk-Servers einen externen Teilnehmer an, möchten wir natürlich auch die jeweils zugeordnete Rufnummer übertragen. Das was sich bei dem ein oder anderen höchstprofesssionellen Systemintegrator als unlösbare Herausforderunge bei einer VoIP-Anlage mit 3.000 Nebenstellen darstellt, gestaltet sich bei unserem Asterisk-Server als triviale Herausforderung. LOL

Für die Zuordnung der internen Rufnummern zu den jeweilgen MSNs bedienen wir uns der Asterisk-eigenen Datenbank. Diese Datenbank erreichen wir über die Funktion database. Wir können damit z.B. unsere Registrierten Geräte abfragen.

 # asterisk -r
Asterisk 1.6.2.6, Copyright (C) 1999 - 2010 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 1.6.2.6 currently running on office (pid = 5458)
Verbosity is at least 3
asterisk*CLI> database show
/SIP/Registry/13                                  : 192.168.100.71:3072:3600:13:sip:13@192.168.100.71:3072;line=ftsn6t8l
/SIP/Registry/14                                  : 192.168.100.61:5060:3600:14:sip:14@192.168.100.61:5060;line=6xwyo7k7

Wir legen uns nun eine kleine Tabelle an, in der wir jedem internen Teilnehmer eine unserer MSN zuweisen. In unserem Demofall wäre dies exemplarisch:

interne Rufnummer MSN
13 883176
14 883179

Diese Tabelle legen wir nun einmalig über die Asterisk-Konsole an.

# asterisk -r
asterisk*CLI> database put 13 MSN 08121883176
Updated database successfully
asterisk*CLI> database put 14 MSN 08121883179
Updated database successfully
asterisk*CLI> database show
/13/MSN                                           : 08121883176              
/14/MSN                                           : 08121883179

Unseren Dialplan modifizieren wir nun wie folgt.

# vim /etc/asterisk/extensions.conf
[abgehend_(mISDN)]
; M-net-MSN für den rufenden Teilnehmer aus der Datenbank holen
; abgehende Rufnummer setzen und dann gewählte Rufnummer weiter 
; in Richtung ISDN schicken
exten => _XXXX.,1,Set(msn=${DB(${CALLERID(num)}/MSN)})
exten => _XXXX.,n,Set(CALLERID(num)=${msn})
exten => _XXXX.,n,Dial(mISDN/g:Mnet/${EXTEN},120,TtrWw)
exten => _XXXX.,n,Hangup

Anschließend laden wir den Dialplan neu.

# asterisk -r
Asterisk 1.6.2.6, Copyright (C) 1999 - 2010 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 1.6.2.6 currently running on office (pid = 5458)
Verbosity is at least 3
asterisk*CLI> dialplan reload

Rufen wir nun einen externen Partner an, wird im Gegensatz zur einfachen Variante bei der Wahl, abhängig von der internen Rufnummer, die externe Rufnummer gesetzt.

  == Using SIP RTP CoS mark 5
    -- Executing [08936046666@default:1] Set("SIP/13-0000000c", "msn=08121883176") in new stack
    -- Executing [08936046666@default:2] Set("SIP/13-0000000c", "CALLERID(num)=08121883176") in new stack
    -- Executing [08936046666@default:3] Dial("SIP/13-0000000c", "mISDN/g:Mnet/08936046666,120,TtrWw") in new stack
    -- Called g:Mnet/08936046666
    -- mISDN/2-u19 is ringing
  == Spawn extension (default, 08936046666, 3) exited non-zero on 'SIP/13-0000000c'

Im nächsten Schritt richten wir nun den ankommenden ISDN-Amtsverkehr ein. Wir routen in unserem Beispiel die Anrufe auf die MSN 883176 auf die intene Nst. 13.

In der Konfigurationsdatei zu mISDN /etc/asterisk/misdn legen wir nun fest, auf welche MSN unser Asterisk reagieren soll.

# vim /etc/asterisk/misdn.conf
; Django - 12.04.2010 erste Konfiguration für die M-net Aussenanbindung
[Mnet]
ports=1
context=ankommend_(mISDN)
msns=883176

In unserem Dialplan definieren wir nun an welcher internen Nebenstelle die Anrufe für die MSN 883176 signalisiert werden soll. Hierzu erweitern wir unseren Dialplan um/auf folgende Zeilen.

# vim /etc/asterisk/extensions.conf
[ankommend_(mISDN)]
; ankommende erste ISDN-Anrufe der MSN 883176 auf der internen Nst. 13
exten => 883176,1,Dial(SIP/13,60)
exten => 883176,n,Hangup

[default]
include => echotest
include => asterisk-demo
include => local
include => abgehend_(mISDN)
include => ankommend_(mISDN)

Anschließend verbinden wir uns mit unserer Asterisk-Konsole und laden unseren modifizierten Dialplan.

# asterisk -r
Asterisk 1.6.2.6, Copyright (C) 1999 - 2010 Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 1.6.2.6 currently running on office (pid = 5458)
Verbosity is at least 3
asterisk*CLI> dialplan reload

Rufen wir nun die Zielrufnummer 883176 an, wird der Anruf auf der definierten Zielnebenstelle 13 signalisiert und kann dort angenommen werden.

asterisk*CLI> 
    -- Executing [883176@ankommend_(mISDN):1] Dial("mISDN/1-u24", "SIP/13,60") in new stack
  == Using SIP RTP CoS mark 5
    -- Called 13
    -- SIP/13-0000000f is ringing
    -- SIP/13-0000000f is ringing
    -- SIP/13-0000000f is ringing
    -- SIP/13-0000000f answered mISDN/1-u24
  == Spawn extension (ankommend_(mISDN), 883176, 1) exited non-zero on 'mISDN/1-u24'

1)
Integrated Services Digital Network
2)
Multiple Subscriber Number
Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • voip/asterisk/dialplan2.txt
  • Zuletzt geändert: 01.12.2010 12:33.
  • von django