سوناٹا - ایس آئی پی پروویژننگ سرور

مجھے نہیں معلوم کہ پروویژننگ کا کس سے موازنہ کرنا ہے۔ شاید ایک بلی کے ساتھ؟ یہ اس کے بغیر ممکن لگتا ہے، لیکن اس کے ساتھ تھوڑا بہتر ہے. خاص طور پر اگر یہ کام کرتا ہے۔

مسئلہ کی تشکیل:

  1. میں SIP فونز کو تیزی سے، آسانی سے اور محفوظ طریقے سے ترتیب دینا چاہتا ہوں۔ فون انسٹال کرتے وقت، اور اس سے بھی زیادہ اس کی تشکیل نو کرتے وقت۔
  2. بہت سے دکانداروں کے پاس اپنے کنفیگریشن فارمیٹس ہوتے ہیں، کنفیگرز بنانے کے لیے ان کی اپنی یوٹیلیٹی ہوتی ہے، کنفیگرز کی حفاظت کے اپنے طریقے ہوتے ہیں۔ اور میں ہر کسی کے ساتھ ڈیل نہیں کرنا چاہتا۔
  3. پروویژننگ کے بہت سے حل ہیں a) ایک وینڈر یا ایک فون سسٹم پر توجہ مرکوز، b) لاگو کرنے کے بجائے بوجھل، اسکرپٹس، پیرامیٹرز، br-r...

پوائنٹ 3 پر، میں ایک تبصرہ کروں گا کہ بہترین پروویژننگ سسٹم موجود ہیں۔ مفت پی بی ایکس کے لیے, فیوژن پی بی ایکس کے لیے, کازو کے لیےجہاں عوامی ڈومین میں مختلف وینڈرز کے فونز کے لیے ٹیمپلیٹس موجود ہیں۔ تجارتی حل موجود ہیں جہاں آپ پروویژننگ ماڈیول میں مختلف مینوفیکچررز کے فونز کے کام کو بھی ترتیب دے سکتے ہیں، مثال کے طور پر، Yeastar PBX۔

Habré مختلف دکانداروں سے آلات ترتیب دینے کی ترکیبوں سے بھی بھرا ہوا ہے: وقت, два. لیکن جیسا کہ وہ کہتے ہیں، تمام نظاموں میں ایک مہلک خامی ہے۔ تو آئیے اپنی موٹر سائیکل بناتے ہیں۔

اپنی شکل

جیسا کہ xkcd کہتا ہے، اگر آپ 14 فارمیٹس سے نمٹنا نہیں چاہتے ہیں۔ 15 کے ساتھ آو. لہذا، ہم کسی بھی فون کے لیے عام ترتیبات استعمال کرتے ہیں اور اپنا json config فارمیٹ بناتے ہیں۔

تقریباً اس طرح:

{
   "key": "sdgjdeu9443908",
   "token": "590sfdsf8u984",
   "model": "gxp1620",
   "vendor": "grandstream",
   "mac": "001565113af8",
   "timezone_offset": "GMT+03",
   "ntp_server": "pool.ntp.org",
   "status": true,
   "accounts": [
      {
         "name": "Мобилон",
         "line": 1,
         "sip_register": "sip.mobilonsip.ru",
         "sip_name": "sip102",
         "sip_user": "sip102",
         "sip_password": "4321",
         "sip_auth": "sip102"
      }
   ]
}

لہذا، کسی بھی فون میں آپ کو مقامی وقت، سیپ لائنز ترتیب دینے کی ضرورت ہے۔ یہاں سب کچھ آسان ہے۔ مزید مثالیں دیکھی جا سکتی ہیں۔ یہاں.

آپ کا سرور فراہم کیا گیا ہے۔

مینوفیکچرر کے دستورالعمل میں عام طور پر ایک پیراگراف ہوتا ہے جس میں لکھا ہوتا ہے: csv لیں، وہاں لاگ ان پاس ورڈ-میک ایڈریس لکھیں، ہماری ملکیتی اسکرپٹ سے فائلیں بنائیں، انہیں اپاچی ویب سرور کے نیچے رکھیں اور یہ ٹھیک ہو جائے گا۔

دستی کا اگلا پیراگراف عام طور پر آپ کو بتاتا ہے کہ آپ اور کیا کر سکتے ہیں اور تیار کردہ کنفگ فائل کو انکرپٹ کر سکتے ہیں۔

لیکن یہ سب کلاسک ہے۔ جدید اسموتھی اور ٹویٹر اپروچ ایک ریڈی میڈ ویب سرور بنانا ہے جو اپاچی کی طرح طاقتور نہیں ہے اور صرف ایک چھوٹی سی چیز کرتا ہے۔ حوالہ کے ذریعہ تشکیلات بنائیں اور بھیجیں۔

آئیے یہاں رکتے ہیں اور یاد رکھیں کہ اب تقریباً تمام SIP فونز http/https کے ذریعے کنفیگرز حاصل کر سکتے ہیں، اس لیے ہم دیگر نفاذ (ftp، tftp، ftps) پر غور نہیں کرتے۔ پھر، ہر فون کو اپنا میک ایڈریس معلوم ہوتا ہے۔ لہذا، ہم دو لنکس بنائیں گے: ایک ذاتی ہے - ڈیوائس کی کے ذریعہ، دوسرا عام ہے، جو ایک عام ٹوکن اور پوست ایڈریس کو جوڑ کر کام کرتا ہے۔

