إطار عمل Asterisk AGI لنظام الرد الصوتي التفاعلي (IVR)؛بديل الالتصاق؟

StackOverflow https://stackoverflow.com/questions/97920

سؤال

أحاول البدء في كتابة تطبيقات قابلة للتطوير على مستوى الاتصالات باستخدام Asterisk وRuby.كنت أنوي في الأصل استخدام إطار عمل Adhearsion لهذا الغرض، لكنه لا يتمتع بالنضج المطلوب كما أن وثائقه ناقصة بشدة.يبدو أن AsteriskRuby هو بديل جيد، لأنه موثق جيدًا ويبدو أنه مكتوب بواسطة Vonage.

هل لدى أي شخص خبرة في نشر تطبيقات الرد الصوتي التفاعلي المستندة إلى AGI؟ما هو الإطار الذي استخدمته، إن وجد؟حتى أنني سأفكر في نسخة غير روبي إذا كان ذلك مبررًا.شكرًا!

هل كانت مفيدة؟

المحلول

يجب عليك إعادة زيارة Adhearsion نظرًا لإصدار الإصدار 0.8.1، وقد تحسنت عملية التوثيق كثيرًا مؤخرًا.الق نظرة هنا:

http://adhearsion.com http://docs.adhearsion.com http://api.adhearsion.com

نصائح أخرى

SipX هي حقًا الإجابة الخاطئة.لقد قمت بكتابة بعض VoiceXML المعقدة للغاية على SipX 3.10.2 وكان كل ذلك هباءً منذ أن قام SipX 4 بإسقاط SipXVXML لواجهة تتطلب تجميع IVRs JARs.علاوة على ذلك، أعلنت شركة Nortel عن إفلاسها، والتوثيق الرديء للغاية على الإصدار مفتوح المصدر، والامتثال الضعيف لـ VXML 2.0 (اعتبارًا من 3.10.2) ومعايير SIP (اعتبارًا من 3.10.2، لا يتوافق بشكل جيد مع مقدمي خدمات تكنولوجيا المعلومات).سأشيد به على قيامه بما تم تصميمه للقيام به، وهو أن يكون PBX.لكن باعتباري موظف الرد الصوتي التفاعلي (IVR)، إذا اضطررت إلى القيام بذلك مرة أخرى، فسأفعل شيئًا مختلفًا.لا أعرف ما هو بالتأكيد، ولكن هناك شيء مختلف.أنا ألعب مع Trixbox CE الآن وأعمل على ربطه بـ JVoiceXML أو VoiceGlue.

أيضًا، لا تقرأ هذا الهراء من SipX wiki.إنه يقارن SipX 3.10 بـ AsteriskNOW 1 بـ Trixbox 1.تعال.إنه مثل مقارنة نظام التشغيل Mac OS X بنظام التشغيل Win95!ستكون المقارنة الأكثر واقعية هي SipX 4 (المقرر إصداره في الربع الأول من عام 2009) مع Asterisk 1.6 وTrixbox 2.6، مما سيُظهر أنهما يحققان نتائج متطابقة تقريبًا باستثناء مجال قابلية التوسع والتوافر العالي؛SipX يفوز في ذلك.ولكن من أجل النضج والاستقرار، فإنني أؤيد النجمة.

أيضًا، نتائج أدائي في العالم الحقيقي مع SipXVXML:
يتعامل الطراز PowerEdge R200 من Dell، المزود بمعالج Xeon ثنائي النواة بسرعة 3.2 جيجا هرتز، مع 17 مكالمة قبل حدوث أي توتر.
يتعامل HP DL380 G4، Dual Xeon HT 3.2 جيجا هرتز، مع 30 مكالمة قبل التوقف المؤقت الطويل.

سأقوم بنشر النتائج التي توصلت إليها عندما أنتهي من تقييم VoiceGlue وJVoiceXML ولكن أعتقد أنني سأنتهي من كتابة PHP مخصص يتم استدعاؤه من AGI نظرًا لأن جميع الأدوات أصلية في Asterisk.

إذا كنت تبحث عن تطبيقات "من فئة الاتصالات"، فقد ترغب في البحث في SipXecs بدلاً من العلامة النجمية.إنه مميز ومجاني ومفتوح المصدر، مع الدعم التجاري المتوفر من Nortel.يمكنك التفاعل معها عبر واجهة برمجة تطبيقات خدمات الويب بلغة روبي (أو أي لغة أخرى).

انظر ويكي سيبكسيكس للمزيد من المعلومات.هناك مصفوفة مقارنة على هذا الموقع، تقارن الميزات مع AsteriskNOW وTrixBox.

لا يوجد حقًا أي أطر عمل أخرى هناك.هناك بالطبع روابط AGI لكل لغة، ولكن فيما يتعلق بالأطر الكاملة لتطوير تطبيقات الهاتف، فإننا لم نصل إلى هذه النقطة بعد.على الأقل في عالم مفتوح المصدر.

لقد طرحت أسئلة ذات صلة إلى حد ما هنا, هنا, ، و هنا.أنا أستخدم Speech Server من Microsoft، وأنا مهتم جدًا بالتعرف على أي بدائل موجودة، وخاصة تلك مفتوحة المصدر.قد تجد بعض المعلومات الجيدة في إجابات أحد هذه الأسئلة.

إستعملت JAGIServer على نطاق واسع، على الرغم من أنه لم يعد قيد التطوير بعد الآن، وهو جيد جدًا وسهل الاستخدام.إنها واجهة لـ FastAGI، والتي أوصي باستخدامها بدلاً من AGI البسيط.

الإصدار الجديد من هذا الإطار هو مكالمات منظمة والذي يبدو أنه يحتوي على الكثير من الميزات ولكن بما أنني لم أكن بحاجة إليها، لم أجربه.

أعتقد أن كل هذا يتوقف على ما تريد القيام به مع AGI؛عادةً ما يكون لدي خطة اتصال معقدة إلى حد ما لجمع جميع مدخلات المستخدم والتحقق من صحتها، ثم استخدم AGI للاتصال بتطبيق Java الذي سيقرأ بعض المتغيرات، ويفعل بعض الأشياء بها (إجراء العمليات، والاستعلامات، وما إلى ذلك) ثم يقوم بتعيين المزيد المتغيرات على قناة AGI وقطع الاتصال.في هذه المرحلة، يستمر مخطط الطلب اعتمادًا على نتيجة المتغيرات التي يحددها تطبيق Java.

يعمل هذا بسرعة كبيرة لأن لديك ServerSocket على تطبيق Java، والذي يتلقى الاتصالات الواردة من AGI، وينشئ JAGIClient بمقبس جديد ومثيل جديد لـ JAGIProcessor (الذي يجب عليك كتابته، إنه الكائن الذي سيفعل كل ما تحتاجه المعالجة)، ثم قم بتشغيل JAGIClient داخل تجمع مؤشرات الترابط.يقوم JAGIProcessor الخاص بك بتنفيذ طريقة ProcessCall حيث يقوم بكل العمل الذي يحتاجه، ويتفاعل مع JAGIClient الذي تم تمريره كمعلمة، لقراءة المتغيرات وتعيينها أو القيام بأي شيء تسمح لك به واجهة AGI.

إذن لديك تطبيق Java يعمل طوال الوقت ويمكن أن يكون تطبيق J2SE بسيطًا أو تطبيق EE على حاوية، لا يهم؛بمجرد تشغيله، فإنه سيعالج طلبات AGI بسرعة كبيرة، حيث لا يلزم بدء عمليات جديدة (على عكس AGI البسيط الذي يقوم بتشغيل برنامج لكل استدعاء AGI).

سمي مرة أخرى.بعد ترحيل الرد الصوتي التفاعلي (IVR) الخاص بعميلي من SipX إلى Asterisk باستخدام PHPAGI، يجب أن أقول إنني لم أواجه أي بنية أخرى تقترب من البساطة والقدرة.سأقوم باختبار Trixbox CE 2.8 اليوم على نفس الجهاز الذي قمت باختبار SipX عليه سابقًا.لكن يجب أن أقول إن استخدام PHPAGI لـ IVR وAsterisk CLI لتصحيح الأخطاء قد عمل بشكل مثالي وسمح لي بتطوير IVR بشكل أسرع بكثير من أي شركة أخرى.أنا أعمل على تنفيذ تحويل النص إلى كلام (TTS) وASR اليوم وسأقوم بنشر نتائج اختبار التحمل الخاص بي عندما أستطيع ذلك.

بسيطة وصغيرة ومرنة النجمة AGI IVR مكتوبة على PHPhttp://freshmeat.net/projects/phpivr

بالنسبة للتطبيقات الصغيرة والسهلة، أستخدم Asterisk::AGI في لغة Perl.هناك أيضًا امتدادات لـ Fast AGI.بالنسبة للتطبيقات الأكبر حجمًا، مثل الواجهات الخلفية لمشغل VoIP، أستخدم شيئًا مشابهًا لـ OrderlyCalls المكتوب بلغة Java (الكود الخاص بي).يعد OrderlyCalls أمرًا رائعًا للبدء باستخدام محرك Java Fastagi وتوسيعه ليناسب احتياجاتك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top