سونٽا - SIP مهيا ڪرڻ وارو سرور

مون کي خبر ناهي ته رزق جي مقابلي سان ڇا ڪجي. ٿي سگهي ٿو هڪ ٻلي سان؟ اهو ان کان سواء ممڪن لڳي ٿو، پر ان سان گڏ اهو ٿورو بهتر آهي. خاص طور تي جيڪڏهن اهو ڪم ڪري ٿو))

مسئلي جي جوڙجڪ:

  1. مان SIP فونز کي جلدي، آساني سان ۽ محفوظ طريقي سان سيٽ ڪرڻ چاهيان ٿو. جڏهن هڪ فون انسٽال ڪرڻ، ۽ اڃا به وڌيڪ جڏهن ان کي ٻيهر ترتيب ڏيو.
  2. گھڻن وينڊرز وٽ پنھنجون ٺاھيل فارميٽ آھن، انھن جون پنھنجون افاديتون ٺاھڻ لاءِ، ۽ انھن جي حفاظت جا طريقا. ۽ مان واقعي هر ڪنهن سان معاملو ڪرڻ نه چاهيندس.
  3. ڪيترائي روزي جا حل، الف) هڪ وينڊر يا هڪ ٽيليفون سسٽم تي مرڪوز آهن، ب) لاڳو ڪرڻ لاءِ ڪافي مشڪل آهن، ڪيترائي اسڪرپٽ، پيٽرول، brrr...

نقطي 3 جي حوالي سان، مان هڪ تبصرو ڪندس ته بهترين روزي ڏيڻ وارو نظام آهن مفت پي بي ايڪس لاءِ, FusionPBX لاءِ, ڪازو لاءِ، جتي مختلف وينڊرز کان فونن لاءِ ٽيمپليٽ عوامي طور تي دستياب آهن. اتي تجارتي حل آھن جتي توھان پڻ ترتيب ڏئي سگھوٿا فونن جي آپريشن کي مختلف ٺاهيندڙن مان مهيا ڪندڙ ماڊل ۾، مثال طور، 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"
      }
   ]
}

تنهن ڪري، ڪنهن به فون ۾ توهان کي مقامي وقت ۽ SIP لائينون ترتيب ڏيڻ جي ضرورت آهي. هتي سڀ ڪجھ سادو آهي. توھان وڌيڪ مثال ڏسي سگھو ٿا هتي.

توهان جي پنهنجي سرور جي فراهمي

ٺاهيندڙن جي دستورن ۾ عام طور تي هڪ نقطو هوندو آهي جتي اهو چوي ٿو: هڪ csv وٺو، پنهنجو لاگ ان-پاسورڊ-ميڪ-ايڊريس لکو، اسان جي ملڪيت واري اسڪرپٽ استعمال ڪندي فائلون ٺاهيو، انهن کي Apache ويب سرور هيٺ رکو ۽ سڀ ڪجهه ٺيڪ ٿي ويندو.

دستي جو ايندڙ پيراگراف عام طور تي توهان کي ٻڌائي ٿو ته توهان ٺاهيل config فائل کي پڻ انڪرپٽ ڪري سگهو ٿا.

پر اهي سڀ ڪلاسيڪل آهن. smoothies ۽ Twitter سان جديد طريقو چوي ٿو ته توهان کي هڪ تيار ڪيل ويب سرور ٺاهڻ جي ضرورت آهي جيڪا Apache جيتري طاقتور نه هوندي، پر صرف هڪ ننڍڙي ڪم ڪندو. ھڪڙي لنڪ استعمال ڪندي ترتيب ٺاھيو ۽ موڪليو.

اچو ته هتي روڪيون ۽ ياد رکون ته لڳ ڀڳ سڀئي SIP فون هاڻي http/https ذريعي ترتيبون حاصل ڪري سگھن ٿا، تنهنڪري اسان ٻين عملن تي غور نه ڪري رهيا آهيون (ftp، tftp، ftps). پوء، هر فون پنهنجي پنهنجي ميڪ ايڊريس ڄاڻي ٿو. تنهن ڪري، اسان ٻه لنڪ ٺاهينداسين: هڪ ذاتي - ڊوائيس جي ڪنجي تي ٻڌل، ٻيو جنرل، جيڪو ڪم ڪري ٿو هڪ عام ٽوڪن ۽ هڪ ميڪ ايڊريس جي ميلاپ کي استعمال ڪندي.

انهي سان گڏ، مان صفر-config تي نه رهندو، يعني. شروع کان فون کي ترتيب ڏيڻ، يعني توھان ان کي نيٽ ورڪ ۾ لڳايو ۽ اھو ڪم ڪرڻ شروع ڪيو. نه، منهنجي منظر ۾، توهان ان کي نيٽ ورڪ ۾ پلگ ان ڪريو، ابتدائي سيٽ اپ ڪريو (ان کي ترتيب ڏيڻ واري سرور کان ترتيب حاصل ڪرڻ لاءِ سيٽ اپ ڪريو)، ۽ پوءِ پينا ڪولاڊا پيئو ۽ فون کي ٻيهر ترتيب ڏيو جيئن ضرورت مطابق روزي جي ذريعي. تقسيم اختيار 66 DHCP سرور جي ذميواري آهي.

