IVR على Webhook



chatbot عبر الإنترنت هو اتجاه حديث في السوق. ولكن كيف تتفاعل مع العملاء غير المتصلين بالإنترنت؟ تفضل نسبة كبيرة من الناس التفاعل عبر الهاتف. ويحتاج العمل إما إلى عدد كبير من المشغلين أو حل أتمتة الاتصالات الصوتية. نحن نقدم حلاً لتقليل عبء العمل والتكاليف (وسوف يؤثر بالكاد على انشغال مطوريك).

كيف يمكن برمجة أي قائمة صوت أو مخبر تلقائي أو سكرتير آلي مع قاعدة بيانات عميل مرفقة بسرعة وسهولة؟

تنبيه المفسد: يتم تنفيذ كل شيء عن طريق تطبيق webhooks ونستخدم مثال PHP.

ماذا ولماذا؟

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

يمكن أن يكون آليا بسهولة ، وسوف نقدم مثالا أدناه. أوه ، ويمكن أن يتم ذلك تماما مجانا.

لماذا لا النجمة الخاصة بك؟

بالطبع ، يمكن إجراء كل ذلك باستخدام Asterisk ، ولكن بصرف النظر عن المطور ، ستحتاج أيضًا إلى مسؤول على دراية بأمان الاتصالات الصوتية (حيث يتم اختراقها بشكل متكرر).
لذلك سنناقش أبسط طريقة لحل هذه المهمة - مع webhooks.

قائمة الطرق

ستحتاج فقط إلى طريقتين جديدتين للوظيفة ، لكن كل منهما يوفر لك الكثير من الاحتمالات ، والأهم من ذلك - دورات غير محدودة. بمساعدة هذه الدورات ، يمكنك الحصول على قائمة صوت متعددة المستويات ومخبر عن أي موضوع.

الطرق الرئيسية:

  • NOTIFY_START - بداية مكالمة واردة في PBX
  • NOTIFY_IVR - استجابة المتصلين لإجراء معين

وصف الطريقة التفصيلية متاح للنسخ واللصق في وصف API .

بالنسبة لطلبات NOTIFY_START و NOTIFY_IVR ، يمكنك تغيير السيناريوهات أثناء المكالمة من خلال الرد باستخدام أحد الخيارات:








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

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

الحد الأدنى للتنفيذ

لكي يرد المستجيب ، فأنت تحتاج إلى الحد الأدنى من رقم الهاتف و PBX. يجب عليك أيضا تحميل أو إدخال الردود الممكنة.

إعداد



  1. يمكن تعيين PBX مجانًا لهذه المهمة في ثلاث نقرات (اختر عدد الموظفين ويمكن تعيين القائمة الصوتية لاحقًا)
  2. يمكن توصيل أرقام هواتف PBX من 100 دولة حول العالم. يتصل الرقم تلقائيًا بعد اكتمال التحقق من الهوية (إذا كان ذلك مطلوبًا للبلد الذي تختاره). يمكنك أيضًا توصيل أحد الأرقام الخاصة بك مجانًا
  3. لتعيين القوائم الصوتية ، انتقل إلى صفحة "المكالمات الواردة و IVR" واختر خيارًا يناسبك. أو يمكنك تحميل ملفاتك ، أو كتابة نص وسيقوم الروبوت بقراءته تلقائيًا. هناك 16 لغة متوفرة بعدة أصوات لكل واحدة (14 أصوات باللغة الإنجليزية). يمكنك حفظ ما يصل إلى 100 تحية في حسابك الشخصي.



مثال PHP

لإظهار خيارات مختلفة ، قمنا بإنشاء 4 أمثلة لأداء IVR على PHP.

  1. يروي النظام آخر ثلاثة أرقام من CallerID (مثال عن العمل مع معلومات حول الأرقام والأرقام البارزة)
  2. يقوم المستخدم بإدخال تاريخ ميلاده في DTMF والنظام الذي يحدد عدد الأيام المتبقية حتى عيد الميلاد (العمل مع DTMF والأرقام المنطوقة)
  3. قائمة متعددة المستويات لا حصر لها: يمكن للمستخدم إدخال أرقام والانتقال إلى القائمة التالية / السابقة (مثال على كيفية إنشاء دائرة عدد من القوائم الصوتية باستخدام دورة بسيطة)
  4. مثال على إذن لتلقي حالة التوازن (مفيد لكثير من مواقف الحياة)

تتوفر الأمثلة الثلاثة الأولى على جيثب . يوجد لديك جميع العناصر المطلوبة ، تحتاج فقط إلى إدراج الملفات مع ملء (التي يجب أن تكون قبل تحميلها أو قراءتها في PBX).

المهمة 4 : يسمع المتصل التحية ويُطلب منه إدخال رقم التعريف ، بعد دخول النظام يخبر الرصيد ، يقول وداعًا باستخدام عبارة شائعة من القائمة وينهي المكالمة.

فيما يلي مثال على الكود للمهمة الموصوفة.
كود PHP

$request = new Request(); $notify = self::getEvent([AbstractNotify::EVENT_START, AbstractNotify::EVENT_IVR]); if (!$notify) { return; } switch ($notify->event){ case AbstractNotify::EVENT_START: $request ->setIvrPlay(self::INFO_FILE_ID) ->setWaitDtmf(TIMEOUT , ATTEMPTS, MAXDIGITS, DTMF_NAME, DEFAULT_BEHAVIOUR); break; case AbstractNotify::EVENT_IVR: if (!empty($notify->wait_dtmf->digits)) { $balance = getBalance($notify->wait_dtmf->digits); $request->setIvrSayNumber($balance, 'en'); } elseif (!empty($notify->ivr_saynumber)) { $request->setIvrSayPopular(POPULAR_PHRASE_NUM, 'en'); } else { $request->setHangup(); } } $request->send(); 

نتطلع إلى زيادة توسيع ميزات الأسلوب وجمع التعليقات في التعليقات أدناه. لدينا أيضًا طرق webhook و API متاحة ، يمكنك الاطلاع على القائمة الكاملة على الموقع .

Source: https://habr.com/ru/post/ar474178/


All Articles