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

تكامل HOMER

تتناول هذه الوثيقة تكامل HOMER الاختياري لربط سجلات التطبيقات مع تتبع SIP.

نظرة عامة

يمكن لـ OmniTAS إرسال سجلات التطبيقات إلى خادم HOMER باستخدام بروتوكول HEP3 (بروتوكول تغليف هومر) عبر UDP. يتم ربط السجلات مع تتبع SIP باستخدام SIP Call-ID، مما يتيح رؤية شاملة لعملية المكالمات إلى جانب الإشارات.

كيفية العمل

  1. بيانات السجل الوصفية: أثناء معالجة المكالمات، يقوم OmniTAS بتعيين SIP Call-ID في بيانات Logger الوصفية
  2. التقاط السجل: يشترك وحدة Homer في رسائل السجل عبر PubSub
  3. التصفية: يتم إرسال السجلات التي تحتوي فقط على بيانات call_id الوصفية
  4. ترميز HEP3: يتم ترميز السجلات كحزم HEP3 مع نوع البروتوكول 100 (سجل)
  5. الربط: يقوم HOMER بربط السجلات مع تتبع SIP باستخدام Call-ID

التكوين

أضف تكوين homer_server إلى ملف config/runtime.exs الخاص بك:

config :tas,
homer_server: %{
host: "10.179.2.136",
port: 9060,
auth_key: nil,
capture_id: 2001
}

المعلمات

المعلمةالنوعمطلوبالافتراضيالوصف
hostسلسلةنعم-عنوان IP لخادم HOMER أو اسم المضيف
portعدد صحيحلا9060منفذ UDP لاستقبال HEP
auth_keyسلسلةلاnilمفتاح مصادقة HEP اختياري. يجب تعيينه ليتطابق مع authkey في تكوين خادم heplify إذا كان مفعلًا
capture_idعدد صحيحلا2001معرف وكيل الالتقاط. يظهر في واجهة HOMER لتحديد مصدر السجل

تعطيل تكامل HOMER

لتعطيل تكامل HOMER، إما:

  • إزالة تكوين homer_server بالكامل، أو
  • تعليق كتلة التكوين

عند التعطيل، لا يتم بدء وحدة Homer ولا يتم إرسال أي سجلات.

متطلبات خادم HOMER

يجب أن يكون خادم HOMER قيد التشغيل مع تمكين استقبال HEP على UDP.

تكوين heplify-server

تحقق من أن ملف heplify-server.toml الخاص بك يتضمن:

HEPAddr = "0.0.0.0:9060"

أنواع البروتوكولات المدعومة

ترسل OmniTAS السجلات مع نوع بروتوكول HEP 100، والذي يقوم خادم heplify بتوجيهه إلى logs_capture. تأكد من أن مخطط قاعدة بيانات HOMER يدعم تخزين السجلات.

ربط السجلات

حقن Call-ID التلقائي

يقوم OmniTAS تلقائيًا بحقن Call-ID في بيانات Logger الوصفية أثناء:

  • معالجة مكالمات MO: عند معالجة المكالمات المنشأة من الهاتف المحمول
  • معالجة مكالمات MT: عند معالجة المكالمات المنتهية إلى الهاتف المحمول
  • أحداث المكالمات: عند التعامل مع أحداث الرد والانقطاع

تنسيق السجل

تتضمن السجلات المرسلة إلى HOMER:

الحقلالوصف
معرف الربطSIP Call-ID لربط التتبع
الطابع الزمنيطابع زمني بدقة ميكروثانية
المستوىمستوى السجل (تصحيح، معلومات، تحذير، خطأ)
الرسالةمحتوى رسالة السجل
عنوان IP المصدرعنوان IP لخادم OmniTAS
معرف الالتقاطمعرف وكيل الالتقاط المكون

مثال على سجل في HOMER

بعد معالجة مكالمة، يعرض HOMER البيانات المرتبطة:

[info] Processing MO call from: 61400123456 to: 61400654321
[debug] Sh lookup for caller: 61400123456
[info] OCS authorization: GRANTED (120 seconds)
[debug] Setting variable: hangup_case = none

