نظرة عامة على أتمتة المكالمات

يوفر Azure Communication Services Call Automation للمطورين القدرة على إنشاء مهام سير عمل المكالمات الذكية المستندة إلى الخادم وتسجيل المكالمات للقنوات الصوتية وشبكة الهاتف العامة (PSTN). تستخدم حزم SDK، المتوفرة في C#، وJava، وJavaScript، وPython، نموذج حدث الإجراء لمساعدتك في إنشاء تفاعلات مخصصة للعملاء. يمكن لتطبيقات الاتصال الخاصة بك الاستماع إلى أحداث المكالمات في الوقت الحقيقي وتنفيذ إجراءات مستوى التحكم (مثل الإجابة والنقل وتشغيل الصوت وبدء التسجيل وما إلى ذلك) لتوجيه المكالمات والتحكم فيها استنادا إلى منطق عملك.

حالات الاستخدام الشائعة

بعض حالات الاستخدام الشائعة التي يمكنك إنشائها باستخدام أتمتة المكالمات:

  • يستدعي برنامج VoIP أو PSTN مهام سير عمل المعاملات مثل تذكيرات النقر إلى مكالمة والمواعيد لتحسين خدمة العملاء.
  • إنشاء مهام سير عمل تفاعلية للتفاعل مع العملاء الذين يخدمون أنفسهم لحالات الاستخدام مثل حجوزات الطلبات والتحديثات، باستخدام إجراءات Play (Audio URL وText-to-Speech وSSML) و Recognize (DTMF و Voice).
  • دمج تطبيقات الاتصال الخاصة بك مع مراكز الاتصال وشبكات الاتصالات الهاتفية الخاصة بك باستخدام التوجيه المباشر.
  • حماية هوية العميل من خلال إنشاء خدمات إخفاء الأرقام لتوصيل المشترين بالبائعين أو المستخدمين بالبائعين الشركاء على النظام الأساسي الخاص بك.
  • زيادة المشاركة من خلال إنشاء برامج تلقائية لتوعية العملاء للتسويق وخدمة العملاء.
  • قم بتحليل التسجيلات الصوتية غير الممزجة في عملية ما بعد المكالمة لأغراض ضمان الجودة.

استخدم Azure Communication Services Call Automation لإنشاء مهام سير عمل الاستدعاء لسيناريوهات خدمة العملاء، كما هو موضح في البنية عالية المستوى. يمكنك الرد على المكالمات الواردة أو إجراء مكالمات صادرة. تنفيذ إجراءات مثل تشغيل رسالة ترحيب أو توصيل العميل بعامل مباشر على تطبيق عميل Azure Communication Services Calling SDK للرد على طلب المكالمة الواردة. مع دعم Azure Communication Services PSTN أو التوجيه المباشر، يمكنك بعد ذلك توصيل سير العمل هذا مرة أخرى بمركز الاتصال الخاص بك.

رسم تخطيطي لاستدعاء التدفق لسيناريو خدمة العملاء.

القدرات

تتوفر الميزات التالية حاليا في Azure Communication Services Call Automation SDKs.

