.titleBar { margin-bottom: 5px!important; }

[HowTo + Frage]Anmeldung in Queue / nacheinander klingeln

Dieses Thema im Forum "Asterisk Rufnummernplan" wurde erstellt von udosw, 23 Juli 2005.

  1. udosw

    udosw Aktives Mitglied

    Registriert seit:
    20 März 2004
    Beiträge:
    1,114
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Hannover
    Ich möchte erreichen, dass eingehende Anrufe auf verschiedenen MSNs / VoIP-Nummern verschiedenen Gruppen zugeordnet werden.

    Bei diesen Gruppen sollen sich verschiedene SIP-Telefone an- und abmelden können.

    Mir ist klar, wie dieses sich mit Queues und Agents realisieren lässt. Nur stört mich dabei, dass ein Anruf bei einer Queue immer sofort angenommen wird, d.h. sofort für den Anrufer eine kostenpflichtige Verbindung entsteht.

    Statisch währe es ja einfach mit Dial(SIP/1&SIP/2&SIP/3...) zu machen, aber das mit dem An- und Abmelden sollte doch eleganter gehen.

    Also: Weiß jemand, ob man eine Queue dazu bringen kann, nicht sofort abzuheben, sondern einfach Ringing in beide Richtungen zu machen?

    Oder: Hat jemand eine Idee, mehrere SIP-Nebenstellen dynamisch, z.B. aus einer Datenbank abzufragen (ich mache es schon teilweise per MySQL, bin da also auch gerade dran).

    Udo
     
  2. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das sollte wohl ueber ein AGI-Skript relativ einfach moeglich sein. Fuer das An- und Abmelden brauchst du dann natuerlich eigenen Skripte. Beim Anmelden musst du dann in der DB speichern, von wo aus die Anmeldung kam als am besten die CIDNum nehmen. Wenn ein Anruf reinkommt, musst die Nummern noch mal alle aus der DB rauslesen und einen Dial-String zusammenbasteln.
     
  3. udosw

    udosw Aktives Mitglied

    Registriert seit:
    20 März 2004
    Beiträge:
    1,114
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ort:
    Hannover
    Ich bin inzwischen ein ganzes Stück weiter gekommen. Die queues lassen sich in der einfachsten Variante so betreiben, dass man keine Agenten braucht und dass sie es auch einfach nur klingeln lassen.

    Ziel ist: Es gibt zwei Rufnummern (also praktisch Gruppen oder Queues), für die verschiedene Mitarbeiter zuständig sind. Je Nummer sollen ein oder mehrere Telefone klingeln, die Mitarbeiter sollen sich mit ihren (SIP-)Telefonen an- oder abmelden können.

    Die Anrufer sollen aber nicht in eine Warteschlange kommen, sondern, wenn kein Mitarbeiter mehr verfügbar ist, in der Voicemail ihr Sprüchlein hinterlassen können.

    Grundsätzlich klappt folgender Ansatz, aber ich habe noch keine Lösung gefunden, um die Telefone nacheinander in bestimmter Reihenfolge klingeln lassen zu können. Frage dazu siehe unten.

    Hier erstmal meine jetzige config. Die Queues heissen 'tri' und 'com' (hat mit den Firmennamen zu tun):

    queues.conf:
    Code:
    ;SIP hier GROSS schreiben!!!
    [tri] 
    strategy = ringall
    member => SIP/1,1
    member => SIP/2,2
    
    [com]
    strategy = roundrobin
    timeout = 10
    retry = 5
    maxlen = 0
    member=>SIP/5,0
    member=>SIP/6,1
    Mit folgendem Abschnitt in der extensions.conf kann man sich an- und abmelden.
    6XY = bei queue '6X' mit penalty Y anmelden
    6X0 = bei queue '6X' abmelden
    60 (tri), 68 (com):
    Code:
    exten => _6XX,1,Set(prio=${EXTEN:2})
    
    exten => _60X,2,RemoveQueueMember(tri)
    exten => _68X,2,RemoveQueueMember(com)
    
    exten => _6X0,3,Playback(agent-loggedoff)
    exten => _600,4,SayAlpha(tri)
    exten => _680,4,SayAlpha(com)
    exten => _6X0,5,Hangup
    
    exten => _60Z,3,AddQueueMember(tri||${prio})
    exten => _68Z,3,AddQueueMember(com||${prio})
    
    exten => _6XZ,4,Playback(agent-loginok)
    exten => _60Z,5,SayAlpha(${CALLERIDNUM}tri${prio})
    exten => _68Z,5,SayAlpha(${CALLERIDNUM}com${prio})
    exten => _6XZ,6,Hangup
    Nach dem An- oder Abmelden wird das Ergebnis angesagt:
    "23 tri 1" würde heissen: Du hast dein Telefon 23 in der Queue "tri" angemeldet mit penalty 1.

    Der Vollständigkeit halebr noch der relevante Abschnitt der extensions.conf:
    Code:
    (hier ist noch etwas vor, tut nicht zur sache)
    exten => _XX.,2,Queue(${queue_name}|rtT|||30) ;dont set n option until really needed
    exten => _XX.,3,Voicemail(u${mailbox})
    exten => _XX.,4,Hangup
    Soweit ist fast alles perfekt, aber ich suche noch eine Lösung für folgendes Problem: Anruf kommt rein und soll nur bei dem einen, haupsächlich zuständigen Mitarbeiter '1' klingeln. Falls der besetzt ist, klingelt es bei dem Mitarbeiter 2 mit der nächsthöheren 'penalty'. Das klappt auch, wenn 1 mit penalty 1 und 2 mit penalty 2 angemeldet sind (so wie oben per default).

    Wenn aber Mitarbeiter '1' nicht ans Telefon geht (holt sich gerade 'nen Kaffee oder stellt ihn weg ;-) ), soll nach X Sekunden auch das Telefon bei 2 anfangen zu klingeln. Ich hatte gehofft, dass der Timeout in der queue dazu führt, dass dann das Telefon mit der nächst höheren penalty klingelt, ist aber nicht so - nur bei besetzt.

    Eine Idee wäre vielleicht, ein Busy an die queue zu signalisieren, aber ich wüßte nicht, wie. Oder eine zweite queue dahinter setzen, so beide Mitarbeiter mit gleicher penalty angemeldet sind? Klingt unöötig kompliziert ...

    Hat jemand noch ein paar Tipps?

    Udo
     
  4. VOIPdani

    VOIPdani Mitglied

    Registriert seit:
    8 Aug. 2005
    Beiträge:
    432
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Diese Problemstellung hab ich auch zu bewältigen, drum würd mich interessieren ob es für dieses Problem schon eine Lösung gibt.

    lg Dani
     
  5. Knaut

    Knaut Neuer User

    Registriert seit:
    13 Mai 2007
    Beiträge:
    63
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich möchte auch gerade das o.g. Problem lösen.

    Gibts was neues?
     
  6. meckerfritz

    meckerfritz Neuer User

    Registriert seit:
    10 Juli 2007
    Beiträge:
    128
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Warum versucht Ihr nicht einfach mal freepbx? Da ist das ganze doch mit einigen Mausklicks schnell erledigt.