Asterisk zu Asterisk und zurück

michl13

Neuer User
Mitglied seit
28 Sep 2007
Beiträge
21
Punkte für Reaktionen
0
Punkte
0
Hallo alle zusammen,

mein Problem ist folgendes:
Ich habe zwei Asteriskserver.

ServerA: Anmeldung der Extensions, ein Trunk zu ServerB und ein Trunk zu ISDN.
ServerB: A2billing und Trunks zum Terminierer (WebcallDirect, Voicetrading).
ServerA ist mit ServerB per IAX verbunden.
Jetzt das Problem:
Wenn ich eine Nummer wähle geht das Gespräch von ServerA zu ServerB und dann z.B. über WebcallDirect (funktioniert). Wenn jetzt aber z.B. WebcallDirect ausgefallen ist oder kein Guthaben mehr vorhanden ist, bekomme ich einen Hangup. Wie schaffe ich es statt dem Hangup das Gespräch wieder auf ServerA zu bekommen? Am ServerA sol das Gespräch dann über ISDN raus.
Ich habe schon einiges versucht aber leider ohne Erfolg da auf ServerB alles über die a2billing.php geht.

Leider kann ich auf ServerB KEINEN Failovertrunk über ISDN einrichten.

Bitte um Hilfe!!!
Danke!
 
michl13 schrieb:
Am ServerA sol das Gespräch dann über ISDN raus.

Mit dialstatus den Fehler abfangen und mit switch in den isdn Kontext auf Server A.

Ich habe das nicht probiert, kann sein, dass ein loop detected kommt. Wenn nicht läuft das Gespräch von A nach B nach A nach ISDN.
 
kombjuder schrieb:
Mit dialstatus den Fehler abfangen

So, ich brauchte das für eine ähnliche Anwendung.

Ich springe in den Providercontext (der eigentlich auf dem anderen Server ist) und dort mit SWITCH in den entsprechenden Kontext auf dem anderen Server.

Der Kontext auf ServerA sieht wie folgt aus:

[voipcheap]
switch => IAX2/ServerB/voipcheap

exten => h,1,Goto(s-${DIALSTATUS},1)

exten => _s-BUSY,1,Hangup
exten => _s-ANSWER,1,Hangup
exten ...

Jetzt definierst du, was bei den entsprechenden Dialstati zu machen ist.
Achtung ausprobieren, welcher Status du bei einem Fehler bekommst.

Ich habe gerade auf ein SIP response 603 ein busy gemeldet beommen.


Nachtrag:

Nach exten => h,1,Goto ... enthält ${EXTEN} den Dialstatus und nicht mehr die gewählte Nummer. Wer die Nummer noch braucht muss sie vorher in einer anderen Variablen zwischenspeichern.
 
Zuletzt bearbeitet:
Wo genau?

Hallo Kombjuder!

Danke für deine Antworten! Leider verstehe ich das nicht ganz. Bei mir ist das Macro "macro-dialout-trunk" der letzte Context den ein Anruf passiert bevor er den Server verlässt.
Soll ich den "switch => IAX2/ServerB/voipcheap" statt dem "exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS})" verwenden, oder wo genau gehört das hinein?

Danke!!
 
michl13 schrieb:
Soll ich den "switch => IAX2/ServerB/voipcheap" statt dem "exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS})" verwenden

Ja, genau da hin gehört das.

switch => IAX2/ServerB/voipcheap springt in den Kontext voipcheap auf Server B und übergibt den Inhalt von ${EXTEN} an die Zeile 1.
 
Leider nicht

Hallo Kombjder!

Leider funktioniert das nicht. Ich bekomme immer "all-circuits-busy-now".
Was mir bei deinem Vorschlag abgeht ist der Username und das Passwort.
Für A2billing brauche ich Username und Passwort damit A2b weiß wem er was verrechnen soll. Hast du vielleicht noch einen Lösungsvorschlag?

Danke!!
Michl13
 
michl13 schrieb:
Hast du vielleicht noch einen Lösungsvorschlag?

Bei switch werden (bisher) keine weiteren Daten als Zielkontext und Rufnummer übertragen. Also bleibt dir nur diese Informationen über die Rufnummer mitzuliefern.
Du erweiterst die übergebene Rufnummer um sagen wir zwei Stellen. Diese zwei sind die Usernummer.
Auf Asterisk B wertest du diese ersten beiden Stellen aus und benutzt den entsprechenden Account.
 
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.