Question

Je travaille pour un magasin de logiciels, qui a une maison prédictive produit dialer, et nous devons mettre en œuvre une solution d'obéir aux listes DO-NOT-CALL.

En fait, j'ai une base de données avec les clients / clients potentiels que je dois appeler, et une autre base de données avec les numéros de téléphone que je ne peux pas appeler. Le système est un composeur prédictif, basé sur la performance de l'opération, les moyennes de temps et tout ça, ça va composer des appels plus ou moins par utilisateur système connecté. Habituellement, ce chiffre « magique » est d'environ 3 -. 4 appels par agent connecté

Le numéro de téléphone référentiel pour le composeur prédictif est une base de données PostgreSQL. Le composeur prédictif choisir un tas de chiffres à partir de la base de données et envoyer une commande au pabx pour composer le groupe, puis la logique métier continue de transférer les appels valides aux employés du centre d'appels, et etc (ce qui est hors de propos que mon problème est avant l'appel).

Je dois mettre en œuvre la liste do-not-call fonctionnalité. Cette liste do-not-call sera fourni à notre société par une agence gouvernementale, dans un fichier CSV, sur une base quotidienne. Chaque fois que je reçois un nouveau fichier CSV, je dois purger la faire appel de numéros non-liste, et mettre le nouveau en place.

Ma première pensée à mettre en œuvre a été faire un traitement par lots, les références croisées la Liste d'exclusion avec ma base de données de clients actuels. Mais je pense que, en fonction de la taille des deux bases de données, les références croisées serait la performance très intense, et parfois ne pouvait pas être fini du jour au lendemain. J'ai eu ce genre de problèmes avec le traitement par lots avant, et ce n'est pas une belle chose à voir.

Ma deuxième idée est venue quand je pensais à la façon dont les grandes institutions gèrent haute performance et des systèmes d'autorisation à haut débit, tels que la carte de crédit ou l'authentification utilisateur / autorisation. Je pensais que la création d'un service d'authentification pour l'option Ne pas appeler des numéros de la liste, et changer l'algorithme de mon automate d'appels pour vérifier chaque numéro contre ce service d'autorisation avant la numérotation serait bien.

Comme je ne fabulait pas ici, je ne sais pas quelle idée est la meilleure, ou si je l'ai eu tout à fait tort et devrait se tourner vers une autre direction. Alors, ma question est: quelle serait votre recommandation? Conserver les numéros de télécommunication fichier CSV dans la mémoire? utiliser LDAP? utiliser MySQL? PostgreSQL? Faites la chose de traitement par lots? Ou suis-je vraiment foiré?

Je sais que je ne suis pas la première personne dans le monde d'avoir ce genre de problème, donc s'il vous plaît me éclairer.

Était-ce utile?

La solution

Votre défi, de trouver un certain nombre d'entrées à l'intérieur d'un vaste espace d'entrées possibles, me rappelle listes noires DNS / bloc .

  

rbldnsd est un petit et rapide DNS   démon qui est spécialement conçu pour   servir les zones DNSBL. Ce démon était   inspiré par les rbldns de Dan J. Bernstein   programme trouvé dans le paquet djbdns. Plus rbldnsd, de Google

Il a un support pour les zones basées sur le nom, vous pouvez donc convertir la liste des numéros à URIs style ENUM - par exemple + 1-555-4242 devient 2.4.2.4.5.5.5.1.e164.arpa. Il est ensuite entré dans le fichier de données rbldnsd, compilé en mémoire et accessible comme tout autre blocklist. Un moyen d'entrée par défaut peut-appeler, ou si l'entrée existe, il serait donné une entrée DoNotCall.

Vous avez encore le problème de la conversion par lots cependant, bien qu'il soit un script un peu plus simple, tout à fait possible de faire avec Perl ou AWK. Vous pourriez également être en mesure de partager les fichiers CSV entrants vers plusieurs fichiers pour le traitement parallèle, et une fusion finale.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top