ست ترويسات إلزامية في كل طلب SIP: Via (تسجّل المسار وتحمل branch المعاملة)، وFrom وTo (الطرفان المنطقيان، مع الوسوم)، وCall-ID (معرّف مكالمة فريد)، وCSeq (رقم تسلسل إضافة إلى الطريقة)، وMax-Forwards (حدّ قفزات). ومعًا يحدّد Call-ID ووسم From ووسم To حوارًا.
الترويسات الست الإلزامية
يتطلّب RFC 3261 ست ترويسات في كل طلب. تتتبّع Via المسار الذي سلكه الطلب وتخبر الاستجابات كيف تعود. وتحدّد From وTo المُنشِئ المنطقي والهدف للطلب. وCall-ID رمز فريد عالميًا تتشاركه كل رسائل مكالمة واحدة. وترتّب CSeq الطلبات ضمن الحوار وتسمّي الطريقة. وMax-Forwards عدّاد قفزات متناقص يمنع الحلقات. وإغفال أي منها يجعل الرسالة غير صالحة.
| الترويسة | الغرض |
|---|---|
| Via | يسجّل كل قفزة؛ وتتبعه الاستجابات في طريق العودة. يحمل branch المعاملة |
| From | المُنشئ المنطقي؛ يحمل علامة |
| To | المتلقي المنطقي؛ يحصل على علامة في الاستجابة |
| Call-ID | معرّف فريد عالميًا للمكالمة بأكملها |
| CSeq | رقم التسلسل + الأسلوب (method)؛ يرتّب الطلبات داخل الحوار |
| Max-Forwards | حد القفزات (عادةً 70)؛ يمنع حلقات التوجيه |
Via ومعامل branch
كل وسيط يمرّر طلبًا يُدرِج ترويسة Via الخاصة به في الأعلى، بانيًا مكدّسًا تعود الاستجابات نازلةً عبره — فتُوجَّه الاستجابة بحتًا باتّباع قائمة Via، فتعيد تتبّع مسار الطلب. ويحدّد معامل branch في Via المعاملة؛ ومنذ RFC 3261 يجب أن يبدأ بالكوكي السحرية الثابتة z9hG4bK، التي تعلّم branch كفريد عالميًا ومتوافق مع RFC 3261. وتعتمد مطابقة الاستجابات وإعادات الإرسال بالمعاملة الصحيحة على هذه القيمة.
الوسوم والحوارات والمعاملات
تُجمَّع هوية الحوار من ثلاث قطع: Call-ID إضافة إلى الوسم في From والوسم في To. يضبط المتصل وسم From حين يرسل INVITE؛ ويضيف المُستدعى وسم To في استجابته، وعندها يُحدَّد الحوار كاملًا للطرفين. ويحمل كل طلب لاحق داخل الحوار (re-INVITE وBYE) الثلاثة جميعًا كي يرتبط بالمكالمة الصحيحة. أما المعاملات فتُطابَق بمعامل branch والطريقة — دقّة أعلى من الحوار.
| النطاق | يتم التعرف عليه بواسطة |
|---|---|
| الحوار (dialog) (المكالمة) | ⟦Call-ID⟧ + ⟦From-tag⟧ + ⟦To-tag⟧ |
| المعاملة (الطلبات + الردود) | branch من Via + أسلوب الطلب |
| ترتيب الطلبات داخل الحوار (dialog) | رقم CSeq (يزداد مع كل طلب) |
Contact والتوجيه وترويسات شائعة أخرى
خارج الست الإلزامية، تشكّل عدة ترويسات التوجيه والقدرات. يعطي Contact عنوان URI مباشرًا يمكن الوصول إلى المرسِل عليه للطلبات المستقبلية — حرِج في REGISTER وفي الرسائل المُنشئة للحوار. ويتيح Record-Route لوسيط البقاء في مسار الإشارات طوال الحوار، ويوجّه Route الطلبات اللاحقة عبر أولئك الوسطاء. ويحدّ Expires تسجيلًا أو اشتراكًا. وتُعلِن Allow وSupported وRequire وتتفاوض على القدرات والامتدادات. وتصف Content-Type وContent-Length الجسم (عادةً SDP).
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.
مواصفات المصدر
تستند هذه الصفحة إلى المعايير المنشورة. يفتح في علامة تبويب جديدة.