منطقة الميزات الإمكانية .NET Java JavaScript Python
سيناريوهات ما قبل الاستدعاء الرد على مكالمة واحدة لواحد ✔️ ✔️ ✔️ ✔️
الرد على مكالمة جماعية ✔️ ✔️ ✔️ ✔️
إجراء مكالمة صادرة جديدة إلى نقطة نهاية واحدة أو أكثر ✔️ ✔️ ✔️ ✔️
إعادة توجيه* (إعادة توجيه) مكالمة إلى نقطة نهاية واحدة أو أكثر ✔️ ✔️ ✔️ ✔️
رفض مكالمة واردة ✔️ ✔️ ✔️ ✔️
الاتصال بمكالمة مستمرة أو غرفة (في المعاينة) ✔️ ✔️ ✔️ ✔️
سيناريوهات منتصف المكالمة إضافة نقطة نهاية واحدة أو أكثر إلى مكالمة موجودة ✔️ ✔️ ✔️ ✔️
إلغاء إضافة نقطة نهاية إلى مكالمة موجودة ✔️ ✔️ ✔️ ✔️
تشغيل الصوت من ملف صوتي ✔️ ✔️ ✔️ ✔️
تشغيل الصوت باستخدام تحويل النص إلى كلام ✔️ ✔️ ✔️ ✔️
التعرف على إدخال المستخدم من خلال DTMF ✔️ ✔️ ✔️ ✔️
التعرف على مدخلات صوت المستخدم ✔️ ✔️ ✔️ ✔️
بدء التعرف المستمر على DTMF ✔️ ✔️ ✔️ ✔️
إيقاف التعرف المستمر على DTMF ✔️ ✔️ ✔️ ✔️
إرسال DTMF ✔️ ✔️ ✔️ ✔️
كتم صوت المشارك ✔️ ✔️ ✔️ ✔️
بدء/إيقاف تدفق الصوت (معاينة عامة) ✔️ ✔️ ✔️ ✔️
بدء/إيقاف النسخ في الوقت الحقيقي (معاينة عامة) ✔️ ✔️ ✔️ ✔️
إزالة نقطة نهاية واحدة أو أكثر من مكالمة موجودة ✔️ ✔️ ✔️ ✔️
التحويل الأعمى لاستدعاء 1:1 إلى نقطة نهاية أخرى ✔️ ✔️ ✔️ ✔️
تحويل مشارك من مكالمة جماعية إلى نقطة نهاية أخرى ✔️ ✔️ ✔️ ✔️
قطع المكالمة (إزالة ساق المكالمة) ✔️ ✔️ ✔️ ✔️
إنهاء مكالمة (إزالة جميع المشاركين وإنهاء المكالمة) ✔️ ✔️ ✔️ ✔️
إلغاء عمليات الوسائط ✔️ ✔️ ✔️ ✔️
مشاركة المعلومات المخصصة (عبر عناوين VOIP أو SIP) مع نقاط النهاية عند إضافتها إلى مكالمة أو تحويل مكالمة إليها ✔️ ✔️ ✔️ ✔️
سيناريوهات الاستعلام الحصول على حالة المكالمة ✔️ ✔️ ✔️ ✔️
الحصول على مشارك في مكالمة ✔️ ✔️ ✔️ ✔️
سرد جميع المشاركين في مكالمة ✔️ ✔️ ✔️ ✔️
تسجيل المكالمات بدء/إيقاف مؤقت/استئناف/إيقاف التسجيل ✔️ ✔️ ✔️ ✔️

* نقل مكالمة VoIP أو إعادة توجيهها إلى رقم هاتف غير مدعوم حاليا.

بناء الأنظمة

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

تستخدم Azure Communication Services Event Grid لتقديم حدث IncomingCall وHTTPS Webhooks لجميع عمليات الاستدعاء لإجراء منتصف المكالمة.

لقطة شاشة لتدفق المكالمات والإجراءات الواردة.

إجراءات المكالمات

إجراءات ما قبل الاستدعاء

يتم تنفيذ هذه الإجراءات قبل توصيل نقطة النهاية الوجهة المدرجة في IncomingCall إعلام الحدث. تتصل answer أحداث رد الاتصال بربط الويب فقط بإجراء ما قبل المكالمة، وليس للإجراءات reject أو redirect .

الإجابة - باستخدام حدث IncomingCall من Event Grid و Call Automation SDK، يمكن للتطبيق الرد على مكالمة. استخدم هذا الإجراء في سيناريوهات IVR حيث يمكن للتطبيق الخاص بك الرد برمجيا على مكالمات PSTN الواردة. تتضمن السيناريوهات الأخرى الرد على مكالمة نيابة عن مستخدم.

رفض – لرفض مكالمة يعني أن التطبيق الخاص بك يمكنه تلقي IncomingCall الحدث ومنع الاتصال بنقطة نهاية الوجهة.

إعادة التوجيه - باستخدام IncomingCall الحدث من Event Grid، يمكنك إعادة توجيه مكالمة إلى نقطة نهاية واحدة أو أكثر لإنشاء سيناريو رنين واحد أو متزامن (حلقة sim). لا يرد إجراء إعادة التوجيه على المكالمة. تتم إعادة توجيه المكالمة أو إعادة توجيهها إلى نقطة نهاية وجهة أخرى للرد عليها.

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

