Asterisk هو خادم VoIP مجاني ومفتوح المصدر (open-source) تم إنشاؤه بواسطة Sangoma.
يتم استخدامه لبناء بنية تحتية للاتصالات عبر بروتوكول الإنترنت (VoIP telephony infrastructure).
VoIP هو بروتوكول صوت عبر الإنترنت يستخدم لإجراء مكالمة باستخدام TCP / IP.
باستخدام VoIP ، يمكنك إجراء مكالمة من جهازك المحمول أو الكمبيوتر إلى أجهزة أخرى دون أي تكلفة.
يعمل على أنظمة تشغيل Unix و Linux وقادر على توصيل أي شبكة هاتفية عالمية تقليدية.
إنه يوفر مجموعة من الميزات بما في ذلك المكالمات الجماعية والبريد الصوتي وخدمة الرد الصوتي التفاعلي والتوزيع التلقائي للمكالمات.
سنشرح هنا تثبيت خادم Asterisk و Asterisk GUI على Ubuntu 20.04.
المتطلبات الأساسية
خادم يعمل بنظام التشغيل Ubuntu 20.04.
إعداد عنوان IP ثابت في الخادم الخاص بك.
إعداد كلمة مرور الـ root على الخادم.
قم بتحديث حزم النظام لديك إلى أحدث إصدار باستخدام الأمر التالي:
apt-get update -y
قم تثبيت التبعيات الأخرى التي يحتاجها Asterisk.
يمكنك تثبيت كل منهم بالأمر التالي:
apt-get install gnupg2 software-properties-common git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev -y
تثبيت Asterisk
لا يتوفر أحدث إصدار من Asterisk في Ubuntu 20.04 تلقائياً.
لذلك ستحتاج إلى تحميله من المصدر.
قم بتحميل أحدث إصدار من Asterisk باستخدام الأمر التالي:
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-17-current.tar.gz
بمجرد التحميل قم بفك ضغط الملف الذي تم تنزيله باستخدام الأمر التالي:
tar -xvzf asterisk-17-current.tar.gz
قم بتغيير المجلد إلى مجلد الفك وقم بتثبيت جميع وحدات MP3 المطلوبة باستخدام الأمر التالي:
cd asterisk-17.7.0
contrib/scripts/get_mp3_source.sh
ستحصل على النتيجة التالية:
A addons/mp3
A addons/mp3/MPGLIB_README
A addons/mp3/common.c
A addons/mp3/huffman.h
A addons/mp3/tabinit.c
A addons/mp3/Makefile
A addons/mp3/README
A addons/mp3/decode_i386.c
A addons/mp3/dct64_i386.c
A addons/mp3/MPGLIB_TODO
A addons/mp3/mpg123.h
A addons/mp3/layer3.c
A addons/mp3/mpglib.h
A addons/mp3/decode_ntom.c
A addons/mp3/interface.c
Exported revision 202.
قم بتثبيت التبعيات الأخرى باستخدام الأمر التالي:
contrib/scripts/install_prereq install
ستحصل على النتيجة التالية:
#############################################
## install completed successfully
#############################################
قم بإعداد Asterisk باستخدام الأمر التالي:
./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 :
قم بتشغيل الأمر التالي لتحديد بعض الـ modules الموصى بها وتثبيتها:
make menuselect
سيُطلب منك تحديد الـ modules التي تريدها.
استخدم مفاتيح الأسهم للتنقل واضغط على مفتاح Enter للتحديد
قم بتمكين الوظائف الإضافية كما هو موضح أدناه:
قم بتمكين وحدات الصوت الأساسية:
قم بتفعيل حزم MOH:
قم بتمكين حزم الصوت الإضافية:
انقر فوق الزر Save & Exit لحفظ التغييرات وتثبيت جميع الوظائف الإضافية.
سوف تحتاج إلى بناء Asterisk.
يمكنك القيام بذلك باستخدام الأمر التالي:
make
ستحصل على النتيجة التالية:
+--------- Asterisk Build Complete ---------+
+ Asterisk has successfully been built, and +
+ can be installed by running: +
+ +
+ make install +
+-------------------------------------------+
قم بتثبيت Astersik و config و sample عن طريق تشغيل الأمر التالي:
make install
make samples
make config
ldconfig
إنشاء مستخدم Astersik
ستحتاج إلى إنشاء مستخدم Asterisk ومجموعة وتغيير ملكية مجلد إعدادات Asterisk.
قم بإنشاء مستخدم ومجموعة بالأمر التالي:
groupadd asterisk
useradd -r -d /var/lib/asterisk -g asterisk asterisk
أضف مستخدم الصوت والاتصال (audio and dialout) إلى مجموعة Asterisk عن طريق تشغيل الأمر التالي:
usermod -aG audio,dialout asterisk
قم بتغيير ملكية مجلد إعدادات Asterisk باستخدام الأمر التالي:
chown -R asterisk.asterisk /etc/asterisk
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
chown -R asterisk.asterisk /usr/lib/asterisk
إعدادات Asterisk
قم بتتعديل ملف / etc / default / asterisk وقم بتعيين المستخدم الافتراضي على Asterisk:
nano /etc/default/asterisk
أزل التعليق عن الأسطر التالية:
AST_USER="asterisk"
AST_GROUP="asterisk"
احفظ وأغلق الملف عند الانتهاء.
ثم قم بتعديل ملف الإعداد الافتراضي لـ Asterisk وقم بتعيين التشغيل كمستخدم على Asterisk:
nano /etc/asterisk/asterisk.conf
أزل التعليق عن الأسطر التالية:
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.
احفظ الملف وأغلقه.
ابدأ خدمة Asterisk وقم بتمكينه من البدء عند إعادة تشغيل النظام باستخدام الأمر التالي:
systemctl restart asterisk
systemctl enable asterisk
يمكنك الآن التحقق من حالة خدمة Asterisk باستخدام الأمر التالي:
systemctl status asterisk
ستحصل على النتيجة التالية:
? asterisk.service - LSB: Asterisk PBX
Loaded: loaded (/etc/init.d/asterisk; generated)
Active: active (running) since Mon 2020-10-19 12:39:41 UTC; 2min 49s ago
Docs: man:systemd-sysv-generator(8)
Process: 47946 ExecStart=/etc/init.d/asterisk start (code=exited, status=0/SUCCESS)
Tasks: 71 (limit: 4691)
Memory: 41.7M
CGroup: /system.slice/asterisk.service
??47965 /usr/sbin/asterisk -U asterisk -G asterisk
Oct 19 12:39:41 ubuntu2004 systemd[1]: Starting LSB: Asterisk PBX...
Oct 19 12:39:41 ubuntu2004 asterisk[47946]: * Starting Asterisk PBX: asterisk
Oct 19 12:39:41 ubuntu2004 asterisk[47946]: ...done.
بعد ذلك ، تحقق من اتصال Asterisk باستخدام الأمر التالي:
asterisk -rvv
ستحصل على النتيجة التالية:
Asterisk 17.7.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.
=========================================================================
Running as user 'asterisk'
Running under group 'asterisk'
Connected to Asterisk 17.7.0 currently running on ubuntu2004 (pid = 47965)
ubuntu2004*CLI>
تفعيل Asterisk GUI
من أجل الوصول إلى Asterisk من متصفح الويب ستحتاج إلى تفعيل Asterisk GUI.
أولاً ، قم بتعديل ملف /etc/asterisk/http.conf:
nano /etc/asterisk/http.conf
أزل التعليق وغيّر الأسطر التالية:
enabled = yes
bindaddr = 0.0.0.0
bindport = 8088
prefix = asterisk
enable_static = yes
enablestatic = yes
redirect = / /static/config/index.html
uploads = /var/lib/asterisk/uploads/
احفظ وأغلق الملف.
قم بتعديل الملف /etc/asterisk/manager.conf وعيّن المستخدم المسؤول:
nano /etc/asterisk/manager.conf
قم بإضافة / تعديل الأسطر التالية:
enabled = yes
webenabled = yes
port = 5038
bindaddr = 0.0.0.0
[admin]
secret = admin1234
read = system,call,log,verbose,command,agent,user,config
write = system,call,log,verbose,command,agent,user,config,originate
احفظ وأغلق الملف عند الانتهاء.
تثبيت Asterisk GUI
قم بتحميل أحدث إصدار من Asterisk GUI باستخدام الأمر التالي:
svn checkout http://svn.digium.com/svn/asterisk-gui/branches/2.0
قم بتغيير المجلد إلى المجلد الذي تم تنزيله وقم بإعداده باستخدام الأمر التالي:
cd 2.0/
./configure
قم ببناء Asterisk GUI باستخدام الأمر التالي:
make
ستحصل على النتيجة التالية:
+------- Asterisk-GUI Build Complete -------+
+ Asterisk-GUI has successfully been built, +
+ and can be installed by running: +
+ +
+ make install +
+-------------------------------------------+
قم بتشغيل الأمر التالي لتثبيته على نظامك:
make install
ستحصل على النتيجة التالية:
+---- Asterisk GUI Installation Complete ---+
+ +
+ YOU MUST READ THE SECURITY DOCUMENT +
+ +
+ Asterisk-GUI has successfully been +
+ installed. +
+ +
+-------------------------------------------+
+ +
+ BEFORE THE GUI WILL WORK +
+ +
+ Before the GUI will run, you must perform +
+ some modifications to the Asterisk +
+ configuration files in accordance with +
+ the README file. When done, you can +
+ check your changes by doing: +
+ +
+ make checkconfig +
+ +
+-------------------------------------------+
أعد تشغيل خدمة Asterisk لتطبيق التغييرات:
systemctl restart asterisk
الوصول إلى Asterisk GUI
افتح متصفح الويب الخاص بك وقم بالوصول إلى Asterisk GUI باستخدام العنوان http: // your-server-ip: 8088 / asterisk / static / config / index.html
ستتم إعادة توجيهك إلى الصفحة التالية:
أدخل اسم مستخدم المسؤول (admin) وكلمة المرور وانقر على زر Login.
ستشاهد لوحة تحكم Asterisk GUI في الصفحة التالية: