BroadNet
SIP / VoIPالطلبات

طرق SIP والطلبات

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

طلبات SIP تُسمّى بطريقة. يعرّف RFC 3261 ستًا: INVITE (بدء جلسة)، وACK (تأكيد استجابة INVITE نهائية)، وBYE (إنهاء جلسة)، وCANCEL (إلغاء INVITE معلَّقة)، وREGISTER (تسجيل موقع)، وOPTIONS (الاستعلام عن القدرات). وتضيف مواصفات الامتداد INFO وPRACK وUPDATE وSUBSCRIBE/NOTIFY وREFER وMESSAGE وPUBLISH.

§01

الطرق الست الأساسية

يعرّف RFC 3261 مجموعة الطلبات الأساسية التي يدعمها كل تنفيذ SIP. تُنشئ INVITE جلسة وتحمل عرض SDP الأولي. وتُقرّ ACK استجابة نهائية لـ INVITE — وهي غير معتادة إذ إنها طلب يُكمِل المصافحة الثلاثية لـ INVITE بدل أن يتوقّع استجابته الخاصة. وتُنهي BYE جلسة قائمة. وتُجهِض CANCEL عملية INVITE لم تتلقَّ استجابة نهائية بعد (مكالمة ما زالت ترنّ). وتخبر REGISTER المسجّل حيث يكون المستخدم قابلًا للوصول. وتستعلم OPTIONS عن قدرات ند وتُعاد استخدامها على نطاق واسع كنبضة إبقاء حياة خفيفة.

طرق SIP الأساسية (RFC 3261)
الطريقةالغرضملاحظة
INVITEبدء جلسةيحمل عرض SDP؛ وينشئ حوارًا (dialog)
ACKتأكيد الاستجابة النهائية لطلب INVITEيُكمل مصافحة INVITE الثلاثية
BYEإنهاء جلسة قائمةيرسله أي من الطرفين ضمن الحوار (dialog)
CANCELإلغاء طلب INVITE معلّقفقط قبل الاستجابة النهائية (ما زال يرنّ)
REGISTERتسجيل موقع Contact للمستخدميُجدَّد دوريًا (Expires)
OPTIONSالاستعلام عن القدراتيُعاد استخدامها عادةً كـ keepalive / فحص سلامة
§02

لماذا ACK وCANCEL خاصتان

طريقتان أساسيتان تتصرّفان خلاف الباقي. ليست ACK زوج طلب/استجابة عاديًا: تُقرّ الاستجابة النهائية لـ INVITE ولا تحمل استجابة خاصة بها. ولاستجابة 2xx تُرسَل من الطرف إلى الطرف كمعاملة منفصلة؛ ولفشل غير 2xx تُولَّد قفزةً بقفزة ضمن معاملة INVITE. ولا معنى لـ CANCEL إلا ما دامت INVITE معلَّقة — وحالما تصل استجابة نهائية، استخدم BYE بدلًا منها. وإتقان هاتين الطريقتين هو لبّ آلة حالات SIP الصحيحة.

§03

طرق الامتداد الشائعة

خارج الطرق الست الأساسية، تتولى مجموعة من طرق الامتداد الرسائل والأحداث والتحديثات أثناء المكالمة. تنفّذ SUBSCRIBE/NOTIFY إطار الأحداث (الحضور، مؤشّر انتظار الرسائل، حالة الحوار). وتُطلِق REFER تحويل المكالمة. وتحمل MESSAGE الرسائل الفورية / SMS-فوق-SIP. وتعدّل UPDATE جلسة قبل اكتمال إنشائها (الوسائط المبكّرة). وتُقرّ PRACK الاستجابات المؤقتة بموثوقية. وتحمل INFO معلومات أثناء الجلسة مثل DTMF. وتقدّم PUBLISH حالة حدث إلى خادم.

طرق امتداد SIP الشائعة
الطريقةRFCالغرض
INFORFC 6086معلومات منتصف الجلسة (مثل أرقام DTMF)
PRACKRFC 3262تأكيد موثوق للردود المؤقتة (1xx)
UPDATERFC 3311تعديل جلسة قبل الرد النهائي (الوسائط المبكرة)
SUBSCRIBE / NOTIFYRFC 6665الاشتراك في الأحداث والإشعار بها (الحضور، MWI)
REFERRFC 3515طلب التحويل إلى طرف آخر
MESSAGERFC 3428الرسائل الفورية / المراسلة بنمط الصفحة (page-mode)
PUBLISHRFC 3903إرسال حالة الحدث (مثل حالة التواجد) إلى الخادم
§04

سطر طلب على السلك

يبدأ طلب SIP بسطر طلب: الطريقة، وRequest-URI (الوجهة الحالية)، وإصدار SIP. تتبعه الترويسات وجسم اختياري. والمثال بداية INVITE نحو مُستدعى؛ ويعيد الوسطاء كتابة Request-URI بينما يُوجَّه الطلب، وتبقى ترويسة To ثابتة كالهدف المنطقي.

بداية طلب INVITEtext
INVITE sip:bob@example.com SIP/2.0
Via: SIP/2.0/UDP host.example.net;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Bob <sip:bob@example.com>
From: Alice <sip:alice@example.net>;tag=1928301774
Call-ID: a84b4c76e66710@host.example.net
CSeq: 314159 INVITE
Contact: <sip:alice@host.example.net>
Content-Type: application/sdp
Content-Length: 142
التعليمات

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

ما طرق SIP الست الأساسية؟

INVITE (بدء جلسة)، وACK (تأكيد استجابة INVITE نهائية)، وBYE (إنهاء جلسة)، وCANCEL (إلغاء INVITE معلَّقة)، وREGISTER (تسجيل موقع مستخدم)، وOPTIONS (الاستعلام عن القدرات). وهذه محدَّدة في RFC 3261؛ وكل ما عداها امتداد.

ما الفرق بين CANCEL وBYE؟

تُجهِض CANCEL عملية INVITE لم تتلقَّ استجابة نهائية بعد — مكالمة ما زالت ترنّ. وتُنهي BYE جلسة قائمة سلفًا. استخدم CANCEL قبل الرد وBYE بعده؛ واستخدام الخاطئة يترك آلة الحالات غير متسقة.

لماذا لا تحصل ACK على استجابة؟

توجد ACK لإقرار الاستجابة النهائية لـ INVITE وإكمال المصافحة الثلاثية، فعُرِّفت بألا تحصل على استجابة خاصة بها. ولاستجابة 2xx فهي معاملة منفصلة من الطرف إلى الطرف؛ ولفشل تُولَّد قفزةً بقفزة داخل معاملة INVITE.

كيف تُرسَل نغمات DTMF في SIP؟

أشيعها كرزم حدث هاتفي RTP (RFC 4733) في تدفق الوسائط، وبديلًا عبر رسائل SIP INFO تحمل الأرقام في مسار الإشارات. ويُفضَّل حدث RTP الهاتفي لأنه يبقى متزامنًا مع الصوت.

أي طريقة تحوّل مكالمة؟

REFER (RFC 3515). تطلب من المستلِم بدء طلب جديد (عادةً INVITE) إلى طرف ثالث مسمًّى في ترويسة Refer-To، منفّذةً تحويل المكالمة. ثم تبلّغ رسائل NOTIFY عن تقدّم المكالمة المُحالة إلى المحوِّل.

مراجع

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

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

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

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

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