Hallo Forum,
da ich einige Probleme hatte, meine Konfiguration hinzubekommen, da die Infos teilweise Verstreut sind, oder sich von Version zu Version unterscheiden poste ich mal hier meine Konfiguration mit Erklärungen.
Vielleicht hilft mein Beispiel ja anderen. Auch Teilbereiche können glaube ich schon hilfreich sein, da nicht viele so eine Konstellation wie ich haben werden.
Verbesserungsvorschläge sind ausdrücklich erwünscht, da ich als Anfänger sicher nicht alles richtig mache und warscheinlich noch ein paar Optionen vom Ausprobieren drin sind, die nicht benötigt werden oder sogar schlecht sind.
Szenario:
Asterisk:
Eine Asterisk Telefonanlage soll ganz normal SIP-Einzelanschlüsse einbinden und an Snom Sip-Telefone durchleiten.
Bei ausgehenden Anrufen soll natürlich die korrekte Leitung belegt werden.
SIP-Accounts werden in Zukunft in verschiedenen europäischen Ländern benötigt. Hier beschreibe ich den Anfang mit einem Land, Österreich über a1.net Business-Anschluss.
Das SIP-Telefon kann ohne Vorwählen einer 0 interne oder externe Nummern anrufen.
Konferenzraum:
Zusätzlich gibt es ein Konferenzraumsetup mit confbridge. Die Konferenzraumnummer kann 6-stellig sein, was uns als Sicherheit ausreicht.
Was hier noch fehlt ist, dass man als externer Anrufer keinen neuen Konferenzraum erstellen kann, sondern nur beitreten.
Anschluss an bestehende AAstra 470:
Unsere Telefonanlage in der Hauptzentrale ist eine AAstra 470. Diese verfügt über zwei SIP-Lizenzen, so dass wir darüber die Außenstellen anbinden wollen.
Zusätzliche SIP-Lizenzen möchten wir hier nicht kaufen.
Über jeden SIP-Anschluss können aber mehrere SIP-Kanäle gehen, womit wir nur einen hiervon benötigen. Schwierigkeit hier ist, dass die Anlage nur eine Nummer zulässt.
Ich habe dies gelöst, indem ich in der Aastra Benutzer einrichte, die auf die interne SIP-Nummer weiterleiten, und ich die real gewählte Nummer aus dem SIP-Header beziehe.
Umgekehrt setze ich die interne Nummer im Asterisk in den Header als weitergeleitete Nummer, da die Aastra sonst nur die eigene Nummer akzeptiert.
Die Asterisk und Aastra stehen im internen Netz. SIP-Ports con extern werden von der Firewall weitergeleitet an die Asterisk, so dass sich SIP-Telefone registrieren können und die externen Anrufe von a1.net angenommen werden können.
0664xxxxxxxx bei a1.net registrierte Nummer
Asterisk-Nummern:
4302 Österreich 1
765 Konferenz
Aastra 470 Nummern:
960 SIP-Nummer
4302 interne Nummer weitergeleitet auf 960
765 interne Nummer weitergeleitet auf 960
2xx interne Telefone
8xx interne Telefone
yyyyyy externe Hauptnummer
sip.conf
extensions.conf
da ich einige Probleme hatte, meine Konfiguration hinzubekommen, da die Infos teilweise Verstreut sind, oder sich von Version zu Version unterscheiden poste ich mal hier meine Konfiguration mit Erklärungen.
Vielleicht hilft mein Beispiel ja anderen. Auch Teilbereiche können glaube ich schon hilfreich sein, da nicht viele so eine Konstellation wie ich haben werden.
Verbesserungsvorschläge sind ausdrücklich erwünscht, da ich als Anfänger sicher nicht alles richtig mache und warscheinlich noch ein paar Optionen vom Ausprobieren drin sind, die nicht benötigt werden oder sogar schlecht sind.
Szenario:
Asterisk:
Eine Asterisk Telefonanlage soll ganz normal SIP-Einzelanschlüsse einbinden und an Snom Sip-Telefone durchleiten.
Bei ausgehenden Anrufen soll natürlich die korrekte Leitung belegt werden.
SIP-Accounts werden in Zukunft in verschiedenen europäischen Ländern benötigt. Hier beschreibe ich den Anfang mit einem Land, Österreich über a1.net Business-Anschluss.
Das SIP-Telefon kann ohne Vorwählen einer 0 interne oder externe Nummern anrufen.
Konferenzraum:
Zusätzlich gibt es ein Konferenzraumsetup mit confbridge. Die Konferenzraumnummer kann 6-stellig sein, was uns als Sicherheit ausreicht.
Was hier noch fehlt ist, dass man als externer Anrufer keinen neuen Konferenzraum erstellen kann, sondern nur beitreten.
Anschluss an bestehende AAstra 470:
Unsere Telefonanlage in der Hauptzentrale ist eine AAstra 470. Diese verfügt über zwei SIP-Lizenzen, so dass wir darüber die Außenstellen anbinden wollen.
Zusätzliche SIP-Lizenzen möchten wir hier nicht kaufen.
Über jeden SIP-Anschluss können aber mehrere SIP-Kanäle gehen, womit wir nur einen hiervon benötigen. Schwierigkeit hier ist, dass die Anlage nur eine Nummer zulässt.
Ich habe dies gelöst, indem ich in der Aastra Benutzer einrichte, die auf die interne SIP-Nummer weiterleiten, und ich die real gewählte Nummer aus dem SIP-Header beziehe.
Umgekehrt setze ich die interne Nummer im Asterisk in den Header als weitergeleitete Nummer, da die Aastra sonst nur die eigene Nummer akzeptiert.
Die Asterisk und Aastra stehen im internen Netz. SIP-Ports con extern werden von der Firewall weitergeleitet an die Asterisk, so dass sich SIP-Telefone registrieren können und die externen Anrufe von a1.net angenommen werden können.
0664xxxxxxxx bei a1.net registrierte Nummer
Asterisk-Nummern:
4302 Österreich 1
765 Konferenz
Aastra 470 Nummern:
960 SIP-Nummer
4302 interne Nummer weitergeleitet auf 960
765 interne Nummer weitergeleitet auf 960
2xx interne Telefone
8xx interne Telefone
yyyyyy externe Hauptnummer
sip.conf
Code:
allowguests=yes ; nötig um ankommende Gespräche von a1 in den public context der extensions.conf zu bekommen
register => 960:PASSWORTAASTRA@aastra ; Benutzer in der Aastra Telefonanlage
register => BENUTZER4302:PASSWORTA1:[email protected]@a1_net_4303/0664xxxxxxxx ; Eingehende Gespräche über a1.net
[a1_net_4303] ; Ausgehende Gespräche für Telefon 4303
type=peer
[email protected]
fromuser=BENUTZER4302
secret=PASSWORTA1
dtmfmode=rfc2833
fromdomain=a1.net
host=a1.net
outboundproxy=centrex.a1.net
canreinvite=no
nat=force_rport,comedia
[aastra] ; Gespräche die an interne Telefone in der Aastra 470 geleitet werden gehen hier lang
type=peer
host=192.168.29.101 ; IP der Aastra 470
secret=PASSWORTAASTRA
defaultuser=960 ; Benutzer in der Aastra 470
dtmfmode=rfc2833
canreinvite=no
insecure=port,invite
fromdomain=aastra.UNSEREDOMAIN.de
context=asterisk_international ;context in der extensions.conf
fromuser=960 ; Benutzer in der Aastra 470
sendrpid=yes
trustrpid=yes
[4303] ; SIP-Telefon 4303 Snom 710
type=friend
context=a1_net_ast ;context in der extensions.conf
host=dynamic
secret=PASSWORT_IM_TELEFON
canreinvite=no
nat=force_rport,comedia
qualify=yes
extensions.conf
Code:
[macro-conference] ;Konferenzräume
exten => s,1,Wait(1)
same => n,Noop(Entering Conference: ${CALLERID(num)})
same => n,Read(CONFID,conf-enteringno,6,,3,4) ; Eingabe der Konferenznummer, maximal 6-stellig
same => n,Set(CONFID=${FILTER(0-9,${CONFID})})
same => n,Noop(Conference Room: ${CONFID})
same => n,Playback(auth-thankyou)
same => n,GotoIf($["${CONFID}" = ""]?hangup)
same => n,ConfBridge(${CONFID})
same => n(hangup),NoOp()
same => n,Hangup()
[aastra_cologne] ; Interne Telefone in der Aastra 470
exten => _[28]XX,1,GoSub(dial_aastra,${EXTEN},1) ; Wählen mit setzen der Header
[dial_aastra] ; Anrufen zu Nebenstellen in Aastra-Anlage
; SIP-Header zusammenbauen
exten => _X.,1,Set(diversion=Diversion: <sip:)
same => n,Set(diversion1=${CALLERID(num)})
same => n,Set([email protected]>;privacy="off";;screen="no";reason="unconditional";counter=1)
; SIP-Header "weitergeleitet von" setzen um die interne Asterisk Nummer in der Aastra zu sehen
same => n,SIPAddHeader(${diversion}${diversion1}${diversion2}) ;
same => n,Dial(SIP/${EXTEN}@aastra,${RINGTIME}) ; aastra ist der Name in der extensions.conf
same => n,Busy
[asterisk_international] ; Anrufe die von Nebenstellen in der Aastra-Anlage kommen
; "weitergeleitet von"-Nummer aus Header extrahieren
exten => s,1,Set(myvarname=${SIP_HEADER(Diversion)})
exten => s,n,Set(first1=${CUT(myvarname,<,2)})
exten => s,n,Set(first2=${CUT(first1,@,1)})
exten => s,n,Set(first3=${CUT(first2,:,2)})
; Bei Anrufen von Extern wird nicht nur die Nebenstelle sondern auch die Rufnummer mitgegeben, also rausschneiden
exten => s,n,Set(callnumber=${IF($[${first3:0:6}=yyyyyy]?${first3:6}:${first3})})
exten => s,n,GoSub(asterisk_internal,${callnumber},1) ; interne Nummern in der Asterisk anrufen
exten => s,n,Busy
[asterisk_internal] ; Interne Nummern in der Asterisk
exten => 765,1,GoSub(macro-conference,s,1) ; 765 ist gewünscht also ab in die Konferenz
exten => _4XXX,1,Dial(SIP/${EXTEN},${RINGTIME}) ; alle Asteriskinternen Telefone haben das Muster 4xxx
[a1_net_ast] ; SIP-Telefone in der Asterisk können lokale Telefone und Nebenstellen in der Aastra anrufen sowie über die SIP-Leitung raus telefonieren
include => asterisk_internal ; Alle "internen" Nebenstellen die erreichbar sein sollen
include => aastra_cologne ; Nebenstellen in der Hauptanlage
include => dial_extern ; Muss über include eingebunden werden, damit _X. erst nach dem Rest ausgewertet wird
[dial_extern] ; Kontext für ausgehende Anrufe ins "Amt"
; Der Kontext für die extensions.conf wird hier dynamisch gebaut um es für weitere Telefone zu erleichtern.
; a1_net_${CALLERID(num)} wird hier im Beispiel also immer zu a1_net_4303 kann aber leicht erweitert werden
; Man braucht also für weitere Telefone nur einen neuen Bereich in der extensions.conf anzulgegen
exten => _X.,1,Dial(SIP/${EXTEN}@a1_net_${CALLERID(num)})
[public]
exten => 0664xxxxxxxx,1,GoSub(asterisk_internal,4303,1) ; externe Nummer die in register in sip.conf angegeben ist an interne 4303 leiten