2 Sipgateaccounts an einem *

Blint

Neuer User
Mitglied seit
6 Apr 2005
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
Ein 01801-Account (nennen wir ihn mal Acc1) und ein 02161-Account(Acc2). Beide hängen hinter Asterisk an einem Router. Jeder Account kommt auf einem eigenen Cisco 7960 an.

Rein, raus, intern hin und her, alles funktioniert. Nur folgendes hapert noch: Wenn ich von einem Account aus den anderen Account anrufe, passiert garnichts. Ich kriege einen normalen Warteton, als würde irgendwo ein Teilnehmer angemeldet sein, der aber nicht rangeht.
Mein Asterisk meldet auch schön brav:

-- Executing SetCallerID("SIP/40-bc7b", "4711") in new stack
-- Executing Dial("SIP/40-bc7b", "SIP/018017775553687@sipgate-out1|30|trg") in new stack
-- Called 018017775553687@sipgate-out1

Wenn ich diese Nummer (also die von Acc1) von extern aus anrufe, wird alles korrekt durchgestellt. Wenn ich aber von Acc2 aus die Acc1-Nummer anrufe, passiert garnix.
Est scheint dabei irrelevant zu sein, ob ich die Sipgate-Telefonnummer oder die SIP-ID anrufe, ob ich vom Acc1 aus Acc2 anrufe oder umgekehrt, oder von Acc1 aus Acc1 oder umgekehrt.

Ich denke, dass mein Problem etwas mit dem in diesem Thread besprochenen Inhalt zu tun hat.

Meine sip.conf:
Code:
[general] 
port = 5060 
bindaddr = 0.0.0.0 
context = default 
qualify=no 
disable=all 
allow=alaw 
allow=alaw 
allow=ulaw 
allow=g729 
allow=gsm 
allow=slinear 
srvlookup=yes 
canreinvite=yes 
language=en 

register => 7714243:[email protected]/7714243 
register => 6399380:[email protected]/6399380 

[sipgate-out1] 
type=friend 
insecure=very
nat=yes 
username=7714243 
fromuser=7714243 
fromdomain=sipgate.de 
secret=passwort 
host=sipgate.de 
qualify=yes 

[sipgate-out2] 
type=friend 
insecure=very
nat=yes 
username=6399380 
fromuser=6399380 
fromdomain=sipgate.de 
secret=passwort 
host=sipgate.de 
qualify=yes 

[10] 
type = friend 
username = 10 
secret = 10 
context = default 
host = dynamic 
callerid = "10" <10> 
mailbox=10 

[20] 
type = friend 
username = 20 
secret = 20 
context = default 
host = dynamic 
callerid = "20" <20> 
mailbox=20

Meine extensions.conf:
Code:
[general] 
static = yes 
writeprotection = no 

[default] 
include => 10 
include => 20 
include => sipout1 
include => sipout2 
include => sipin1 
include => sipin2 
include => voicemail_direkt 
include => voicemail_anonym 

[sipout1] 
; Wenn jemand von intern aus die Nummer '01' vorwählt, 
; gelangt er über Sipgate (Frederik) nach draußen 
exten => _01.,1,SetCallerId,SIPID 
exten => _01.,2,Dial(SIP/${EXTEN:2}@sipgate-out1,30,trg) 
exten => _01.,3,Hangup 

[sipout2] 
; Wenn jemand von intern aus die Nummer '02' vorwählt, 
; gelangt er über Sipgate (Stefan) nach draußen 
exten => _02.,1,SetCallerId,SIPID 
exten => _02.,2,Dial(SIP/${EXTEN:2}@sipgate-out2,30,trg) 
exten => _02.,3,Hangup 

[sipin1] 
; Wenn jemand von intern die Nummer 7714243 oder von 
; extern die Nummer 01801 777555-3687 wählt, gelangt 
; er auf das Telefon 10 
exten => 7714243,1,Dial(SIP/10,10,trg) 
exten => 7714243,2,voicemail(u018017775553687) 
exten => 7714243,3,Hangup 

