در این آموزش نسبتاً کوتاه، نحوه نصب ابزار Asterisk  را در سرور اوو بونتو، نسخه‌های 18.04 و 16.04 نشان می‌دهیم. برای آنها که هیچ پیش‌زمینه ذهنی در مورد Asterisk ندارند، باید گفت که این یک ابزار متن باز بوده که از پلتفرم «مبادله انشعاب خصوصی» یا PBX استفاده می‌کند. افراد عادی، کسب‌وکارها و دولت‌ها در سراسر جهان از این ابزار برای گسترش VoIP و زیرساخت‌های کنفرانسی خود بهره می‌برند.

نصب ابزار Asterisk

ابزار Asterisk

ابزار Asterisk مجموعه کاملی از قابلیت‌ها را در اختیار قرار می‌دهد. این قابلیت‌ها شامل مواردی چون ایمیل صوتی، پاسخ صوتی تعاملی، تماس کنفرانسی، موزیک انتظار، صف تماس و ضبط تماس می‌شوند.

اگر به یک پلتفرم PBX متن‌باز برای راه‌اندازی کسب‌وکار یا مؤسسه خود احتیاج دارید، می‌توانید فقط Asterisk را انتخاب کنید. این مطلب قرار است که شروع کار با این ابزار را برایتان بسیار ساده کند و شما  به سرعت بتوانید از قابلیت‌های آن استفاده کنید.

برای اطلاعات بیشتر در مورد Asterisk می‌توانید صفحه خانگی آن را نیز بررسی کنید.

برای شروع فرآیند نصب ابزار Asterisk، حتماً مراحل زیر را دنبال نمایید.

گام ۱)  دریافت و نصب Asterisk

به منظور نصب Asterisk، نیاز به برخی بسته‌های پایه نرم‌افزاری خواهید داشت. برای نصب این بسته، فرمان‌های زیر را به کار بگیرید.


sudo apt update

sudo apt install wget build-essential subversion

در اینجا می‌خواهیم که بسته‌های ابزار Asterisk را به صورت دستی دانلود کنیم. این ابزارها را در دایرکتوری سیستم /usr/src قرار می‌دهیم؛ جایی که بیشتر فایل‌های منابع نرم‌افزاری در آن قرار می‌گیرند. برای این منظور، دایرکتوری را به /usr/src تغییر می‌دهیم و Asterisk را دریافت می‌کنیم.

برای دریافت آخرین نسخه ابزار Asterisk، منبع بسته‌های آن را در اینجا مشاهده کنید. سپس شماره آخرین نسخه ارائه شده را در دستورهای زیر جایگزین نمایید. در زمان نگارش این مطلب، آخرین نسخه ارائه شده Asterisk 17 است.


cd /usr/src/

sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-17-current.tar.gz

وقتی فایل Asterisk دریافت شد، آن را از حالت فشرده خارج کنید. سپس باید آن را به دایرکتوری خودش منتقل کنید و اسکریپت نصب را اجرا نمایید. این اسکریپت تمام متعلقات ابزار و از جمله ماژول‌های MP3 را دریافت و نصب خواهد کرد.


sudo tar zxf asterisk-17-current.tar.gz

cd asterisk-17.*/

sudo contrib/scripts/get_mp3_source.sh

sudo contrib/scripts/install_prereq install

پس از اجرای  فرمان‌های بالا، اسکریپت می‌بایست تمام بسته‌ها را دریافت و نصب کند. نهایتاً یک پیغام مبنی بر موفقیت‌آمیز بودن عملیات به صورت زیر برایتان نمایش داده می‌شود.


Current status: 27 (-2) upgradable.

#############################################

## install completed successfully

#############################################

سپس فرمان‌های زیر را اجرا کنید تا برخی تنظیمات، بررسی‌ها و تأییدها انجام شوند.


sudo ./configure

پس از تکمیل مراحل این بخش، خطوطی مانند زیر برایتان نمایش داده می‌شوند.


configure: Menuselect build configuration successfully completed

.$$$$$$$$$$$$$$$=..

.$7$7..          .7$$7:.

.$$:.                 ,$7.7

.$7.     7$$$$           .$$77

..$$.       $$$$$            .$$$7

..7$   .?.   $$$$$   .?.       7$$$.

$.$.   .$$$7. $$$$7 .7$$$.      .$$$.

.777.   .$$$$$$77$$$77$$$$$7.      $$$,

$$$~      .7$$$$$$$$$$$$$7.       .$$$.

.$$7          .7$$$$$$$7:          ?$$$.

