BroadNet
SIP / VoIPالرسائل

ترويسات SIP: Via وFrom وTo وCall-ID وCSeq وContact

آخر تحديث 3 دقائق للقراءةقائم على المعايير
إجابة مباشرة

ست ترويسات إلزامية في كل طلب SIP: Via (تسجّل المسار وتحمل branch المعاملة)، وFrom وTo (الطرفان المنطقيان، مع الوسوم)، وCall-ID (معرّف مكالمة فريد)، وCSeq (رقم تسلسل إضافة إلى الطريقة)، وMax-Forwards (حدّ قفزات). ومعًا يحدّد Call-ID ووسم From ووسم To حوارًا.

§01

الترويسات الست الإلزامية

يتطلّب RFC 3261 ست ترويسات في كل طلب. تتتبّع Via المسار الذي سلكه الطلب وتخبر الاستجابات كيف تعود. وتحدّد From وTo المُنشِئ المنطقي والهدف للطلب. وCall-ID رمز فريد عالميًا تتشاركه كل رسائل مكالمة واحدة. وترتّب CSeq الطلبات ضمن الحوار وتسمّي الطريقة. وMax-Forwards عدّاد قفزات متناقص يمنع الحلقات. وإغفال أي منها يجعل الرسالة غير صالحة.

ترويسات SIP الإلزامية (RFC 3261)
الترويسةالغرض
Viaيسجّل كل قفزة؛ وتتبعه الاستجابات في طريق العودة. يحمل branch المعاملة
Fromالمُنشئ المنطقي؛ يحمل علامة
Toالمتلقي المنطقي؛ يحصل على علامة في الاستجابة
Call-IDمعرّف فريد عالميًا للمكالمة بأكملها
CSeqرقم التسلسل + الأسلوب (method)؛ يرتّب الطلبات داخل الحوار
Max-Forwardsحد القفزات (عادةً 70)؛ يمنع حلقات التوجيه
§02

Via ومعامل branch

كل وسيط يمرّر طلبًا يُدرِج ترويسة Via الخاصة به في الأعلى، بانيًا مكدّسًا تعود الاستجابات نازلةً عبره — فتُوجَّه الاستجابة بحتًا باتّباع قائمة Via، فتعيد تتبّع مسار الطلب. ويحدّد معامل branch في Via المعاملة؛ ومنذ RFC 3261 يجب أن يبدأ بالكوكي السحرية الثابتة z9hG4bK، التي تعلّم branch كفريد عالميًا ومتوافق مع RFC 3261. وتعتمد مطابقة الاستجابات وإعادات الإرسال بالمعاملة الصحيحة على هذه القيمة.

§03

الوسوم والحوارات والمعاملات

تُجمَّع هوية الحوار من ثلاث قطع: Call-ID إضافة إلى الوسم في From والوسم في To. يضبط المتصل وسم From حين يرسل INVITE؛ ويضيف المُستدعى وسم To في استجابته، وعندها يُحدَّد الحوار كاملًا للطرفين. ويحمل كل طلب لاحق داخل الحوار (re-INVITE وBYE) الثلاثة جميعًا كي يرتبط بالمكالمة الصحيحة. أما المعاملات فتُطابَق بمعامل branch والطريقة — دقّة أعلى من الحوار.

ما يحدّد الحوار مقابل المعاملة
النطاقيتم التعرف عليه بواسطة
الحوار (dialog) (المكالمة)⟦Call-ID⟧ + ⟦From-tag⟧ + ⟦To-tag⟧
المعاملة (الطلبات + الردود)branch من Via + أسلوب الطلب
ترتيب الطلبات داخل الحوار (dialog)رقم CSeq (يزداد مع كل طلب)
§04

Contact والتوجيه وترويسات شائعة أخرى

خارج الست الإلزامية، تشكّل عدة ترويسات التوجيه والقدرات. يعطي Contact عنوان URI مباشرًا يمكن الوصول إلى المرسِل عليه للطلبات المستقبلية — حرِج في REGISTER وفي الرسائل المُنشئة للحوار. ويتيح Record-Route لوسيط البقاء في مسار الإشارات طوال الحوار، ويوجّه Route الطلبات اللاحقة عبر أولئك الوسطاء. ويحدّ Expires تسجيلًا أو اشتراكًا. وتُعلِن Allow وSupported وRequire وتتفاوض على القدرات والامتدادات. وتصف Content-Type وContent-Length الجسم (عادةً SDP).

قراءة الترويسات الرئيسية لـ INVITEtext
Via: SIP/2.0/UDP pc.example.com;branch=z9hG4bK74bf9   ← transaction id
From: Alice <sip:alice@example.com>;tag=9fxced76sl    ← caller + From-tag
To:   Bob <sip:bob@biloxi.com>                        ← callee (To-tag added in reply)
Call-ID: 3848276298220188511@pc.example.com           ← whole-call id
CSeq: 1 INVITE                                        ← sequence + method
Contact: <sip:alice@pc.example.com>                   ← where to reach the caller
Max-Forwards: 70                                      ← hop limit
التعليمات

الأسئلة المتكررة

ماذا تفعل ترويسة Via في SIP؟

تسجّل Via المسار الذي يسلكه الطلب: يضيف كل وسيط Via الخاص به في الأعلى، وتعود الاستجابات عبر مكدّس Via إلى المرسِل. ويحدّد معامل branch الخاص بها المعاملة، فتُطابَق الاستجابات وإعادات الإرسال بالطلب الصحيح.

ما هو معامل branch وقيمة z9hG4bK؟

z9hG4bK الكوكي السحرية الإلزامية التي يجب أن يبدأ بها معامل branch في SIP تحت RFC 3261. تشير إلى أن قيمة branch فريدة عالميًا ومتوافقة مع RFC 3261، وهي المفتاح المستخدَم لمطابقة استجابة بمعاملتها.

كيف يُحدَّد حوار SIP؟

بمزيج Call-ID ووسم ترويسة From ووسم ترويسة To. يوفّر المتصل Call-ID ووسم From في INVITE؛ ويضيف المُستدعى وسم To في استجابته. وتحمل كل الطلبات داخل الحوار القيم الثلاث نفسها.

ما الغرض من ترويسة CSeq؟

تحمل CSeq رقم تسلسل وطريقة الطلب، مرتّبةً الطلبات ضمن حوار ومتيحةً لكل جانب كشف إعادات الإرسال والرسائل غير المرتَّبة. ويتزايد الرقم مع كل طلب جديد؛ ويجب أن تطابق الطريقة الطلب الذي تسمّيه.

ما الفرق بين Contact وTo؟

To الهدف المنطقي للطلب ولا يتغيّر عمومًا. وContact عنوان URI ملموس يمكن الوصول إلى المرسِل عليه فعلًا للطلبات اللاحقة. يوجّه الوسطاء على To/Request-URI، لكن الطلبات اللاحقة داخل الحوار تُرسَل إلى Contact.

مراجع

مواصفات المصدر

تستند هذه الصفحة إلى المعايير المنشورة. يفتح في علامة تبويب جديدة.

BNتتم صيانته بواسطة فريق الهندسة BroadNet·خدمة الرسائل عالية الجودة منذ عام 2003
ضعه على السلك

قم بالبناء باستخدام ربط SMPP حقيقي وواجهة برمجة تطبيقات REST.

اطلب الوصول التجريبي باستخدام مفاتيح اختبار حقيقية: أرسل أولاً إلى رقمك الذي تم التحقق منه، ثم انتقل إلى الإنتاج عبر أكثر من 200 دولة بمجرد الموافقة على معرّف المُرسِل ومساراته.