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:amd64 (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

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

您應該會看到類似的終端輸出:
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 服務器
有關其他信息,您可以查看 星號官方網站.