تظهر هذه السجلات جنبًا إلى جنب مع رسائل SIP INVITE و200 OK وBYE في عرض تفاصيل المكالمات في HOMER.

تفاصيل بروتوكول HEP3

تقوم OmniTAS بتنفيذ HEP3 كما هو محدد بواسطة مشروع HOMER، ومتوافق مع وحدة siptrace في Kamailio.

أنواع الكتل المستخدمة

معرف الكتلةالاسمالوصف
0x0001عائلة IPدائمًا 2 (IPv4)
0x0002بروتوكول IPدائمًا 17 (UDP)
0x0003عنوان IPv4 المصدرعنوان خادم OmniTAS
0x0004عنوان IPv4 الوجهةعنوان خادم HOMER
0x0007منفذ المصدر0 (غير قابل للتطبيق للسجلات)
0x0008منفذ الوجهةمنفذ HEP المكون
0x0009الطابع الزمني بالثوانيثواني الطابع الزمني لنظام Unix
0x000Aالطابع الزمني بالميكروثانيةمكون الميكروثانية
0x000Bنوع البروتوكول100 (سجل)
0x000Cمعرف الالتقاطcapture_id المكون
0x0011معرف الربطSIP Call-ID
0x000Fالحمولةرسالة السجل
0x000Eمفتاح المصادقةمصادقة اختيارية

استكشاف الأخطاء وإصلاحها

السجلات غير الظاهرة في HOMER

الأعراض: تكتمل المكالمات بنجاح ولكن لا تظهر أي سجلات في HOMER

الأس��اب المحتملة:

  • خادم HOMER غير قابل للوصول على المنفذ المكون
  • جدار الحماية يحظر حركة مرور UDP إلى المنفذ 9060
  • خادم heplify غير مكون لاستقبال HEP
  • السجلات تفتقر إلى بيانات call_id الوصفية

الحل:

  1. تحقق من الاتصال الشبكي: nc -zvu <homer_host> 9060
  2. تحقق من أن خادم heplify يستمع: ss -ulnp | grep 9060
  3. راجع سجلات خادم heplify للبحث عن حزم الوارد
  4. تحقق من ظهور call_id في سجلات OmniTAS (تحقق من call_id= في مخرجات السجل)

فشل المصادقة

الأعراض: تظهر سجلات خادم heplify أخطاء مصادقة

الأسباب المحتملة:

  • عدم تطابق auth_key بين OmniTAS و heplify-server
  • تم تكوين مفتاح المصادقة على جانب واحد ولكن ليس على الآخر

الحل:

  1. إذا لم يكن لدى خادم heplify مفتاح مصادقة مكون، قم بتعيين auth_key: nil في OmniTAS
  2. إذا كان خادم heplify يتطلب مصادقة، قم بتكوين مفتاح متطابق في كلا النظامين

الربط المفقود

الأعراض: تظهر السجلات في HOMER ولكنها غير مرتبطة بتتبع SIP

الأسباب المحتملة:

  • عدم تطابق تنسيق Call-ID بين SIP والسجلات
  • تكوين الربط في HOMER

الحل:

  1. تحقق من أن Call-ID في السجلات يتطابق تمامًا مع رأس SIP Call-ID
  2. تحقق من إعدادات الربط في HOMER لجدول logs_capture

المقاييس

عند تمكين تكامل HOMER، راقب هذه المؤشرات:

سجلات OmniTAS

راقب التحذيرات التي تشير إلى فشل نقل HEP:

[warning] Failed to send HEP packet to Homer: <reason>

مقاييس خادم heplify

إذا كانت مقاييس Prometheus مفعلة على خادم heplify، راقب:

  • heplify_packets_total{type="log"} - إجمالي حزم السجل المستلمة
  • heplify_packets_dropped_total - الحزم المفقودة (أخطاء في التخزين المؤقت/التحليل)

مرجع الهندسة المعمارية

تفاعل المكونات

تدفق البيانات

انظر أيضًا