$$$          ?7$$$$$$$$$$I        .$$$7

$$$       .7$$$$$$$$$$$$$$$$      :$$$.

$$$       $$$$$$7$$$$$$$$$$$$    .$$$.

$$$        $$$   7$$$7  .$$$    .$$$.

$$$$             $$$$7         .$$$.

7$$$7            7$$$$        7$$$

$$$$$                        $$$

$$$$7.                       $$  (TM)

$$$$$$$.           .7$$$$$$  $$

$$$$$$$$$$$$7$$$$$$$$$.$$$$$$

$$$$$$$$$$$$$$$$.

configure: Package configured for:

configure: OS type  : linux-gnu

configure: Host CPU : x86_64

configure: build-cpu:vendor:os: x86_64 : pc : linux-gnu :

configure: host-cpu:vendor:os: x86_64 : pc : linux-gnu :

سپس از شما خواسته می‌شود که برخی ماژول‌ها برای کامپایل و نصب انتخاب کنید. می‌توانید از طریق فرمان‌های زیر به منوی سیستم دسترسی داشته باشید.


sudo make menuselect

انتخاب فرمت MP3

به دلیل اینکه قصد داریم از MP3 به عنوان فرمت صوتی استفاده کنیم و قبلاً نیز ماژول مربوط به آن را دریافت کرده‌ایم، مطابق زیر، فرمت MP3 را انتخاب نمایید.


┌────────────────────────┤ Asterisk Module and Build Option Selection ├────────────────────────┐

│                                                                                              │

│   Add-ons (See README-addons.txt)        --- Extended ---                                  ↑ │

│   Applications                       [ ] chan_mobile                                       ▒ │

│   Bridging Modules                   [ ] chan_ooh323                                       ▒ │

│   Call Detail Recording              [*] format_mp3                                        ▒ │

│   Channel Event Logging              [ ] res_config_mysql                                  ▒ │

│   Channel Drivers                        --- Deprecated ---                                ▒ │

│   Codec Translators                  [ ] app_mysql                                         ▒ │

│   Format Interpreters                [ ] cdr_mysql                                         ▮ │

│   Dialplan Functions                                                                       ▒ │

│   PBX Modules                                                                              ▒ │

│   Resource Modules                                                                         ▒ │

│   Test Modules                                                                             ▒ │

│   Compiler Flags                                                                           ▒ │

│   Utilities                                                                                ▒ │

│   AGI Samples                                                                              ↓ │

│                                                                                              │

│  MP3 format [Any rate but 8000hz mono is optimal]                                            │

│                                                                                              │

│      Depends on: N/A                                      ┌───────────────┐   ┌──────────┐   │

│         Can use: N/A                                      │  Save & Exit  │   │   Exit   │   │

│  Conflicts with: N/A                                      └───────────────┘   └──────────┘   │

│   Support Level: extended                                                                    │

└──────────────────────────────────────────────────────────────────────────────────────────────┘

 

toggles selection |  saves & exits |  exits without save

وقتی کارتان به اتمام رسید، کلید F12 را فشار دهید تا تنظیمات ذخیره شده و سپس خارج شوید. یا اینکه می‌توانید  به روی دکمه Save and Exit رفته و Enter بزنید.

شروع فرآیند کامپایل

نهایتاً با اجرای فرمان زیر فرآیند کامپایل را آغاز کنید.


sudo make -j2

این فرآیند بسته به قدرت سیستم شما ممکن است به زمان نیاز داشته باشد. گزینه -j همراه با عددی که در کنار آن درج شده، نمایانگر تعداد پردازنده‌های سرور شماست. اگر سرور شما بیشتر از ۲ پردازنده دارد، حتماً این فرمان را تغییر دهید.

وقتی بسته‌ها و ماژول‌ها کامپایل شدند، می‌بایست با پیغامی مانند زیر روبرو شوید.


+--------- Asterisk Build Complete ---------+

+ Asterisk has successfully been built, and +

+ can be installed by running:              +

+                                           +

+                make install               +

+-------------------------------------------+

بعد از کامپایل‌کردن موارد بالا، می‌توانید بالاخره ابزار Asterisk را با فرمان زیر نصب کنید.


sudo make install

پس از فرآیند نصب، پیغامی مشابه زیر برایتان ظاهر می‌گردد.


+---- Asterisk Installation Complete -------+

+                                           +

+    YOU MUST READ THE SECURITY DOCUMENT    +

+                                           +

+ Asterisk has successfully been installed. +

+ If you would like to install the sample   +

