انتقل إلى المحتوى الرئيسي

مرجع التكوين

← العودة إلى الوثائق الرئيسية

يوفر هذا المستند مرجعًا شاملاً لجميع معلمات تكوين OmniSS7.

جدول المحتويات

  1. نظرة عامة
  2. علامات وضع التشغيل
  3. معلمات وضع HLR
  4. معلمات وضع SMSc
  5. معلمات وضع STP
  6. معلمات وضع بوابة CAMEL
  7. معلمات NAT لعنوان عالمي
  8. معلمات اتصال M3UA
  9. معلمات البنية التحتية
  10. معلمات قاعدة البيانات
  11. قيم ثابتة

نظرة عامة

يتم إدارة تكوين OmniSS7 عبر config/runtime.exs. يدعم النظام أربعة أوضاع تشغيل:

  • وضع STP - نقطة نقل الإشارة للتوجيه
  • وضع HLR - سجل الموقع المنزلي لإدارة المشتركين
  • وضع SMSc - مركز الرسائل القصيرة لتسليم الرسائل
  • وضع بوابة CAMEL - بوابة CAMEL للتحكم الذكي في المكالمات

ملف التكوين: config/runtime.exs


علامات وضع التشغيل

تحكم في الميزات المفعلة.

المعلمةالنوعالافتراضيالوصفالأوضاع
map_client_enabledBooleanfalseتفعيل عميل MAP و اتصال M3UAالكل
hlr_mode_enabledBooleanfalseتفعيل ميزات HLR المحددةHLR
smsc_mode_enabledBooleanfalseتفعيل ميزات SMSc المحددةSMSc
cap_client_enabledBooleanfalseتفعيل عميل CAP لعمليات CAMELCAMEL GW
camelgw_mode_enabledBooleanfalseتفعيل ميزات بوابة CAMELCAMEL GW
ussd_gateway_enabledBooleanfalseتفعيل بوابة USSD (جسر HTTP/JSON)USSD GW

مثال:

config :omniss7,
map_client_enabled: true,
hlr_mode_enabled: true,
smsc_mode_enabled: false

معلمات وضع HLR

تكوين لوضع HLR (سجل الموقع المنزلي).

تكوين واجهة برمجة تطبيقات HLR

المعلمةالنوعالافتراضيمطلوبالوصف
hlr_api_base_urlString-نعمعنوان URL لنقطة نهاية واجهة برمجة تطبيقات HLR الخلفية
hlr_api_verify_sslBooleanfalseلاتفعيل/تعطيل التحقق من شهادة SSL لواجهة برمجة تطبيقات HLR
hlr_service_center_gt_addressString-نعمعنوان GT العالمي لـ HLR الذي يتم إرجاعه في استجابات UpdateLocation
smsc_service_center_gt_addressString-نعمعنوان GT لمركز SMSC الذي يتم إرجاعه في استجابات SRI-for-SM

مثال:

config :omniss7,
hlr_api_base_url: "https://10.180.2.140:8443",
hlr_api_verify_ssl: false,
hlr_service_center_gt_address: "55512341111",
smsc_service_center_gt_address: "55512341112"

تكوين AlertServiceCenter

عندما يقوم المشترك بتنفيذ UpdateLocation، يرسل HLR رسائل alertServiceCenter إلى GTs SMSc المكونة للإشارة إلى أن المشترك أصبح الآن قابلًا للوصول.

المعلمةالنوعالافتراضيمطلوبالوصف
hlr_smsc_alert_gtsقائمة من السلاسل[]لاقائمة عناوين GT العالمية لـ SMSc لإرسال إشعارات alertServiceCenter
hlr_alert_location_expiry_secondsعدد صحيح172800لامدة صلاحية الموقع بالثواني (الافتراضي: 48 ساعة). تعيينها إلى 0 لتعطيل انتهاء الصلاحية.

مثال:

config :omniss7,
hlr_smsc_alert_gts: [
"15559876543",
"15559876544"
],
hlr_alert_location_expiry_seconds: 172800 # 48 ساعة

خريطة MSISDN ↔ IMSI

تكوين لتوليد IMSI الاصطناعية من MSISDNs. للحصول على شرح تقني مفصل لخوارزمية التعيين، انظر خريطة MSISDN ↔ IMSI في دليل HLR.

المعلمةالنوعالافتراضيمطلوبالوصف
hlr_imsi_plmn_prefixString"50557"لابادئة PLMN (MCC+MNC) لتوليد IMSI الاصطناعية
hlr_msisdn_country_codeString"61"لابادئة رمز الدولة لتعيين IMSI→MSISDN العكسي
hlr_msisdn_nsn_offsetعدد صحيح0لاالإزاحة في MSISDN حيث يبدأ NSN (عادةً طول رمز الدولة)
hlr_msisdn_nsn_lengthعدد صحيح9لاطول رقم المشترك الوطني لاستخراجه من MSISDN

مثال (رمز دولة مكون من رقمين):

config :omniss7,
hlr_imsi_plmn_prefix: "50557", # MCC 505 + MNC 57
hlr_msisdn_country_code: "99", # مثال على رمز دولة مكون من رقمين
hlr_msisdn_nsn_offset: 2, # تخطي رمز الدولة المكون من رقمين
hlr_msisdn_nsn_length: 9 # استخراج NSN مكون من 9 أرقام

