FusionPBX మరియు ACL

నా వ్యాసం ఉత్పత్తి యొక్క పూర్తి వివరణ కాదు, కానీ మంచి ప్రచురణ "FusionPBX, లేదా మళ్ళీ గొప్ప, FreeSWITCH" యొక్క స్వల్ప మెరుగుదల మాత్రమే. FusionPBXలోని ACL అంశం అందులో బాగా వెల్లడించలేదని నాకు అనిపిస్తోంది. నేను FreeSWITCH/FusionPBXతో నా స్వంత అనుభవం ఆధారంగా ఈ ఖాళీని పూరించడానికి ప్రయత్నిస్తాను.

కాబట్టి, మేము domain.local డొమైన్‌లో నమోదిత అంతర్గత నంబర్ 1010తో ఇన్‌స్టాల్ చేయబడిన FusionPBXని కలిగి ఉన్నాము మరియు నగరానికి బాహ్య కాల్‌ల కోసం కాన్ఫిగర్ చేయబడిన మార్గం. మా టెలిఫోనీ సిస్టమ్‌ను అనధికారిక కాల్‌ల నుండి సురక్షితంగా ఉంచడానికి మేము ACLని ఉపయోగిస్తాము, అది మా డబ్బును తీసుకుంటుంది. ఆ. ACLలో వివరించిన నెట్‌వర్క్‌ల నుండి మాత్రమే అవుట్‌గోయింగ్ కాల్‌లను అనుమతిస్తాయి. మరియు ఇక్కడ మీకు FusionPBXలో ACL ఎలా పని చేస్తుందో, దాని ఫీచర్లు, లాజిక్ మరియు దాని యాంకర్ పాయింట్ గురించి పూర్తిగా స్పష్టమైన అవగాహన అవసరం.

పై కథనం యొక్క గౌరవనీయమైన రచయిత వలె, నేను కూడా ACLకి సంబంధించిన అన్ని రేకులపై అడుగు పెట్టాను.

నేను మొదలు పెడతాను SipProfiles.
రెండు ప్రొఫైల్‌లు (నేను వాటిని అలా పిలుస్తాను), అంతర్గత మరియు బాహ్య రెండూ పబ్లిక్ సందర్భంలో ఉంటాయి మరియు ఇది ప్రమాదవశాత్తు కాదు. సంఖ్యల నమోదు అంతర్గత ప్రొఫైల్‌లో జరుగుతుంది మరియు మేము దానిపై శ్రద్ధ చూపుతాము. అంతర్గత ప్రొఫైల్‌లో, డొమైన్‌లు ACL వర్తించు-ఇన్‌బౌండ్-acl వలె కట్టుబడి ఉంటాయి. ఇది ప్రొఫైల్ స్థాయిలో ACL యొక్క ఆపరేషన్కు బాధ్యత వహించే ఈ లైన్. ఇప్పటివరకు, ప్రొఫైల్‌లతో అంతే.

సందర్భం

కాల్ రూటింగ్‌లో ఇతర విషయాలతోపాటు సందర్భం ఉపయోగించబడుతుంది. అన్ని ఇన్‌కమింగ్ మార్గాలు పబ్లిక్ సందర్భానికి కట్టుబడి ఉంటాయి.

అవుట్‌గోయింగ్ (నగరానికి, సెల్యులార్‌కు, సుదూర, అంతర్జాతీయ మరియు మరేదైనా) మార్గాలు (డిఫాల్ట్‌గా) డొమైన్ పేరు సందర్భంలో ఉంటాయి (దీన్ని domain.local అని పిలుద్దాం).

ACL

ఇప్పుడు ACLలతో వ్యవహరిస్తాం. డిఫాల్ట్‌గా, తాజాగా ఇన్‌స్టాల్ చేయబడిన FusionPBX రెండు ACLలను కలిగి ఉంది:

డొమైన్‌ల డిఫాల్ట్ చర్య: తిరస్కరించండి - ఈ షీట్ అంతర్గత ప్రొఫైల్‌కు కట్టుబడి ఉంటుంది
లాన్ డిఫాల్ట్ చర్య: అనుమతించు

డొమైన్‌ల ACL జాబితాలో, మేము నెట్‌వర్క్‌ను నిర్దేశిస్తాము (ఉదాహరణకు, 192.168.0.0/24), మేము ఈ నెట్‌వర్క్‌కు అనుమతి అనుమతిని చేస్తాము, మేము reloadaclని ఉపయోగిస్తాము.

తరువాత, మేము ఈ నెట్‌వర్క్ నుండి ఫోన్‌ను నమోదు చేస్తాము మరియు ప్రతిదీ బాగానే ఉన్నట్లు మరియు సూచనల ప్రకారం మరియు తార్కికంగా కనిపిస్తుంది.
మేము పరీక్షించడం ప్రారంభిస్తాము, బాహ్య నంబర్‌కు కాల్ చేయండి మరియు ... మాకు డోనట్ లేదా డోనట్ హోల్ వస్తుంది. అకస్మాత్తుగా!

మేము కన్సోల్‌లో లేదా లాగ్ వ్యూయర్ FusioPBX ద్వారా లాగ్‌ను విశ్లేషించడం ప్రారంభిస్తాము.

మేము మా సవాలును చూస్తాము:

