匿名

差分

Asterisk+Radio

1,898 バイト追加, 2024年10月17日 (木)
WIP
exten => 1234,1,Dial(PJSIP/phone10)
を行えばpjsuaは自動で応答し繋がりますので、無線で何か喋ると電話側で聞こえるはずです。音量の調整は無線機のボリュームと、pjsua側のalsamixerでよしなに調整してください。電話機から喋りたい場合にはpjsuaに繋いだ無線機のPTTを手で押します。このPTTをソフト的に制御するのが次の課題です。
 
=PTT制御=
音声の入出力ができるようになったので、後はPTTを制御するだけです。前述のようにDigiRigはUSBシリアルも内蔵しており、RTSでPTTが制御できるようになっています。RTSを制御すればいいので簡単ですねと言いたいところですが、デバイスに対するIOCTLを発行しないとなのでちょいと面倒です。なので、この部分は書いておきました。<br>
Asteriskサンプル設定ファイルと同じところにpttctrlというプログラムを置いておきます。<br>
https://github.com/takao-t/asterisk-conf/tree/main/pttctrl<br>
これをコンパイルするには
gcc pttctl pttctl.c -lrt
で行います。TTYデバイスが /dev/ttyUSB0 ではない場合には書き換えてからコンパイルしてください。<br>
このプログラム自体はデーモン(常駐)化して使用します。やり方は後で説明しますが、とりあえずフォアグラウンドで試してみてください。<br>
PTTを制御するにはパイプ(FIFO)に対して書き込みを行います。/tmp/PTTCTL という名前でパイプをつくりますので、これに対して書き込んでください。使えるコマンドはON,OFF,ALTでPTTをオンにする(押した状態)なら
echo "ON" > /tmp/PTTCTL
オフにする(離す)なら
echo "OFF" > /tmp/PTTCTL
を実行します。ですがこれだけだと押したかどうかを判断するのが面倒なので、状態反転も持たせてあります。
echo "ALT" > /tmp/PTTCTL
で現在の状態を反転します。オフならオンに、オンならオフになります。<br>
なお、特小の場合には連続送信は3分未満となっている(無線機が勝手に切る)ので、このプログラムでは送信状態になってから170秒でオフにするようにしています。
=WIP=