رستي ۾، مان "رزق" چوڻ کان مڪمل طور تي ٿڪجي چڪو آهيان، تنهنڪري لفظ کي مختصر ڪيو ويو "رزق"، مهرباني ڪري مون کي مارڻ نه ڏيو.

۽ هڪ ٻي شيءِ: اسان جي روزي ڏيڻ واري سرور وٽ UI ناهي، يعني. يوزر انٽرفيس. شايد، هاڻي لاء، پر پڪ ناهي، ڇاڪاڻ ته ... مون کي ان جي ضرورت ناهي. پر سيٽنگون محفوظ ڪرڻ / حذف ڪرڻ لاءِ هڪ API آهي، سپورٽ ٿيل وينڊرز جي هڪ فهرست حاصل ڪرڻ، ماڊل، هر شي بيان ڪيل آهي swagger specification جي ڪنن مطابق.

ڇو API ۽ نه UI؟ ڇاڪاڻ ته مون وٽ اڳ ۾ ئي پنهنجو ٽيليفون سسٽم آهي، پوءِ مون وٽ سندن جو هڪ ذريعو آهي، جتي مون کي صرف اهو ڊيٽا وٺڻو آهي، ضروري json گڏ ڪرڻ ۽ ان کي فراهم ڪرڻ واري سرور تي شايع ڪرڻ جي ضرورت آهي. ۽ پروويزننگ سرور، json فائل ۾ بيان ڪيل ضابطن جي مطابق، گهربل ڊيوائس کي ان جي ترتيب ڏيندو يا نه ڏيندو جيڪڏھن ڊوائيس صحيح نه آھي يا ھن json ۾ بيان ڪيل معيار تي پورو نه ھجي.

سونٽا - SIP مهيا ڪرڻ وارو سرور

اهڙي طرح روزي جي microservice ٻاهر موٽيو. سڏيو ويو پٽاٽي، ماخذ ڪوڊ موجود آهي GitHub تي، اتي پڻ آهي تيار docker تصوير, docker استعمال مثال هتي.

اهم خاصيتون:

  • ڪنهن به صورت ۾، وقت جي ترتيب تائين محدود رسائي، ڊفالٽ طور 10 منٽ. جيڪڏھن توھان چاھيو ٿا ڪنفگريشن کي ٻيهر دستياب ڪريو، ترتيب کي ٻيهر شايع ڪريو.

  • ھڪڙي فارميٽ سڀني وينڊرز لاءِ، سڀ ايڊجسٽمنٽ سونٽا ۾ ختم ڪيا ويا آھن، توھان موڪليو معياري json، ڪنھن به دستياب سامان کي ترتيب ڏيو.

  • ڊوائيسز تي جاري ڪيل سڀئي ترتيبون لاگ ان ٿيل آهن، سڀني مسئلن جي علائقن کي لاگ ان ۾ ڏسي سگھجي ٿو ۽ غلطيون ڏسي سگهجن ٿيون

  • اهو ممڪن آهي ته هڪ ٽوڪن سان هڪ عام لنڪ استعمال ڪرڻ؛ هر فون ميڪ ايڊريس جي وضاحت ڪندي پنهنجي ترتيب حاصل ڪري ٿو. يا ڪي جي ذريعي هڪ ذاتي لنڪ.

  • APIs لاءِ انتظام (انتظام) ۽ فونن کي ترتيب ڏيڻ جي فراهمي (روزي ڏيڻ) بندرگاهن طرفان ورهايل آهن

  • ٽيسٽون. اهو مون لاءِ تمام ضروري هو ته جاري ڪيل ترتيب جي شڪل کي درست ڪرڻ ۽ ٽيسٽ سان ترتيب ڏيڻ جي سڀني معمولي حالتن کي ڍڪي. انهي ڪري ته اهو سڀ ڪجهه واضح طور تي ڪم ڪري ٿو.

ڪن

ايترو پري، انڪرپشن استعمال نه ڪيو ويو آهي ڪنهن به طريقي سان سونٽا اندر. اهي. توھان ضرور شروع ڪري سگھو ٿا https استعمال ڪندي مثال طور سوناٽا جي اڳيان نينڪس رکي. پر ملڪيت جا طريقا اڃا تائين استعمال نه ڪيا ويا آهن. ڇو؟ پروجيڪٽ اڃا جوان آهي، ان جي پهرين سئو ڊوائيسز شروع ڪئي آهي. ۽، يقينا، مان خيالن ۽ راء گڏ ڪريان ٿو. ان کان علاوه، هر شيء کي محفوظ ڪرڻ لاء، انهي ڪري ته نيٽ ورڪ تي ترتيبن کي سنوارڻ نه ٿو ڏئي سگهجي، اهو شايد انڪريشن ڪيچ، tls ۽ انهن سان گڏ هيج هاگ سان پريشان ٿيڻ جي قابل آهي، پر اهو هڪ تسلسل هوندو.