مثال (رمز دولة مكون من 3 أرقام):

config :omniss7,
hlr_imsi_plmn_prefix: "50557", # MCC 505 + MNC 57
hlr_msisdn_country_code: "999", # مثال على رمز دولة مكون من 3 أرقام
hlr_msisdn_nsn_offset: 3, # تخطي رمز الدولة المكون من 3 أرقام
hlr_msisdn_nsn_length: 8 # استخراج NSN مكون من 8 أرقام

مهم: قم بتعيين nsn_offset إلى طول رمز دولتك لاستخراج NSN بشكل صحيح. على سبيل المثال:

  • رمز الدولة "9" (رقم واحد) → nsn_offset: 1
  • رمز الدولة "99" (رقمان) → nsn_offset: 2
  • رمز الدولة "999" (3 أرقام) → nsn_offset: 3

تكوين InsertSubscriberData (ISD)

تكوين بيانات توفير المشترك المرسلة إلى VLRs أثناء UpdateLocation. للحصول على شرح مفصل لتسلسل ISD وتدفق الرسائل، انظر تكو��ن InsertSubscriberData في دليل HLR.

المعلمةالنوعالافتراضيمطلوبالوصف
isd_network_access_modeAtom:packetAndCircuitلانوع الوصول إلى الشبكة: :packetAndCircuit، :packetOnly، أو :circuitOnly
isd_send_ss_dataBooleantrueلاإرسال ISD #2 مع بيانات الخدمات التكميلية
isd_send_call_barringBooleantrueلاإرسال ISD #3 مع بيانات حظر المكالمات

مثال:

config :omniss7,
isd_network_access_mode: :packetAndCircuit,
isd_send_ss_data: true,
isd_send_call_barring: true

تكوين CAMEL

تكوين لتوجيه المكالمات الذكي القائم على CAMEL. للحصول على شرح مفصل لتكامل CAMEL ومفاتيح الخدمة، انظر تكوين CAMEL في دليل HLR.

المعلمةالنوعالافتراضيمطلوبالوصف
camel_service_keyعدد صحيح11_110لامفتاح خدمة CAMEL لاستجابات SRI
camel_trigger_detection_pointAtom:termAttemptAuthorizedلانقطة تحفيز CAMEL: :termAttemptAuthorized، :tBusy، :tNoAnswer، :tAnswer
camel_gsmscf_gt_addressString(يستخدم GT المدعو)لاعنوان GT العالمي الافتراضي لـ gsmSCF لاستجابات CAMEL (يمكن تجاوزها بواسطة GT NAT)

مثال:

config :omniss7,
camel_service_key: 11_110,
camel_trigger_detection_point: :termAttemptAuthorized

بادئات VLR المنزلية

تكوين لتمييز المشتركين المحليين عن المتجولين. للحصول على شرح مفصل لاكتشاف المنزل/التجوال وعمليات PRN، انظر معالجة المشتركين المتجولين في دليل HLR.

المعلمةالنوعالافتراضيمطلوبالوصف
home_vlr_prefixesقائمة["5551231"]لابادئات GT لـ VLR التي تعتبر "شبكة منزلية"

مثال:

config :omniss7,
home_vlr_prefixes: ["5551231", "5551234"]

معلمات وضع SMSc

تكوين لوضع مركز الرسائل القصيرة.

تكوين واجهة برمجة تطبيقات SMSc

المعلم��النوعالافتراضيمطلوبالوصف
smsc_api_base_urlString-نعمعنوان URL لنقطة نهاية واجهة برمجة تطبيقات SMSc الخلفية
smsc_api_verify_sslBooleanfalseلاتفعيل/تعطيل التحقق من شهادة SSL لواجهة برمجة تطبيقات SMSc
smsc_nameString"{hostname}_SMSc"لامعرف SMSc للتسجيل الخلفي
smsc_service_center_gt_addressString-نعمعنوان GT لمركز الخدمة

مثال:

config :omniss7,
smsc_api_base_url: "https://10.179.3.219:8443",
smsc_api_verify_ssl: false,
smsc_name: "ipsmgw",
smsc_service_center_gt_address: "55512341112"

ملاحظة: يحدث التسجيل في الواجهة الأمامية كل 5 دقائق (ثابت) عبر وحدة SMS.FrontendRegistry.

تكوين Auto-Flush

المعلمةالنوعالافتراضيمطلوبالوصف
auto_flush_enabledBooleantrueلاتفعيل معالجة قائمة انتظار الرسائل القصيرة تلقائيًا
auto_flush_intervalعدد صحيح10_000لافترة م��الجة قائمة الانتظار بالميلي ثانية
auto_flush_dest_smscString-نعماسم SMSc الوجهة للتفريغ التلقائي
auto_flush_tpsعدد صحيح10لامعدل معالجة الرسائل (المعاملات/الثانية)

مثال:

config :omniss7,
auto_flush_enabled: true,
auto_flush_interval: 10_000,
auto_flush_dest_smsc: "ipsmgw",
auto_flush_tps: 10

معلمات وضع STP

تكوين لوضع نقطة نقل الإشارة M3UA. للحصول على تكوين توجيه مفصل وأمثلة، انظر دليل تكوين STP.

خادم STP مستقل

المعلمةالنوعالافتراضيمطلوبالوصف
sctp_handler.enabledBooleanfalseلاتفعيل خادم SCTP SocketHandler المستقل
sctp_handler.local_ipTuple أو قائمة{127, 0, 0, 1}لاعنوان (عناوين) IP للاستماع للاتصالات. IP واحد: {10, 0, 0, 1} أو عدة IPs لتعدد الإرسال SCTP: [{10, 0, 0, 1}, {10, 0, 0, 2}]
sctp_handler.local_portعدد صحيح2905لاالمنفذ للاستماع
sctp_handler.point_codeعدد صحيح-نعم (إذا تم التفعيل)رمز نقطة SS7 الخاص بهذا STP

مثال (IP واحد):

config :omniss7,
sctp_handler: %{
enabled: true,
local_ip: {10, 179, 4, 10},
local_port: 2905,
point_code: 100
}

مثال (تعدد الإرسال SCTP):

config :omniss7,
sctp_handler: %{
enabled: true,
# عدة IPs للموثوقية
local_ip: [{10, 179, 4, 10}, {10, 179, 4, 11}],
local_port: 2905,
point_code: 100
}

ملاحظة: للحصول على معلومات مفصلة حول تكوين تعدد الإرسال SCTP والفوائد، انظر تعدد الإرسال SCTP في الدليل المشترك.

توجيه العنوان العالمي

المعلمةالنوعالافتراضيمطلوبالوصف
enable_gt_routingBooleanfalseلاتفعيل توجيه GT بالإضافة إلى توجيه PC

مثال:

config :omniss7,
enable_gt_routing: true

تكوين نظير M3UA/M2PA

يتم تكوين الأقران عبر قائمة m3ua_peers (يدعم كل من بروتوكولات M3UA و M2PA). للحصول على أمثلة ت��وين كاملة، انظر دليل تكوين STP و دعم بروتوكول M2PA.

معلمات الأقران الشائعة:

المعلمةالنوعالافتراضيمطلوبالوصف
peer_idعدد صحيح-نعممعرف نظير فريد
nameString-نعماسم نظير وصفي
protocolAtom:m3uaلانوع البروتوكول: :m3ua أو :m2pa
roleAtom:clientلادور الاتصال: :client، :server، :asp، أو :sgp
local_ipTuple أو قائمة-نعمعنوان (عناوين) IP المحلية للتثبيت
local_portعدد صحيح-نعمالمنفذ المحلي SCTP (M3UA: 2905، M2PA: 3565)
remote_ipTuple أو قائمة-نعمعنوان (عناوين) IP البعيدة
remote_portعدد صحيح-نعمالمنفذ البعيد SCTP
routing_contextعدد صحيح-لامعرف سياق توجيه M3UA (M3UA فقط)
point_codeعدد صحيح-نعمرمز النقطة المحلية
network_indicatorAtom:internationalلامؤ��ر الشبكة: :international أو :national
initiate_connectionBooleantrueلاما إذا كان يجب بدء اتصال SCTP

معلمات محددة لـ M2PA:

المعلمةالنوعالافتراضيمطلوبالوصف
adjacent_point_codeعدد صحيح-نعم (M2PA)رمز نقطة النظير المجاورة

إدارة المقابس:

تستخدم M2PA تلقائيًا SCTP.SocketHandler لإدارة المقابس المشتركة. تستخدم جميع الأقران M2PA المقبس المشترك، مما يسمح لمجموعة من الأقران بمشاركة نفس منفذ SCTP بكفاءة. للحصول على تكوين مفصل، انظر متطلبات مقبس M2PA.

مثال (نظير M3UA):

config :omniss7,
m3ua_peers: [
%{
peer_id: 1,
name: "HLR_East",
protocol: :m3ua,
role: :sgp,
local_ip: {10, 179, 4, 10},
local_port: 2905,
remote_ip: {10, 179, 4, 20},
remote_port: 2905,
point_code: 100,
network_indicator: :international
}
]

مثال (نظير M2PA):

config :omniss7,
sctp_handler: %{
enabled: true,
local_ip: {10, 179, 4, 10},
local_port: 3565,
point_code: 100
},
m3ua_peers: [
%{
peer_id: 2,
name: "M2PA_Link_STP_West",
protocol: :m2pa,
role: :client,
local_ip: {10, 179, 4, 10},
local_port: 3565,
remote_ip: {10, 179, 4, 30},
remote_port: 3565,
point_code: 100,
adjacent_point_code: 200
}
]

طرق نقطة كود M3UA

تكوين توجيه نقطة الكود. تحدد الطرق أي نظير يجب استخدامه للوصول إلى نقاط الكود الوجهة المحددة.

المعلمةالنوعالافتراضيمطلوبالوصف
m3ua_routesقائمة من الخرائط[]لاقائمة طرق نقطة الكود. إذا لم يتم تحديدها، يتم إنشاء الطرق تلقائيًا من نقاط كود الأقران.

تنسيق الطريق: يجب أن تكون كل طريقة في m3ua_routes خريطة تحتوي على:

  • dest_pc: نقطة الكود الوجهة (عدد صحيح)
  • peer_id: معرف النظير للتوجيه من خلاله (عدد صحيح)
  • priority: أولوية الطريق - قيمة أقل = أولوية أعلى (عدد صحيح)
  • network_indicator: مؤشر ا��شبكة (Atom): :international أو :national

مثال:

