मेरा लेख उत्पाद का पूर्ण विवरण नहीं है, लेकिन केवल अच्छे प्रकाशन "फ्यूजनपीबीएक्स, या फिर से, महान, फ्रीस्विच" का एक छोटा स्पष्टीकरण है। यह मुझे लगता है कि FusionPBX में ACL विषय बहुत अच्छी तरह से कवर नहीं किया गया है। मैं FreeSWITCH / FusionPBX के साथ अपने अनुभव के आधार पर इस अंतर को भरने की कोशिश करूंगा।
और इसलिए, हमने FusionPBX को पंजीकृत एक्सटेंशन नंबर 1010 के साथ डोमेन.लोकल डोमेन और शहर के लिए बाहरी कॉल के लिए एक कॉन्फ़िगर मार्ग स्थापित किया है। हम अपने टेलीफोनी सिस्टम को अनधिकृत कॉल से बचाने के लिए एसीएल का उपयोग करते हैं जो हमारे पैसे लेगा। यानी केवल एसीएल में वर्णित नेटवर्क से आउटगोइंग कॉल की अनुमति है। और यहां आपको एक बहुत स्पष्ट समझ की आवश्यकता है कि फ्यूजनपीबीएक्स में एसीएल कैसे काम करता है, इसकी विशेषताओं, तर्क और इसके लगाव के बिंदु।
उपरोक्त लेख के सम्मानित लेखक की तरह, मैंने भी एसीएल से जुड़ी सभी रेक पर कदम रखा।
मैं
SipProfiles से शुरुआत
करूंगा ।
दोनों प्रोफाइल (मैं उन्हें कहूंगा कि), और आंतरिक और बाहरी जनता के संदर्भ में हैं, और यह कोई संयोग नहीं है। आंतरिक प्रोफाइल में संख्याओं का पंजीकरण होता है, और इस पर ध्यान देना चाहिए। आंतरिक प्रोफ़ाइल में, ACL लागू-इनबाउंड-एसीएल के रूप में बाध्य है। यह लाइन प्रोफ़ाइल स्तर पर एसीएल के संचालन के लिए जिम्मेदार है। अब तक प्रोफाइल के साथ।
प्रसंग
अन्य चीजों के अलावा, कॉन्टेक्ट रूटिंग में उपयोग किया जाता है। आने वाले सभी मार्ग सार्वजनिक संदर्भ से जुड़े हैं।
आउटगोइंग (शहर के लिए, सेलुलर, इंटरसिटी, अंतर्राष्ट्रीय, और किसी भी अन्य) मार्ग डोमेन नाम के संदर्भ में (डिफ़ॉल्ट रूप से) स्थित हैं (चलो इसे domain.local कहते हैं)।
एसीएल
अब एसीएल के साथ सौदा करते हैं। डिफ़ॉल्ट रूप से, नए स्थापित FusionPBX में दो ACL हैं:
डोमेन डिफ़ॉल्ट क्रिया: इनकार - यह शीट आंतरिक प्रोफ़ाइल के लिए बाध्य है
लैन डिफ़ॉल्ट कार्रवाई: अनुमति दें
डोमेन एसीएल-सूची में हम नेटवर्क सेट करते हैं (अच्छी तरह से, उदाहरण के लिए, 192.168.0.0/24), इस नेटवर्क के लिए नेटवर्क की अनुमति दें, पुनः लोड करें।
अगला, इस नेटवर्क से फोन को पंजीकृत करें, और निर्देश और तार्किक के अनुसार सब कुछ ठीक लग रहा है।
हम परीक्षण शुरू करते हैं, एक बाहरी नंबर पर कॉल करते हैं और ... हमें एक बैगेल मिलता है, या एक बैगेल से एक छेद मिलता है। अचानक!
हम कंसोल में या लॉग व्यूअर FusioPBX के माध्यम से लॉग का विश्लेषण करना शुरू करते हैं।
हम अपने फोन को देखते हैं:
switch_channel.c:1104 New Channel sofia/internal/1010@domain.local
हम ट्रिगर 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/1010@domain.local [CS_ROUTING] [NO_ROUTE_DESTINATION]
कोई मार्ग नहीं! हालांकि जिस रूट पर हमने ईमानदारी से पंजीकरण किया है।
उत्तर वास्तव में सरल है।
बुलावा आ गया। एसीएल इससे चूक गया। और चूँकि ACL आंतरिक प्रोफ़ाइल में बाध्य है, और यह प्रोफ़ाइल सार्वजनिक संदर्भ में है, FreeSWITCH ईमानदारी से सार्वजनिक संदर्भ में रूटिंग को देखता है। लेकिन जनता के संदर्भ में, केवल आवक रूटिंग है, और सिस्टम ईमानदारी से हमें बताता है कि शहर के लिए कोई मार्ग नहीं हैं।
इस स्थिति से कम से कम दो तरीके हैं।
- इस ACL को प्रोफ़ाइल में नहीं, बल्कि आंतरिक संख्या में संलग्न करें। यह हल करने का सबसे सही तरीका हो सकता है, क्योंकि बारीक ट्यूनिंग के लिए एसीएल को जितना संभव हो उतना एक्सटेंशन के करीब बांधा जाना चाहिए। यानी आप फोन का एक विशिष्ट पता / नेटवर्क पता निर्दिष्ट कर सकते हैं जिससे वह एक आउटगोइंग कॉल कर सकता है। इस विकल्प का नुकसान यह है कि प्रत्येक एक्सटेंशन में आपको यह करना होगा।
- ACL को ठीक करें ताकि यह प्रोफाइल स्तर पर सही ढंग से काम करे। मैंने इस विकल्प को चुना, क्योंकि एक बार ACL में नेटवर्क जोड़ने से मुझे यह प्रत्येक एक्सटेंशन में लिखने से ज्यादा आसान लगता था। लेकिन यह विशेष रूप से मेरे कार्य के लिए है। अन्य कार्यों के लिए, आपको एक अलग निर्णय तर्क की आवश्यकता हो सकती है।
और ऐसा है। आइए एसीएल डोमेन को इस प्रकार तय करें:
डोमेन डिफ़ॉल्ट क्रिया: अनुमति दें
डोमेन ACL- सूची में हम नेटवर्क सेट करते हैं:
इनकार 192.168.0.0/24
पुनः लोड लागू करें।
हम परीक्षण करते हैं: हम फिर से नंबर 98343379xxxx और ... CPV जाता है ... ALLO डायल करते हैं। सब कुछ काम करता है।
हम देखते हैं कि FreeSWITCH में क्या हुआ:
कॉल शुरू होती है:
switch_channel.c:1104 New Channel sofia/internal/1010@domain.local
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/1010@domain.local Regex (PASS) [Sity] destination_number(98343379xxxx) =~ /^9(8343[23]\d{6})$/ break=on-false
रूटिंग बीत चुका है, और फिर एक कनेक्शन स्थापित किया गया है जो विषय के दायरे से परे है।
यदि हम एसीएल में नेटवर्क पता बदलते हैं, लेकिन पहले परीक्षण से चित्र प्राप्त करते हैं, अर्थात। ACL कॉल छोड़ देगा और रूटिंग NO_ROUTE_DESTINATION कहेगा।
शायद यही सब मैं FusionPBX ACL पर जोड़ना चाहता था।
मुझे उम्मीद है कि कोई काम आएगा।