الاتصال بالمكالمة (في المعاينة) - استخدم إجراء الاتصال بالمكالمة للاتصال بمكالمة مستمرة واتخاذ إجراءات مكالمة عليها. يمكنك أيضا استخدام هذا الإجراء لتوصيل مكالمة الغرف وإدارتها برمجيا، مثل إجراء مكالمات PSTN للغرفة باستخدام خدمتك.

إجراءات منتصف المكالمة

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

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

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

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

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

إرسال DTMF – عندما يحتاج تطبيقك إلى إرسال نغمات DTMF إلى مشارك خارجي. استخدم هذا الإجراء للاتصال بوكيل خارجي وتوفير رقم الملحق، أو التنقل في قائمة IVR خارجية.

كتم الصوت – يمكن لتطبيقك كتم صوت مستخدمين معينين استنادا إلى منطق عملك. سيحتاج المستخدم بعد ذلك إلى إلغاء كتم صوته يدويا إذا أراد التحدث.

النقل – عندما يجيب تطبيقك على مكالمة أو يضع مكالمة صادرة إلى نقطة نهاية، يمكن نقل هذه المكالمة إلى نقطة نهاية وجهة أخرى. يؤدي نقل مكالمة 1:1 إلى إزالة قدرة التطبيق الخاص بك على التحكم في المكالمة باستخدام حزم SDK لأتمتة المكالمات.

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

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

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

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

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

بدء/إيقاف النسخ في الوقت الحقيقي (معاينة عامة) - يسمح لك النسخ في الوقت الحقيقي بالوصول إلى النسخ المكتوبة المباشرة لصوت مكالمة مستمرة. للحصول على إرشادات أكثر تفصيلا حول كيفية البدء في النسخ في الوقت الحقيقي ومعلومات حول أحداث رد اتصال النسخ في الوقت الحقيقي، راجع مفهومنا وبدء التشغيل السريع.

سيناريوهات الاستعلام

قائمة المشاركين – إرجاع قائمة بجميع المشاركين في مكالمة. يتم حذف روبوتات التسجيل والنسخ من هذه القائمة.

حدث

يوضح الجدول التالي الأحداث الحالية المنبعثة من Azure Communication Services. يصف الجدولان التاليان الأحداث المنبعثة من Event Grid ومن أتمتة المكالمات كأحداث webhook.

أحداث Event Grid

معظم الأحداث المرسلة بواسطة Event Grid غير محددة للنظام الأساسي. يتم إرسالها بغض النظر عن SDK (الاتصال أو أتمتة المكالمات). بينما يمكنك إنشاء اشتراك لأي حدث، نوصي باستخدام IncomingCall الحدث لجميع حالات استخدام أتمتة المكالمات حيث تريد التحكم في المكالمة برمجيا. استخدم الأحداث الأخرى لأغراض إعداد التقارير/بيانات تتبع الاستخدام.

حدث ‏‏الوصف
IncomingCall إعلام بمكالمة إلى مستخدم اتصال أو رقم هاتف.
CallStarted إنشاء مكالمة (واردة أو صادرة).
CallEnded إنهاء مكالمة وإزالة جميع المشاركين.
ParticipantAdded تمت إضافة مشارك إلى مكالمة.
ParticipantRemoved إزالة مشارك من مكالمة.
RecordingFileStatusUpdated يتوفر ملف تسجيل.

اقرأ المزيد حول هذه الأحداث ومخطط البيانات الأساسية في Azure Communication Services - أحداث مكالمات الصوت والفيديو

أحداث إخطار على الويب لأتمتة الاتصال

يتم إرسال أحداث أتمتة المكالمات إلى عنوان URI لرد اتصال خطاف الويب المحدد عند الرد على مكالمة صادرة جديدة أو إجراء مكالمة صادرة جديدة.

