So verwenden Sie Benutzernamen mit dynamischen Agenten Asterisk Warteschlangen

Vergeben Mitglieder Benutzernamen Asterisk Queues

In diesem Artikel wird eine Möglichkeit der Zuordnung von Agenten sehen, auch genannt Mitglieder, Warteschlangen Asterisk, ein Benutzername, zu verwenden und einfacher Tracking.

Um dies zu tun gehen wir davon aus, eine einfache Installation von Asterisk auf einer Debian-Distribution. Zu dieser Anlage haben wir eingeschlossen FOP2 y Betten für eine Beispielanwendung.

offensichtlich, Asterisk Vorkenntnisse erforderlich.

Rechtfertigung

Wenn dynamische Elemente sind für Rufwarteschlangen in Asterisk verwendet, wir begegnen dem Problem, dass Benutzer, die Anrufe nehmen durch die Nebenstellennummer identifiziert werden, in denen sie arbeiten,. In vielen Arbeitsumgebungen Erweiterungen von verschiedenen Benutzern verwendet werden, wobei; es ist dann notwendig, Wege zu finden, nicht für eine Verlängerung zu identifizieren (SIP-Nummer zum Beispiel) sondern von einem normalen Benutzername.

Colas de Asterisk en FOP2 sin nombres de usuario
Ein Bild von FOP2, mit normalen Mitteln, Sie zeichnen sich durch ihre Durchwahlnummer erkannt.

Durch die Verwendung von Benutzername, Überwachung durch die Datensätze (logs) oder Gebäude Statistiken werden intuitive und effektiver.

Colas de Asterisk en FOP2 con nombres de usuario
Hier wird geprüft, und wie können wir in FOP verschiedene Benutzer sehen.
Colas de Asterisk en FOP2 con usuarios dinámicos en funcionamiento
Wir sehen, wer beschäftigt ist und wer für andere Anrufe verfügbar ist, usw..

Entwicklung

Zur Entwicklung dieses verwenden wir lokale Kanäle; Sie werden so genannt, weil sie Anrufe innerhalb des Systems von Asterisk machen werden verwendet, um, ohne nach draußen zu gehen.

Sie können weitere Informationen zu diesem Thema finden in:
lokale Kanäle (Englisch)

In unserem Fall führen Arbeiter eine dieser Anrufe Mitglieder der Warteschlange oder Warteschlangen werden entsprechend. Jeder Betreiber wird einen Aufruf-Code verwenden, dies zu tun, Dieser Code wird es verwenden, als Benutzernamen zu identifizieren.

Egal aus welcher Verlängerung der Anruf erfolgt,, und nicht das Schwanzglied für seinen SIP Kanal erkannt, wenn nicht für die lokale Station.

Nehmen wir ein Beispiel schaffen, alles zu verstehen, dient.

In diesem Beispiel, Betreiber werden mit dem Schwanz verbunden werden Kundschaft Eingabe ihre Codes (Benutzername) weiter mit einem Sternchen, von jedem Terminal registrieren.

Sie schufen einen lokalen Kanal, Rekord, und sie werden im Rahmen eingeführt atencion_clientes dann sollte es in dem anrufenden Plan erscheinen. dieser Datensatz in der Datenbank durch die Korrelation Asterisk-Benutzer gespeichert terminal_SIP, Um den Benutzer anmeldet reflektiert werden (aber, nur die SIP-Endgerät Register)

Wenn der Benutzer verlässt seinen Posten, Sie schrieben eine Null voraus Ihren Benutzernamen.

Ejemplo de uso en un softphone
Ausführung von Zoiper Softphone

Alles tun wir in dieser Konfigurationsdatei /etc / asterisk / extensions.conf, Ich lasse kommentiert besser verstanden werden,:

[abgehend]
exten => _ *[a-z].,1,NoOp(-- Mitglieder Login-Anfrage --)
gleiche => n,einstellen(VAR = ${SCHALE(grep ${EXTEN:1} /etc / asterisk / files / users.txt -w)}) ; Wir halten ein gültigen Dateinamen.
gleiche => n,GotoIf($["${WHERE}" = ""]?Aufhängen) ; Wenn der Name erscheint nicht in der Datei durch den Bediener eingegeben, vertreibt.
gleiche => n,AddQueueMember(Kundschaft,Lokale / ${EXTEN:1}@atencion_clientes)
gleiche => n,einstellen(DB(atencion_clientes / ${EXTEN:1})= ${ANRUFERIDENTIFIKATION(ein)}) ;Wir speichern diese Korrelation in der internen Datenbank Asterisk
gleiche => n,Wiedergabe(agenten loginok)
gleiche => n(Aufhängen),Hangup()
 ; Verwendung der Charakter abzumelden 0 statt * mit dem gleichen Code.
exten => _0[a-z].,1,NoOp(-- Logout Anfrage von miembros--)
gleiche => n,RemoveQueueMember(Kundschaft,Lokale / ${EXTEN:1}@atencion_clientes)
gleiche => n,einstellen(löschen = ${DB_DELETE(atencion_clientes / ${EXTEN:1})}) ; hier wird die Korrelation entfernt, Wir verwenden eine Variable (in diesem Fall klar)
gleiche => n,Wiedergabe(agenten loggedoff)
gleiche => n,Wiedergabe(Auf Wiedersehen)
gleiche => n,Hangup()

[atencion_clientes] ; Dies ist der Kontext, der den Anruf vom Endstück bestimmt, Wenn besetzt nichts zu tun, Senden Sie eine Nachricht über die Konsole.
exten => _[a-z].,1,NoOp(-rufen Sie Mitglied -)
gleiche => n,einstellen(MEMBER = ${DB(atencion_clientes / ${EXTEN})})
gleiche => n,GotoIf($[${SIPPEER(${MEMBER},curcalls)} = 1]?beschäftigt)
gleiche => n,Wählen(SIP / ${MEMBER})
gleiche => n(beschäftigt),NoOp(Mitglied beschäftigt, Warteschlange Anruf) ; hier nur.

Wie Sie sehen können, Wir verwenden eine Datei, usuarios.txt in diesem Fall, Benutzernamen zu speichern. Sie könnten das gleiche mit einer Datenbank fragen.

Asternic con nombres de usuario
Hier ist ein Ausschnitt aus Asternic, zu bauen Statistiken.

Zögern Sie nicht, Ihre Meinungen und alternative Lösungen beitragen, Dank.


Über Angel Calvo

Leidenschaft für Wissenschaft und Technologie. Lehrer, Autor von Handbüchern und Systeme und Kommunikations-Manager.

Lassen Sie eine Antwort