بصراحة ، فكرت لفترة طويلة ما إذا كنت ستنشر هذه المواد. بالنسبة لأولئك الذين يعرفون كيفية العمل مع AMI Asterisk ، لا يوجد شيء مثير للاهتمام هنا. بالنسبة لأولئك الذين بدأوا للتو في فعل شيء ما ، من غير المحتمل أن يفهموا رمزي (على الرغم من أنني حاولت الكتابة بوضوح). أعلق تعليقات مثل: "لماذا تستخدم هبر لملاحظاتك؟". من ناحية أخرى ، يمكن أن يكون النص الموضح تحت القطع نقطة البداية لشخص ما. لا يقوم البرنامج النصي بأي شيء سوى أنه يرسل جميع الأحداث من AMI إلى وحدة التحكم ويمكنه تصفيتها. على سبيل المثال ، أعرض في وحدة التحكم جميع المكالمات التي تقع في أي من سياقات "zadarma-in" أو "sibseti_in". إذا كنت مهتما ، أسأل تحت القطع:
كانت هناك مهمة في الوقت الفعلي للنظر في أي من المكالمات التي وردت من المكالمة ، والأزرار في ivr التي ضغط عليها المستخدم ، والذي رد على المكالمة ، إلخ. لفترة طويلة كنت أرغب في محاولة العمل مع AMI من Python ، قبل ذلك كان لدي خبرة صغيرة من Bash ثم تنظيم مكالمة مرة أخرى.
بعد البحث عن العديد من المكتبات الجاهزة ، أدركت بسرعة أنه لا توجد واحدة منها تناسبني. ونتيجة لذلك ، تم اختراع "دراجته" الخاصة على شكل نص يرسل جميع المعلومات من AMI إلى json. يتم استخدام مكتبات Python القياسية. زائد هو أنه في هذا النموذج من السهل تلقي وتحليل أي أحداث وعدم فقدان الرابط لمكالمة معينة.
يطبع النص الأول فقط تلك الأحداث التي تقع في أي من سياقات "zadarma in" أو "sibseti_in".
البرنامج النصي№1import telnetlib import json import re
والنص الثاني ، الذي يكتب جميع الأحداث إلى وحدة التحكم ، بالنظر إلى كلا النصين ، يصبح من الواضح ما يجب تغييره لتحقيق النتيجة المرجوة. إذا لم يكن الأمر واضحًا تمامًا ، فأنت بحاجة إلى تحليل json "string [mes]" في الوظيفة "def telnet_for_string (string)":
البرنامج النصي رقم 2 import telnetlib import time import json import re