نیز، میں صفر کنفیگریشن پر نہیں رہوں گا، یعنی فون کو شروع سے ترتیب دینا، یعنی آپ نے اسے نیٹ ورک میں پلگ کیا اور اس نے کمایا۔ نہیں۔ آپشن 66 کو حوالے کرنا DHCP سرور پر منحصر ہے۔

ویسے میں "Provisioning" کہہ کر بالکل تھک گیا ہوں، اس لیے لفظ کو "Provisioning" کر دیا گیا، براہ کرم اپنے پاؤں سے لات نہ ماریں۔

اور ایک اور چیز: ہمارے پراکسی سرور میں UI نہیں ہے، یعنی یوزر انٹرفیس. ممکنہ طور پر ابھی تک، لیکن مجھے یقین نہیں ہے، کیونکہ۔ مجھے ضرورت نہیں ہے۔ لیکن ترتیبات کو بچانے / حذف کرنے کے لیے ایک API موجود ہے، معاون وینڈرز، ماڈلز کی فہرست حاصل کرنا، ہر چیز کو swagger تصریح کے اصولوں کے مطابق بیان کیا گیا ہے۔

API کیوں اور UI نہیں؟ کیونکہ میرے پاس پہلے سے ہی اپنا فون سسٹم ہے، پھر میرے پاس اسناد کا ایک ذریعہ ہے، جہاں مجھے صرف یہ ڈیٹا لینے، ضروری json کمپوز کرنے اور پروویژننگ سرور پر شائع کرنے کی ضرورت ہے۔ اور پہلے سے ہی سرور عارضی ہے، json فائل میں بتائے گئے اصولوں کے مطابق، یہ اپنی کنفیگریشن مطلوبہ ڈیوائس پر جاری کرے گا یا اگر ڈیوائس ٹھیک نہیں ہے، یا اس json میں بیان کردہ معیار پر پورا نہیں اترتا ہے تو اسے جاری نہیں کرے گا۔

سوناٹا - ایس آئی پی پروویژننگ سرور

یہاں ایک ایسی مائیکرو سروس فراہم کی گئی ہے۔ بلایا سوناٹا، سورس کوڈ گیتھب پر دستیاب ہے، وہاں بھی ہے۔ مکمل ڈاکر تصویر، ڈاکر کے استعمال کی مثال یہاں.

اہم خصوصیات:

  • کسی بھی صورت میں، وقت کے لحاظ سے ترتیب تک محدود رسائی، بطور ڈیفالٹ 10 منٹ۔ اگر آپ تشکیل کو دوبارہ دستیاب کرانا چاہتے ہیں، تو تشکیل کو دوبارہ شائع کریں۔

  • تمام وینڈرز کے لیے ایک فارمیٹ، تمام حسب ضرورت سوناٹا میں ہٹا دی جاتی ہے، آپ معیاری json بھیجتے ہیں، آپ کسی بھی دستیاب آلات کو ترتیب دیتے ہیں۔

  • آلات پر جاری کردہ تمام کنفیگرز لاگ ان ہیں، تمام مسائل والے علاقوں کو لاگ میں دیکھا جا سکتا ہے اور خرابیاں دیکھی جا سکتی ہیں

  • ٹوکن کے ساتھ ایک مشترکہ لنک استعمال کرنا ممکن ہے، ہر فون میک ایڈریس بتا کر اپنی ترتیب وصول کرتا ہے۔ یا کلید کے ذریعے ذاتی لنک۔

  • مینیجمنٹ (انتظام) اور فونز کو کنفیگس جاری کرنے کے لیے API (فراہم کاری) کو بندرگاہوں کے ذریعے تقسیم کیا گیا ہے۔

  • ٹیسٹ۔ میرے لیے جاری کردہ کنفیگریشن کی شکل کو ٹھیک کرنا اور ٹیسٹ کے ساتھ کنفیگریشن جاری کرنے کے تمام معمول کے حالات کا احاطہ کرنا بہت اہم تھا۔ یہ یقینی بنانے کے لیے کہ یہ سب کام کرتا ہے۔

Cons:

ابھی تک، سوناٹا کے فریم ورک میں کوئی خفیہ کاری استعمال نہیں ہوئی ہے۔ وہ. مثال کے طور پر آپ سوناٹا سے پہلے nginx ڈال کر https کا استعمال شروع کر سکتے ہیں۔ لیکن برانڈڈ طریقے ابھی تک شامل نہیں ہیں۔ کیوں؟ پروجیکٹ ابھی جوان ہے، اس نے ابھی اپنی پہلی سو ڈیوائسز لانچ کی ہیں۔ اور، یقینا، میں خیالات اور تاثرات جمع کرتا ہوں۔ مزید، ہر چیز کو محفوظ بنانے کے لیے تاکہ نیٹ ورک پر کنفیگرز کو سونگھ نہ جا سکے، یہ ممکنہ طور پر انکرپشن کیز، tls اور ان کے ہیج ہاگس پر الجھنے کے قابل ہے، لیکن یہ جاری رکھا جائے گا۔

