如何在 Ubuntu 20.04 上安裝 Asterisk 18

Asterisk 是一個流行的開源 PBX 框架,用於 VoIP 網關開發。 它是個人、大小企業、企業和各個政府使用的在線電話解決方案。

Asterisk 使用 VoIP 協議通過 TCP/IP 而不是傳統的陸地電話線在互聯網上撥打電話。 它的功能包括語音郵件、保持音樂、電話會議、呼叫排隊、呼叫錄音、交互式語音響應、短信、自動呼叫分配等。 Asterisk 可以安裝在多種操作系統上,包括 Linux、NetBSD、macOS 和 Solaris 等。

在本教程中,我們將學習如何 安裝星號 18 上 Ubuntu 20.04.

先決條件

在 Ubuntu 存儲庫中,我們可以找到 Asterisk 包,但它是舊版本。 要獲得最新版本,您需要從源代碼安裝 Asterisk。

首先,更新您的 Ubuntu 系統:

$ sudo apt update

接下來,安裝從源代碼編譯 Asterisk 所需的軟件包:

$ sudo apt install wget build-essential git autoconf subversion pkg-config libtool

安裝 DAHDI 和 LibPRI

DAHDI 是允許 Asterisk 與模擬和數字電話通信的附加工具。 LibPRI 庫用於與 ISDN 連接進行通信。 如果您不需要這些庫,則可以忽略此部分。

$ sudo git clone -b next git://git.asterisk.org/dahdi/linux dahdi-linux
$ cd dahdi-linux
$ sudo make
$ sudo make install
$ cd ..

$ sudo git clone -b next git://git.asterisk.org/dahdi/tools dahdi-tools
$ cd dahdi-tools
$ sudo autoreconf -i
$ sudo ./configure
$ sudo make install
$ sudo make install-config
$ sudo dahdi_genconf modules

運行以下命令來編譯和構建 LibPRI:

$ cd ..
$ sudo git clone https://gerrit.asterisk.org/libpri libpri
$ cd libpri
$ sudo make
$ sudo make install

在 Ubuntu 上安裝星號

首先,克隆 Asterisk 源代碼存儲庫(這可能需要一些時間):

$ sudo git clone -b 18 https://gerrit.asterisk.org/asterisk asterisk-18

在撰寫本教程時,我們將要編譯和安裝的最新版本的 Asterisk 是 18.7.2。

接下來,使用 shell 腳本下載 MP3 源代碼,這是構建 MP3 模塊和在 Asterisk 上使用 MP3 文件所需的:

$ sudo contrib/scripts/get_mp3_source.sh

跑過 install_prereq 腳本來安裝必要的依賴項(這一步也需要一些時間):

$ sudo contrib/scripts/install_prereq install

在此過程中,系統會提示您輸入您的區域電話代碼:

完成後,輸出應為:

處理 libglib2.0-0:am​​d64 (2.64.6-1~ubuntu20.04.4) 的觸發器……處理 libc-bin (2.31-0ubuntu9.2) 的觸發器……處理 systemd (245.4-4ubuntu3.13) 的觸發器……處理觸發器對於 man-db (2.9.1-1) … 處理 install-info (6.7.0.dfsg.2-5) 的觸發器 … 設置 libgmime-2.6-dev (2.6.23+dfsg1-4) … 設置 libgmime -3.0-dev:amd64 (3.2.7-1) … ################################# ### ## 安裝成功完成#####################################

現在我們需要檢查系統上的所有依賴項是否都存在以編譯源代碼。 接下來,運行以下命令:

$ sudo ./configure

最後,你會看到一個漂亮的 ASCII 星號標誌。

接下來,選擇要編譯和安裝的模塊。 要訪問 menuselect,請鍵入以下內容:

$ sudo make menuselect

Asterisk 模塊和構建選項選擇

選擇菜單中的“format_mp3”選項來構建 MP3 模塊。 使用箭頭鍵導航,然後按 Enter 選擇選項。 選擇您希望啟用的任何其他選項。 現在按 F12 保存並退出屏幕。

選擇 format_mp3 模塊

您應該會看到類似的終端輸出:

menuselect changes saved!
make[1]: Leaving directory '/home/linoxide/asterisk-18'

要開始編譯源代碼,請運行 make 命令:

$ sudo make -j2

根據您的計算機有多少 CPU 內核,您可以將 -j 參數調整為您的 PC 必須的內核數以加快編譯時間。

如果一切順利,你應該得到:

+--------- Asterisk Build Complete ---------+
+ Asterisk has successfully been built, and +
+ can be installed by running: +
+ +
+ make install +
+-------------------------------------------+

編譯完成後,鍵入以下命令安裝 Asterisk 及其模塊:

$ sudo make install

您可以安裝通用配置文件:

$ sudo make samples

另外,安裝基本的 PBX 配置文件:

$ sudo make basic-pbx

最後,運行以下命令來安裝 Asterisk init 腳本並更新共享庫緩存:

$ sudo make config

$ sudo ldconfig

創建星號用戶

出於安全原因,建議創建一個非 root 用戶來運行 Asterisk。 我們將創建一個新的系統用戶,Asterisk 將以此身份運行。 運行以下命令以創建名為的新用戶 asterisk

$ sudo adduser --system --group --no-create-home --gecos "Asterisk PBX" asterisk

輸出應該是:

Adding system user asterisk' (UID 114) ... Adding new groupasterisk' (GID 120) …
Adding new user asterisk' (UID 114) with groupasterisk' …

要將 Asterisk 配置為以新創建的用戶身份運行,請打開 /etc/default/asterisk 文件並取消註釋開頭附近的以下兩行(刪除行前的 #):

$ sudo nano /etc/default/asterisk

AST_USER="asterisk"
AST_GROUP="asterisk"

接下來,添加 asterisk 用戶到以下組:

$ sudo usermod -a -G dialout,audio asterisk

我們還需要更改所有 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 服務:

$ sudo systemctl start asterisk

通過鍵入以下內容連接到 Asterisk 命令行界面 (CLI),驗證 Asterisk 是否正在運行:

$ sudo asterisk -vvvr

您應該會看到與此類似的輸出:

Connected to Asterisk GIT-18-804b1987fb currently running on linoxide (pid = 31426)
linoxide*CLI>

現在啟用服務以在啟動時啟動:

$ sudo systemctl enable asterisk

配置防火牆

如果您有防火牆設置,請打開 HTTP 端口和端口 5060,5061:

$ sudo ufw allow 5060/udp
$ sudo ufw allow 10000:20000/udp

結論

恭喜! 您已經在 Ubuntu 20.04 上成功安裝並配置了 Asterisk 服務器

有關其他信息,您可以查看 星號官方網站.