Config check - Asterix Konfiguration an Telekom ALL-IP

HectoPascal

Neuer User
Mitglied seit
6 Mrz 2015
Beiträge
28
Punkte für Reaktionen
0
Punkte
1
Hallo,
könnt ihr hier mal bitte drüber gucken? Schließlich ist das Telefon für uns alle Neuland. *g*
Ich habe einen Asterisk aufgesetzt auf einem LFS Linuxrouter. Der soll später an einem ALL-IP Anschluss laufen und geht via MPoA-bridge/PPPoE direkt ins Netz (also kein NAT). Am Router hängt ein ISDN Mediagateway, der eine Telefonanlage verbindet. Das funktioniert auch schon im Testbetrieb. Wo ich noch nicht so richtig durchblicke und was ich derzeit mangels Anschluss auch nicht testen kann, ist der externe SIP Zugang der Telekom. Daher habe ich unten meine Konfigurationsdateien gepostet und hoffe ihr könnt mir da einiges zu sagen, z.B. meinte jemand allowguest=no, type=peer, host=dynamic, insecure=invite wäre für ankommende Gespräche nicht richtig, was mir nicht ganz einleuchtet. Ich möchte die Lösung nicht einfach blind abschreiben/ausprobieren.

sip.conf:
Code:
[general]
context=unauthenticated         ; default context for incoming calls
allowguest=no                   ; disable unauthenticated calls
port=5060
bindaddr=0.0.0.0
nat=no
directmedia=no
srvlookup=yes
useragent=PBX
sdpsession=PBX
sdpowner=PBX
alwaysauthreject=yes
trustrpid=no
contactdeny=0.0.0.0/0.0.0.0
contactpermit=192.168.0.0/255.255.0.0
localnet=192.168.0.0/255.255.0.0
maxexpiry=3600                 ; Maximum allowed time of incoming registrations (seconds)
minexpiry=60                   ; Minimum length of registrations (default 60)
defaultexpiry=120              ; Default length of incoming/outgoing registration
disallow=all
allow=alaw
allowoverlap=no


;register => aaa:bbb:[email protected]@tel.t-online.de/1231111
;register => aaa:bbb:[email protected]@tel.t-online.de/1232222
;register => aaa:bbb:[email protected]@tel.t-online.de/1233333

rtptimeout=120
rtpholdtimeout=300 

[telekom_in]
type=peer
context=telekom_incoming
insecure=invite
host=dynamic
canreinvite=no

[telekom_out]
type=peer
[email protected]
secret=bbb
host=tel.t-online.de
fromdomain=tel.t-online.de
canreinvite=no

[local-phones](!)   ; create a template for our devices
type=friend         ; user & peer
context=intern      ; this is where calls from the device will enter the dialplan
host=dynamic        ; the device will register with asterisk
nat=no
secret=12345
dtmfmode=auto       ; accept touch-tones from the devices, negotiated automatically
disallow=all        ; reset which voice codecs this device will accept or offer
allow=alaw          ; which audio codecs to accept from, and request to, the device

; define a device name and use the local-phones template
[desktopphone](local-phones)
[1231111](local-phones)
[1232222](local-phones)
[1233333](local-phones)

extensions.conf
Code:
[telekom_incoming]
; 120 secs timeout
exten => 1231111,1,Dial(SIP/easybox,120)
exten => 1232222,1,Dial(SIP/easybox,120)
exten => 1233333,1,Dial(SIP/easybox,120)

[intern]
exten => _0.,1,Set(CALLERID(num)=${EXTEN})
exten => _0.,n,Set(CALLERID(name)=${EXTEN})
;exten => _0.,n,Dial(SIP/${EXTEN}@telekom_out,120)

exten => 200,1,Answer()
exten => 200,n,Playback(demo-instruct)
exten => 200,n,Hangup()

exten => 1231111,1,Dial(SIP/1231111,120)
exten => 1232222,1,Dial(SIP/1232222,120)
exten => 1233333,1,Dial(SIP/1233333,120)

[unauthenticated]
 
Zuletzt bearbeitet:
willst du wirklich einen asterisk direkt an Internet hängen ? welche firewall setzt du ein ?
 
Wie, wo und was letztlich läuft, ist erst mal nicht wichtig. Die Asterisk Konfiguration und dessen Grundlagen sollen bis auf Weiteres im Vordergrund stehen. Vielleicht ist ja irgendwas offensichtlich falsch konfiguriert oder ein Sicherheitsleck ersichtlich.
 