حدث ‏‏الوصف
CallConnected تم بدء المكالمة بنجاح (عند استخدام Answer أو Create إجراء) أو اتصال التطبيق الخاص بك بنجاح بمكالمة مستمرة (عند استخدام Connect الإجراء).
CallDisconnected تم قطع اتصال التطبيق الخاص بك من المكالمة.
CreateCallFailed فشل التطبيق الخاص بك في إنشاء المكالمة.
ConnectFailed فشل تطبيقك في الاتصال بمكالمة (لإجراء Connect المكالمة فقط).
CallTransferAccepted تم إكمال إجراء النقل بنجاح ويتم توصيل المنقول إليه بالمشارك المستهدف.
CallTransferFailed فشل إجراء النقل.
AddParticipantSucceeded نجح تطبيقك في إضافة مشارك إلى المكالمة.
AddParticipantFailed تعذر على تطبيقك إضافة مشارك إلى المكالمة (بسبب خطأ أو لم يقبل المشارك الدعوة)
CancelAddParticipantSucceeded قام AddParticipant تطبيقك بإلغاء طلب بنجاح (لم تتم إضافة المشارك إلى المكالمة).
CancelAddParticipantFailed تعذر على تطبيقك إلغاء طلب AddParticipant (قد يكون ذلك بسبب معالجة الطلب بالفعل).
RemoveParticipantSucceeded نجح تطبيقك في إزالة مشارك من المكالمة.
RemoveParticipantFailed تعذر على تطبيقك إزالة مشارك من المكالمة.
ParticipantsUpdated تغيرت حالة أحد المشاركين أثناء اتصال تطبيقك بمكالمة.
PlayCompleted نجح تطبيقك في تشغيل الملف الصوتي المقدم.
PlayFailed فشل تطبيقك في تشغيل الصوت.
PlayCanceled تم إلغاء إجراء التشغيل المطلوب.
RecognizeCompleted اكتمل التعرف على إدخال المستخدم بنجاح.
RecognizeCanceled تم إلغاء الإجراء المطلوب Recognize .
RecognizeFailed لم ينجح التعرف على إدخال المستخدم.
لمزيد من المعلومات حول التعرف على أحداث الإجراءات، راجع دليل الكيفية لجمع إدخال المستخدم.
RecordingStateChanged تغيرت حالة إجراء التسجيل من نشط إلى غير نشط أو العكس.
ContinuousDtmfRecognitionToneReceived StartContinuousDtmfRecognition اكتمل بنجاح وتم تلقي نغمة DTMF من المشارك.
ContinuousDtmfRecognitionToneFailed StartContinuousDtmfRecognition مكتمل ولكن حدث خطأ أثناء معالجة نغمة DTMF من المشارك.
ContinuousDtmfRecognitionStopped تم StopContinuousRecognitionالتنفيذ بنجاح.
SendDtmfCompleted SendDTMF تم إكماله بنجاح وأرسل نغمات DTMF إلى المشارك المستهدف.
SendDtmfFailed حدث خطأ أثناء إرسال نغمات DTMF.

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

كأفضل ممارسة عند الاعتراف بأحداث رد الاتصال، قم بالاستجابة باستخدام رموز حالة HTTP القياسية مثل 200 OK. المعلومات التفصيلية غير ضرورية وأكثر ملاءمة لعمليات تصحيح الأخطاء.

لمعرفة كيفية تأمين تسليم حدث رد الاتصال، راجع كيفية تأمين نقطة نهاية خطاف الويب.

عملية رد الاتصال URI

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

واجهة برمجة التطبيقات المدعومة الحدث المقابل
AddParticipant AddParticipantSucceed / AddParticipantFailed
RemoveParticipant RemoveParticipantSucceed / RemoveParticipantFailed
TransferCall CallTransferAccepted / CallTransferFailed
CancelAddParticipant CancelAddParticipantSucceeded / CancelAddParticipantFailed
Play PlayCompleted / PlayFailed / PlayCanceled
PlayToAll PlayCompleted / PlayFailed / PlayCanceled
Recognize RecognizeCompleted / RecognizeFailed / RecognizeCanceled
StopContinuousDTMFRecognition ContinuousDtmfRecognitionStopped
SendDTMF ContinuousDtmfRecognitionToneReceived / ContinuousDtmfRecognitionToneFailed

الخطوات التالية