رموز الانضمام
رمز الانضمام JWT قصير العمر يصدره خادمك لمستخدم واحد للانضمام إلى مكالمة واحدة. التطبيق يسلّمه إلى الـ SDK ولا يرى مفتاحك السري أبداً.
01ما هو الرمز
خادمك يستدعي POST /calls/{call_id}/tokens بمعرّف المستخدم واسمه الظاهر. يسجّل صدى المشارك ويعيد JWT بتوقيع HS256 يعيش 5 دقائق افتراضياً (من 60 ثانية إلى ساعة). طرف الصوت يتحقق من التوقيع ومن الحقل exp قبل أن يُدخل المشارك.
ولأن الرمز مرتبط بـ user_ref واحد وcall_id واحد، لا يمكن إعادة استخدامه لمكالمة أخرى، وينتهي قبل أن يتمكن أحد من إعادة إرساله.
02الطلب
أصدر الرموز بعد التحقق من الهوية عندك: المستخدم الذي يطلب الرمز يجب أن يكون هو من تضعه في user_ref.
| الاسم | النوع | إلزامي | الافتراضي | الوصف |
|---|---|---|---|---|
user_ref
|
string ≤ 120
|
نعم |
—
|
معرّفك للمستخدم (معرّف قاعدة البيانات، UUID…). يظهر في الـ webhooks وسجل المكالمات. |
display_name
|
string ≤ 80
|
نعم |
—
|
ما يراه بقية المشاركين. الأسماء العربية مقبولة. |
ttl
|
integer 60–3600
|
لا |
300
|
عمر الرمز بالثواني. يجب أن ينضم التطبيق قبل انتهائه. |
03الاستجابة
تحمل الاستجابة الرمز ووقت انتهائه وسجل المشارك الذي أُنشئ له.
04داخل الرمز
الـ SDK يفكّ الحمولة ليعرف أي مكالمة وأي منطقة يتصل بها. لا تحتاج إلى فكّها بنفسك، لكنها غير مشفّرة — لا تضع أي شيء خاص في display_name.
| الحقل | المعنى |
|---|---|
iss
|
دائماً sada.
|
sub
|
الـ user_ref الخاص بك.
|
name
|
الاسم الظاهر display_name.
|
call_id
|
المكالمة التي يفتحها هذا الرمز. |
app
|
المفتاح العام للتطبيق في هذه البيئة. |
env
|
test أو live.
|
region
|
baghdad أو dubai أو istanbul.
|
pid
|
معرّف المشارك الذي عيّنه صدى. |
iat
|
وقت الإصدار (ثوانٍ unix). |
exp
|
وقت الانتهاء (ثوانٍ unix). |
05القواعد
أمور يفرضها الـ API عند إصدار الرمز.
-
1
رمز واحد لكل مشارك. إصدار الرمز ينشئ سجل المشارك ويرسل
participant.joinedإلى الـ webhooks — والرمز الثاني في المكالمة الفردية هو ما ينقلها منringingإلىin_progress. -
2
تتسع المكالمة لمشاركَين نشطَين على الأكثر إن كانت
one_to_oneولعشرة إن كانتgroup. بعد ذلك يردّ الـ API بـ422 Call is full. من يغادر يحرّر مقعده. -
3
الرموز تُصدر فقط للمكالمات الحيّة (
ringingأوin_progress). المكالمة المنتهية أو الفائتة تردّ بـ422 Call is not live. - 4 الرمز موقّع من صدى. تدوير مفتاحك السري لا يُبطل الرموز الصادرة من قبل.
06عبر حزم SDK
حزمة Laravel تغلّف المسار في $call->token()؛ وبدون SDK هو طلب HTTP واحد.