Zuletzt bearbeitet:
z.B. meinte jemand allowguest=no, type=peer, host=dynamic, insecure=invite wäre für ankommende Gespräche nicht richtig

Schau Dir dazu mal die Doku der einzelnen Parameter an. In aller Kürze:

host=dynamic braucht man nur für Clients, die sich am Asterisk registrieren. In Kombination mit insecure muss bei host eine IP-Adresse oder ein Hostname stehen, gegen die/den ein ankommender Anruf authentifiziert wird.

So lange kein secret gesetzt ist, ist auch kein insecure nötig.

Wenn insecure gesetzt oder kein secret vorhanden ist, ist type=peer das einzig richtige.

Da wir von T-Com sprechen wirst Du es mit Load Balancern zu tun haben. Wie bereits an anderer Stelle besprochen brauchst Du entweder eine vollständige Liste aller T-Com Server, oder Du sparst Dir die Arbeit und lässt allowguest=no weg (Standard ist yes). Der im [general] definierte context darf dann ausschließlich Deine Rufnummern für ankommende Anrufe enthalten, da alles was dort drin steht komplett ohne Authentifizierung angerufen werden kann.

Was mir sonst noch auffällt:

canreinvite heißt in den neueren Versionen directmedia (ggf. zusammen mit directrtpsetup).
Mit port=5060 meinst Du vermutlich bindport bzw. udpbindport. Kann bei 5060 (=Standard) aber auch weg gelassen werden.

Der Context [intern] macht komische Sachen. Beim rauswählen setzt Du Callerid Name und Nummer gleich der Zielrufnummer. Das wird nicht klappen.
Die letzten drei extens kann man mit Pattern noch abkürzen, aber das ist Kosmetik.

Ich würde die internen Clients nicht unbedingt mit den externen Rufnummern als Username definieren. Da kommt man durcheinander. Die Client Definition easybox fehlt, ich gehe man davon aus, die hast Du nur nicht mit rein kopiert.
 
host=dynamic braucht man nur für Clients, die sich am Asterisk registrieren. In Kombination mit insecure muss bei host eine IP-Adresse oder ein Hostname stehen, gegen die/den ein ankommender Anruf authentifiziert wird.

So lange kein secret gesetzt ist, ist auch kein insecure nötig.

Wenn insecure gesetzt oder kein secret vorhanden ist, ist type=peer das einzig richtige.
Sonderlich logisch scheint das Konzept von Asterisk nicht zu sein, besonders im Vergleich zu generischen Diensten wie DHCP. Muss ich bei Bedarf wahrscheinlich noch mal vertiefen.

Da wir von T-Com sprechen wirst Du es mit Load Balancern zu tun haben. Wie bereits an anderer Stelle besprochen brauchst Du entweder eine vollständige Liste aller T-Com Server, oder Du sparst Dir die Arbeit und lässt allowguest=no weg (Standard ist yes). Der im [general] definierte context darf dann ausschließlich Deine Rufnummern für ankommende Anrufe enthalten, da alles was dort drin steht komplett ohne Authentifizierung angerufen werden kann.
Warum der Hersteller keine IP Bereiche (Subnetze) unterstützt, ist mir ein Rätsel. Der Dirty Hack mit den extra Einträgen ist ja wohl Supermurks.

Der Context [intern] macht komische Sachen. Beim rauswählen setzt Du Callerid Name und Nummer gleich der Zielrufnummer. Das wird nicht klappen.
Ich glaube, ich wollte mir da die Option offen halten meine abgehende Nummer zu ändern. Aber ist falsch, ja. :)

Ich würde die internen Clients nicht unbedingt mit den externen Rufnummern als Username definieren. Da kommt man durcheinander. Die Client Definition easybox fehlt, ich gehe man davon aus, die hast Du nur nicht mit rein kopiert.
Wo 'easybox' geblieben ist, weiß ich auch nicht mehr. :)

Danke erst mal für die Hilfe. Mittlerweile habe ich zwar All-IP, aber ich habe den ganzen Asterisk Krempel bis auf Weiteres verworfen, weil ich auch eine GUI für Logs und CDRs haben möchte. FreePBX ist eine Katastrophe und die alte Standard GUI, die eigentlich ganz in Ordnung ist, wird nicht mehr gewartet. Darum bin ich jetzt erst mal auf FusionPBX/Freeswitch umgestiegen.

Was es letztlich wird, ist noch nicht entschieden. Ich muss das alles in der Praxis testen, was bis jetzt noch nicht passiert ist. Ich habe noch keine gescheite Basis für die Programme gefunden.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.