UI جي کوٽ. شايد اهو آخري صارف لاء هڪ اهم نقصان آهي، پر هڪ سسٽم ايڊمنسٽريٽر لاء، هڪ ڪنسول افاديت هڪ مڪمل ايپليڪيشن کان وڌيڪ اهم آهي. ڪنسول افاديت ٺاهڻ جا منصوبا هئا، پر مون کي پڪ ناهي ته اها ضرورت آهي؟

آخر ۾ ڇا ٿيو؟

انتظام لاءِ API سان گڏ ڪيترن ئي فون ماڊلز جي فراهمي لاءِ هڪ ننڍڙو ۽ سادو ويب سرور.

هڪ دفعو ٻيهر، اهو ڪيئن ڪم ڪرڻ گهرجي؟

  1. سونٽا انسٽال ڪرڻ.
  2. اسان هڪ json config ٺاهي ۽ ان کي سونٽا ۾ شايع ڪيو.
  3. ان کان پوء اسان سونٽا کان رزق واري لنڪ حاصل ڪندا آهيون.
  4. پوء اسان هن لنڪ کي ٽيليفون ۾ اشارو ڪيو.
  5. ڊوائيس config لوڊ ڪري رهيو آهي

ايندڙ آپريشن ۾ صرف ٻه قدم آهن:

  1. اسان هڪ json config ٺاهي ۽ ان کي سونٽا ۾ شايع ڪيو
  2. ڊوائيس config لوڊ ڪري رهيو آهي

ڪهڙن فونن کي پروموٽ ڪيو ويندو؟

وينڊرز گرانڊ اسٽريم، فينويل، يالينڪ. وينڊر جي اندر ترتيبون گهٽ يا گهٽ ساڳيون آهن، پر فرم ویئر جي لحاظ کان مختلف ٿي سگهن ٿيون - اهو اضافي طور تي جانچ ڪرڻ ضروري ٿي سگهي ٿو.

توهان ڪهڙا ضابطا مقرر ڪري سگهو ٿا؟

وقت سان. توھان مقرر ڪري سگھو ٿا وقت مقرر ڪريو جيستائين config موجود ھوندي.
ميڪ ايڊريس ذريعي. جڏهن ترتيب کي جمع ڪندي ڊوائيس جي ذاتي لنڪ ذريعي، ميڪ ايڊريس پڻ چيڪ ڪيو ويندو.
ايپ پاران. IP پتي جي ذريعي جتي درخواست ڪئي وئي هئي.

سوناتا سان ڪيئن رابطو ڪجي؟

API ذريعي، http درخواستون ٺاهڻ. API توهان جي انسٽاليشن ۾ موجود هوندي. ڇاڪاڻ ته API swagger specification کي سپورٽ ڪري ٿو، توھان استعمال ڪري سگھو ٿا آن لائن افاديت API ڏانهن ٽيسٽ درخواستن لاءِ.

ٺيڪ، عظيم. سٺيون شيون، ڪيئن ڪوشش ڪرڻ بابت؟

سڀ کان آسان طريقو آهي هڪ ڊاکر تصوير کي ترتيب ڏيڻ لاء مخزن جي بنياد تي سونٽا جو نمونو. مخزن ۾ تنصيب جي هدايتون شامل آهن.

ڇا جيڪڏھن مان ڄاڻان ٿو node.js؟

جيڪڏهن توهان کي جاوا اسڪرپٽ استعمال ڪرڻ جو تجربو آهي، ته پوءِ توهان جلدي معلوم ڪندا ته هتي هر شي ڪيئن ڪم ڪري ٿي.

سونٽا جي ترقي ٿيندي؟

مون جزوي طور تي پنهنجا مقصد حاصل ڪيا. وڌيڪ ترقي منهنجي ڪمن جو معاملو آهي خودڪار فون سيٽ اپ جي موضوع تي. فون جي بٽڻن کي ترتيب ڏيڻ لاءِ ترتيبن کي وڌائڻ جو موقعو پڻ آھي، ايڊريس بڪ جي فراهمي شامل ڪريو، شايد ڪجھ ٻيو، تبصرن ۾ لکو.

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

مون کي تعميري تجويزون / اعتراض / تبصرا ۽ سوال ڪرڻ جي خوشي ٿي ويندي، ڇاڪاڻ ته ... ٿي سگهي ٿو ته هن ڪا ڳالهه سمجھ ۾ نه آئي هجي.

مان پنهنجي سڀني ساٿين جو پڻ شڪرگذار آهيان جن مدد ڪئي، صلاح ڏني، جانچ ڪئي، ۽ مهيا ڪيل / عطيا فون ٽيسٽ لاءِ. حقيقت ۾، ڪيترائي ماڻهو جن سان مون ڪم تي ڳالهه ٻولهه ڪئي، اهي مختلف درجي تائين پروجيڪٽ ۾ شامل آهن، AsterConfاي، چيٽ ۽ اي ميلن ۾. خيالن ۽ خيالن لاء مهرباني.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو