Debian 9にFreeSWITCH 1.8をインストールします(Raspbian Stretch、Rasbperri Pi上のMajorDoMoのスマートホームシステムの基本イメージ)

「Smart Home」の作成と、自己インストール/設定の段階的な手順に関する短い記事シリーズを続けます。

しかし、今は主に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:ワイヤレススマートホームの作成の継続

Source: https://habr.com/ru/post/J426429/


All Articles