connect() ثمّ
initCall(). يتولّى Wave تسجيل SIP والوسائط وبيانات الجلسة قصيرة العمر نيابةً عنك.
يستخدم الاتّصال عبر الويب نطاق
webrtc:write. في sandbox تكون المكالمات مقيّدة
بالأصل (origin) وبوجهة رقم تسجيلك؛ ويزيل مفتاح production (sk_live_) قيد
الوجهة.التثبيت
قبل البدء
- اسمح بأصلك. في لوحة تحكّم Wave، أضِف الأصل الذي يعمل عليه تطبيقك (مثل
https://app.example.com) إلى الأصول المسموح بها لمشروعك. تجلب الـ SDK جلستها من/v1/webrtc/configالتي ترفض أيّ أصل ليس على القائمة. - استخدم مفتاح
webrtc:write. يُرسَل المفتاح من المتصفّح، لذا فهو مقيّد بالأصل بحكم التصميم.
بداية سريعة
جلسات الوكيل وجلسات المتّصل
كلّ جلسة متصفّح من أحد نوعين. يحدّد الخيارidentity النوع.
قواعد الهويّة
- من 1 إلى 64 حرفًا من
A–Z a–z 0–9 . _ -. - استخدم الهويّة نفسها في كلّ مكان: في الـ SDK، وفي
POST /v1/queues/agents/login، وفي<Dial>داخل مسار المكالمة. - البادئتان
p_(أعضاء البوّابة) وc_(جلسات المتّصل) محجوزتان. الهويّة التي تبدأ بإحداهما تُعيد400 INVALID_IDENTITY. - إذا كان لدى المستأجر مستخدم SIP بهذا الاسم لم ينشئه Wave (مثل هاتف مكتبيّ)، فلا يغيّره Wave ويُعيد
409 IDENTITY_CONFLICT. استخدم هويّة أخرى. - ينشئ Wave مستخدم SIP عند أوّل استخدام، ويضبط كلمة مرور جديدة لكلّ جلسة. لا تدير أنت مستخدمي SIP.
- جلسة واحدة لكلّ هويّة. إذا فتحت الهويّة نفسها جلسة ثانية (مثل تبويب ثانٍ)، تفوز الجلسة الأحدث. تتلقّى الجلسة الأقدم
onSessionEnded("revoked")عند تحديث بياناتها التالي، وتتوقّف عن الرنين. - تحتاج جلسات الوكيل إلى مفتاح production (
sk_live_). يتجاهل مفتاح sandbox الخيارidentityويفتح جلسة متّصل.
استقبال المكالمات
اضبطidentity وأضِف مُعالِج onIncomingCall. يتلقّى المُعالِج كائن مكالمة:
- مكالمة واحدة في كلّ مرّة. أثناء مكالمة نشطة أو رنين، تتلقّى أيّ مكالمة واردة جديدة
486 Busy Here، ولا تصل إلىonIncomingCall. - إذا أنهى المتّصل المكالمة قبل القبول أو الرفض، يُطلَق
onIncomingCallCancelled(). بعد ذلك يرميaccept()وreject()على كائن المكالمة هذا الخطأNO_ACTIVE_CALL. - إذا رُفض الميكروفون، يرمي
accept()الخطأMICROPHONE_UNAVAILABLEويستمرّ رنين المكالمة. يمكنك عندها استدعاءreject(). - إذا ضبطت
onIncomingCallدونidentity، يرمي الـ constructor الخطأINCOMING_REQUIRES_IDENTITY.
جودة المكالمة
أثناء اتّصال المكالمة وعدم تعليقها، ترسل الـ SDK الحدثonQualityReport(metrics) كلّ
5 ثوانٍ. يغطّي كلّ تقرير آخر 5 ثوانٍ:
تتوقّف التقارير عند انتهاء المكالمة أو تعليقها، وتبدأ من جديد عند استئنافها. للاسترشاد:
قيمة
mos من 4.0 فأكثر جيّدة، ومن 3.6 إلى 4.0 متوسّطة، وأقلّ من 3.6 ضعيفة. تبقى قيم
الجودة في المتصفّح؛ لا يستلمها Wave.
الإعدادات
new WaveSDK(config, events)
الدوالّ
الأحداث
مرّر المُعالِجات في الوسيط الثاني للـ constructor.لا تتعامل أنت مع كلمة مرور SIP أو رمز الجلسة. تجلبها الـ SDK، وتُبقي المكالمة حيّة،
وتدوّرها تلقائيًّا قبل انتهائها بنحو دقيقة.
رموز الأخطاء
يمنحكonFailed(error) قيمة error.code:
قد يفشل طلب الجلسة (
POST /v1/webrtc/config) أيضًا بأخطاء الـ API هذه. تُبلغ عنها الـ SDK
بالرمز CONFIG_FAILED، مع حالة HTTP في الرسالة:
الـ Webhooks
عند انتهاء مكالمة من المتصفّح، يرسل Wave الـ webhook المعتادcall.ended لها (راجِع
الـ Webhooks).
الخطوات التالية
كيف يعمل الصوت
أين تقع مكالمة المتصفّح في دورة حياة المكالمة.
المكالمات والتسجيلات
اقرأ السجلّ واجلب تسجيلًا.

