Exteren SIP-Anrufe landen im Default-Context (Loop)

tango64

Neuer User
Mitglied seit
8 Feb 2006
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Hallo, ich habe das Wochenende einen * nach der Anleitung von betateilchen konfiguriert.
Ich habe 2 Provider eingebunden, beide Context-Namen bestehen ausschließlich aus Ziffern.
Folgendes Problem tritt nun auf:
Obwohl ich in beiden ankommenden ankommenden Kontexten den context incoming eingetragen habe, landen alle ankommenden Anrufe auch/nur im default-context der extensions.conf, werden dort als Rufnummern interpretiert und gehen gleich wieder raus. Das führt dann zu Loops.
Habe ich da ein Verständnis-Problem? Ich dachte, wenn ich einen context-Befehl innerhalb des ankommenden Kontext benutze, wird nur dieser genutzt.
Meine sip.conf:
PHP:
[general]
context=default                ; Default context for incoming calls
port=5060                       ; UDP Port to bind to (SIP standard port is 5060
bindaddr=0.0.0.0          ; IP address to bind to (0.0.0.0 binds to all)
srvlookup=yes                   ; Enable DNS SRV lookups on outbound calls
language=de                     ; Default language setting for all

localnet = 192.168.0.0/255.255.0.0
externhost = xxxxxxx.dyndns.org

;----------------------------------------------------------------

register => 49xxxxxxxx:[email protected]/49123456789

[123456789]
insecure=very
type=peer
username=123456789
secret=yyyyyyy
host=sip.1und1.de
fromuser=123456789
fromdomain=sip.1und1.de
nat=no
canreinvite=no
qualify=yes
disallow=all
allow=ulaw

[1und1_in]
type=peer
fromdomain=sip.1und1.de
host=sip.1und1.de
disallow=all
allow=ulaw
context=incoming

;-----------------------------------------------------------------

register => aaaaaa:[email protected]/4956789

[56789]
type=peer
username=aaaaaa
fromuser=4956789
secret=bbbbb
host=sip.sparvoip.de
fromdomain=sparvoip.de
insecure=very
canreinvite=no
nat=no
;disallow=all
;allow=ulaw

[sparvoip_in]
type=peer
fromdomain=sparvoip.de
host=sip.sparvoip.de
;disallow=all
;allow=ulaw
context=incoming

;----------------------------------------------------------------
; hier kommen dann die Endgeräte
Asterisk-Version ist 1.2.5 von Suse 10.1
Hat jemand ne Idee, woran es liegen könnte?

Mit freundlichen Grüßen

Tango64
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
Wie soll Asterisk bei diesem register command
register => 49xxxxxxxx:[email protected]/49123456789
darauf kommen das in der Section [1und1_in] Informationen stehen die verwendet werden sollen?

Also nimmt Asterisk die Section [general].
 

tango64

Neuer User
Mitglied seit
8 Feb 2006
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
[1und1 in] ist der letzte Kontext in der sip.conf, der auf sip.1und1.de verweist und sollte deshalb von allen Kontexten, die vorher auf 1und1 verweisen, für ankommende Rufe verwendet werden.
Sollte dies im Kurs falsch beschrieben sein, oder hab ich es falsch verstanden?
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
In der sip.conf ist beschrieben wie das zu lösen ist.

register => 49xxxxxxxx:[email protected]_proxy1/49123456789
register => 49xxxxxxxx111:[email protected]_proxy2/49123456789555

[sip.1und1.de_proxy1]
type=peer
fromdomain=sip.1und1.de
host=sip.1und1.de
context=incoming


[sip.1und1.de_proxy2]
type=peer
fromdomain=sip.1und1.de
host=sip.1und1.de
context=incoming_woanders
 

tango64

Neuer User
Mitglied seit
8 Feb 2006
Beiträge
6
Punkte für Reaktionen
0
Punkte
0
Anrufe landen im Default-Kontext

Danke für Deine Hilfe, habe gestern noch deine empfohlenen Änderungen in der sip.conf gemacht.

Zusätzlich habe ich noch "context=incoming" in alle Kontexte eingefügt, sonst ging gar kein externer Anruf.

Leider war das Ergebnis nicht so richtig richtig zufriedenstellend.
Die meisten Anruf landen jetzt zwar im incoming-Kontext, aber sporadisch landen einige doch noch im default-Kontext.
Allerdings kann ich nicht genau nachvollziehen, warum. Es scheint beim Start von Asterisk (bei ersten eingehenden Anruf) und nachdem lange keine Gespräche geführt worden sind, auzutreten.
Hängt vielleicht auch mit der Registrierung beim Provider zusammen.
Sparvoip hat ja nur sehr kurze Zeiten, wo die Registrierung gültig ist.

Meine Lösung (ist nicht ideal, aber sicher): Ich lege für die eingehenden Rufnummern einen zusätzlichen Kontext an, in welchen ich diese Nummern in den incoming-Kontext umleite.
Diesen binde ich in default ein.
Eingehende Gespräche, die irrtümlich im default-Kontext landen, kommen so doch noch ans richtige Ziel.

[incoming_bug]
; Umleitung fehlgeleiteter eingehender Anrufe (default-context statt incoming)
exten => _49xxxxxxxxxx,1,Goto(incoming,49xxxxxxxx,1)
exten => _49yyyyyyyyy,1,Goto(incoming,49yyyyyyy,1)


Mit freundliche Grüßen

Tango64
 

Thomas007

Aktives Mitglied
Mitglied seit
18 Sep 2005
Beiträge
1,455
Punkte für Reaktionen
0
Punkte
0
Die Dauer der Registrierung legst Du in der sip.conf fest: defaultexpirey=

Eigentlich klappen eingehende Anrufe problemlos, es gibt nur ein paar Dinge zu beachten.

- in der sip.conf einen default context für Anrufe festelegen die nicht vom registrierten provider kommen oder nicht als solche erkannt werden

[email protected]_proxy1/exten

In dem Context ein Pattern für username, exten und s programmieren, manche Provider verarbeiten /exten nicht und der Anruf kommt an username oder s-Extension an. Sparvoip gehört dazu, ich meine die kommen auf username rein.

Zum testen oder um jeden Anruf abzufangen:

include => der_Rest
[der_Rest]
exten => _.,1,NoOp(INFO: der_Rest)
exten => _.,n,GoTo(wo_auch_immer)
 

Zurzeit aktive Besucher

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,831
Beiträge
2,027,214
Mitglieder
350,919
Neuestes Mitglied
patka