web-dev-qa-db-ja.com

コマンドラインから動作するRaspberry Pi用のSIPクライアント?

raspberry PiをSIP/VOIP-Phoneとして使用し、SSH経由でRPIを制御するだけです。

いくつかのチュートリアルを見つけましたが、Twinkleはそのための最も便利なアプリの1つであるようです。

だから、RPIにきらきらとAndroid-PhoneにSPIクライアントをインストールし、テキストメッセージを別のテキストクライアントに送信できることを知っています。

問題は、X-Server転送でTwinkel GUIを使用する必要があることです(現在、X11およびiTermでMacOSを使用しています)。

しかし、コマンドラインからきらめきを使用する、スクリプトで制御するなど、プロセス全体を自動化したい.

だから、明らかにキラキラはそのために作られていません。 (account-config-fileのドキュメントすらありませんので、x11-forwarding-stuffに苦労しなければなりませんでした)

ですから、私の最後の質問は、CLIで制御できるRPIに匹敵するSIPクライアントはありますか?

ヒントは大歓迎です。この質問をグーグルで調べながら、RPIでアスタリスクサーバーを使用するプロジェクト、またはディスプレイにアタッチするプロジェクトを見つけましたが、それは私が探しているものではありません...

乾杯と感謝

9
n.r.

私は同じことをやっていて、これまでに追加のオプションに出会いました:

  1. Linphone:インストールは簡単ですが、電話をかけられません
    RaspberryPI:SIP linphonecまたは代替手段を使用したアウトバウンドコールSIPソフトフォン

  2. Ring(以前のSFLphone):有望に見えますが、ソースからインストールする必要があります
    「ring.cx SIP client」をRaspberry Piにインストール
    Update:@aberaudの回答もチェックしてください 以下

  3. [〜#〜] pjsip [〜#〜](Cライブラリ)

トゥインクルCLI

SFLphoneメーリングリストからこのフィードバックを受け取りました。

プロジェクトがそのために何かを書いているかどうかを知ることに興味があります。パスでは、Twinkle SIPクライアントを使用して、たとえば、着信コールに応答することを許可する既に起動されたプロセスにコマンドを渡すことができます。本当にクールで、キーボードショートカットをマップできます。デスクトップを切り替えることなく携帯電話を制御し、良いウィンドウを見つけることができます。

いくつかの検索の後、sbusのDBUS APIを使用してsflphoneの古いバージョンを制御することを許可するいくつかの古いスクリプトが見つかりました。このスクリプトに触発されて、使用したsflphoneのバージョン(Debian Wheezyの1.4.1)と互換性のある独自のスクリプトを作成しました。

https://gitlab.com/brenard/sflphone-ctl

それは仕事の疲れであり、私は毎日それを使用しています。通話転送はデスクトップでは機能しませんが、sflphoneのバージョン1.4.1のバグであるように見えます。

B. R.

ところで:twinkle --helpは次を示します。

--cmd <cli command>
    Instruct Twinkle to execute the CLI command. You can run
    all commands from the command line interface mode.
    When Twinkle is already running, this will instruct the running
    process to execute the CLI command.

    Examples:
    twinkle --cmd answer
    twinkle --cmd mute
    twinkle --cmd 'transfer 12345'

私自身はこれまで運が悪かったのですが、これもうまくいきたいと思っています。

11
Besi

私の経験上、Raspbery PiのベストVOIPクライアントはTwinkleです。

 Sudo apt-get install twinkle 

アプリを使用してプロファイルを作成し(つまり、アカウントを設定し)、その名前をきらめきます(すべて小文字)。これはに保存されます

/home/pi/.twinkle/twinkle.conf

以下のコマンドを使用すると、Twinkleのコマンド処理プロンプトが表示されます。

$きらめき-c 
Twinkle> call +17601234567 
 
 Twinkle> bye 
 
 Twinkle> quit 
 
 $ 

コマンドラインを実行するのに役立つpythonスクリプト:

インポートsys 
サブプロセスインポートPopenから、PIPE 
 
 proc = Popen(["twinkle"、 "-c"]、stdin = PIPE、stdout = PIPE 、bufsize = 1)
 
 iter(proc.stdout.readline、b '')の行の場合:
 print line 
 if(line.find( "登録が成功しました。 ")> 0):
 proc.stdin.write(" call +17601234567\n ")
#コードを追加することで何でもできます... 
 if( line.find( "遠端応答呼び出し")> 0):
 proc.stdin.write( "bye\n")
 proc.stdin.write( "quit\n")
 proc.communicate()
5
Steve

PythonスクリプトでRing(以前のSFLPhone)デーモンを制御する:

  1. リングデーモンをビルドします。

  2. リングデーモンを実行します:./bin/dring -c -d。いくつかのログでリングが実行されているのが見えるはずです。最初のオプション-cはログをコンソール(stdout/stderr)に出力し、-dはデバッグログを有効にします。

  3. D-Bus python3コントローラーを実行します。

    • 新しいターミナルを開いてring/tools/dringctrl、デーモンを実行したままにします。
    • で構成されたアカウントをリストしてみてください:./dringctrl.py --gara。すべてが正常に機能した場合、少なくともIPからIPへの直接IP SIP=呼び出しを処理するデフォルトアカウントである「IP2IP」が表示されます。
    • 別のSIPエンドポイントを./dringctrl.py --call someIP
    • 実行./dringctrl.py --help pythonスクリプトで現在実装されているコマンドを確認します。
  4. リングを構成し、pythonスクリプトをニーズに合わせて変更します

    • 残念ながら、pythonスクリプトからのアカウントの追加/設定はまだ実装されていません(ただし可能です)。アカウント設定は/home/$USER/.config/ring/dring.yml。静的構成を計画している場合は、構成ファイルを一度手動で編集するか、使用可能なGUIのいずれかを使用して、おそらく別のコンピューターからファイルをコピーします(デスクトップに公式パッケージをインストールするだけです: http:// ring.cx/en/documentation/gnulinux-installation )。
2
aberaud

「SSH経由でRPIを制御するだけで、Raspberry PiをSIP/VOIP-Phoneとして使用する」ことを望みますか?

私見の最良かつ最も簡単な解決策は:

アスタリスク自体とその独創的なコンソールインターフェイス+ USBヘッドセット(Logitech H800ヘッドセットなど)を使用するだけです!

H800は、アスタリスクの「chan_alsa」チャネルモジュールによって直接アクセスされる従来のサウンドカードとして表示されます。それでおしまい!

これにより、優れた音質と、アスタリスクの卓越した機能を備えた純粋なコンソールインターフェイスが得られます。 GUIの煩わしさが完全に欠けています。すべてはラズベリーで実行されています。アスタリスクと「chan_alsa」(または「chan_oss」)は、すべての主要なディストリビューションの不可欠な部分です。

オプションで、残りのUSBポートでWLANドングルを使用することにより、全体を完全にワイヤレスにすることができます。

1
sparkie

これまでに得たもの:

Raspbian OSでRasPi B +を使用しています。

これまでに試したこと:Twinkle(Sudo apt-get install twinkleでインストール)

構成されている場合、CLI経由で使用できますが、残念ながらコマンドライン経由でTwinkleを構成することはできませんでした。 Mac用にX-Forwardingを構成する必要がありました。 Mac用にX11(またはXQuartz)をインストールしました。そのため、GUIを表示してTwinkleを構成できました。

動作:メッセージを送信できましたが、電話がかかってきたときにTwinkleがクラッシュしました。声を出さなければなりません。現在、サウンドデバイスはインストールされていません(マイクもスピーカーもありません)。

その後、SFL Phoneを検索しました。これにはCLIが付属していません。そのため、テストする価値はありません。

Linphoneについても読みました。一部の人々は自分のアプリケーションでそれを使用するのが難しいと報告しているので、現在私はそれを試しませんでした。

最後に見つけたのはPJSIPです。

私はそれをそのようにインストールしました:

Sudo su - 
apt-get install Subversion
svn checkout http://svn.pjsip.org/repos/pjproject/trunk
apt-get install build-essential automake autoconf libtool libasound2-dev libpulse-dev libssl-dev libsamplerate0-dev libcommoncpp2-dev libccrtp-dev libzrtpcpp-dev libdbus-1-dev libdbus-c++-dev libyaml-dev libpcre3-dev libgsm1-dev libspeex-dev libspeexdsp-dev libcelt-dev
cd trunk
./configure && make dep && make clean && make && make install

これにはしばらく時間がかかり、適切なCLIがあります。通話を送受信できました。今のところ、USB-サウンドカード、マイク、スピーカーが完全なテストを行うのを待っています。

1
n.r.

Simple SIP SDK。成功しました。OPUSをサポートするものを探していました。

https://sipsimpleclient.org/

構築するには少し手間がかかります。ビルドとインストール後

sip-settings -a add [email protected] 1234678 <--password
sip-settings -a default [email protected]
sip-settings -a set [email protected] sip.outbound_proxy=172.31.0.1
sip-register  <-- seems optional
sip-audio-session sip:[email protected]
0
user3718260