SIPライブラリィpjsip version2.15.1の導入
PJSIPは、発着信、保留や再開、切断などの処理も行なう。他に、音声や映像の伝送を行うVoIP機能も持つ。
- PJSIP内の主なライブラリィ
- PJSIPライブラリィ: SIPプロトコル・スタック
- PJMEDIAライブラリィ: メディアスタック
- PJNATHライブラリィ: NATトラバーサルスタック
PJSUA2は、PJSIPの機能をPythonなどの高水準言語から利用できるようにするために、高水準言語のモジュールを生成するためのSWIGインターフェースを提供している。
本アプリもPJSUA2を使ってPython言語で記述している。 Python言語からPJSUA2をモジュールとして追加する際に、仮想環境(venv)を用いている。
Asteriskとの衝突を回避するために、PJSIPのバージョン と Asteriskが含むPJSIPのバージョン とを一致させることが推奨されている。
他にPython用GUIキットのKivyも利用しているので、合わせて導入する。
wget https://github.com/pjsip/pjproject/archive/refs/tags/2.15.1.tar.gz
tar xvf 2.15.1.tar.gz
sudo apt update
sudo apt full-upgrade
sudo apt install swig libasound2-dev fonts-ipaexfont
# python3-dev, python3-setuptools, python3-venv,はインストール済みのはず
PJSIPのビルド & インストール
cd pjproject-2.15.1
./configure CFLAGS="-fPIC"
make dep
make
sudo make install
Python言語用PJSUA2のビルド
cd pjproject-2.15.1/pjsip-apps/src/swig/python
# 結構時間がかかるのに画面表示に変化が無いので、あわてず静かに待つこと!
make
Python言語用PJSUA2モジュールの導入
venv仮想環境の構築と、Kivyモジュールの導入も合わせて行う。
# 本アプリをダウンロードしたフォルダに移動
# mkdir intercom
cd intercom
python3 -m venv venv --upgrade-deps
. venv/bin/activate
pip install ~/pjproject-2.15.1/pjsip-apps/src/swig/python
pip install kivy[base] kivy-examples
deactivate
cd intercom
. venv/bin/activate
# アカウント情報などの入力待ちになるよ
python intercom/libs/pjsip/demo.py
# このテストはSSH経由では動作しない。かならずデスクトップで行うこと。
python venv/share/kivy-examples/demo/showcase/main.py
deactivate