Seren on BeagleBone Black

在 Linux 上有隻名為 Seren 的簡易 VoIP 程式,可在終端機模式下進行語音通訊與文字交談,不必使用外部廠商提供的通訊軟體或註冊任何服務帳號,很適合小型輕量化系統使用,搭配 BeagleBone 或 Raspberry Pi 的 GPIO 做通訊開關控制,可衍生出不少應用。

Seren 的前身稱為 Parole,使用 C 語言開發,利用 alsa 程式庫與音效卡溝通,並用 opus codec 處理音訊壓縮,進化至 Seren 後,增加了使用 gmp 演算法程式庫優化程式,可允許多達 10 人加入同一音訊會議,並加入利用 ncurse 做成的文字使用者介面,方便操作。

Seren 目前可在 Fedora/RHEL/CentOS Linux 版本中,直接從官方程式庫(Repositories)下載:

# yum install seren

Debian/Ubuntu 系列則還未收入官方程式庫,因此要在 BeagleBone Black/Raspberry Pi 上使用 Seren,須自行下載原始碼編譯,編譯時需要的相依性套件如下:

$ sudo apt-get install build-essential libasound2-dev libopus-dev libogg-dev libgmp-dev libncursesw5-dev

將原始碼下載解壓至一工作目錄後,在工作目錄下:

$ ./configure	
//確認滿足編譯所需相依性,並產生 make 組態檔
$ make	
//編譯程式...,在 BeagleBone Black 上需要幾分鐘時間

//如果想將執行檔安裝至系統目錄下,可再執行這行
$ sudo make install

使用 Seren

操作方法相當簡單,使用 seren -h 查看可用命令列參數,或直接執行 seren 進入互動操作模式,seren 執行後便會進入接聽待命模式,要撥打電話的一方只要鍵入 /c 對方IP位址 即可進行連線。

若系統未連接音效卡或預設的音效卡設備無法提供 seren 連接使用時,可能會出現如下訊息:

[alsa] Cannot open audio device 'hw:0,0'

可利用下列方式排除問題:

列出可用的音效卡設備編號 hw:x,x

$ cat /proc/asound/pcm

亦可使用 $ cat /proc/asound/cards 或是 $ cat /proc/asound/devices 查看

若系統中也裝有 alsa-utils 音效卡工具程式庫,可用 aplay -l 指令列出音效卡設備。

確認音效卡編號後,可在啟動 seren 時使用 -d hw:x,x 參數,指定實際之音效卡編號載入使用。