[sipin2] 
; Wenn jemand von intern die Nummer 6399380 oder von 
; extern die Nummer 02161 6399 380 wählt, gelangt 
; er auf das Telefon 20 
exten => 6399380,1,Dial(SIP/20,10,trg) 
exten => 6399380,2,Voicemail(u021616399380) 
exten => 6399380,3,Hangup 

[10] 
exten => 10,1,Dial(SIP/10,10); 
exten => 10,2,Voicemail(u10); 
exten => 10,3,Hangup; 

[20] 
exten => 20,1,Dial(SIP/20,10); 
exten => 20,2,Voicemail(u20); 
exten => 20,3,Hangup; 

[voicemail_direkt] 
exten => 9999,1,Answer 
exten => 9999,2,Wait(1) 
exten => 9999,3,VoicemailMain(s${CALLERIDNUM}) 
exten => 9999,4,Hangup 

[voicemail_anonym] 
exten => _9999.,1,Answer 
exten => _9999.,2,Wait(1) 
exten => _9999.,3,VoicemailMain(${EXTEN:4}) 
exten => _9999.,4,Hangup

Ich habe das alles schon (in der sip.conf) mit "peer" anstatt "friend" ausprobiert, ebenfalls mit der Nummer statt der Sip-ID in der register=>, und (in der extensions.conf) mit frei erfundenen SIPID in den jeweils ersten exten=> nach sipgate, da all das im oben gelinkten Beitrag erwähnt wurde.
Aber keines der Dinge brachte irgendeinen Unterschied.

Was könnte ich vergessen/übersehen haben, wo seht ihr eine "Oooh mein Gott ist doch klar!!!" ?
 
Ohne das jetzt genauer geprüft zu haben, könnte es einfach sein, daß da ein "Loop detected" passiert und der Sipgate-Server die Verbindung verweigert.
 
Es wäre extrem unpraktisch, bei einer Anlage von 80-140 Teilnehmern für jede Sipgate- oder sonstige externe Nummer, die vielleicht zu einem internen Anschluss weitergeleitet wird oder werden könnte, eine extension anzulegen.

Was ist, wenn der Anschluss grade nicht besetzt ist, und die Nummer eigentlich beim Besitzer aufm Laptop enden würde, wenn man denn nur über Sipgate gegangen wäre?

Es muss doch eine Möglichkeit geben, über Sipgate zu kommunizieren.

Bitte erklärt mir mal, was dieses "Loop detected" genau bedeutet und wie sich das äußert/wie ich das feststellen kann.
 
-- Executing SetCallerID("SIP/70-2eee", "101xxxx") in new stack
-- Executing SetCIDName("SIP/70-2eee", "BetaTeilchen") in new stack
-- Executing Dial("SIP/70-2eee", "SIP/0043196xxxxx@101xxxx|30|r") in new stack
-- Called 0043196xxxxx@1012345
-- Got SIP response 482 "Loop Detected" back from 217.10.79.9
-- Now forwarding SIP/70-2eee to 'Local/0043196xxxxx@default' (thanks to SIP/1012345-8ae2)
Apr 26 16:02:56 NOTICE[544]: chan_local.c:436 local_alloc: No such extension/context 0043196xxxxx@default creating local channel
Apr 26 16:02:56 NOTICE[544]: app_dial.c:360 wait_for_answer: Unable to create local channel for call forward to 'Local/0043196xxxxx@default' (cause = 0)
== Everyone is busy/congested at this time (1:0/0/1)
-- Executing Hangup("SIP/70-2eee", "") in new stack
== Spawn extension (monsterhase, *340043196xxxxx, 4) exited non-zero on 'SIP/70-2eee

