Honnêtement, je me suis longtemps demandé s'il fallait publier ce matériel. Pour ceux qui savent travailler avec AMI Asterisk, il n'y a rien d'intéressant ici. Pour ceux qui commencent tout juste à faire quelque chose, il est peu probable qu'ils comprennent mon code (même si j'ai essayé d'écrire clairement). J'ai wang des commentaires comme: "Pourquoi utiliser Habr pour vos notes?". D'un autre côté, le script affiché sous la coupe peut être le point de départ de quelqu'un. Le script ne fait rien sauf qu'il envoie tous les événements de l'AMI à la console et peut les filtrer. Par exemple, je montre dans la console tous les appels qui entrent dans l'un des contextes «zadarma-in» ou «sibseti_in». Si vous êtes intéressé, je demande sous la coupe:
Il y avait une tâche en temps réel pour regarder de quelle ligne téléphonique l'appel provenait, sur quels boutons de l'ivr l'utilisateur avait appuyé, qui avait répondu à l'appel, etc. Pendant longtemps, j'ai voulu essayer de travailler avec AMI de Python, avant cela j'avais une petite expérience de Bash puis d'organiser un rappel.
Après avoir fouillé dans diverses bibliothèques prêtes à l'emploi, je me suis vite rendu compte qu'aucune d'entre elles ne me convenait. En conséquence, son propre «vélo» a été inventé sous la forme d'un script qui envoie toutes les informations d'AMI à json. Des bibliothèques Python standard sont utilisées. Le plus est que sous cette forme, il est facile de recevoir et d'analyser tous les événements et de ne pas perdre le lien vers un appel spécifique.
Le premier script imprime uniquement les événements qui tombent dans l'un des contextes «zadarma-in» ou «sibseti_in».
Script№1import telnetlib import json import re
Et le deuxième script, qui écrit tous les événements sur la console, en regardant les deux scripts, il devient clair ce qui doit être changé pour obtenir le résultat souhaité. Si ce n'est pas tout à fait clair, alors vous devez analyser json "string [mes]" dans la fonction "def telnet_for_string (string)":
Numéro de script 2 import telnetlib import time import json import re