しかし、今は主にFreeswitchとIPテレフォニーについてです。
8月、オープンVoIP IPテレフォニープラットフォームFreeSWITCHの開発者であるSignalwireは、新しいソフトウェアバージョン1.8のパブリックリリースを公開しました。 (1.8.2はすでにリリースされています)。
このバージョンのIPテレフォニープラットフォームFreesfitch 1.8のリリースに関連して、Raspbianオペレーティングシステム(Debian 9 Stretch)の下にMajorDoMoスマートホームシステムの基本イメージがインストールされたRaspberry 3にホームオートメーション要素をインストールすることが決定されました。

カットの下で、ソースからのVoIPプラットフォームのインストールに関する説明と、いくつかの注意と説明。
公式WebサイトのDebian 9のインストールガイドでバージョン1.8のリリースとパブリックリリースの発表から3か月後、FreeSWITCHは現在インストール手順を公開しています。
→ FreeSWITCH 1.8のインストール
ただし、手順にリストされているオプションをRasberryにインストールできませんでした。 少し前までは、非互換性に関する警告があり、ソースコードからインストールする必要がありました。 また、公式ドキュメントでは、Raspberry Piでインストールを見つけることができますが、すでに古くなっています。 したがって、Raspberry Pでのインストールオプションについて説明し、少しずつ手順を追って説明します。 以前の記事では、端末とコマンドラインの操作をどのように、どのように開始するかを説明しようとしたため、少し理解できない場合は、以前の記事を読むことをお勧めします(リンクは記事の最後にあります)。 原則は同じでした。長男が何をどのようにやっているのかを少し繰り返して理解できるように、機能し、再確認し、指示を準備しました。
ソースからFreeSWITCH 1.8.2をインストールする
Putty経由でRaspberryに接続します。
各コマンドの前にsudoを入力しないようにするには、sudo –iコマンドを実行します。 その後、システム管理者の権限で作業し、ルートディレクトリに自動的に切り替えました。 現在のディレクトリを確認するには、Pwdコマンドを実行します。
システムの更新:
apt-get update apt-get upgrade
ホームディレクトリに移動し、freeswitchバージョン1.8.2をダウンロードします。
cd /home/pi git clone https://freeswitch.org/stash/scm/fs/freeswitch.git -bv1.8.2 freeswitch
ダウンロードが完了すると、Freswitchソースフォルダーがホームディレクトリに表示されます。 (フルパス:/ home / pi / freeswitch)に移動し、ソースからビルドしてfreeswitchディレクトリに移動するために必要なプログラムをインストールします。
cd freeswitch apt-get install autoconf libtool libtool-bin
ソースからプログラムをビルドする前に、まずコンフィギュレーターをビルドし、次を実行する必要があります。
./bootstrap.sh –j
Freeswitchプラットフォームにはモジュール構造があるため、インストールする前に、必要なモジュールのリストを編集します。
nano /freeswitch/modules.conf
ほとんどの場合、リストはデフォルトのままなので、一部のビデオコーデック、opal、pngを無効にしています。
ロシア語モジュールが接続され、mod curlエンドポイント、mod_portaudio、
サーバーの構成とアセンブリの依存関係をインストールします。 -yフラグを使用して、システムのすべての質問にチームが自動的にYesと回答するようにします。
apt-get install -y g++ zlib1g-dev libjpeg9 pkg-config sqlite3 libsqlite3-dev libcurl4-openssl-dev libpcre3 libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev libtiff-dev apt-get install -y yasm lua5.2 lua5.2-dev libsndfile-dev portaudio19-dev
インストールするパッケージはプラグインに依存します。 パッケージが欠落している場合、次の2つのステップでエラーが表示される場合があります。
FreeSWITCHサーバーの構成とインストール
その後、コンフィギュレータを実行してすべての依存関係を確認し、追加のビルドオプションをインストールする必要があります。 コンフィギュレーターは、得られた知識とmakefile.amファイルに基づいてMakefileを構築します。
コマンドを実行します:
./configure --enable-system-lua
すべてがうまくいった場合、次のメッセージが表示されます。

インストール自体に進みましょう。
make make install
結果が正の場合、Freeswitchはデフォルトで
/usr/local/freeswitch
インストールされます;設定の最後に、FSディレクトリのリストと場所を表示できます。

