Skip to content

Latest commit

 

History

History
91 lines (60 loc) · 3.16 KB

INSTALL_PJSUA2.md

File metadata and controls

91 lines (60 loc) · 3.16 KB

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