config :omniss7,
m3ua_routes: [
# طريق إلى PC 100 عبر النظير 1 (أعلى أولوية)
%{dest_pc: 100, peer_id: 1, priority: 1, network_indicator: :international},
# طريق إلى PC 200 عبر النظير 2
%{dest_pc: 200, peer_id: 2, priority: 1, network_indicator: :international},
# توازن الحمل: نفس dest_pc بأولويات مختلفة
%{dest_pc: 300, peer_id: 3, priority: 1, network_indicator: :international},
%{dest_pc: 300, peer_id: 4, priority: 2, network_indicator: :international}
]

طرق العنوان العالمي M3UA

توجيه قائم على بادئة العنوان العالمي مع تحويل معلمات SCCP المتقدمة. يتم استخدام أطول تطابق بادئة أولاً، ثم الأولوية.

المعلمةالنوعالافتراضيمطلوبالوصف
m3ua_gt_routesقائمة من الخرائط[]لاقائمة بقواعد توجيه العنوان العالمي مع تحويلات اختيارية

تنسيق الطريق: يجب أن تكون كل طريقة في m3ua_gt_routes خريطة تحتوي على:

المعلمات ال��ساسية:

  • gt_prefix: بادئة العنوان العالمي للمطابقة (String) - تطابق سلسلة فارغة مع الجميع
  • peer_id: معرف النظير للتوجيه من خلاله (عدد صحيح) - استخدم 0 لإسقاط الحركة
  • priority: أولوية الطريق - قيمة أقل = أولوية أعلى (عدد صحيح)
  • description: وصف قابل للقراءة البشرية (String)

المعلمات الاختيارية للمطابقة:

  • source_ssn: مطابقة رقم النظام الفرعي المصدر (عدد صحيح)
  • source_tt: مطابقة نوع الترجمة المصدر (عدد صحيح)
  • source_npi: مطابقة مؤشر خطة الترقيم المصدر (عدد صحيح)
  • source_nai: مطابقة مؤشر طبيعة العنوان المصدر (عدد صحيح)

المعلمات الاختيارية للتحويل:

  • dest_ssn: تحويل SSN في الرسالة المعاد توجيهها (عدد صحيح)
  • dest_tt: تحويل نوع الترجمة في الرسالة المعاد توجيهها (عدد صحيح)
  • dest_npi: تحويل مؤشر خطة الترقيم في الرسالة المعاد توجيهها (عدد صحيح)
  • dest_nai: تحويل مؤشر طبيعة العنوان في الرسالة المعاد توجيهها (عدد صحيح)

القيم الشائعة:

  • نوع الترجمة (TT): 0=غير معروف، 1=دولي، 2=وطني، 3=خاص بالشبكة
  • خطة الترقيم (NPI): 0=غير معروف، 1=ISDN(E.164)، 6=محمول(E.212)
  • طبيعة العنوان (NAI): 0=غير معروف، 1=مشترك، 3=وطني، 4=دولي
  • رقم النظام الفرعي (SSN): 6=HLR، 7=VLR، 8=MSC، 9=EIR، إلخ.

مثال:

config :omniss7,
m3ua_gt_routes: [
# توجيه بادئة أساسية
%{gt_prefix: "1234", peer_id: 1, priority: 1, description: "أرقام أمريكية"},
%{gt_prefix: "44", peer_id: 2, priority: 1, description: "أرقام بريطانية"},

# تحويل نوع الترجمة
%{
gt_prefix: "61",
peer_id: 3,
priority: 1,
description: "أرقام أسترالية: تحويل TT 0→1",
source_tt: 0, # مطابقة TT=0 (غير معروف)
dest_tt: 1 # تحويل إلى TT=1 (دولي)
},

# تحويل NPI
%{
gt_prefix: "49",
peer_id: 1,
priority: 1,
description: "أرقام ألمانية: تحويل المحمول→ISDN NPI",
source_npi: 6, # مطابقة NPI=6 (محمول/E.212)
dest_npi: 1 # تحويل إلى NPI=1 (ISDN/E.164)
},

# تحويل مركب مع توجيه SSN
%{
gt_prefix: "86",
source_ssn: 8, # مطابقة SSN=8 (MSC)
peer_id: 3,
dest_ssn: 6, # إعادة كتابة إلى SSN=6 (HLR)
priority: 1,
description: "حركة المرور الصينية: تطبيع كامل",
source_tt: 0,
dest_tt: 2,
source_npi: 6,
dest_npi: 1,
source_nai: 4,
dest_nai: 3
},

# طريق افتراضي/احتياطي
%{
gt_prefix: "",
peer_id: 1,
priority: 99,
description: "طريق احتياطي افتراضي"
}
]

معلمات وضع بوابة CAMEL

تكوين لوضع بوابة CAMEL (بروتوكول CAP).

علامات وضع CAMEL

تفعيل ميزات CAMEL/CAP (قم بتعيين cap_client_enabled: true و camelgw_mode_enabled: true في علامات وضع التشغيل).

تكوين بروتوكول CAP

المعلمةالنوعالافتراضيمطلوبالوصف
cap_versionAtom:v2لاإصدار بروتوكول CAP: :v1، :v2، :v3، أو :v4
camel_gsmscf_gt_addressString(يستخدم GT المدعو)لاعنوان GT العالمي الافتراضي لاستجابات CAMEL

تعيين إصدار CAP:

  • :v1 → OID سياق التطبيق: 0.4.0.0.1.0.50.0
  • :v2 → OID سياق التطبيق: 0.4.0.0.1.0.50.1 (الافتراضي - الأكثر دعمًا)
  • :v3 → OID سياق التطبيق: 0.4.0.0.1.21.3.4
  • :v4 → OID سياق التطبيق: 0.4.0.0.1.23.3.4

ملاحظة: يتم اكتشاف الطلبات الواردة تلقائيًا من OID سياق التطبيق الخاص بها وتتناسب الاستجابات مع إصدار الطلب.

مثال:

config :omniss7,
cap_client_enabled: true,
camelgw_mode_enabled: true,
cap_version: :v2,
camel_gsmscf_gt_address: "68988411553"

تكامل CGrateS

تكامل الشحن في الوقت الفعلي مع CGrateS للفوترة المدفوعة مسبقًا/المدفوعة لاحقًا.

المعلمةالنوعالافتراضيمطلوبالوصف
cgrates_enabledBooleanfalseلاتفعيل تكامل CGrateS
cgrates_urlString-نعم (إذا تم التفعيل)عنوان URL لنقطة نهاية JSON-RPC لـ CGrateS
cgrates_tenantString"cgrates.org"لامعرف مستأجر CGrateS
cgrates_request_typeString"*prepaid"لانوع الشحن: "*prepaid"، "*postpaid"، أو "*pseudoprepaid"
cgrates_timeoutعدد صحيح5000لامهلة طلب CGrateS بالميلي ثانية

مثال:

config :omniss7,
cgrates_enabled: true,
cgrates_url: "http://localhost:2080/jsonrpc",
cgrates_tenant: "cgrates.org",
cgrates_request_type: "*prepaid",
cgrates_timeout: 5000

اتصال CAP M3UA

تستخدم بوابة CAMEL اتصال M3UA منفصل لعمليات CAP.

المعلمةالنوعالافتراضيمطلوبالوصف
cap_client_m3uaخريطة-نعمتكوين اتصال CAP M3UA (نفس هيكل map_client_m3ua، بما في ذلك المعلمات الاختيارية opc و dpc)

مثال:

config :omniss7,
cap_client_m3ua: %{
mode: "ASP",
callback: {CapClient, :handle_payload, []},
process_name: :camelgw_client_asp,
local_ip: {10, 5, 198, 200},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 4,
opc: 5013, # رمز النقطة الأصلية
dpc: 5011 # رمز النقطة الوجهة
}

معلمات NAT لعنوان عالمي

يسمح NAT لعنوان عالمي بوجود GTs استجابة مختلفة بناءً على بادئة الطرف المتصل، بادئة الطرف المدعو، أو كليهما. يتم مطابقة القواعد حسب الوزن (الأقل = أولوية أعلى)، ثم خصوصية البادئة (البادئة المجمعة الأطول = أكثر تحديدًا). للحصول على شرح مفصل وأمثلة، انظر دليل NAT لعنوان عالمي.

المعلمةالنوعالافتراضيمطلوبالوصف
gt_nat_enabledBooleanfalseلاتفعيل/تعطيل ميزة NAT لعنوان GT
gt_nat_rulesقائمة من الخرائط[]نعم (إذا تم التفعيل)قائمة بقواعد NAT لعنوان GT مع مطابقة البادئة

تنسيق القاعدة: يجب أن تكون كل قاعدة في gt_nat_rules خريطة تحتوي على:

  • calling_prefix: بادئة سلسلة لمطابقة GT المتصل (اختياري)
  • called_prefix: بادئة سلسلة لمطابقة GT المدعو (اختياري)
  • weight: أولوية عدد صحيح (الأقل = أولوية أعلى) - الافتراضي: 100
  • response_gt: عنوان GT لاستخدامه في الاستجابات (مطلوب)

أولوية المطابقة:

  1. يتم مطابقة القواعد حسب weight (قيمة أقل = أولوية أعلى)
  2. إذا كانت الأوزان متساوية، فإن طول البادئة المجمعة الأطول يفوز
  3. يمكن استخدام كل من calling_prefix و called_prefix معًا لمطابقة دقيقة

مثال:

config :omniss7,
gt_nat_enabled: true,
gt_nat_rules: [
# أولوية عالية: مطابقة كل من المتصل من "8772" والمدعو إلى "555"
%{calling_prefix: "8772", called_prefix: "555", weight: 1, response_gt: "111111"},

# أولوية متوسطة: مطابقة فقط المتصل من "8772"
%{calling_prefix: "8772", weight: 10, response_gt: "68988411553"},

# أولوية متوسطة: مطابقة فقط المدعو إلى "555"
%{called_prefix: "555", weight: 10, response_gt: "68988411554"},

# مطابقة فقط المتصل من "8773"
%{calling_prefix: "8773", weight: 10, response_gt: "68988411554"},

# قاعدة احتياطية عامة (تطابق كل شيء، أعلى وزن)
%{weight: 100, response_gt: "68988411555"}
]

انظر أ��ضًا: دليل NAT لعنوان GT للاستخدام المفصل والأمثلة.


معلمات اتصال M3UA

تكوين اتصال M3UA لوضع عميل MAP. للحصول على استخدام مفصل وأمثلة، انظر دليل عميل MAP.

