[Problem] Asterisk verwendet immer den Context des ersten SIP-Kontos

twelve1979

Neuer User
Mitglied seit
10 Okt 2006
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich verwende Asterisk 1.8.13.1~dfsg-3 (Debian Wheezy) und habe zwei sipgate-Konten, die ich einbinden möchte.
meine sip.conf:

Code:
[general]
	canreinvite = nonat
	directmedia = no
	nat = yes

	allowguest = no
	bindaddr = 0.0.0.0
	bindport = 5060
	; wird fuer t-online benoetigt
	defaultexpiry = 240
	dtmfmode = rfc2833
	externhost = xxx.dyndns.org
	externrefresh = 10
	language = de
	localnet = 192.168.0.0/255.255.0.0
	qualify = yes
	srvlookup = yes

	register => 1234567:[email protected]:5060/03012345678
	register => 2345678:[email protected]:5060/04012345678

[03012345678]
	disallow = all
	allow = g722,g726aal2,alaw
	g726nonstandard = yes

	fromdomain = sipgate.de
	host = sipgate.de
	insecure = invite
	type = peer

	context = sg030
	defaultuser = 1234567
	fromuser = 1234567
	secret = xxx
	fromdomain = sipgate.de
	host = sipgate.de
	insecure = invite
	type = peer

[04012345678]
	disallow = all
	allow = g722,g726aal2,alaw
	g726nonstandard = yes

	fromdomain = sipgate.de
	host = sipgate.de
	insecure = invite
	type = peer

	context = sg040
	defaultuser = 2345678
	fromuser = 2345678
	secret = xxx
	fromdomain = sipgate.de
	host = sipgate.de
	insecure = invite
	type = peer

Asterisk verwendet, egal welche Rufnummer nun angerufen wird, als "context" allerdings immer den ersten "context" - hier also sg030.

Ist die Konfiguration falsch?

Gruß
Robert
 
Nein, deine Konfiguration ist nicht "falsch". Du bist über ein Feature gestolpert. Seit Asterisk 1.6.2 matched tatsächlich der erste Kontext, in dem die host-domain übereinstimmt. Erstelle einen allgmeinen [sipgate] Kontext in der sip.conf und verweise auf einen [ankommend] Kontext in der extensions.conf. Auf der Konsole kannst du beobachten, was passiert. Im "ankommend" Kontext der extensions.conf/ael kannst du nun z.B. per pattern matching oder anderen Regeln der Kunst filtern.
Wenn du das nicht möchtest, kannst du mit der register-extension festlegen, welche Kontexte in deiner extensions.conf/ael gezielt "angesprungen" werden.

VG R.
 
Danke für die Antwort. Mir war auch so als hätte es früher funktioniert.
Mit dem Pattern Matching wäre in Ordnung.

Nur für mich zur Info: Was genau meinst du mit "register-extension festlegen"?

Gruß
Robert
 
Code:
register => 1234567:[email protected]:5060/[COLOR=#ffa500]03012345678[/COLOR]

Das ist die register-extension. Wirf doch mal einen Blick in diverse Asterisk-Dokumentationen. Aber lass dich nicht verwirren. Der Weg über einen allgmeinen Kontext ist schon richtig. :eek:

VG R.
 
Tja, wer lesen kann ist klar im Vorteil.

Besten Dank :)

[Beitrag 2:]

Ich würde dann doch noch gerne wissen, warum es ein Feature ist, dass man nicht mehr explizit angeben kann, welcher context verwendet wird?

Gruß
Robert
 
Zuletzt bearbeitet von einem Moderator:
btw. canreinvite kannst Du aus der sip.conf nehmen. Ist seit * 1.6 deprecated und wurde durch directmedia ersetzt(was Du ja direkt dadrunter sitzen hast).
 
@twelve1979, da liegt vermutlich ein Missverständnis vor, denn nur die Reihenfolge hat sich geändert. Es matched im Zweifelsfall (also wenn mehrere Registrierungen zum gleichen host vorliegen) nicht mehr der letzte passende Kontext, sondern wie schon erwähnt, seit 1.6.2 der erste. Das "Feature" ist also nicht neu, es gab nur eine Änderung im Konzept. Warum weiß ich auch nicht.
 
@Maverrick
Ist noch ein Überbleibsel aus meiner alten Konfiguration. Danke für den Hinweis.

@rmh
Ich hatte mir damals das "Asterisk-Buch" gekauft, und es so verstanden, dass man für jedes SIP-Konto einen eigenen Kontext für eingehende Verbindungen angeben kann.
Selbst das Beispiel der aktuellen Version des Buches vermittelt mir den Eindruck, dass alle Nummern den Kontext default bzw. den in [general] angegebenen Kontext verwenden, außer es wird explizit ein anderer Kontext angegeben. In dem Beidspiel wird für die Nummer 20 nicht abc sondern gast verwendet.
Da alle als Host dynamic verwenden würde hier also, wenn ich es richtig verstanden habe, eigentlich auch für die Nummer 20 der Kontext abc verwendet werden.
Oder wertet Asterisk die IP zur Laufzeit aus?

Gruß
Robert

P.S.: Sorry, dass es jetzt doch sehr allgemein wird.
 
Ja das ist ein Krampf, der in verschiedenen Variante (wie angedeutet mal erster, mal letzter Kontext) schon ewig mitgeschleppt wird. Das Beispiel aus dem Asterisk Buch ist dennoch lebensfähig, hier gehts ja um Telefone die sich am Asterisk registrieren. Das von dir beschriebene Verhalten tritt ja nur auf wenn sich der Asterisk mehrfach am selben Host woanders registriert.

Was mich an dieser Thematik auch immer ein wenig unrund macht ist, das das ganze ja auch was mit Authentifizierung zu tun hat. Also da rasselt ein Anruf einfach so in einen Kontext für den er sich ja eigentlich nicht authentifiziert.

Ich hab übrigens öfter schon Stimmen gehört die behaupten das man das erwünschte Verhalten hinkriegt in dem man fromuser, SIP-Peername (also der Name in den eckigen Klammern) UND register-extrension gleich dem username bennent. Hab ich selbst aber nie probiert, da sich das mit meinen Dialplan Konzepten nicht vertragen würde.
 
Also da rasselt ein Anruf einfach so in einen Kontext für den er sich ja eigentlich nicht authentifiziert.

Naja, der SIP Proxy authentifiziert sich sozusagen durch seine Adresse. Das kann aber nicht anders sein, sonst müsste sich der Proxy mit User+PW am Endgerät (=Asterisk) anmelden, und das ist im Protokoll so nicht vorgesehen. Wenn man nicht gerade eine allgemein gültige exten angelegt hat, kommt ja auch nur durch, wer eine passende Zielrufnummer kennt.

Ich hab da auch schon verschiedene Versionen gelesen, auch mit Peer-Namen in der Register Anweisung. Aber funktioniert hat letztlich nichts davon.
 
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.