Frage

Ich schreibe derzeit einen Windows-Dienst, der den Asterisk AMI verwendet, um zu erkennen, wenn ein Anruf eingeht und dann eine Web-Anfrage durchführt, basierend auf die der Anruf von und wer es wird zu. Kennt jemand ein Ereignis in Asterisk, dass ich hören konnte für die beiden diese Details enthält? Ich brauche die Nummer der Person außerhalb des Systems, der etwas fordern aber, dass ich die internen Rufnummer zu identifizieren, nutzen könnte, wäre in Ordnung genannt werden, solange sie gebraucht außerhalb Sternes sein kann.

Ich war auf der Suche auf die Ereignisse, und sie haben alle die Nummer des externen Anrufer auf sie jedoch keiner von ihnen verbinden mit dem internen Anrufer anders als mit dem uniqueid, die, wenn ich ein Wörterbuch dieser im Dienst bauen werde ich nicht der Lage sein, zu verwenden.

War es hilfreich?

Lösung

Also am Ende konnte ich dies nur die AMI durch den Einsatz tun und für Anrufereignisse zu hören. Mit dem, was wir Zugang wollte ich für die NewChannel Ereignisse zugehört, Dial Ereignisse und Hangup Ereignisse, obwohl, wenn alles, was Sie nach sind, ist die Zahl der, wer anruft und die Anzahl der, die sie anrufen, ich bin ziemlich sicher, dass Sie mit der Überwachung wegkommen könnte nur die Wahlveranstaltungen.

Jedes Mal, wenn ein NewChannel Ereignis empfangen wurde ich ein Channel-Objekt erstellt und hinzugefügt, um es auf eine Liste der Kanäle, die derzeit auf den Asterisk-Server waren. Dann wird durch das Nebenereignis auf die Dial auf Ereignisse von Begin mir in der Lage war, die einzigartige Kanal-IDs beiden Parteien in dem Anruf involvierten zu extrahieren und dann die Zahlen bekommen beteiligt. Wenn ein Ereignis empfangen wurde entfernt Hangup ich den Kanal, der zerstört wurde. Dies scheint jetzt groß zu arbeiten, obwohl wir es in Vollzeit zu testen, damit hoffentlich hatten haben es korrekt ist.

Andere Tipps

Ich habe eine Idee, aber Sie werden wahrscheinlich nicht wie die Antwort:)

Wir haben versucht, diese und es versäumt, dies zu tun, wir etwas Böses tat)

Was wir taten, waren AGI Skripte zu schreiben und sie nennen sie die Manager-Schnittstelle verwenden und dann kratzen die Befehlszeile aus.

Stuff wie Kern zeigen Kanäle präzise etc, seine Ikky aber es funktioniert .. wir regex verwendet, um die Zeichenfolge Ausgabe zu analysieren und griff dann die Informationen von dort, das einzige Problem, mit Sachen wie das zu tun ist, dass Sie jedes Mal aufpassen Sie Patch als die Ausgabe von der Kommandozeile neigt dazu, Patch zu ändern Patch.

Wenn Sie eine Möglichkeit, dies zu tun mit dem c # api entdecken und mit agi nicht, dass ich sehr interessiert sein würde, aber wir können einfach nicht das tun, was wir mit der api, ohne auf AGI-Skripte am Ende wollten.

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