Das passiert, wenn ein Sipgate-Account auf einem Asterisk einen anderen Sipgate-Account auf dem gleichen Asterisk anrufen will. Du wirst also gar nicht umhin kommen, einen default-context zu definieren, der dann für den LOCAL-channel verwendet wird, wenn das Ganze zuverlässig funktionieren soll.
 
Wo bleibt denn da die Flexibilität? Denn eines der Dinge, die ich ungemein praktisch finde an IP-Telefonie, ist folgende Tatsache: Wenn ich ein register=> in der sip.conf geschrieben habe, ist ja die Nummer bei Sipgate angedockt (gemeldet als "ich bin erreichbar"). Das heißt, wenn jetzt die Nummer von Herrn X angedockt ist, kann Herr Y von seinem Handy aus über asterisk Herr X erreichen. Klar.
Aber wenn Herr X jetzt wider Erwarten von zu Hause aus arbeitet, kann er sich ja auch von dort aus - sagen wir mal mit X-Lite - andocken, und wird bei Sipgate ebenfalls als "erreichbar" gemeldet.
Wenn Herr Y jetzt die Nummer per Handy anruft, klingelt es a) beim asterisk im Büro und b) bei Herrn X zu Hause.

Wenn Herr Y aber nun vom Büro aus Herr X Nummer anruft, KANN der Anruf ja nur - gemäß gem Falle, Herr X wäre zu Hause - X-Lite bimmeln, da ja der Anruf nicht "asterisk->sipgate->asterisk"-intern weitergeleitet wird. Herr Y würde also denken, dass Herr X das klingeln bei sich zu Hause hört, und jeden Moment rangeht.

Wenn Herr X aber nun dummerweise DOCH im Büro ist, klingelt garnix. Zu Hause ist er nicht angemeldet und im Büro wird nix weitergeleitet. Asterisk/Sipgate gibt Herrn Y aber dennoch ein Freiton auf die Leitung, aber nirgends kommt das Gespräch an. Herr Y kann Herr X nicht erreichen!

Wenn ich jetzt eine extension für die Nummer von Herrn X schreiben würde, und diese auf ein Telefon im Büro weiterleite, wäre Herr X vom Büro aus unter seiner Nummer zu Hause nichtmehr zu erreichen. Außer ich würde mit diesen dämlichen "ich-lasse-10-sekunden-klingeln-bevor-ich-nach-extern-gehe"-Regelungen arbeiten.
Was aber, wenn Herr X mal kurz Kaffee holen war und mit der vollen Tasse nicht zu seinem Telefon laufen kann (oder sonst aus irgendeinem Grund es nicht schafft, innerhalb von 10 Sekunden dranzugehen)? Dann verpasst er vielleicht seine 10-Sekunden-Chance, das Telefonat anzunehmen, und danach ist es weg - nach extern geleitet.
Oder andersherum, Herr X ist zu Hause, und erwartet Anrufe. Ich glaube nicht, dass jeder Anrufer länger als 10-20 Sekunden wartet, bevor er wieder auflegt.

Da muss es doch eine Lösung für asterisk -> asterisk geben. Was weiß ich, ein zweites virtuelles asterisk, das sich bei Sipgate mit einer anderen IP anmeldet und somit dieses "Loop Detect" umgehen kann etc.
 
Die Lösung steht doch schon seit über einem Jahr da oben:

betateilchen schrieb:
Du wirst also gar nicht umhin kommen, einen default-context zu definieren, der dann für den LOCAL-channel verwendet wird, wenn das Ganze zuverlässig funktionieren soll.
 
ja, ich habe in dem thread, den ich verlinkt habe aber auch aufgeführt, warum das nicht das selbe ist - und mein Vorredner hier hat das ja auch in ähnlicher Weise verdeutlicht. (Stichwort: zweitklingeln von apparaten, die zusätzlich noch beim provider registriert sind)
 
Kostenlos!

Zurzeit aktive Besucher

Statistik des Forums

Themen
248,369
Beiträge
2,289,404
Mitglieder
377,694
Neuestes Mitglied
Humand613