هل استخدم أحد بروتوكول SIP لإعادة التوجيه إلى LiveKit Siptrunk؟ أضفت رقم الـ SIP في الإعدادات،
VoIP : xxxxx.sip.livekit.cloud/john
لا أستطيع إزالة /john لكن هذا لم ينجح، مع أني لا أعتقد أن هذه هي المشكلة.
عندما أتصل برقم FlyNumber الخاص بي أحصل على إشارة “مشغول” وأرى “status fail, reason not found” في سجل المكالمات. في LiveKit لا أرى أي محاولة اتصال.
شكرًا على أي تلميحات!
قمنا للتو باختبار التحويل إلى LiveKit SIP trunk من جانبنا وهو يعمل بشكل جيد — لذا فالمشكلة في إعدادات LiveKit، وليست في FlyNumber. هناك شيئان يجب إصلاحهما:
1. غيّر اسم المستخدم من john إلى رقم FlyNumber بصيغة E.164
في إعدادات VoIP على FlyNumber يجب أن تكون القيم كالتالي:
Host:xxxxx.sip.livekit.cloud
Username / details: رقم FlyNumber نفسه بصيغة E.164 — مثلًا +17185301799 لرقم أمريكي، أو +34930521234 لرقم إسباني
السبب: trunk الوارد في LiveKit يطابق المكالمات الواردة مع الـ user في حقل To: داخل SIP INVITE، ويتوقع أن يكون الـ DID بصيغة E.164. القيمة john لن تطابق أي شيء لديهم، وهذا بالضبط سبب ظهور الرسالة لديك:
status fail, reason not found
هذا رد LiveKit بكود 404 Not Found لأنه لا يوجد أي trunk يقبل هذا الـ user. وهذا يفسر أيضًا لماذا لا ترى أي محاولة اتصال في لوحة تحكم LiveKit — حيث يتم رفض الـ INVITE على مستوى الـ trunk قبل أن يصل إلى أي dispatch rule.
2. في الـ inbound trunk على LiveKit، أضف رقم FlyNumber إلى numbers
إذا لم يكن حقل numbers يحتوي على الـ DID الذي تتصل به (أو لم يكن فارغًا ليعمل كـ wildcard)، فسيقوم LiveKit بإرجاع 404 في كل مرة.
قاعدة التوجيه (dispatch rule) — حيث يمكن أن يظهر شيء مثل john لاستخدامه في توجيه الغرفة — تصبح مهمة فقط بعد أن يقبل الـ trunk المكالمة. اضبط تطابق trunk/number أولًا، ثم اهتم بالـ dispatch بعد ذلك.
بخصوص TLS وفلترة عناوين الـ IP:
TLS غير مطلوب ما لم تكن قد فعّلت صراحةً secure trunking على trunk الخاص بـ LiveKit. بروتوكول TCP/UDP/5060 العادي يعمل مباشرة دون إعدادات إضافية.
جرّب التعديلين أعلاه وأخبرنا إن استمرت المشكلة — وإذا استمرت، أرسل لنا وقت المحاولة (timestamp) وسنبحث عن ترويسات (headers) استجابة SIP الدقيقة التي أرسلها LiveKit.