مرجع التكوين
يوفر هذا المستند مرجعًا شاملاً لجميع معلمات تكوين OmniSS7.
جدول المحتويات
- نظرة عامة
- علامات وضع التشغيل
- معلمات وضع HLR
- معلمات وضع SMSc
- معلمات وضع STP
- معلمات وضع بوابة CAMEL
- معلمات NAT لعنوان عالمي
- معلمات اتصال M3UA
- معلمات البنية التحتية
- معلمات قاعدة البيانات
- قيم ثابتة
نظرة عامة
يتم إدارة تكوين OmniSS7 عبر config/runtime.exs. يدعم النظام أربعة أوضاع تشغيل:
- وضع STP - نقطة نقل الإشارة للتوجيه
- وضع HLR - سجل الموقع المنزلي لإدارة المشتركين
- وضع SMSc - مركز الرسائل القصيرة لتسليم الرسائل
- وضع بوابة CAMEL - بوابة CAMEL للتحكم الذكي في المكالمات
ملف التكوين: config/runtime.exs
علامات وضع التشغيل
تحكم في الميزات المفعلة.
| المعلمة | النوع | الافتراضي | الوصف | الأوضاع |
|---|---|---|---|---|
map_client_enabled | Boolean | false | تفعيل عميل MAP و اتصال M3UA | الكل |
hlr_mode_enabled | Boolean | false | تفعيل ميزات HLR المحددة | HLR |
smsc_mode_enabled | Boolean | false | تفعيل ميزات SMSc المحددة | SMSc |
cap_client_enabled | Boolean | false | تفعيل عميل CAP لعمليات CAMEL | CAMEL GW |
camelgw_mode_enabled | Boolean | false | تفعيل ميزات بوابة CAMEL | CAMEL GW |
ussd_gateway_enabled | Boolean | false | تفعيل بوابة 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_url | String | - | نعم | عنوان URL لنقطة نهاية واجهة برمجة تطبيقات HLR الخلفية |
hlr_api_verify_ssl | Boolean | false | لا | تفعيل/تعطيل التحقق من شهادة SSL لواجهة برمجة تطبيقات HLR |
hlr_service_center_gt_address | String | - | نعم | عنوان GT العالمي لـ HLR الذي يتم إرجاعه في استجابات UpdateLocation |
smsc_service_center_gt_address | String | - | نعم | عنوان 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_prefix | String | "50557" | لا | بادئة PLMN (MCC+MNC) لتوليد IMSI الاصطناعية |
hlr_msisdn_country_code | String | "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_mode | Atom | :packetAndCircuit | لا | نوع الوصول إلى الشبكة: :packetAndCircuit، :packetOnly، أو :circuitOnly |
isd_send_ss_data | Boolean | true | لا | إرسال ISD #2 مع بيانات الخدمات التكميلية |
isd_send_call_barring | Boolean | true | لا | إرسال 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_point | Atom | :termAttemptAuthorized | لا | نقطة تحفيز CAMEL: :termAttemptAuthorized، :tBusy، :tNoAnswer، :tAnswer |
camel_gsmscf_gt_address | String | (يستخدم 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_url | String | - | نعم | عنوان URL لنقطة نهاية واجهة برمجة تطبيقات SMSc الخلفية |
smsc_api_verify_ssl | Boolean | false | لا | تفعيل/تعطيل التحقق من شهادة SSL لواجهة برمجة تطبيقات SMSc |
smsc_name | String | "{hostname}_SMSc" | لا | معرف SMSc للتسجيل الخلفي |
smsc_service_center_gt_address | String | - | نعم | عنوان 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_enabled | Boolean | true | لا | تفعيل معالجة قائمة انتظار الرسائل القصيرة تلقائيًا |
auto_flush_interval | عدد صحيح | 10_000 | لا | فترة م��الجة قائمة الانتظار بالميلي ثانية |
auto_flush_dest_smsc | String | - | نعم | اسم 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.enabled | Boolean | false | لا | تفعيل خادم SCTP SocketHandler المستقل |
sctp_handler.local_ip | Tuple أو قائمة | {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_routing | Boolean | false | لا | تفعيل توجيه GT بالإضافة إلى توجيه PC |
مثال:
config :omniss7,
enable_gt_routing: true
تكوين نظير M3UA/M2PA
يتم تكوين الأقران عبر قائمة m3ua_peers (يدعم كل من بروتوكولات M3UA و M2PA). للحصول على أمثلة ت��وين كاملة، انظر دليل تكوين STP و دعم بروتوكول M2PA.
معلمات الأقران الشائعة:
| المعلمة | النوع | الافتراضي | مطلوب | الوصف |
|---|---|---|---|---|
peer_id | عدد صحيح | - | نعم | معرف نظير فريد |
name | String | - | نعم | اسم نظير وصفي |
protocol | Atom | :m3ua | لا | نوع البروتوكول: :m3ua أو :m2pa |
role | Atom | :client | لا | دور الاتصال: :client، :server، :asp، أو :sgp |
local_ip | Tuple أو قائمة | - | نعم | عنوان (عناوين) IP المحلية للتثبيت |
local_port | عدد صحيح | - | نعم | المنفذ المحلي SCTP (M3UA: 2905، M2PA: 3565) |
remote_ip | Tuple أو قائمة | - | نعم | عنوان (عناوين) IP البعيدة |
remote_port | عدد صحيح | - | نعم | المنفذ البعيد SCTP |
routing_context | عدد صحيح | - | لا | معرف سياق توجيه M3UA (M3UA فقط) |
point_code | عدد صحيح | - | نعم | رمز النقطة المحلية |
network_indicator | Atom | :international | لا | مؤ��ر الشبكة: :international أو :national |
initiate_connection | Boolean | true | لا | ما إذا كان يجب بدء اتصال 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_version | Atom | :v2 | لا | إصدار بروتوكول CAP: :v1، :v2، :v3، أو :v4 |
camel_gsmscf_gt_address | String | (يستخدم 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_enabled | Boolean | false | لا | تفعيل تكامل CGrateS |
cgrates_url | String | - | نعم (إذا تم التفعيل) | عنوان URL لنقطة نهاية JSON-RPC لـ CGrateS |
cgrates_tenant | String | "cgrates.org" | لا | معرف مستأجر CGrateS |
cgrates_request_type | String | "*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_enabled | Boolean | false | لا | تفعيل/تعطيل ميزة NAT لعنوان GT |
gt_nat_rules | قائمة من الخرائط | [] | نعم (إذا تم التفعيل) | قائمة بقواعد NAT لعنوان GT مع مطابقة البادئة |
تنسيق القاعدة:
يجب أن تكون كل قاعدة في gt_nat_rules خريطة تحتوي على:
calling_prefix: بادئة سلسلة لمطابقة GT المتصل (اختياري)called_prefix: بادئة سلسلة لمطابقة GT المدعو (اختياري)weight: أولوية عدد صحيح (الأقل = أولوية أعلى) - الافتراضي: 100response_gt: عنوان GT لاستخدامه في الاستجابات (مطلوب)
أولوية المطابقة:
- يتم مطابقة القواعد حسب
weight(قيمة أقل = أولوية أعلى) - إذا كانت الأوزان متساوية، فإن طول البادئة المجمعة الأطول يفوز
- يمكن استخدام كل من
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.mode | String | - | نعم | وضع الاتصال: "ASP" أو "SGP" |
map_client_m3ua.callback | Tuple | - | نعم | وحدة/وظيفة الاستدعاء: {MapClient, :handle_payload, []} |
map_client_m3ua.process_name | Atom | - | نعم | اسم العملية للتسجيل |
map_client_m3ua.local_ip | Tuple أو قائمة | - | نعم | عنوان (عناوين) IP المحلية للتثبيت. واحد: {10, 0, 0, 1} أو عدة: [{10, 0, 0, 1}, {10, 0, 0, 2}] |
map_client_m3ua.local_port | عدد صحيح | 2905 | نعم | المنفذ المحلي SCTP |
map_client_m3ua.remote_ip | Tuple أو قائمة | - | نعم | عنوان (عناوين) 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_watchdog | Boolean | true | لا | تفعيل مراقب الاستقبال 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.licensee | String | - | نعم | اسم المنظمة المرخصة |
مثال:
config :license_client,
license_server_api_urls: ["https://localhost:10443/api"],
licensee: "Omnitouch Network Services Pty. Ltd."
واجهة التحكم في لوحة التحكم
| المعلمة | النوع | الافتراضي | مطلوب | الوصف |
|---|---|---|---|---|
control_panel.parent_application_readable_name | String | "OmniSS7 Stack" | لا | اسم التطبيق المعروض في واجهة الويب |
control_panel.use_additional_pages | قائمة من الأزواج | [] | لا | صفحات واجهة الويب الإضافية المعروضة |
control_panel.page_order | قائمة من السلاسل | [] | لا | ترتيب الصفحات في قائمة التنقل |
ControlPanelWeb.Endpoint.url.host | String | "0.0.0.0" | لا | اسم المضيف لواجهة الويب |
ControlPanelWeb.Endpoint.https.port | عدد صحيح | 8087 | لا | منفذ HTTPS لواجهة الويب |
ControlPanelWeb.Endpoint.https.keyfile | String | "priv/cert/omnitouch.pem" | لا | مسار ملف المفتاح الخاص TLS |
ControlPanelWeb.Endpoint.https.certfile | String | "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_server | Boolean | true | لا | تفعيل/تعطيل خادم HTTP (المنفذ 8080) |
api_ex.api.port | عدد صحيح | 8445 | لا | منفذ خادم API |
api_ex.api.listen_ip | String | "0.0.0.0" | لا | عنوان IP الذي يستمع له خادم API |
api_ex.api.product_name | String | "OmniSS7" | لا | اسم المنتج لواجهة برمجة التطبيقات |
api_ex.api.title | String | "API - OmniSS7" | لا | عنوان واجهة برمجة التطبيقات لواجهة Swagger |
api_ex.api.hostname | String | "localhost" | لا | اسم المضيف لواجهة برمجة التطبيقات |
api_ex.api.enable_tls | Boolean | true | لا | تفعيل TLS لخادم API |
api_ex.api.tls_cert_path | String | "priv/cert/omnitouch.crt" | لا | مسار شهادة TLS لخادم API |
api_ex.api.tls_key_path | String | "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.level | Atom | :debug | لا | مستوى التسجيل: :debug، :info، :warning، :error |
logger.backends | قائمة | [:console] | لا | واجهات تسجيل (تشمل SS7.Web.LoggerBackend لواجهة الويب) |
logger.default_formatter.format | String | - | لا | سلسلة تنسيق رسالة التسجيل |
logger.default_formatter.metadata | قائمة | [] | لا | حقول البيانات الوصفية التي يجب تضمينها في السجلات |
logger.default_formatter.truncate | Atom/عدد صحيح | :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_type | Atom | :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- اتصالات نظير M3UAm3ua_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_urlhlr_service_center_gt_addresssmsc_service_center_gt_address- جميع معلمات
map_client_m3ua.*(8)
وضع SMSc:
smsc_api_base_urlsmsc_service_center_gt_addressauto_flush_dest_smsc(إذا تم تفعيل التفريغ التلقائي)- جميع معلمات
map_client_m3ua.*(8)
وضع STP:
sctp_handler.point_code(إذا تم تفعيل معالج SCTP)sctp_handler.local_ipsctp_handler.local_port
وضع بوابة CAMEL:
cgrates_url(إذا تم تفعيل CGrateS)- جميع معلمات
cap_client_m3ua.*(8)
البنية التحتية:
license_client.license_server_api_urlslicense_client.licensee
الوثائق ذات الصلة
- دليل HLR - تكوين محدد لـ HLR
- دليل SMSc - تكوين محدد لـ SMSc
- دليل STP - تكوين توجيه STP
- دليل API - مرجع واجهة برمجة التطبيقات REST
- دليل بوابة USSD - تكوين بوابة USSD وبروتوكول رد HTTP
- دليل واجهة الويب - وثائق واجهة الويب