TCAP (جزء تطبيق قدرات المعاملات، ITU-T Q.771–Q.775) يحمل العمليات غير الدارية مثل MAP فوق SCCP. وله طبقتان فرعيتان: طبقة المعاملات الفرعية تربط حوارًا بين عقدتين برسائل Begin/Continue/End/Abort ومعرّفات المعاملات، وطبقة المكوّنات الفرعية تحمل العمليات الفردية كمكوّنات Invoke وReturnResult وReturnError وReject.
طبقة المعاملات الفرعية
تدير طبقة المعاملات الفرعية الحوار من الطرف إلى الطرف بين ندّي TCAP. ويخصّص كل جانب معرّف معاملة (معرّفا المعاملة المُنشِئ والوجهة) كي تبقى عدة حوارات متزامنة عبر مسار SCCP نفسه متمايزة. ويُفتَح الحوار ويُستمَرّ ويُغلَق بأربعة أنواع رسائل. ويمكن حتى ضغط تبادل عملية واحدة في زوج Begin+End واحد حين لا يلزم مزيد من التفاعل.
| رسالة | الغرض |
|---|---|
| TC-BEGIN | فتح حوار؛ يحمل Originating Transaction ID |
| TC-CONTINUE | متابعة حوار مفتوح في أي من الاتجاهين (مع وجود كلا الـ TID) |
| TC-END | أغلق الحوار، مع إمكانية نقل المكون الأخير |
| TC-ABORT | إنهاء غير طبيعي (إلغاء من المستخدم أو إلغاء من مقدم الخدمة) |
| TC-UNI | أحادي الاتجاه - لا يتطلب حوارًا منظمًا |
جزء الحوار وسياق التطبيق
يتفاوض جزء حوار اختياري على سياق التطبيق — معرّف كائن يسمّي التطبيق والإصدار الذي سيتحدّثه الطرفان، مثلًا سياق MAP shortMsgGatewayContext لتوجيه SMS أو إصدار MAP محدد لـ UpdateLocation. ويحمل أيضًا معلومات المستخدم، وعند ABORT سبب الإلغاء. والاتفاق على سياق التطبيق هو كيف يعرف المستقبِل أي عمليات ومعاملات MAP يتوقعها ضمن الحوار.
طبقة المكوّنات الفرعية
تحمل طبقة المكوّنات الفرعية العمليات الفعلية. يطلب مكوّن Invoke عملية، محدَّدة بمعرّف Invoke ورمز عملية (رمز عملية MAP)، مع وسائط العملية. ويردّ الند بـ ReturnResult (Last أو Not Last للنتائج المجزّأة)، أو ReturnError (خطأ تطبيق مثل absentSubscriber)، أو Reject (مشكلة على مستوى البروتوكول مثل عملية غير معروفة). ويمكن أن تسافر عدة مكوّنات في رسالة معاملة واحدة، ويربط معرّف Invoke كل استجابة بطلبها — تمامًا مثل sequence_number في SMPP.
| مكون | المعنى |
|---|---|
| Invoke | طلب عملية (معرف الاستدعاء + رمز العملية + الوسائط) |
| ReturnResult (Last) | النتيجة النهائية الناجحة للعملية التي تم تنفيذها |
| ReturnResult (Not Last) | جزء غير نهائي من نتيجة كبيرة |
| ReturnError | فشلت العملية بسبب خطأ في التطبيق (رمز الخطأ + المعلمة) |
| Reject | مشكلة في البروتوكول - مكون مشوه أو غير متوقع أو غير معروف |
حوار MAP فوق TCAP
استعلام MAP نموذجي حوار TCAP واحد. يرسل المُبادِر TC-BEGIN حاملًا مكوّن Invoke لعملية MAP؛ ويجيب المستجيب بـ TC-END حاملًا ReturnResult (أو ReturnError). وتستخدم المحادثات الأطول — حيث يتبادل الطرفان عدة عمليات — TC-CONTINUE في الأثناء. ومعرّفات المعاملات ومعرّفات Invoke معًا تتيح لعقدة مشغولة إبقاء آلاف الحوارات وعملياتها المعلَّقة منظَّمة.
SMSC → HLR TC-BEGIN OTID=0x1A2B
Invoke invokeID=1 opCode=sendRoutingInfoForSM(45)
{msisdn, sm-RP-PRI, serviceCentreAddress}
HLR → SMSC TC-END DTID=0x1A2B
ReturnResultLast invokeID=1
{imsi, locationInfoWithLMSI: MSC address}الأسئلة المتكررة
ما الفرق بين طبقتي المعاملات والمكوّنات الفرعيتين؟
تدير طبقة المعاملات الفرعية الحوار ككل — فتحه واستمراره وإغلاقه بـ Begin/Continue/End/Abort ومعرّفات المعاملات. وتحمل طبقة المكوّنات الفرعية العمليات الفردية داخل ذلك الحوار كمكوّنات Invoke وReturnResult وReturnError وReject.
ما هو معرّف Invoke في TCAP؟
معرّف Invoke معرّف صغير يسنده المُبادِر لكل مكوّن Invoke كي تُطابَق ReturnResult أو ReturnError المقابلة بالطلب. وهو يحدّد نطاق الاستجابات ضمن حوار واحد، شبيه بمعرّف ربط طلب/استجابة.
ما هو سياق تطبيق TCAP؟
سياق التطبيق معرّف كائن في جزء الحوار يسمّي أي تطبيق وإصدار يستخدمه الطرفان — مثلًا سياق MAP محدد لتوجيه SMS. ويخبر المستقبِل أي عمليات وصيغ معاملات يتوقعها في الحوار.
ما الفرق بين ReturnError وReject؟
تبلّغ ReturnError عن فشل على مستوى التطبيق لعملية جرى فهمها — مثلًا MAP absentSubscriber. وتبلّغ Reject عن مشكلة على مستوى البروتوكول، مثل رمز عملية غير معروف أو مكوّن سيئ البنية، ويولّدها TCAP نفسه لا التطبيق.
هل يمكن أن تحمل رسالة TCAP واحدة عدة عمليات؟
نعم. يمكن أن تحمل رسالة معاملة واحدة عدة مكوّنات، فتحزم عقدة عدة Invoke أو تعيد عدة نتائج في Begin/Continue/End واحد. ويميَّز كل منها بمعرّف Invoke، ويمكن تجزئة النتائج بـ ReturnResult Not Last.
مواصفات المصدر
تستند هذه الصفحة إلى المعايير المنشورة. يفتح في علامة تبويب جديدة.