すでにDTMF検出はVinTask内で実装していましたが、パルスダイアルのためのパルス検出機能は未実装でした。そこでSlicTaskにパルス検出機能を追加してみました。
パルスダイアリングのパルス信号は下図に示したようにAg1171のSHK信号を解析することで検出します。SHK信号の立ち上がりでパルス数をインクリメントしてゆき、一定時間(T1)オフフック状態が続いたならばひとつのパルス列が終了したとみなします。
SHK信号の立ち下がりでは、T2タイマを起動して一定時間Lの状態が続いた時点でパルス信号ではないと判断し、オンフックされたことを確定することにしました。
実験に使っている電話機は10pps対応のものです。受話器に備わっている設定スイッチをP側にすることでパルスダイアル信号を生成しますが、途中で ’*’キーを押すとトーン信号に切り替えることができます。実際に動作確認してみた結果は次のとおりです。
パルスでもDTMFでも、どちらでも正しい数字を検出できることが確認できました。次は、ダイアルした番号で発呼できるようにするかな。
パルスダイアリングのパルス信号は下図に示したようにAg1171のSHK信号を解析することで検出します。SHK信号の立ち上がりでパルス数をインクリメントしてゆき、一定時間(T1)オフフック状態が続いたならばひとつのパルス列が終了したとみなします。
SHK信号の立ち下がりでは、T2タイマを起動して一定時間Lの状態が続いた時点でパルス信号ではないと判断し、オンフックされたことを確定することにしました。
実験に使っている電話機は10pps対応のものです。受話器に備わっている設定スイッチをP側にすることでパルスダイアル信号を生成しますが、途中で ’*’キーを押すとトーン信号に切り替えることができます。実際に動作確認してみた結果は次のとおりです。
パルスでもDTMFでも、どちらでも正しい数字を検出できることが確認できました。次は、ダイアルした番号で発呼できるようにするかな。