switch_channel.c:1104 New Channel sofia/internal/[email protected]

మేము పనిచేసిన ACLని చూస్తాము:

sofia.c:10208 IP 192.168.0.150 Approved by acl "domains[]". Access Granted.

మరియు ఇంకా:

mod_dialplan_xml.c:637 Processing 1010 <1010>->98343379xxxx in context public
switch_core_state_machine.c:311 No Route, Aborting 
switch_core_state_machine.c:312 Hangup sofia/internal/[email protected] [CS_ROUTING] [NO_ROUTE_DESTINATION] 

మార్గం లేదు! మేము నిజాయితీగా నమోదు చేసుకున్న మార్గం అయినప్పటికీ.

సమాధానం నిజంగా సులభం.

కాల్ వచ్చింది. ACL దాన్ని కోల్పోయింది. మరియు ACL అంతర్గత ప్రొఫైల్‌లో కట్టుబడి ఉన్నందున మరియు ఈ ప్రొఫైల్ పబ్లిక్ సందర్భంలో ఉన్నందున, FreeSWITCH నిజాయితీగా పబ్లిక్ సందర్భంలో రూటింగ్‌ని చూస్తుంది. కానీ పబ్లిక్ సందర్భంలో, ఇన్‌కమింగ్ రూటింగ్ మాత్రమే, మరియు అక్కడ నగరానికి మార్గాలు లేవని సిస్టమ్ నిజాయితీగా చెబుతుంది.

ఈ పరిస్థితి నుండి కనీసం రెండు మార్గాలు ఉన్నాయి.

  1. ఈ ACLని ప్రొఫైల్‌కు కాకుండా అంతర్గత సంఖ్యకు అటాచ్ చేయండి. పరిష్కరించడానికి ఇది చాలా సరైన మార్గం కావచ్చు, ఎందుకంటే. చక్కటి ట్యూనింగ్ కోసం ACLని ఎక్స్‌టెన్షన్‌కు వీలైనంత దగ్గరగా బైండ్ చేయడం మంచిది. ఆ. మీరు ఫోన్ యొక్క నిర్దిష్ట చిరునామా / నెట్‌వర్క్ చిరునామాను సూచించవచ్చు, దాని నుండి అవుట్‌గోయింగ్ కాల్ చేయవచ్చు. ఈ ఎంపిక యొక్క ప్రతికూలత ఏమిటంటే ప్రతి పొడిగింపు దీన్ని చేయాల్సి ఉంటుంది.
  2. ACLని పరిష్కరించండి, తద్వారా ఇది ప్రొఫైల్ స్థాయిలో సరిగ్గా పని చేస్తుంది. నేను ఈ ఎంపికను ఎంచుకున్నాను, ఎందుకంటే ప్రతి ఎక్స్‌టెన్షన్‌లో నెట్‌వర్క్‌ను సూచించడం కంటే ఒకసారి ACLకి జోడించడం నాకు సులభంగా అనిపించింది. కానీ ఇది ప్రత్యేకంగా నా పని కోసం. ఇతర పనుల కోసం, మీకు వేరే నిర్ణయం తీసుకునే తర్కం అవసరం కావచ్చు.

కాబట్టి. ACL డొమైన్‌లను ఈ క్రింది విధంగా పరిష్కరిద్దాం:

డొమైన్‌ల డిఫాల్ట్ చర్య: అనుమతించు

డొమైన్‌ల ACL జాబితాలో, మేము నెట్‌వర్క్‌ను నమోదు చేస్తాము:

తిరస్కరించు 192.168.0.0/24

వర్తించు, మళ్లీ లోడ్ చేయి.
మేము పరీక్షిస్తున్నాము: మేము 98343379xxxx నంబర్‌కు మళ్లీ డయల్ చేయండి మరియు ... చెక్‌పాయింట్ వస్తోంది ... హలో. అంతా పని చేస్తోంది.
FreeSWITCHలో ఏమి జరిగిందో చూద్దాం:
కాల్ ప్రారంభమవుతుంది:

switch_channel.c:1104 New Channel sofia/internal/[email protected]

ACL మిస్ చేయలేదు:

[DEBUG] sofia.c:10263 IP 192.168.0.150 Rejected by acl "domains". Falling back to Digest auth.

మరియు ఇంకా:

mod_dialplan_xml.c:637 Processing 1010 <1010>->98343379xxxx in context domain.local
sofia/internal/[email protected] Regex (PASS) [Sity] destination_number(98343379xxxx) =~ /^9(8343[23]d{6})$/ break=on-false 

రూటింగ్ గడిచిపోయింది, ఆపై కనెక్షన్ స్థాపన వస్తుంది, ఇది అంశం యొక్క పరిధికి మించినది.

మేము ACLలో నెట్‌వర్క్ చిరునామాను మార్చినట్లయితే, కానీ మొదటి పరీక్ష నుండి చిత్రాన్ని పొందండి, అనగా. ACL కాల్‌ని దాటవేస్తుంది మరియు రూటింగ్ NO_ROUTE_DESTINATION అని చెబుతుంది.

నేను ACL FusionPBXలో జోడించాలనుకున్నది బహుశా అంతే.

ఇది ఎవరికైనా ఉపయోగకరంగా ఉంటుందని నేను ఆశిస్తున్నాను.

మూలం: www.habr.com

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