運用中のIP-PBX Asterisk下あるSIPクライアントの1つとしてUbuntu Linuxパソコン+baresipでCLIだけでなく、baresip-gtkなGUIで電話を発着信できるようにしてみた話。
ちらほらgtkとか書いてあるけどCLI専用なんかーい!じゃいいよCLIで...と思ってたら、やっぱり元からGTKなパネルもあってbaresipでもGUIで電話できたんじゃんまでの軌跡。
パソコン用baresip-gtkのパネル達、あと専用なのか、SIP共通なのか、他に後掲の着信中のパネル(着信通知パネル)もあり。
ただ、以降読んでいただければご理解いただけるかと思いますが、これは説明用に、あえてDialパネルを開いている時に着信を受けて通話中にした状態であり、それ以外のケースで、この3つのパネルが同時に開くことはないはず。
pjsipな050 plusやPC、スマホで運用中の宅内電話を、当初、PCはCLIなbaresip、スマホはbaresip+、後にLinphoneで運用中でPCのbaresipにはGTKでGUIが使えそうで使えないのかなーとCLIで甘んじていました。
なんなら、使いづらくなっただけじゃなく入手先もインストール方法も限定されるようになったものの、PC用もLinphoneに戻そうかな...とも思っていた折。
手が空いて、ふと、やっぱり、GUI使える方法あるはずだよね?と思った通り、使えるようになった次第。
当初、aptでbaresip-gtkをインストールしてみるとメニューにもアイコン一覧にも追加されるものの、起動せず、~/.baresip/configでgtk.soを有効にしてみるも、/usr/local/lib/baresip/modulesにgtk.soが見つからないよエラー、ここまでがAsterisk導入当時の話。
今日、ふと、gtk.soを探してみるかと思い立ってみると/usr/lib/baresip/modulesにはあった為、ソフトリンクを張ってみるも[undefined symbol]エラー...、ってことは、もしや、ビルド時点で有効にしおかないとダメってこと?とgithub.com/baresip/baresipの[Building]でビルド方法を再確認すると[Build with selected modules]とかある、これっしょ?とやってみたら、なんとも、あっさり、できちゃいましたとさ。
あ、aptリポジトリ版をpurgeしないまま、ビルド版のbaresip/baresip-gtkをインストールしてしまった...。
baresip-gtkを使うまでの手順は、
。(まる)
今回は、gtk.so込みのbaresipが欲しいので-DオプションでMODULESとして"gtk"を追加指定、ビルド、インストール。
baresipを初めて起動すると~/.baresip/以下にaccounts、config、contactsファイルが生成されます。
configはbaresipの設定(モジュール指定を含む)、accountsには自身のSIP番号、contactsには連絡先のSIPや一般的な電話番号を登録できます。
accountsとcontactsはファイルにいくつか例があるので参考にして設定しますが、後者は、例えば、["Catch 192.168.1.0/24" <sip:*@192.168.1.199>;access=allow]のように着信先の範囲を指定して許可することもでき、<sip:*@192.168.1.199>は、内線だけでなく、外線であってもsip:番号@AsteriskサーバIPの恰好で着信するのでbaresipとしては全部受け入れる設定ですが、Asteriskのダイヤルプランで制限をかけることもできます。
configでは、少なくとも今回は、ビルド時、追加で指定したコメントアウトされているgtk.soモジュールを有効にすべく、先頭の#を削除しておきます。
尚、気になったBug 1969643 - baresip-gtk does not workのRobert Scheck氏(2021-06-08 22:20:20 UTC)の投稿を読みながら、それを言うならechoじゃなくてgtkっしょと思った通り、Dirk Foerster氏(2021-06-10 19:50:00 UTC)の一部修正指摘投稿があり、これも参照。
結果必要だったかは不明ながら、手順の1つとして「GNOME 3ならgnome-shell-extension-topicons-plusをインストール」とあり、他でも当該パッケージに触れている情報もあった気がしてUbuntu 25.04のリポジトリを探すも同名パッケージは見当たらず、同パッケージ名でapt searchして唯一ヒットした[variety]、順次、推奨パッケージとされたものを含め、以下をインストールしてみました。
Debianで試したところ、これらファイルのインストールは不要だったのでUbuntuでも不要かと。
前述のようなbaresipでGUI利用手順を踏めば、baresip-gtkを含めビルド・インストールの時点でデスクトップメニューやアイコン一覧などにも追加されます。
GUI起動は、デスクトップメニューからbaresipを選択、もしくは、白い受話器のbaresipアイコン(Debianで試したらテーマが異なるようで黄緑の受話器アイコン)をクリック、CLI起動は、端末上でbaresipと入力、[Enter]。
CLI起動の場合もbaresip-gtkが有効ならメインパネルも表示されつつ、端末から電話操作もできます。
起動すると[BareSIP GTK]というタイトルに受話器の図柄というシンプルなメインパネル(GUIポップアップ画面)が表示されます。
これを起動しておかないと発信ばかりか着信もできないので運用する際は、~/.config/autostartに*.desktopファイルを作るなりして自動起動させておくと良いでしょう。
baresip-gtkによるbaresipメイン画面は、「メニューベース」とされ、パネル上で左右何れでもクリックすることでテキストメニューが表示され、メニュー操作するようになっています。
メニュー操作による発信は、ワンクッション、ツークッション余計か?と思いきや、スマホで電話する時のことを考えると同等か、むしろ、PCの方が楽かも。
それにbaresipでも、これは「発信時」に限ったことですし。
これをメインパネルと呼ぶと異論を挟む余地もありそうなので、ここでは、このシンプルなパネルを仮に[発信/情報パネル]と呼んでみることにします。
[発信/情報パネル]上のメニューから[Dial]をクリックすると[Dial]というタイトルで選択も可能な[SIP番号や電話番号の入力欄]、[Cancel]、[Call]ボタンから成るポップアップパネルが発信/情報パネルとは別に表示されます。
一方、baresip起動中に着信があるとデスクトップ上部に発信元情報/CALLERID(all)と[Answer](応答)、[Reject](拒否)ボタン付きの着信通知画面が表示されます。
baresip自体は、このようにCALLERID(all)(発信元の名称と電話番号やSIP番号)を表示できます。
が、これは発信元がCALLERID(num)/CALLERID(name)を共に通知している前提、とは言え、通常は番号であるCALLERID(num)のみがデフォルトです。
これがAsteriskで制御ならDBなどから番号をキーとして名称を取得するなどしてダイヤルプランで事前にCALLERID(name)をセット、両方揃ったところでAsteriskが名称と番号のセットであるCALLERID(all)を自動設定した場合の話です。
尚、自身はそうしていますが、併せてAsteriskで相応に制御してあれば、他に(電話帳DB未登録で)番号のみ、番号なしの非通知、公衆電話といった表示になることもあります。
共通なのでここで書きますが、発着信ともに通話中には、パソコン用baresip発信/情報パネルとは別に[発信元番号]をタイトルとして[発信元名]、[発信元番号]、[通話確立後の経過時間]、[マイク音量レベルメーター]、[スピーカー|ヘッドセット音量レベルメーター]と[Hangup](切断)、[Transfer](転送、たぶんブラインド転送)、[Att. Transfer](アテンション・アテンド転送)、[Hold](保留)、[Mute](消音)ボタンのあるパネルが表示されます。
[Att.Transfer]がグレーアウトしていますが、[Hold](保留)ボタンを押すとクリック可能となります。
当然ながら、[Transfer]か[Att.Transfer]が押された場合は、内線番号をダイヤルできるように[Dial]パネルが表示されます。
尚、[Hold](保留)ボタンを押すと保留音も流れます。
このように発信・ダイヤルする時以外は、らくらく操作できます。
尚、発着信時ともに相手が電話を切った場合には、通話中パネル(と呼ぶには語弊がある)は、自動では閉じないので[Hangup]を押すなりして閉じます(閉じないと次回の発着信時、新たに通話中パネルが表示されます)。
この挙動は、バグではなく、正常動作と推察します。
状態として相手から切断された、リセットされたといった旨のメッセージなどが表示されるので確認できるようにかなと。