[Frage] Ankommender Kontext - Wie wird zugeordnet?

Antimon

Neuer User
Mitglied seit
23 Aug 2005
Beiträge
33
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

mittlerweile läuft mein Asterisk schon einige Jahre, eins ist mir aber nach wie vor unklar - wie werden ankommende Gespräche vom VoIP-Provider in den entsprechenden Kontext geroutet?

Wenn ich einen ausgehenden Anruf starte, kann ich per @sip-provider definieren über welchen Anbieter das Gespräch rausläuft. Über den register-Befehl kann ich auch definieren, welche lokale Extension gewählt werden soll, nur wie und wo wird der ankommende Kontext definiert? Also in der sip.conf kann ich ja für den Provider eine Sektion anlegen und dort context=xyz definieren - aber wo findet die Verlinkung des Register-Befehls mit der Sektion statt?

Und geht es, für mehrere Rufnummern des gleichen Providers verschiedene Kontexte zu definieren, oder braucht man einen "Sammel-Kontext", in dem dann anhand der Zielrufnummer unterschieden wird?

Aus Sicherheitsgründen möchte ich die Anrufe nicht über den default-Kontext abhandeln.

Ach ja und um vorzubeugen - ich habe schon stundenlang recherchiert und nichts gefunden, was mir geholfen hätte... :-/

Vielen Dank schon mal für Eure Hilfe!
 
Dass Du nichts gefunden hast ist komisch, denn es gibt sogar hier im Forum schon einige Themen, wo das beschrieben oder diskutiert wird.

Jedenfalls sucht Asterisk bei einem, normal nicht weiter authentifizierten, ankommenden Anruf ein Peer, bei dem der host-Eintrag mit der Quelle des Anrufs übereinstimmt. Hat dieses Peer dann noch ein passendes insecure, wird der in diesem Peer gesetzte context verwendet. Dabei wird bis 1.4 das letzte, ab 1.6 das erste Peer mit passendem host genutzt.

Eine "Verlinkung" mit dem register gibt es nicht. Das register ist nur dazu gut, dass sich Asterisk beim Provider bekannt macht und ihm mitteilt, wo er zu erreichen ist.

Es soll ein Konstrukt geben, wie man bereits über die sip.conf in verschiedene Contexte trennen kann. Hab ich aber nur einmal gelesen und noch nie überprüft, ob das wirklich so ist, also würde ich die Frage mit nein beantworten. Wobei das ja auch kein Problem ist, wenn man nach gerufener Nummer unterscheidet.

Wenn der Provider mehrere Load Balance Server verwendet, kann es Dir passieren, das ein Anruf im default landet, wenn es für diesen einen Server noch kein passendes Peer (->host) gibt.
 
Ok, nichts gefunden stimmt nicht ganz - das was ich gefunden habe, war für mich nicht nachvollziehbar. So wie du es erklärst, wird mir einiges klar. Da sich das Verhalten in der Version 1.6 geändert hat und ich vermutlich Doku für die 1.4 gelesen habe, ist es kein Wunder, dass es nicht so wie beschrieben funktioniert hat. Danke für die Aufklärung!

Die Info mit dem insecure ist auch sehr wichtig, denn dass das auch übereinstimmen muss, war mir nicht klar...

Wie ist denn die empfohlene Vorgehensweise? Alle einkommenden Gespräche über den default-Context abhandeln? Zwar würde der nur für die ankommenden Gespräche gelten, allerdings habe ich mittlerweile generell Bauchschmerzen bei der Verwendung des default-Contextes...
Aber bei der Verwendung des host-Parameters kann ein neuer Server hinzukommen, den Asterisk nicht kennt, dann kommen Anrufe evtl. nicht mehr an - auch nicht der Hit. Und der host-Parameter wird vermutlich (wie es schon der Name sagt) nicht die Domain matchen, sondern den exakten Hostnamen...
 
Alle einkommenden Gespräche über den default-Context abhandeln?
Nein, besser den Default-Context in's Leere laufen lassen oder besser eine Debug-Message ausgeben lassen, so dass man in den Logs nachvollziehen kann, wenn der Default-Kontext verwendet wird.
Für bewusst eingehende Verbindungen sollte man einen eigenen Context anlegen, wie z.B. der hier gerne und oft rezitierte Context "ankommend".

Gruß
R.
 
Klingt plausibel, würde ich auch gerne so machen... allerdings habe ich das Problem, dass ich nicht ständig auf der Konsole mitschaue, was passiert... ;) und wenn dann wie oben geschrieben der Provider einen neuen Hostnamen hat, ist das ärgerlich ... :-/

Eine Debug-Message bei Verwendung des Default-Contexts habe ich - allerdings wäre da eine automatische Auswertung sinnvoll... oder eine Mail versenden, wenn dieser Kontext verwendet wird? Dann würde zwar mindestens ein Gespräch bei ner Provideränderung ins Leere laufen, aber man würde es mitbekommen und könnte darauf reagieren... oder was meint ihr, gibt es bessere Ansätze?
 
Im Normalfall definiert man im ankommenden Context seine eigenen Nummern als extensions, und leitet damit auf interne Nebenstellen. Wenn man dafür den default verwendet, kann ein Hacker damit immer noch nicht viel anfangen.

Da sich die Balance Server nicht jeden Tag ändern, würde ich aber trotzdem einen getrennten ankommend Context verwenden. Btw, um über den default Context die unbekannten abzufangen, darf man allowguest nicht auf no setzen.
 
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.