پرش به مطلب اصلی

SMSWithoutBorders Gateway Server

Gateway-servers کاربران را قادر می سازد تا با ماژول ناشر همگام سازی و ارتباط برقرار کنند

:::

نکته آنچه یاد خواهید گرفت

  • نحوه راه اندازی و استفاده از Gateway Server

جدیدترین نسخه این راهنما را می توان در مخزن github پیدا کرد.

فرانت اند با این خدمات یکپارچه می شود. ممکن است لازم باشد بسته به قسمتی که روی آن کار می کنید آنها را تنظیم کنید.

:::

الزامات

  • پایتون 3

امکانات

نصب و راه اندازی

https://github.com/smswithoutborders/SMSWithoutBorders-Gateway-Server.git
git submodule update --force --recursive --init --remote
cd SMSWithoutBorders-Gateway-Server
python3 -m virtualenv venv
. venv/bin/activate
pip3 install -r requirements.txt

در صورت تمایل، «make» را برای نصب git hook اجرا کنید

ساختار دایرکتوری

/gateway_server
شامل جلسات Gateway server websocket است که برای همگام‌سازی کاربران لازم است.

پیکربندی

پیکربندی API دروازه

  • فایل های کانفیگ را کپی و ویرایش کنید
cp confs/example.conf.ini confs/conf.ini

پیکربندی سرور دروازه

  • فایل های کانفیگ را کپی و ویرایش کنید
cp gateway_server/confs/example.conf.ini gateway_server/confs/conf.ini

استفاده

Gateway API

Gateway API را به صورت دستی شروع کنید
. venv/bin/activate
python3 main.py
  • لیست گره های موجود را دریافت کنید /seeds

مثلا

curl localhost:6969/seeds -H "Content-Type: application/json"

برمی گرداند

[
{
"IMSI": "sample_IMSI",
"LPS": 1648206122.81431,
"MSISDN": "sample_MSISDN",
"seed_type": "seed"
}
]
  • Gateway را به Gateway های فعال اضافه کنید /ping

مثلا

curl -X POST \
localhost:6969/seeds/ping \
-d '{"IMSI":"sample_IMSI", "MSISDN":"sample_MSISDN", "seed_type":"seed"}' \
-H "Content-Type: application/json"

LPS جلسه جاری را برمی گرداند. LPS = آخرین جلسه پینگ

هماهنگ سازی

برای اینکه کاربران بتوانند کلیدهای امنیتی، پلتفرم‌ها و دروازه‌های موجود را بدست آورند، همگام‌سازی لازم است.

راه اندازی دستی جلسات وب سوکت
. venv/bin/activate
python3 gateway_server/sessions_websocket.py
پیکربندی

تمام تنظیمات مربوط به سوکت‌های وب را می‌توان در فایل «conf.ini» در «gateway_server» انجام داد. session_change_limit : تعداد دفعاتی که websocket کلاینت URL های تغییر جلسه را دریافت می کند
session_sleep_timeout : تعداد ثانیه های خواب پس از ارسال آدرس تغییر جلسه به مشتری
session_paused_timeout: تعداد ثانیه‌هایی که باید قبل از بستن اتصال در حالت توقف باقی بمانند

جریان همگام سازی
  1. با درخواست برای یک جلسه جدید شروع کنید.
    GET /<api-version>/sync/users/<user-id>

    این یک URL رشته ای را برمی گرداند که می تواند توسط کلاینت های وب سوکت به آن متصل شود. کاربران می توانند با این \ ارتباط برقرار کنند URL را برگرداند یا آنها را از طریق عملکرد اسکن QR در برنامه اسکن کنید. فرکانس تغییر آدرس های اینترنتی همگام سازی بستگی دارد در تنظیمات پیکربندی[sync] session_sleep_timeout (defaults = 15 seconds).

    تعداد کل تغییرات در فرکانس قابل تغییر است[sync] session_change_limit (defaults = 3 times) \

جلسه ```, 200 ایجاد شد

```, 500 برخی از خطاها رخ داده است، گزارش های اشکال زدایی را بررسی کنید

  1. هنگامی که یک URL همگام‌سازی متصل شد و پردازش شروع شد، وب‌سوکت یک متن مکث «201-pause» ارسال می‌کند.
    کاربر شروع به احراز هویت خود می کند و سیاست های امنیتی خود را به رکورد خود در سرور اضافه می کند.

  2. هنگامی که کاربر دست دادن لازم را انجام داد و تبادل اطلاعات آغاز شد، وب سوکت یک \ ارسال می کند. متن تصدیق «200- تأیید».

آزمایش کردن

python -m unittest gateway_server/test/UTestUsers.py

https://github.com/vi/websocat

مانجارو

sudo pacman -S websocat jq

تست وب سوکت

websocat ws://localhost:6996/v2/sync/init/111/000
  • آزمایش رمزگذاری/رمزگشایی RSA این به فایل های pem نیاز دارد. آنها را در test/dir کپی کنید تا امکان اجرای آزمایشی فراهم شود
python -m unittest test/security_rsa.py
  • آزمایش کل فرآیند Handshake این به فایل های pem نیاز دارد. آنها را در test/dir کپی کنید تا امکان اجرای آزمایشی فراهم شود
./test/handshake.sh