المعلمةالنوعالافتراضيمطلوبالوصف
map_client_m3ua.modeString-نعموضع الاتصال: "ASP" أو "SGP"
map_client_m3ua.callbackTuple-نعموحدة/وظيفة الاستدعاء: {MapClient, :handle_payload, []}
map_client_m3ua.process_nameAtom-نعماسم العملية للتسجيل
map_client_m3ua.local_ipTuple أو قائمة-نعمعنوان (عناوين) IP المحلية للتثبيت. واحد: {10, 0, 0, 1} أو عدة: [{10, 0, 0, 1}, {10, 0, 0, 2}]
map_client_m3ua.local_portعدد صحيح2905نعمالمنفذ المحلي SCTP
map_client_m3ua.remote_ipTuple أو قائمة-نعمعنوان (عناوين) IP البعيدة لـ STP/SGW. واحد: {10, 0, 0, 10} أو عدة: [{10, 0, 0, 10}, {10, 0, 0, 11}]
map_client_m3ua.remote_portعدد صحيح2905نعمالمنفذ البعيد SCTP
map_client_m3ua.routing_contextعدد صحيح-نعممعرف سياق توجيه M3UA
map_client_m3ua.opcعدد صحيح5013لارمز النقطة الأصلية لطلبات MAP الصادرة. إذا لم يتم تعيينه، فإنه يتجاوز القيمة القديمة 5013.
map_client_m3ua.dpcعدد صحيح5011لارمز النقطة الوجهة لطلبات MAP الصادرة. إذا لم يتم تعيينه، فإنه يتجاوز القيمة القديمة 5011.
map_client_m3ua.receive_watchdogBooleantrueلاتفعيل مراقب الاستقبال ASP. عندما تكون true، يتم إنهاء الاتصال إذا لم يتم استلام بيانات SCTP خلال receive_watchdog_idle ثوانٍ. قم بتعيينها إلى false لتعطيلها تمامًا. انظر مراقب الاستقبال أدناه.
map_client_m3ua.receive_watchdog_idleعدد صحيح15لاعتبة الخمول بالثواني. إذا لم يتم استلام حمولة SCTP خلال هذه النافذة، يقوم مراقب الاستقبال بإنهاء الاتصال ويحفز إعادة الاتصال. ينطبق فقط عندما تكون receive_watchdog: true.

مثال (IP واحد):

config :omniss7,
map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :hlr_client_asp,
local_ip: {10, 179, 4, 11},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 1,
opc: 5013, # رمز النقطة الأصلية (2-114-5)
dpc: 5011 # رمز النقطة الوجهة (2-114-3)
}

تنسيق رمز النقطة: يتم تحويل رموز النقاط في تنسيق X-Y-Z إلى أعداد صحيحة كالتالي: (X * 2048) + (Y * 8) + Z. على سبيل المثال، 2-114-5 = (2 * 2048) + (114 * 8) + 5 = 5013.

مثال (تعدد الإرسال SCTP):

config :omniss7,
map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :hlr_client_asp,
# عدة IPs محلية للموثوقية
local_ip: [{10, 179, 4, 11}, {10, 179, 4, 12}],
local_port: 2905,
# عدة IPs بعيدة للموثوقية STP
remote_ip: [{10, 179, 4, 10}, {10, 179, 4, 20}],
remote_port: 2905,
routing_context: 1
}

ملاحظة: للحصول على معلومات مفصلة حول تكوين تعدد الإرسال SCTP والفوائد، انظر تعدد الإرسال SCTP في الدليل المشترك.

مراقب الاستقبال

يقوم مراقب الاستقبال بمراقبة اتصالات SCTP بحثًا عن المقابس الزومبي - الجمعيات التي تبقى في حالة ESTABLISHED على مستوى نظام التشغيل ولكن الطرف البعيد قد توقف عن إرسال البيانات بصمت. بدون المراقب، قد لا يتم اكتشاف الاتصال الميت حتى تفشل محاولة الإرسال التالية.

أي حمولة SCTP مستلمة تعيد تعيين مؤقت الخمول، بما في ذلك استجابات M3UA BEAT، ورسائل NOTIFY، وبيانات التطبيق. وفقًا لـ RFC 4666 §3.8، فإن M3UA BEAT اختياري - تقوم SCTP بالفعل بإجراء نبضات قلب إلزامية على مستوى طبقة النقل. في البيئات التي لا يرسل فيها SG البعيد حركة مرور دورية على مستوى التطبيق (ولا يرسل M3UA BEATs)، فإن تعطيل المراقب يتجنب دورات إعادة الاتصال غير الضرورية.

| المعلمة | النوع | الافتراضي | الوصف | |---------|------|-----------|-------|-------| | receive_watchdog | Boolean | true | تفعيل أو تعطيل مراقب الاستقبال. عندما تكون false، لا يتم إنهاء الاتصالات الخاملة أبدًا بواسطة المراقب؛ لا يزال نبض القلب على مستوى طبقة النقل SCTP يعمل بشكل طبيعي. | | receive_watchdog_idle | عدد صحيح | 15 | ثوانٍ من عدم النشاط قبل أن يقوم المراقب بإنهاء الاتصال وتحفيز إعادة الاتصال. ليس له تأثير عندما تكون receive_watchdog: false. |

مثال - تعطيل المراقب لعميل ASP:

config :omniss7,
map_client_m3ua: %{
mode: "ASP",
local_ip: {10, 179, 4, 11},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 1,
receive_watchdog: false # تعطيل - لا يرسل SG البعيد حركة مرور دورية
}

