సొనాట - SIP ప్రొవిజనింగ్ సర్వర్

ప్రొవిజనింగ్‌ని దేనితో పోల్చాలో నాకు తెలియదు. బహుశా పిల్లితో? ఇది లేకుండా సాధ్యమే అనిపిస్తుంది, కానీ దానితో ఇది కొంచెం మంచిది. ముఖ్యంగా ఇది పని చేస్తే))

సమస్య యొక్క సూత్రీకరణ:

  1. నేను SIP ఫోన్‌లను త్వరగా, సులభంగా మరియు సురక్షితంగా సెటప్ చేయాలనుకుంటున్నాను. ఫోన్‌ను ఇన్‌స్టాల్ చేస్తున్నప్పుడు మరియు దాన్ని మళ్లీ కాన్ఫిగర్ చేస్తున్నప్పుడు ఇంకా ఎక్కువ.
  2. చాలా మంది విక్రేతలు వారి స్వంత కాన్ఫిగర్ ఫార్మాట్‌లను కలిగి ఉన్నారు, కాన్ఫిగర్‌లను రూపొందించడానికి వారి స్వంత యుటిలిటీలు మరియు కాన్ఫిగర్‌లను రక్షించడానికి వారి స్వంత మార్గాలు ఉన్నాయి. మరియు నేను నిజంగా అందరితో వ్యవహరించాలనుకోవడం లేదు.
  3. అనేక ప్రొవిజనింగ్ సొల్యూషన్‌లు, ఎ) ఒక విక్రేత లేదా ఒక టెలిఫోన్ సిస్టమ్‌పై దృష్టి కేంద్రీకరించబడ్డాయి, బి) అమలు చేయడానికి చాలా గజిబిజిగా ఉంటాయి, చాలా స్క్రిప్ట్‌లు, పారామీటర్‌లు, brrr...

పాయింట్ 3కి సంబంధించి, అద్భుతమైన ప్రొవిజనింగ్ సిస్టమ్‌లు ఉన్నాయని నేను వ్యాఖ్యానిస్తాను FreePBX కోసం, FusionPBX కోసం, కజూ కోసం, వివిధ విక్రేతల నుండి ఫోన్‌ల టెంప్లేట్‌లు పబ్లిక్‌గా అందుబాటులో ఉంటాయి. మీరు ప్రొవిజనింగ్ మాడ్యూల్‌లో వివిధ తయారీదారుల నుండి ఫోన్‌ల ఆపరేషన్‌ను కూడా కాన్ఫిగర్ చేయగల వాణిజ్య పరిష్కారాలు ఉన్నాయి, ఉదాహరణకు, Yeastar PBX.

హాబ్రే వివిధ విక్రేతల నుండి పరికరాలను ఎలా సెటప్ చేయాలో వంటకాలతో కూడా నిండి ఉంది: సమయం, два. కానీ వారు చెప్పినట్లు, అన్ని వ్యవస్థలకు ప్రాణాంతక లోపం ఉంది. కాబట్టి మేము మా స్వంత బైక్‌ను తయారు చేస్తాము.

మీ స్వంత ఫార్మాట్

వారు 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 తీసుకోండి, మీ లాగిన్-పాస్‌వర్డ్-మాక్-అడ్రస్ రాయండి, మా యాజమాన్య స్క్రిప్ట్‌ని ఉపయోగించి ఫైల్‌లను రూపొందించండి, వాటిని అపాచీ వెబ్ సర్వర్ కింద ఉంచండి మరియు ప్రతిదీ బాగానే ఉంటుంది.

మాన్యువల్ యొక్క తదుపరి పేరా సాధారణంగా మీరు రూపొందించబడిన కాన్ఫిగర్ ఫైల్‌ను కూడా గుప్తీకరించవచ్చని మీకు చెబుతుంది.

అయితే ఇవన్నీ క్లాసిక్స్. స్మూతీస్ మరియు ట్విటర్‌తో కూడిన ఆధునిక విధానం మీరు అపాచీ వలె శక్తివంతమైనది కాదు, కానీ ఒక చిన్న పనిని మాత్రమే చేసే రెడీమేడ్ వెబ్ సర్వర్‌ను తయారు చేయవలసి ఉంటుంది. లింక్‌ని ఉపయోగించి కాన్ఫిగరేషన్‌లను రూపొందించండి మరియు పంపండి.

ఇక్కడ ఆపివేసి, దాదాపు అన్ని SIP ఫోన్‌లు ఇప్పుడు http/https ద్వారా కాన్ఫిగరేషన్‌లను స్వీకరించగలవని గుర్తుంచుకోండి, కాబట్టి మేము ఇతర అమలులను (ftp, tftp, ftps) పరిగణించడం లేదు. అప్పుడు, ప్రతి ఫోన్‌కు దాని స్వంత MAC చిరునామా తెలుసు. అందువల్ల, మేము రెండు లింక్‌లను చేస్తాము: ఒకటి వ్యక్తిగత - పరికర కీ ఆధారంగా, రెండవ సాధారణ, ఇది సాధారణ టోకెన్ మరియు MAC చిరునామా కలయికను ఉపయోగించి పని చేస్తుంది.

అలాగే, నేను జీరో-కాన్ఫిగరేషన్‌పై నివసించను, అనగా. మొదటి నుండి ఫోన్‌ను సెటప్ చేయడం, అనగా. మీరు దానిని నెట్‌వర్క్‌కి ప్లగ్ చేసారు మరియు అది పని చేయడం ప్రారంభించింది. లేదు, నా దృష్టాంతంలో, మీరు దానిని నెట్‌వర్క్‌లోకి ప్లగ్ చేసి, ప్రిలిమినరీ సెటప్ చేయండి (ప్రొవిజనింగ్ సర్వర్ నుండి కాన్ఫిగర్‌ని స్వీకరించడానికి దీన్ని సెటప్ చేయండి), ఆపై పినా కోలాడా తాగండి మరియు ప్రొవిజనింగ్ ద్వారా ఫోన్‌ను అవసరమైన విధంగా రీకాన్ఫిగర్ చేయండి. ఎంపిక 66ని పంపిణీ చేయడం DHCP సర్వర్ యొక్క బాధ్యత.

మార్గం ద్వారా, నేను "ప్రొవిజనింగ్" అని చెప్పడంలో పూర్తిగా అలసిపోయాను, కాబట్టి పదం "నిబంధన"గా కుదించబడింది, దయచేసి నన్ను తన్నకండి.

మరియు మరొక విషయం: మా ప్రొవిజనింగ్ సర్వర్‌కు UI లేదు, అనగా. వినియోగ మార్గము. బహుశా, ప్రస్తుతానికి, కానీ ఖచ్చితంగా కాదు, ఎందుకంటే ... నాకు అది అవసరం లేదు. కానీ సెట్టింగ్‌లను సేవ్ చేయడం/తొలగించడం, మద్దతు ఉన్న విక్రేతల జాబితాను పొందడం, మోడల్‌లు, ప్రతిదీ స్వాగర్ స్పెసిఫికేషన్ యొక్క నిబంధనల ప్రకారం వివరించబడింది.

ఎందుకు API మరియు UI కాదు? ఎందుకంటే నేను ఇప్పటికే నా స్వంత టెలిఫోన్ సిస్టమ్‌ని కలిగి ఉన్నాను, ఆపై నాకు ఆధారాల మూలం ఉంది, ఇక్కడ నేను ఈ డేటాను తీసుకొని, అవసరమైన jsonని కంపైల్ చేసి, ప్రొవిజనింగ్ సర్వర్‌లో ప్రచురించాలి. మరియు ప్రొవిజనింగ్ సర్వర్, json ఫైల్‌లో పేర్కొన్న నియమాల ప్రకారం, అవసరమైన పరికరానికి దాని కాన్ఫిగరేషన్‌ను ఇస్తుంది లేదా పరికరం సరిగ్గా లేకుంటే లేదా ఈ jsonలో పేర్కొన్న ప్రమాణాలకు అనుగుణంగా లేకుంటే దానిని ఇవ్వదు.

సొనాట - SIP ప్రొవిజనింగ్ సర్వర్

ప్రొవిజనింగ్ మైక్రోసర్వీస్ ఈ విధంగా మారింది. పిలిచారు ఫిడేలు, సోర్స్ కోడ్ GitHubలో అందుబాటులో ఉంది, కూడా ఉంది సిద్ధంగా డాకర్ చిత్రం, డాకర్ వినియోగ ఉదాహరణ ఇక్కడ.