mod_lua.cppなどのインストールまたは構成中にエラーが発生した場合:37:17:致命的なエラー:lua.h:そのようなファイルまたはディレクトリ#include“ lua.h”はありません。検索コマンドを使用して必要なライブラリをインストールする必要があります。 liblua5.3-0 liblua5.3-devパッケージでfreeswitchをインストールできませんでした。バージョン5.2をインストールする必要がありました。
Apt search lua

ロシア語サポート付きのサウンドファイルをインストールします。
make cd-sounds-install make cd-sounds-ru-install cd-moh-install
これで、インストールプロセスは完了したと言えます。
小さなデータベースファイルがフラッシュメモリに書き込まれてその寿命が長くなるのを防ぐために、/ etc / fstabファイルに次の行を追加します。
tmpfs /usr/local/freeswitch/db tmpfs defaults 0 0
再起動後、FSによって作成された一時ファイルはRAMに書き込まれます。
FreeSWITCHをインストールした後のシステムセットアップ。
FreeSWITCHのドキュメントには警告があるため、インストール後すぐにFSを実行することはお勧めしません。
**注意! ソースからFreeSWITCHをインストールした場合、ディレクトリとファイルにアクセス許可を設定する必要があります。 インストール後にFreeSWITCHを実行すると、デフォルトで「root」として起動します。 ディレクトリのアクセス許可は、最初の起動前に変更する必要があります。**
新しいユーザーを作成して権限を設定し、所有者をFreeSwitchファイルに変更します
cd /usr/local groupadd freeswitch adduser --quiet --system --home /usr/local/freeswitch --gecos "FreeSWITCH open source softswitch" --ingroup freeswitch freeswitch --disabled-password chown -R freeswitch:freeswitch /usr/local/freeswitch/ chmod -R ug=rwX,o= /usr/local/freeswitch/ chmod -R u=rwx,g=rx /usr/local/freeswitch/bin/*
次に、自動起動ファイルをsystemdにコピーし、名前を変更して、アクセス権を変更します。
FreeSWITCHにはsystemdファイルが付属しています。このファイルは、ブート中に正しく構成された場合、FreeSWITCHを監視し、デーモンとして起動し、FSが機能しない場合に再起動します。
cp /home/pi/freeswitch/debian/freeswitch-systemd.freeswitch.service /etc/systemd/system/freeswitch.service chmod +x /etc/systemd/system/freeswitch.service
起動ファイルへのリンクを作成し、FSコンソールの起動ファイルへのリンクを作成します。
ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/freeswitch ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/fs_cli
autoswitchにfreeswitchサービスを追加します。
systemctl enable freeswitch systemctl daemon-reload systemctl start freeswitch
その後、FSがまだ起動せず、* .pidファイルでエラーが発生しました。autostartファイルnano /etc/systemd/system/freeswitch.serviceを編集しました。
ファイル内の次の行をコメントアウトします: #PIDFile = / run / freeswitch / freeswitch.pid。

念のため、ラズベリーをオーバーロードします(覚えているように、ルートから作業中):
reboot
再起動後、sudo -iを介して入力したコマンドを再度指定し、htopを実行して、実行中のFreeSWITCHプロセスを確認します。
初期設定について少し:
インストール後、FreeSWITCHを使用する準備が整いました。デフォルトでは、1000〜1019の番号を持つ20人のサブスクライバーがいます。 VoIP加入者のデフォルトパスワードは/usr/local/freeswitch/conf/vars.xmlファイルで指定され、1234です。ディレクトリ/ usr / local / freeswitch / conf / derectory / defaultには20個のxmlファイルが含まれており、それぞれが加入者を担当します。対応する番号で。 各サブスクライバにパスワードを設定し、そのコンテンツのファイル名とデータを変更し、サブスクライバの番号と容量を変更できます。
これを行う必要がある場合は、ファイルを編集した後、FreeSwitchコンソールfs_cliを起動し、コンソールウィンドウで
reloadxml
コマンドを実行する必要があります。 このコマンドを使用すると、FSはXMLファイルを再読み取りし、変更を受け入れます。

コンソールを
/exit
します:
ctrl+D
または
/exit
または
/quit
入力します
それでは、IPサブスクライバーを接続してみましょう。 接続を確認するために、WindowsのPC:MicroSIPおよびPhonerLiteソフトフォン、およびAndroid CSipSimle OSを実行している携帯電話で設定を使用しました(アカウント名-電話番号、SIPサーバー-Raspberryのアドレス:
これらのプログラムのステータスの一番下の行にある緑色のアイコンは、加入者がVoIPサーバーで承認され、通信の準備ができていることを意味します。

番号をダイヤルすることにより、加入者の通話とIP PBXのその他の機能を確認できます。
しかし、一般的なオフィスPBXの自宅での特別なアプリケーションは見当たりません。 FreeSWITCHのより高度な機能を使用してみましょう。
Freeswitchにはモジュール構造があり、プラグインはファイルで表示できます
modules.conf.xml
それを編集しましょう。ビデオコーデックをオフにして、ロシア語モジュールとmod_xml_rpcを接続しました。
nano /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml</> <source><!-- -->
モジュールの名前の前後の行。 無効-反対に、これらのシンボルを置くと、小さな例として、最初のモジュールが有効になり、2番目のモジュールが無効になります。
<load module="mod_xml_rpc"/> <!-- <load module="mod_xml_curl"/> -->
その後、変更したい場合は、同じディレクトリにあるxml_rpc.conf.xmlファイル内のモジュール自体の簡単な設定(ポート、ユーザー、パスワード)を編集します。
nano /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml
デフォルト:ユーザー-freeswitch、パスワードは機能し、ポート8080。
frisvitchまたはサーバー自体のいずれかをオーバーロードします。 これを行うにはいくつかの方法があります:サービス制御コマンドを使用してシステム全体を再起動(再起動)します:
systemctl stop freeswitch
次に
systemctl start freeswitch
または
systemctl restart freeswitch
。
その後、ブラウザーで
http://IP_RASPBERRY:8080/portal/index.html#
と入力し、ユーザーfreeswitchの下にパスワードを入力すると、小さなFreesWITCH管理パネルが表示されます。 ステータス、登録ユーザーなどを確認できます。

もう少し進んでみましょう。
ブラウザでリクエストを入力すると、FSのステータスが表示されます。
http://freeswitch:works@IP_RASPBERRY:8080/webapi/sofia?status%20profile%20internal

構文は非常に単純です。コマンドに複数の単語が含まれている場合、最初の単語と2番目の単語は疑問符で区切られ、残りはスペースで区切られます。
MajorDoMoからこのコマンドを実行してみましょう。「スマートホーム」のメインページから、 コントロールパネル-コンソールに移動します。
その中にコマンドを入力します:
GetURL("http://freeswitch:works@IP_RASPBERRY:8080/webapi/sofia?status%20profile%20internal")
応答として、VoIPサーバーのステータスを取得します。

次の実験を試してください。
アイデアは、スマートホームの側から番号1001(MicroSip)の加入者への呼び出し(発信機能を使用)を開始し、1002(PhonerLite)への発信通話のダイヤルプランに完了した通話を転送することです。 APIコマンドは次のようになります。発信ユーザー/ 1001 1002 XMLデフォルトは、ハンドセットがピックアップされた(自動的にピックアップされた)後、コンソール番号1001への呼び出しを開始し、番号と1002がデフォルトのダイヤルプランから呼び出されます。
これをMajorDoMoとブラウザ用のわかりやすい形式に変換します。
GetURL("http://freeswitch:works@192.168.43.60:8080/webapi/originate?user/1001%201002%20XML%20default")
最初に、1つのソフトフォンが鳴り、数秒後に2番目のソフトフォンが呼び出されます。

結論として、または小さな実用的な実装
少し前までは、携帯電話で物理的に電話をかけることができない人とのコミュニケーションを確立する必要がありました。 現時点では、この必要性はなくなりましたが、実装の可能性を確認することにしました。 VoIPゲートウェイ(FXS終端でのより手頃な価格のソリューションまたはより高価なGSMゲートウェイ)を使用して、必要に応じてワイヤレス「スマートホーム」ボタンを実装できます。
2番目のオプション:MajorDoMoスマートホームシステムには音声アシスタントのアリスがいます。 これで、パブリックネットワークを介して「スマートハウス」を所有者と彼の携帯電話に接続することができます。
いくつかのリンク
→ FreeSWITCH開発者のClueConウェブサイト
→ 英語のドキュメントFreeSWITCH
→ 開発者サイトMajorDoMo
→ パート1:Raspberryシングルボードコンピューター、Z-Way RaZberryモジュール、MajorDoMoソフトウェアに基づいたSmart Homeオペレーティングシステムをインストールするための小さな段階的な手順
→ パート2:続き:Z-Way RaZberryモジュールとMajorDoMoソフトウェア
→ パート3:ワイヤレススマートホームの作成の継続