+ configuration files (overwriting any      +

+ existing config files), run:              +

+                                           +

+ For generic reference documentation:      +

+    make samples                           +

+                                           +

+ For a sample basic PBX:                   +

+    make basic-pbx                         +

+                                           +

+                                           +

+-----------------  or ---------------------+

+                                           +

+ You can go ahead and install the asterisk +

+ program documentation now or later run:   +

+                                           +

+               make progdocs               +

+                                           +

+ **Note** This requires that you have      +

+ doxygen installed on your local system    +

+-------------------------------------------+

richard@ubuntu1804:/usr/src/asterisk-17.2.0$

اکنون نصب به پایان رسیده است.

حالا می‌توانید تنظیمات سیستم خود را شروع کنید. ابتدا نیاز به برخی داده‌های نمونه برای کمک به تنظیم پلتفرم دارید. برای ان منظور، فرمان‌های زیر را اجرا کنید.


sudo make samples

sudo make basic-pbx

با کمک فرمان‌های زیر تنظیمات را تکمیل کنید.


sudo make config

sudo ldconfig

گام ۲) ساخت کاربر ابزار Asterisk

ابزار Asterisk را نباید با کاربر روت اجرا کنیم. برای این منظور، یک کاربر اختصاصی ایجاد خواهیم کرد. برای منظور، با استفاده از فرمان زیر یک حساب کاربری و یک گروه با عنوان asterisk می‌سازیم.


sudo addgroup --quiet --system asterisk

sudo adduser --quiet --system --ingroup asterisk --no-create-home --disabled-password asterisk

بعد از ساخت حساب کاربری بالا، فایل /etc/default/asterisk را باز کنید.


sudo nano /etc/default/asterisk

سپس تغییرات زیر را اِعمال کرده و فایل را ذخیره کنید.


# Startup configuration for the Asterisk daemon

# Uncomment the following and set them to the user/groups that you

# want to run Asterisk as. NOTE: this requires substantial work to

# be sure that Asterisk's environment has permission to write the

# files required  for  its  operation, including logs, its comm

# socket, the asterisk database, etc.

AST_USER="asterisk"

AST_GROUP="asterisk"

در ادامه، کاربر asterisk را برای برقراری تماس و گروه‌های صوتی اضافه کنید.


sudo usermod -a -G dialout,audio asterisk

حالا نوبت به تغییر مجوّزها در تمای فایل‌ها و دایرکتوری ابزار Asterisk است.


sudo chown -R asterisk: /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk

sudo chmod -R 750 /var/{lib,log,run,spool}/asterisk /usr/lib/asterisk /etc/asterisk

گام ۳) راه‌اندازی ابزار Asterisk

در این مقطع، کار نصب و تنظیم به پایان رسیده است. با اجرای فرمان‌های زیر نسبته به فعال‌سازی و راه‌اندازی سرویس Asterisk اقدام کنید.


sudo systemctl enable asterisk

sudo systemctl start asterisk

به منظور تأیید اجرای Asterisk، فرمان زیر به کمک شما می‌آید.


sudo asterisk -vvvr

در نتیجه، پیغام پیش‌فرض Asterisk CLI برایتان به نمایش درخواهد آمد.


Asterisk 17.2.0, Copyright (C) 1999 - 2018, Digium, Inc. and others.

Created by Mark Spencer <markster@digium.com>

Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.

This is free software, with components licensed under the GNU General Public

License version 2 and other licenses; you are welcome to redistribute it under

certain conditions. Type 'core show license' for details.

=========================================================================

Connected to Asterisk 17.2.0 currently running on ubuntu1804 (pid = 14491)

ubuntu1804*CLI>

در بسیاری از نصب‌های سیستم‌عامل اوبونتو فایروال فعال نیست. در صورتی که فایروال داشتید، باید به پورت‌های زیر مجوّز بدهید. SIP به صورت پیش‌فرض از پورت UDP شماره 5060 استفاده می‌کند که باید آن را باز کنید.


sudo ufw allow 5060/udp

برای پروتکل Real Time یا RTP نیاز به باز کردن پورت‌های دامنه زیر وجود دارد.


sudo ufw allow 10000:20000/udp

به این ترتیب، ابزار Asterisk آماده استفاده کاربر خواهد بود.

جمع‌بندی

در این پست نحوه نصب و تنظیم ابزار Asterisk را در اوبونتو 18.04 | 16.04 نشان دادیم. امیدواریم که این مطلب وبلاگ آریانت نیز مورد توجه شما قرار گرفته باشد.