ముఖ్య లక్షణాలు:

  • ఏదైనా సందర్భంలో, డిఫాల్ట్‌గా 10 నిమిషాల సమయానికి కాన్ఫిగరేషన్‌కు పరిమిత యాక్సెస్. మీరు కాన్ఫిగరేషన్‌ను మళ్లీ అందుబాటులో ఉంచాలనుకుంటే, కాన్ఫిగరేషన్‌ను మళ్లీ ప్రచురించండి.

  • అన్ని విక్రేతల కోసం ఒక ఫార్మాట్, సొనాటలో అన్ని సర్దుబాట్లు తీసివేయబడతాయి, మీరు ప్రామాణికమైన jsonని పంపండి, అందుబాటులో ఉన్న ఏవైనా పరికరాలను కాన్ఫిగర్ చేయండి.

  • పరికరాలకు జారీ చేయబడిన అన్ని కాన్ఫిగర్‌లు లాగ్ చేయబడ్డాయి, అన్ని సమస్య ప్రాంతాలను లాగ్‌లో వీక్షించవచ్చు మరియు లోపాలను చూడవచ్చు

  • టోకెన్‌తో ఒక సాధారణ లింక్‌ను ఉపయోగించడం సాధ్యమవుతుంది; ప్రతి ఫోన్ Mac చిరునామాను పేర్కొనడం ద్వారా దాని స్వంత కాన్ఫిగరేషన్‌ను పొందుతుంది. లేదా కీ ద్వారా వ్యక్తిగత లింక్.

  • నిర్వహణ (నిర్వహణ) మరియు ఫోన్‌లకు కాన్ఫిగ్‌ల కేటాయింపు (ప్రొవిజనింగ్) కోసం APIలు పోర్ట్‌ల ద్వారా విభజించబడ్డాయి

  • పరీక్షలు. జారీ చేయబడిన కాన్ఫిగరేషన్ యొక్క ఆకృతిని పరిష్కరించడం మరియు పరీక్షలతో కాన్ఫిగరేషన్ జారీ చేసే అన్ని సాధారణ పరిస్థితులను కవర్ చేయడం నాకు చాలా ముఖ్యమైనది. కాబట్టి ఇదంతా స్పష్టంగా పనిచేస్తుంది.

కాన్స్:

ఇప్పటివరకు, సోనాటలో ఎన్‌క్రిప్షన్ ఏ విధంగానూ ఉపయోగించబడలేదు. ఆ. ఉదాహరణకు సొనాటా ముందు nginxని ఉంచడం ద్వారా మీరు https ని ఉపయోగించడం ప్రారంభించవచ్చు. కానీ యాజమాన్య పద్ధతులు ఇంకా ఉపయోగించబడలేదు. ఎందుకు? ప్రాజెక్ట్ ఇప్పటికీ చిన్నది, ఇది మొదటి వంద పరికరాలను ప్రారంభించింది. మరియు, వాస్తవానికి, నేను ఆలోచనలు మరియు అభిప్రాయాలను సేకరిస్తాను. ఇంకా, ప్రతిదీ సురక్షితంగా చేయడానికి, నెట్‌వర్క్‌లో కాన్ఫిగర్‌లను స్నిఫ్ చేయలేము, ఎన్‌క్రిప్షన్ కీలు, టిఎల్‌ఎస్ మరియు వాటితో ముళ్ల పందితో బాధపడటం విలువైనదే, కానీ ఇది కొనసాగింపుగా ఉంటుంది.

UI లేకపోవడం. బహుశా ఇది తుది వినియోగదారుకు ముఖ్యమైన ప్రతికూలత కావచ్చు, కానీ సిస్టమ్ అడ్మినిస్ట్రేటర్‌కు, పూర్తి స్థాయి అప్లికేషన్ కంటే కన్సోల్ యుటిలిటీ చాలా ముఖ్యమైనది. కన్సోల్ యుటిలిటీని రూపొందించడానికి ప్రణాళికలు ఉన్నాయి, కానీ అది అవసరమా అని నాకు ఖచ్చితంగా తెలియదా?

బాటమ్ లైన్ ఏమిటి?

నిర్వహణ కోసం APIతో అనేక ఫోన్ మోడల్‌లను అందించడానికి చిన్న మరియు సరళమైన వెబ్ సర్వర్.

మరోసారి, ఇది ఎలా పని చేయాలి?

  1. సొనాటను ఇన్‌స్టాల్ చేస్తోంది.
  2. మేము json కాన్ఫిగరేషన్‌ని సృష్టించి, దానిని సొనాటలో ప్రచురిస్తాము.
  3. అప్పుడు మేము సొనాట నుండి ప్రొవిజనింగ్ లింక్‌ని అందుకుంటాము.
  4. అప్పుడు మేము ఈ లింక్‌ను టెలిఫోన్‌లో సూచిస్తాము.
  5. పరికరం కాన్ఫిగరేషన్‌ను లోడ్ చేస్తోంది

