FusionPBX ಮತ್ತು ACL

ನನ್ನ ಲೇಖನವು ಉತ್ಪನ್ನದ ಸಂಪೂರ್ಣ ವಿವರಣೆಯಲ್ಲ, ಆದರೆ ಉತ್ತಮ ಪ್ರಕಟಣೆ "FusionPBX, ಅಥವಾ ಮತ್ತೆ-ಗ್ರೇಟ್, FreeSWITCH" ನ ಸ್ವಲ್ಪ ಪರಿಷ್ಕರಣೆಯಾಗಿದೆ. ಫ್ಯೂಷನ್‌ಪಿಬಿಎಕ್ಸ್‌ನಲ್ಲಿನ ಎಸಿಎಲ್ ವಿಷಯವನ್ನು ಅದರಲ್ಲಿ ಚೆನ್ನಾಗಿ ಬಹಿರಂಗಪಡಿಸಲಾಗಿಲ್ಲ ಎಂದು ನನಗೆ ತೋರುತ್ತದೆ. FreeSWITCH/FusionPBX ನೊಂದಿಗೆ ನನ್ನ ಸ್ವಂತ ಅನುಭವದ ಆಧಾರದ ಮೇಲೆ ನಾನು ಈ ಅಂತರವನ್ನು ತುಂಬಲು ಪ್ರಯತ್ನಿಸುತ್ತೇನೆ.

ಆದ್ದರಿಂದ, ನಾವು domain.local ಡೊಮೇನ್‌ನಲ್ಲಿ ನೋಂದಾಯಿತ ಆಂತರಿಕ ಸಂಖ್ಯೆ 1010 ಮತ್ತು ನಗರಕ್ಕೆ ಬಾಹ್ಯ ಕರೆಗಳಿಗಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾದ FusionPBX ಅನ್ನು ಸ್ಥಾಪಿಸಿದ್ದೇವೆ. ನಮ್ಮ ಹಣವನ್ನು ಕಸಿದುಕೊಳ್ಳುವ ಅನಧಿಕೃತ ಕರೆಗಳಿಂದ ನಮ್ಮ ಟೆಲಿಫೋನಿ ವ್ಯವಸ್ಥೆಯನ್ನು ಸುರಕ್ಷಿತವಾಗಿರಿಸಲು ನಾವು ACL ಅನ್ನು ಬಳಸುತ್ತೇವೆ. ಆ. ACL ನಲ್ಲಿ ವಿವರಿಸಿದ ನೆಟ್‌ವರ್ಕ್‌ಗಳಿಂದ ಮಾತ್ರ ಹೊರಹೋಗುವ ಕರೆಗಳನ್ನು ಅನುಮತಿಸಿ. ಮತ್ತು ಇಲ್ಲಿ ನೀವು FusionPBX ನಲ್ಲಿ ACL ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಅದರ ವೈಶಿಷ್ಟ್ಯಗಳು, ತರ್ಕ ಮತ್ತು ಅದರ ಆಂಕರ್ ಪಾಯಿಂಟ್ ಬಗ್ಗೆ ಸಂಪೂರ್ಣವಾಗಿ ಸ್ಪಷ್ಟವಾದ ತಿಳುವಳಿಕೆ ಅಗತ್ಯವಿದೆ.

ಮೇಲಿನ ಲೇಖನದ ಗೌರವಾನ್ವಿತ ಲೇಖಕರಂತೆ, ನಾನು ಕೂಡ ACL ಗೆ ಸಂಬಂಧಿಸಿದ ಎಲ್ಲಾ ಕುಂಟೆಗಳನ್ನು ಹೆಜ್ಜೆ ಹಾಕಿದೆ.

ನಾನು ಪ್ರಾರಂಭಿಸುತ್ತೇನೆ ಸಿಪ್ಪ್ರೊಫೈಲ್ಗಳು.
ಎರಡೂ ಪ್ರೊಫೈಲ್‌ಗಳು (ನಾನು ಅವರನ್ನು ಕರೆಯುತ್ತೇನೆ), ಆಂತರಿಕ ಮತ್ತು ಬಾಹ್ಯ ಎರಡೂ, ಸಾರ್ವಜನಿಕ ಸನ್ನಿವೇಶದಲ್ಲಿವೆ ಮತ್ತು ಇದು ಆಕಸ್ಮಿಕವಲ್ಲ. ಸಂಖ್ಯೆಗಳ ನೋಂದಣಿ ಆಂತರಿಕ ಪ್ರೊಫೈಲ್ನಲ್ಲಿ ನಡೆಯುತ್ತದೆ, ಮತ್ತು ನಾವು ಅದಕ್ಕೆ ಗಮನ ಕೊಡುತ್ತೇವೆ. ಆಂತರಿಕ ಪ್ರೊಫೈಲ್‌ನಲ್ಲಿ, ಡೊಮೇನ್‌ಗಳು 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

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