Frage

Ich arbeite für einen Software-Shop, der ein im Hause Predictive Dialer Produkt hat, und wir brauchen eine Lösung zu implementieren, um die DO-NOT-CALL-Listen zu gehorchen.

Grundsätzlich habe ich eine Datenbank mit den Kunden / Interessenten, die ich anrufen müssen, und eine andere Datenbank mit den Telefonnummern kann ich nicht nennen. Da das System ein Predictive Dialer ist, auf der Grundlage der Durchführung der Operation, die Zeit mittelt und Sachen, wird es mehr oder weniger Anrufe pro angemeldeten Systembenutzer wählen. Normalerweise wird diese ‚magische‘ Zahl liegt bei etwa 3 -. 4 Anrufe pro angemeldet Agenten

Die Telefonnummer Repository für die Predictive Dialer ist eine PostgreSQL-Datenbank. Der Predictive Dialer eine Reihe von Zahlen nach oben aus der Datenbank auswählen und einen Befehl an der TK-Anlage senden, um den Bund zu wählen, und dann die Business-Logik geht auf die gültigen Anrufe an den Call-Center-Angestellten zu übertragen, und usw. (dies ist irrelevant, da mein Problem ist vor dem Aufruf).

Ich brauche die do-not-call-Liste Funktionalität zu implementieren. Diese do-not-call-Liste wird von einer staatlichen Behörde für unser Unternehmen zur Verfügung gestellt werden, in einer CSV-Datei, auf einer täglichen Basis. Jedes Mal, wenn ich eine neue CSV-Datei zu erhalten, habe ich die alte do-not-call-Liste zu löschen, und setzen Sie das neues an seinem Platz.

Mein erster Gedanke zu implementieren ist es eine Batch-Verarbeitung tun, die Querverweise von dem Anruf nicht LISTET mit meiner aktuellen Kundendatenbank. Aber ich glaube, dass, abhängig von der Größe der beiden Datenbanken, die Querverweise sehr Leistung intensiv sein würden, und manchmal kann nicht über Nacht abgeschlossen werden. Ich habe diese Art von Problemen, bevor sie mit der Stapelverarbeitung hatte, und es ist keine schöne Sache zu sehen.

Meine zweite Idee kam, als ich darüber nachgedacht, wie große Institutionen behandeln High-Performance und High-Throughput-Berechtigungssysteme wie Kreditkarte oder Benutzer Authentifizierung / Autorisierung. Ich dachte, dass ein Authentifizierungsdienst zu schaffen für die NICHT ÜBERSICHT Zahlen Telefonieren und Ändern des Algorithmus meiner Predictive Dialer jede Nummer gegen diesen Autorisierungsdienst zu überprüfen, bevor Wahl ordentlich sein würde.

Wie ich bin nur hier confabulating, habe ich keine Ahnung, welche Idee die beste ist, oder wenn ich habe völlig falsch es und in einer anderen Richtung aussehen sollte. Also, meine Frage ist: Was ist Ihre Empfehlung sein würde? Bewahren Sie die CALL-CSV-Datei NICHT im Speicher? verwenden LDAP? verwenden MySQL? PostgreSQL? Haben die Stapelverarbeitung Sache? Oder bin ich auf jeden Fall geschraubt?

Ich weiß, ich bin nicht die erste Person in der Welt, um diese Art von Problem zu haben, so wenden Sie sich bitte erleuchte mich.

War es hilfreich?

Lösung

Ihre Herausforderung, der eine Anzahl von Einträgen aus einem weiten Raum der möglichen Einträge zu finden, erinnert mich an DNS schwarz / Sperrlisten .

  

rbldnsd ist ein kleiner und schneller DNS   Daemon, der vor allem gemacht wird   DNSBL Zonen dienen. Dieser Dämon war   von Dan J. Bernstein rbldns inspiriert   Programm im djbdns Paket gefunden. Mehr rbldnsd, von Google

Es hat Unterstützung für namensbasierte Zonen, so könnte man die Liste der Nummern ENUM-Stil URIs konvertieren - zB + 1-555-4242 2.4.2.4.5.5.5.1.e164.arpa wird. Dies wird dann in die Daten-Datei rbldnsd eingegeben, in dem Speicher erstellt und wie jede andere Blockliste abgerufen. Ein Standardeintrag Mittel-Call, oder wenn der Eintrag vorhanden ist, würde es einen DoNotCall Eintrag angegeben werden.

Sie haben immer noch die Batch-Konvertierung Problem aber, obwohl es ein etwas einfacheres Skript wäre durchaus möglich, mit Perl oder AWK zu tun. Sie könnten auch in der Lage sein, die eingehenden CSV-Dateien in mehrere Dateien für die parallele Verarbeitung zu spalten, und eine endgültige Zusammenführung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top