2016年3月号の記事「オレ流LINEづくり」の記事をベースに、長いことしたかったAsterisk収容の携帯電話の切るボタンを押すという処理についての記事となります。Asteriskで電話が切れた後に処理をしたい(その2)でAGIスクリプトではどうやら切断後の処理はできないようだと考え直し、再度インターネット駆使して調べまくりました。求めよ、そうすれば与えられる探せ、そうすれば見出す。たたけ、そうすれば開かれる。(マタイ福音書七章7~8)こういう時には集中力だけが衰えることが無い脳を持っているせいか、早朝までインターネットを駆使して調べまくりました。判らない英語をgoogle翻訳で訳しながら調べていると何か見つかりました。asterisk”というキーワードで検索すると、次のサイトが一番目に表示されました。AGIで回線切断時の処理をしたい(DeadAGI)内容を読むと、同じように回線切断後の処理をしたいということ、その処理としてPHPスクリプトが記載されています。いうサイトが1番目に表示されます。up.”google翻訳で訳してもらうと“DeadAGIは、チャンネルが切断されたときに使用するAGIの変種です。”と記載されていますが、実際の利用方法の記載はありません。続いて検索を繰り返すとDeadAGIのリファレンス?のようなページが見つかりました。h、1、DeadAGI(agi-test)おお、これぞまさに私が探していたものと思い早速テストを開始しました。着信したらLEDを点灯し、受話器を置いたらLEDを消灯するという順序です。今までと同じようにextensions.confを以下のようにDeadagiの処理を追加してみました。取る、置く、LED点灯しっぱなし。h、1、DeadAGI(agi-test)だけなので手も足もでません。やってagiスクリプトを定義するのかも不明なままでこの日はギブアップとなりました。h、1の部分に見慣れない”h”と言うものがあるのでこれに注目してみた。hは回線切断後に処理されるhについては以下の書籍のP.155に記載がある。Hangup“h”も特殊なエクステンションで、コマンドがハングアップ、すなわち電話を切ったという条件で終了した場合に処理がここに飛んでくるものです。すべてのコマンドでダイヤルした側、着信した側のいずれでもハングアップを検出したならば、処理がここへ飛ぶためHangupコマンドで強制的に切断してしまいます。部分にLEDを消灯するためのスクリプトを書けば良いようだという目処が立ちました。Asterisk切断後の処理の方法ここの判明!というのは、自分なりに判明したということです(プロの方からは「あれは違うよ、判明なんかしていないよ」と言われてももうこれで精一杯です)。”h”エクステンションの処理方法が判らず、これは無理かなぁと思いつつ、VOIP-info.jpで開発したPIASTの装置のグリーン表示のLEDがかっこいいなぁと思いながらインターネットホームページを読んでいました。ページング」という処理を読んでいると、チャネルが切断するとhエクステンションに飛ぶのを利用し、切断後にConsoleに対して音声ファイルを流します。アンプをリレーで制御したい場合には以下の例のようにします。h,n,System(/home/piast/relayoff.sh)と言うエクステンションが記載されています。h,n,System(/home/piast/relayoff.sh)実験をしないと判明はしませんが、ついに見つかりました。電話が切れた後に処理をする方法ではありませんか!“/home/piast/relayoff.sh”という部分は私の場合にはLEDを消灯するものに書き換える必要がありそうです。shというのはシェルスクリプトの拡張子だそうです。インターネットを使って、シェルスクリプトを使ってLEDを消すための処理をしているホームページを検索して参照したところ、どうやらAGIスクリプトとほぼ同じような内容なので、agi_led_OFF.agiを書き換えてシェルスクリプトの拡張子(.sh)で/usr/local/sbin/led_off.shのファイル名で保存しました。1早速extensions.confを書き換えます。h,1,System(/usr/local/sbin/led_off.sh)extensions.confに3行目と7行目を追加しただけです。3行目は着信したらLEDを点灯させ、7行目は切断したらLEDを消灯させるという処理に該当します。restartを実行しテスト開始です。内線202から内線201に電話をかけます。取る、受話器を置く、LEDが消えた!やりました。切断後にLEDを消すことができました。電話を切るとLEDを消すという処理が動きました。内線電話を使ってLEDの点灯と消灯をすることができました。副作用として、内線391に電話をすると点灯後、電話が切れると消灯するようになってしまいました。h,1,”の処理は全ての切断後、hエクステンションに処理がうつるということなので致し方ないのだろうと思います。現時点はここまでの処理が完了したところです。実験はまだ続く翌日、リレーとソレノイドを購入してきて、実験を繰り返そうとしましたが、まず、リレーが小さすぎるためブレッドボードに直接挿すことができません。リレーの足に刺すためのメスのリードがありません。これも購入する必要があります。ソレノイドを5V電源で動かし、電流を測ったところ1Aも流れました。基本モーターなので結構電流を喰います。Piの電源LEDが消えてしまいます。Piとソレノイド用電源)。携帯電話の切るボタンを正確に押すことができる押さえ(柱)が必要です。これは木かアルミかアクリル板で作る必要があります。リレー制御処理は今までの流れで処理はできるだろうと思われます。あとは手作業で実際に装置を組み立てて、丁度良い切るボタンの時間を実機でテストすること、何よりも一番不得意な組み立てを進めたいと思います。