UI کی کمی۔ شاید یہ آخری صارف کے لیے ایک اہم نقصان ہے، لیکن سسٹم ایڈمنسٹریٹر کے لیے، کنسول کی افادیت ایک مکمل ایپلی کیشن سے زیادہ اہم ہے۔ کنسول کی افادیت بنانے کے منصوبے تھے، لیکن مجھے یقین نہیں ہے کہ کیا اس کی ضرورت ہے؟

نتیجہ؟

انتظام کے لیے API کے ساتھ کئی فون ماڈلز کی فراہمی کے لیے ایک چھوٹا اور سادہ ویب سرور۔

ایک بار پھر، یہ کیسے کام کرنے والا ہے؟

  1. سوناٹا انسٹال کریں۔
  2. ہم ایک json تشکیل بناتے ہیں اور اسے سوناٹا میں شائع کرتے ہیں۔
  3. پھر ہمیں سوناٹا سے رزق کا لنک ملتا ہے۔
  4. پھر ہم ٹیلی فون سیٹ میں اس لنک کی نشاندہی کرتے ہیں۔
  5. آلہ ترتیب کو سخت کر رہا ہے۔

بعد کے آپریشن میں، صرف دو مراحل:

  1. ہم ایک json تشکیل بناتے ہیں اور اسے سونٹا پر شائع کرتے ہیں۔
  2. آلہ ترتیب کو سخت کر رہا ہے۔

کن فونز کو فروغ دیا جا رہا ہے؟

وینڈرز گرینڈ اسٹریم، فینول، ییلنک۔ وینڈر کے اندر کنفیگرز کم و بیش ایک جیسے ہوتے ہیں، لیکن فرم ویئر کے لحاظ سے مختلف ہو سکتے ہیں - اس کے علاوہ بھی ٹیسٹ کرنا ضروری ہو سکتا ہے۔

کیا اصول طے کیے جا سکتے ہیں؟

وقت کی طرف سے. آپ اس وقت کی وضاحت کر سکتے ہیں جب تک کہ کنفیگریشن دستیاب ہو گی۔
میک ایڈریس کے ذریعے۔ ڈیوائس کے ذاتی لنک کے ذریعے تشکیل اپ لوڈ کرتے وقت، میک ایڈریس کو بھی چیک کیا جائے گا۔
آئی پی کی طرف سے. آئی پی ایڈریس کے ذریعہ جہاں سے درخواست کی گئی تھی۔

سوناٹا کے ساتھ بات چیت کیسے کریں؟

API کے ذریعے، HTTP درخواستیں کرنا۔ API آپ کی تنصیب میں دستیاب ہوگا۔ کیونکہ API swagger تفصیلات کی حمایت کرتا ہے، آپ استعمال کر سکتے ہیں۔ آن لائن افادیت ٹیسٹ API کی درخواستوں کے لیے۔

ٹھیک ہے بہت اچھے. بات ٹھنڈی ہے، کوشش کیسے کی جائے؟

ذخیرہ کی بنیاد پر ڈاکر امیج کو تعینات کرنے کا آسان ترین طریقہ سوناٹا نمونہ. ذخیرہ میں تنصیب کی ہدایات شامل ہیں۔

اگر میں node.js جانتا ہوں تو کیا ہوگا؟

اگر آپ کو JavaScript استعمال کرنے کا تجربہ ہے، تو آپ جلدی سے اندازہ لگائیں گے کہ یہاں سب کچھ کیسے کام کرتا ہے۔

کیا سوناٹا کی ترقی ہوگی؟

میں نے اپنے مقاصد کو جزوی طور پر حاصل کیا۔ فون کی ترتیبات کو خودکار کرنے کے موضوع پر مزید ترقی میرے کاموں کا معاملہ ہے۔ فون کے بٹنوں کو اپنی مرضی کے مطابق بنانے کے لیے کنفیگرز کو بڑھانے کا موقع بھی ہے، ایڈریس بک فراہم کرنے، شاید کچھ اور، کمنٹس میں لکھیں۔

خلاصہ اور اعترافات

مجھے تعمیری تجاویز / اعتراضات / تبصرے اور سوالات سے خوشی ہوگی، کیونکہ یہ اچھی طرح سے بیان کیا گیا کچھ غیر واضح ہو سکتا ہے.

میں ان تمام ساتھیوں کا بھی شکریہ ادا کرتا ہوں جنہوں نے ٹیسٹ کے لیے مدد کی، مشورہ دیا، ٹیسٹ کیا، فراہم کیا/ عطیہ کیا۔ درحقیقت، اس منصوبے میں مختلف ڈگریاں شامل ہیں، بہت سے لوگ جن کے ساتھ میں نے کام پر بات کی، پر AsterConf'ای، چیٹس اور ای میلز میں۔ خیالات اور خیالات کا شکریہ۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں