الأحداث
يرسل صدى حدث JSON موقّعاً بـ POST إلى مسارك عند بدء المكالمة وانضمام المشاركين ومغادرتهم وانتهائها أو فواتها. كل تسليم بالغلاف نفسه.
01الغلاف
كل حدث كائن JSON يحمل معرّفاً واسم الحدث والبيئة وطابعاً زمنياً وكائن data يصف المكالمة. هذا تسليم كامل بترويساته.
02الأحداث
الأحداث الخمسة التي تستطيع الاشتراك فيها، مع نبضة الاختبار.
| الحدث | متى يُرسل |
|---|---|
call.started
|
أُنشئت المكالمة (POST /calls). الحالة ringing أو in_progress.
|
participant.joined
|
أُصدر رمز انضمام لمشارك. data.participant يصفه.
|
participant.left
|
غادر مشارك المكالمة. data.participant.left_at مضبوط.
|
call.ended
|
انتهت المكالمة بعد أن اتصلت. duration_seconds وparticipant_minutes نهائيان.
|
call.missed
|
انتهت المكالمة قبل أن تتصل — لم يُجب أحد. participant_minutes يساوي 0.
|
test.ping
|
يرسله زر «إرسال اختبار» في لوحة التحكم؛ data هي { "test": true }.
|
03كائن البيانات
لأحداث المكالمة، data هي المكالمة لحظة الحدث.
| الحقل | المعنى |
|---|---|
id
|
معرّف فريد للحدث، evt_…. استخدمه لإسقاط التكرارات.
|
event
|
اسم الحدث. |
env
|
test أو live — بيئة المفتاح الذي أنشأ المكالمة.
|
created_at
|
وقت إنتاج الحدث، ISO 8601. |
data.call_id
|
المكالمة. |
data.type
|
one_to_one أو group.
|
data.status
|
الحالة لحظة الحدث. |
data.region
|
المنطقة التي مرّ عبرها الصوت. |
data.ring
|
هل أُنشئت المكالمة بالرنين. |
data.metadata
|
الـ metadata الخاصة بك كما هي.
|
data.started_at
|
وقت الإنشاء. |
data.connected_at
|
حين حصل المشارك الثاني على رمز؛ null قبل ذلك.
|
data.ended_at
|
null ما دامت المكالمة حيّة.
|
data.duration_seconds
|
الثواني من started_at إلى ended_at (أو الآن).
|
data.participant_minutes
|
الدقائق المفوترة؛ نهائية في call.ended و0 قبلها.
|
04أحداث المشاركين
participant.joined وparticipant.left يضيفان كائن participant إلى data يحمل user_ref الخاص بك والاسم الظاهر وأوقات الانضمام والمغادرة.
05الترويسات
كل تسليم يحمل هذه الترويسات.
| الترويسة | القيمة |
|---|---|
Content-Type
|
application/json، بترميز UTF-8 والعربية غير مهرّبة.
|
X-Sada-Event
|
اسم الحدث، لتوجّهه قبل تحليل الجسم. |
X-Sada-Signature
|
t=<unix>,v1=<hex> — راجع التحقق من التوقيع.
|
User-Agent
|
Sada-Webhooks/1.0.
|
06الاشتراك
أضف مساراً HTTPS في لوحة التحكم ← Webhooks، واختر الأحداث التي يستقبلها، وأرسل نبضة اختبار. المسارات لكل تطبيق ولكل بيئة، فالمفتاح التجريبي لا يصل إلا إلى مسارك التجريبي.
ردّ بأي 2xx خلال 5 ثوانٍ — ونفّذ عملك بعد الرد، في طابور. أي شيء آخر يُعاد إرساله؛ راجع إعادة المحاولة.