తదుపరి ఆపరేషన్లో రెండు దశలు మాత్రమే ఉన్నాయి:

  1. మేము json కాన్ఫిగరేషన్‌ని సృష్టించి, దానిని సొనాటలో ప్రచురిస్తాము
  2. పరికరం కాన్ఫిగరేషన్‌ను లోడ్ చేస్తోంది

ఏ ఫోన్‌లు ప్రచారం చేయబడతాయి?

విక్రేతలు Grandstream, Fanvil, Yealink. విక్రేతలోని కాన్ఫిగర్‌లు ఎక్కువ లేదా తక్కువ ఒకేలా ఉంటాయి, కానీ ఫర్మ్‌వేర్‌పై ఆధారపడి తేడా ఉండవచ్చు - అదనంగా పరీక్షించడం అవసరం కావచ్చు.

మీరు ఏ నియమాలను సెట్ చేయవచ్చు?

సమయానికి. కాన్ఫిగరేషన్ అందుబాటులో ఉండే సమయాన్ని మీరు పేర్కొనవచ్చు.
Mac చిరునామా ద్వారా. పరికరం యొక్క వ్యక్తిగత లింక్ ద్వారా కాన్ఫిగరేషన్‌ను సమర్పించినప్పుడు, Mac చిరునామా కూడా తనిఖీ చేయబడుతుంది.
ip ద్వారా. అభ్యర్థన చేసిన IP చిరునామా ద్వారా.

సొనాటాతో ఎలా సంభాషించాలి?

API ద్వారా, http అభ్యర్థనలు చేయడం. API మీ ఇన్‌స్టాలేషన్‌లో అందుబాటులో ఉంటుంది. ఎందుకంటే API స్వాగర్ స్పెసిఫికేషన్‌కు మద్దతు ఇస్తుంది, మీరు ఉపయోగించవచ్చు ఆన్‌లైన్ యుటిలిటీ APIకి పరీక్ష అభ్యర్థనల కోసం.

సరే, బాగుంది. మంచి విషయాలు, దీన్ని ఎలా ప్రయత్నించాలి?

రిపోజిటరీ ఆధారంగా డాకర్ ఇమేజ్‌ని అమర్చడం సులభమయిన మార్గం సొనాట-నమూనా. రిపోజిటరీ సంస్థాపన సూచనలను కలిగి ఉంది.

నాకు node.js తెలిస్తే?

మీకు జావాస్క్రిప్ట్‌ని ఉపయోగించి అనుభవం ఉంటే, ఇక్కడ ప్రతిదీ ఎలా పని చేస్తుందో మీరు త్వరగా కనుగొంటారు.

సొనాటా డెవలప్‌మెంట్ ఉంటుందా?

నేను నా లక్ష్యాలను పాక్షికంగా సాధించాను. ఫోన్ సెటప్‌ను ఆటోమేట్ చేయడం అనే అంశంపై మరింత అభివృద్ధి అనేది నా పనులకు సంబంధించిన విషయం. ఫోన్ బటన్లను కాన్ఫిగర్ చేయడానికి, అడ్రస్ బుక్ ప్రొవిజనింగ్‌ను జోడించడానికి, బహుశా మరేదైనా, వ్యాఖ్యలలో వ్రాయడానికి కాన్ఫిగర్‌లను విస్తరించడానికి కూడా అవకాశం ఉంది.

సారాంశం మరియు రసీదులు

నిర్మాణాత్మక సూచనలు/ఆక్షేపణలు/వ్యాఖ్యలు మరియు ప్రశ్నలను కలిగి ఉన్నందుకు నేను సంతోషిస్తాను, ఎందుకంటే... అతను అర్థం చేసుకోలేని విధంగా ఏదో వివరించి ఉండవచ్చు.

పరీక్షల కోసం ఫోన్‌లకు సహాయం చేసిన, సలహా ఇచ్చిన, పరీక్షించిన మరియు అందించిన/దానం చేసిన నా సహోద్యోగులందరికీ కూడా నా కృతజ్ఞతలు తెలియజేస్తున్నాను. వాస్తవానికి, నేను పనిలో కమ్యూనికేట్ చేసిన చాలా మంది వ్యక్తులు వివిధ స్థాయిలలో ప్రాజెక్ట్‌లో పాల్గొంటున్నారు, AsterConf'ఇ, చాట్‌లు మరియు ఇమెయిల్‌లలో. ఆలోచనలు మరియు ఆలోచనలకు ధన్యవాదాలు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి