Asterisk große Infrastruktur

Aus xinux.net
Zur Navigation springen Zur Suche springen

Übersichtsplan

Konfigurationsdateien

  • Alle Konfiguraionen liegen unter /etc/asterisk
  • neue Konfiguraitionen von der Shell laden per:
  • asterisk -rx "reload"

Toronto

  • Toronto stellt einen SIP-Provider dar.
  • Wenn ein Kontext für einen Client definiert ist, dann kann sich dieser registrieren und der Zentrale die Nummern bekannt machen
  • vim sip.conf
[general]

[osaka]
type=friend
insecure=invite
secret=welcome-os
context=client
host=dynamic
disallow=all
allow=ulaw

[shanghai]
type=friend
insecure=invite
secret=welcome-sh
context=client
host=dynamic
disallow=all
allow=ulaw
  • type=friend erlaubt dem Client Anrufe zu tätigen und zu empfangen
  • insecure=invite wird benötigt, da die IP-Adresse des Anrufers und der Asterisk-Anlage nicht übereinstimmen
  • context definiert die Gruppe der wählbaren Nummern in extensions.conf
  • host=dynamic heißt, dass wir die IP-Adresse des Clients nicht kennen
  • disallow/allow bestimmt welche Codecs verwendet werden dürfen
  • vim extensions.conf
[osaka-redirect]
exten => _01XX,1,Dial(SIP/osaka/${EXTEN:2:4},30)
exten => _01XX,n,Hangup()

[shanghai-redirect]
exten => _02XX,1,Dial(SIP/shanghai/${EXTEN:2:4},30)
exten => _02XX,n,Hangup()

[conference]
exten =>  0088,1,Answer()
exten =>  0088,n,Wait(3)
exten =>  0088,n,ConfBridge(1234)
exten =>  0088,n,Hangup()

[client]
include => osaka-redirect
include => shanghai-redirect
include => conference
  • Osaka erhält die Vorwahl 01 und Shanghai die Vorwahl 02
  • In den Konferenzraum kommt man per 0088
  • Clients im Kontext client können diese Nummern benutzen

Osaka

  • vim sip.conf
[general]
register => osaka:welcome-os@toronto.lab.intra/toronto

[toronto]
type=friend
insecure=invite
secret=welcome
context=toronto_incoming
host=toronto.lab.intra
disallow=all
allow=ulaw

[01]
type=friend
host=dynamic
context=phones

[02]
type=friend
host=dynamic
context=phones
  • Damit Toronto weiß wohin er Osaka erreicht, muss sich Osaka bei Toronto registrieren
  • Zusätzlich definieren wir zwei Benutzer für SIP-Telefone 01 und 02
  • vim extensions.conf
[internal]
exten => _XX,1,Dial(SIP/${EXTEN},30)
exten => _XX,n,Hangup()

[remote]
exten => _XXXX,1,Dial(SIP/toronto/${EXTEN})
exten => _XXXX,n,Hangup()

[phones]
include => internal
include => remote

[toronto_incoming]
include => internal
  • Anrufe innerhalb von Osaka werden mit einer zweistelligen Nummer gewählt
  • Anrufe nach außen werden mit einer vierstelligen Nummer gewählt
  • Dabei ist egal welche vier Ziffern wir auswählen, da Toronto über die Verbindung anhand der Vorwahl entscheidet

Shanghai

  • Die Konfiguration jedes weiteren Client von Toronto sieht so ähnlich aus wie die von Osaka
  • vim sip.conf
[general]
register => shanghai:welcome-sh@toronto.lab.intra/toronto

[toronto]
type=friend
secret=welcome
context=toronto_incoming
host=toronto.lab.intra
disallow=all
allow=ulaw

[01]
type=friend
host=dynamic
context=phones

[02]
type=friend
host=dynamic
context=phones
  • vim extensions.conf
[internal]
exten => _XX,1,Dial(SIP/${EXTEN},30)
exten => _XX,n,Hangup()

[remote]
exten => _XXXX,1,Dial(SIP/toronto/${EXTEN})
exten => _XXXX,n,Hangup()

[phones]
include => internal
include => remote

[toronto_incoming]
include => internal