مثال - تخصيص عتبة الخمول:

config :omniss7,
map_client_m3ua: %{
mode: "ASP",
local_ip: {10, 179, 4, 11},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 1,
receive_watchdog: true,
receive_watchdog_idle: 30 # إنهاء بعد 30 ثانية من الصمت (الافتراضي: 15 ثانية)
}

معلمات البنية التحتية

تكوين لمكونات بنية النظام بما في ذلك الترخيص، واجهة الويب، خادم API، والتسجيل.

تكوين الترخيص

المعلمةالنوعالافتراضيمطلوبالوصف
license_client.license_server_api_urlsقائمة من السلاسل-نعمعناوين URL لنقاط نهاية واجهة برمجة تطبيقات خادم الترخيص
license_client.licenseeString-نعماسم المنظمة المرخصة

مثال:

config :license_client,
license_server_api_urls: ["https://localhost:10443/api"],
licensee: "Omnitouch Network Services Pty. Ltd."

واجهة التحكم في لوحة التحكم

المعلمةالنوعالافتراضيمطلوبالوصف
control_panel.parent_application_readable_nameString"OmniSS7 Stack"لااسم التطبيق المعروض في واجهة الويب
control_panel.use_additional_pagesقائمة من الأزواج[]لاصفحات واجهة الويب الإضافية المعروضة
control_panel.page_orderقائمة من السلاسل[]لاترتيب الصفحات في قائمة التنقل
ControlPanelWeb.Endpoint.url.hostString"0.0.0.0"لااسم المضيف لواجهة الويب
ControlPanelWeb.Endpoint.https.portعدد صحيح8087لامنفذ HTTPS لواجهة الويب
ControlPanelWeb.Endpoint.https.keyfileString"priv/cert/omnitouch.pem"لامسار ملف المفتاح الخاص TLS
ControlPanelWeb.Endpoint.https.certfileString"priv/cert/omnitouch.crt"لامسار ملف شهادة TLS

مثال:

config :control_panel, ControlPanelWeb.Endpoint,
url: [host: "0.0.0.0", path: "/"],
https: [
port: 8087,
keyfile: "priv/cert/omnitouch.pem",
certfile: "priv/cert/omnitouch.crt"
],
parent_application_readable_name: "OmniSS7 Stack STP"

config :control_panel,
use_additional_pages: [
{SS7.Web.EventsLive, "/events", "أحداث SS7"},
{SS7.Web.M3UAStatusLive, "/m3ua", "الأقران"}
],
page_order: ["/events", "/m3ua", "/application", "/configuration"]

خادم API REST

المعلمةالنوعالافتراضيمطلوبالوصف
start_http_serverBooleantrueلاتفعيل/تعطيل خادم HTTP (المنفذ 8080)
api_ex.api.portعدد صحيح8445لامنفذ خادم API
api_ex.api.listen_ipString"0.0.0.0"لاعنوان IP الذي يستمع له خادم API
api_ex.api.product_nameString"OmniSS7"لااسم المنتج لواجهة برمجة التطبيقات
api_ex.api.titleString"API - OmniSS7"لاعنوان واجهة برمجة التطبيقات لواجهة Swagger
api_ex.api.hostnameString"localhost"لااسم المضيف لواجهة برمجة التطبيقات
api_ex.api.enable_tlsBooleantrueلاتفعيل TLS لخادم API
api_ex.api.tls_cert_pathString"priv/cert/omnitouch.crt"لامسار شهادة TLS لخادم API
api_ex.api.tls_key_pathString"priv/cert/omnitouch.pem"لامسار المفتاح الخاص TLS لخادم API

مثال:

config :omniss7,
start_http_server: true

config :api_ex,
api: %{
port: 8445,
listen_ip: "0.0.0.0",
product_name: "OmniSS7",
title: "API - OmniSS7",
hostname: "localhost",
enable_tls: true,
tls_cert_path: "priv/cert/omnitouch.crt",
tls_key_path: "priv/cert/omnitouch.pem"
}

نقاط نهاية API:

  • واجهة برمجة التطبيقات REST: https://[server-ip]:8445/api/*
  • واجهة Swagger: http://[server-ip]:8080/swagger
  • مقاييس Prometheus: http://[server-ip]:8080/metrics

تكوين التسجيل

المعلمةالنوعالافتراضيمطلوبالوصف
logger.levelAtom:debugلامستوى التسجيل: :debug، :info، :warning، :error
logger.backendsقائمة[:console]لاواجهات تسجيل (تشمل SS7.Web.LoggerBackend لواجهة الويب)
logger.default_formatter.formatString-لاسلسلة تنسيق رسالة التسجيل
logger.default_formatter.metadataقائمة[]لاحقول البيانات الوصفية التي يجب تضمينها في السجلات
logger.default_formatter.truncateAtom/عدد صحيح:infinityلاطول تقليم رسالة التسجيل

مثال:

config :logger,
level: :debug,
backends: [:console, SS7.Web.LoggerBackend]

config :logger, :default_formatter,
format: "[$date] [$time] [$level] $message\n",
metadata: [:error_code, :file],
truncate: :infinity

معلمات قاعدة البيانات

تكوين لاستمرارية قاعدة بيانات Mnesia.

