FreePBX: Anmelden an der Queue

kozzah.

Neuer User
Mitglied seit
2 Okt 2008
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich arbeite gerade an einem VoIP-Server auf Debian-Basis (Lenny), mit Asterisk und FreePBX zur Konfiguration, das Resultat sollte demnach etwas Trixbox-ähnliches sein, deshalb poste ich hier.

Vorab der Versionsstand:
---
Asterisk: 1.4.21.2
Asterisk-Addons: 1.4.7
FreePBX: 2.5.0.0
---

Das System steht soweit, eigentlich klappt auch alles wie ich es mir vorstelle, eine Queue wurde eingerichtet die nacheinander SIP-Clients anklingelt (rmmemory). Allerdings sollen diese sich bequem aus der Queue an- und abmelden können. Nur scheint nirgendwo dokumentiert zu sein, wie das ablaufen müsste.
Wenn ich die Clients dort statisch eintrage, klappt das auch - allerdings mit Nebenwirkungen: Der Anrufer hört nichts, kein Freizeichen und auch keine Warteschleifenmusik, bis der zweite in der Queue angerufen wird.

Ich komme hier leider nicht wirklich weiter.

Meine Frage also:

Wie melde ich mich mit einem SIP-Client an der Queue an?
 
Nachtrag:

Ich habe inzwischen herausgefunden, wie die Anmeldung funktionieren sollte; Die Nummer der Queue gefolgt von einem *. Leider funktioniert das nicht, im Folgenden die Ausgabe der Asterisk-Konsole:

-----
-- Executing [500*@from-internal:1] Macro("SIP/11-093db678", "agent-add|500|") in new stack
-- Executing [s@macro-agent-add:1] Wait("SIP/11-093db678", "1") in new stack
-- Executing [s@macro-agent-add:2] Macro("SIP/11-093db678", "user-callerid|SKIPTTL") in new stack
-- Executing [s@macro-user-callerid:1] Set("SIP/11-093db678", "AMPUSER=11") in new stack
-- Executing [s@macro-user-callerid:2] GotoIf("SIP/11-093db678", "0?report") in new stack
-- Executing [s@macro-user-callerid:3] ExecIf("SIP/11-093db678", "1|Set|REALCALLERIDNUM=11") in new stack
-- Executing [s@macro-user-callerid:4] Set("SIP/11-093db678", "AMPUSER=11") in new stack
-- Executing [s@macro-user-callerid:5] Set("SIP/11-093db678", "AMPUSERCIDNAME=Tester2") in new stack
-- Executing [s@macro-user-callerid:6] GotoIf("SIP/11-093db678", "0?report") in new stack
-- Executing [s@macro-user-callerid:7] Set("SIP/11-093db678", "AMPUSERCID=11") in new stack
-- Executing [s@macro-user-callerid:8] Set("SIP/11-093db678", "CALLERID(all)="Tester2" <11>") in new stack
-- Executing [s@macro-user-callerid:9] Set("SIP/11-093db678", "REALCALLERIDNUM=11") in new stack
-- Executing [s@macro-user-callerid:10] ExecIf("SIP/11-093db678", "0|Set|CHANNEL(language)=") in new stack
-- Executing [s@macro-user-callerid:11] GotoIf("SIP/11-093db678", "1?continue") in new stack
-- Goto (macro-user-callerid,s,20)
-- Executing [s@macro-user-callerid:20] NoOp("SIP/11-093db678", "Using CallerID "Tester2" <11>") in new stack
-- Executing [s@macro-agent-add:3] Read("SIP/11-093db678", "CALLBACKNUM|agent-login||||") in new stack
-- User disconnected
== Spawn extension (macro-agent-add, s, 3) exited non-zero on 'SIP/11-093db678'
-----

Und hier der entsprechende Abschnitt in der extensions_additional.conf:


-----
[macro-agent-add]
include => macro-agent-add-custom
exten => s,1,Wait(1)
exten => s,n,Macro(user-callerid,SKIPTTL)
exten => s,n(a3),Read(CALLBACKNUM,agent-login,,,,)
exten => s,n,GotoIf($["${CALLBACKNUM}" != ""]?a7)
exten => s,n(a5),Set(CALLBACKNUM=${AMPUSER})
exten => s,n,ExecIf($["${CALLBACKNUM}" = ""],Set,CALLBACKNUM=${CALLERID(number)})
exten => s,n,GotoIf($["${CALLBACKNUM}" = ""]?a3)
exten => s,n(a7),GotoIf($["${CALLBACKNUM}" = "${ARG1}"]?invalid)
exten => s,n,ExecIf($["${QREGEX}" != ""],GotoIf,$["${REGEX("${QREGEX}" ${CALLBACKNUM})}" = "0"]?invalid)
exten => s,n,ExecIf($["${ARG2}" != ""],Authenticate,${ARG2})
exten => s,n(a9),AddQueueMember(${ARG1},Local/${CALLBACKNUM}@from-internal/n)
exten => s,n,UserEvent(Agentlogin,Agent: ${CALLBACKNUM})
exten => s,n,Wait(1)
exten => s,n,Playback(agent-loginok&with&extension)
exten => s,n,SayDigits(${CALLBACKNUM})
exten => s,n,Hangup
exten => s,n,MacroExit()
exten => s,n(invalid),Playback(pbx-invalid)
exten => s,n,Goto(a3)
-----


Ich werde daraus leider nicht besonders schlau :(




Was ich noch vergessen hatte, war die Client-Information:

Ich habe hier ein Linksys IP-Phone SPA942 und ein Snom 370. Die Ausgabe oben betrifft das Snom-Gerät, beim Linksys IP-Phone wird nach Eingabe von 500* überhaupt nichts gemacht ("call ended" im Display), das wird aber Sache des Telefons sein und soll jetzt nicht das Problem sein.
 
Hat sich erledigt...

Hallo,

das Problem hat sich erledigt. Habe irgendwann frustriert die Debian-Pakete runtergeworfen und von Hand kompiliert, seitdem läuft's mit der selben Konfiguration.

Mal seh'n ob ich noch die Zeit finde einen Bug-Report bei Debian zu schreiben.
 
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.