المعلمةالنوعالافتراضيمطلوبالوصف
mnesia_storage_typeAtom:disc_copiesلانوع تخزين Mnesia: :disc_copies أو :ram_copies

مثال:

config :omniss7,
mnesia_storage_type: :disc_copies # الإنتاج
# mnesia_storage_type: :ram_copies # للاختبار فقط

أنواع التخزين:

  • :disc_copies - تخزين دائم على القرص (يستمر بعد إعادة التشغيل) - موصى به للإنتاج
  • :ram_copies - فقط في الذاكرة (يفقد عند إعادة التشغيل) - للاختبار فقط

جداول Mnesia:

  • m3ua_peer - اتصالات نظير M3UA
  • m3ua_route - طرق نقطة الكود
  • m3ua_gt_route - طرق العنوان العالمي

الموقع: دليل Mnesia.{node_name}/


قيم ثابتة

القيم التالية مثبتة في الشيفرة المصدرية ولا يمكن تغييرها عبر التكوين.

المهلات

القيمةالتأثيرالحل
مهلة طلب MAP: 10 ثوانٍجميع عمليات MAP تنتهي بعد 10 ثوانٍتعديل الشيفرة المصدرية
مهلة ISD: 10 ثوانٍكل رسالة ISD تنتهي بعد 10 ثوانٍتعديل الشيفرة المصدرية

خادم HTTP

القيمةالتأثيرالحل
HTTP IP: 0.0.0.0يستمع خادم المقاييس/Swagger على جميع الواجهاتتعديل الشيفرة المصدرية
HTTP Port: 8080يعمل نقطة نهاية المقاييس/Swagger على المنفذ 8080تعديل الشيفرة المصدرية

فترات التسجيل

القيمةالتأثيرالحل
التسجيل في الواجهة الأمامية: 5 دقائ��يسجل SMSc مع الخلفية كل 5 دقائقتعديل الشيفرة المصدرية

تحديث تلقائي لواجهة الويب

الصفحةالفاصل الزمني
إدارة التوجيه5 ثوانٍ
المشتركين النشطين2 ثانيتين

أمثلة التكوين

تكوين HLR الحد الأدنى

config :omniss7,
map_client_enabled: true,
hlr_mode_enabled: true,
smsc_mode_enabled: false,

hlr_api_base_url: "https://10.180.2.140:8443",
hlr_service_center_gt_address: "55512341111",
smsc_service_center_gt_address: "55512341112",

map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :hlr_client_asp,
local_ip: {10, 179, 4, 11},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 1
}

تكوين SMSc الحد الأدنى

config :omniss7,
map_client_enabled: true,
hlr_mode_enabled: false,
smsc_mode_enabled: true,

smsc_api_base_url: "https://10.179.3.219:8443",
smsc_name: "ipsmgw",
smsc_service_center_gt_address: "55512341112",

auto_flush_enabled: true,
auto_flush_interval: 10_000,
auto_flush_dest_smsc: "ipsmgw",
auto_flush_tps: 10,

map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :stp_client_asp,
local_ip: {10, 179, 4, 12},
local_port: 2905,
remote_ip: {10, 179, 4, 10},
remote_port: 2905,
routing_context: 1
}

STP مع خادم مستقل

config :omniss7,
map_client_enabled: true,
hlr_mode_enabled: false,
smsc_mode_enabled: false,

enable_gt_routing: true,
mnesia_storage_type: :disc_copies,

sctp_handler: %{
enabled: true,
local_ip: {10, 179, 4, 10},
local_port: 2905,
point_code: 100
},

map_client_m3ua: %{
mode: "ASP",
callback: {MapClient, :handle_payload, []},
process_name: :stp_client_asp,
local_ip: {10, 179, 4, 10},
local_port: 2906,
remote_ip: {10, 179, 4, 11},
remote_port: 2905,
routing_context: 1
}

ملخص

إجمالي معلمات التكوين: 75+

حسب الفئة:

  • وضع التشغيل: 5 معلمات
  • وضع HLR: 17 معلمة
  • وضع SMSc: 8 معلمات
  • وضع STP: 5+ معلمات (بالإضافة إلى قوائم m3ua_peers، m3ua_routes، m3ua_gt_routes)
  • وضع بوابة CAMEL: 14 معلمة
  • NAT لعنوان عالمي: 2 معلمات
  • اتصال M3UA: 8 معلمات
  • البنية التحتية (الترخيص، الويب، API، التسجيل): 23 معلمة
  • قاعدة البيانات: 1 معلمة

المعلمات المطلوبة حسب الوضع:

وضع HLR:

  • hlr_api_base_url
  • hlr_service_center_gt_address
  • smsc_service_center_gt_address
  • جميع معلمات map_client_m3ua.* (8)

وضع SMSc:

  • smsc_api_base_url
  • smsc_service_center_gt_address
  • auto_flush_dest_smsc (إذا تم تفعيل التفريغ التلقائي)
  • جميع معلمات map_client_m3ua.* (8)

وضع STP:

  • sctp_handler.point_code (إذا تم تفعيل معالج SCTP)
  • sctp_handler.local_ip
  • sctp_handler.local_port

وضع بوابة CAMEL:

  • cgrates_url (إذا تم تفعيل CGrateS)
  • جميع معلمات cap_client_m3ua.* (8)

البنية التحتية:

  • license_client.license_server_api_urls
  • license_client.licensee

الوثائق ذات الصلة