代表の須田敏です。 今日は雨模様で始まった日曜日でした。
出かけるにも適さず、少し会社のシステムを改修することにしました。
会社の基幹業務はオリジナルのデータベースです。
その中には膨大な電話帳データが入ってます。
今のお客様は自宅の回線の他に携帯もある、
取引先の会社は、従業員ごとに携帯があり、複数の電話番号をがあります。
膨大な数の電話番号を使う時代になりました。
当社で使っている、ビジネスホンの説明書を読んでいたら、短縮ダイヤルをCSVファイルから書き込むこともできることが判りました。
しかしながらその登録桁数が4桁です。
4桁の短縮ダイヤルっていったい何よ?
短縮ダイヤルを探すのに、電話帳が必要になりますね(笑)
10桁押せば電話が掛けられるのに。
というわけで、プログラムを改修してパソコンのスピーカーからDTMF信号を発音させ、電話を掛けようか目論見ました。
DTMF は、Dual-Tone Multi-Frequency の略だったんですね。
私はダイヤルトーンマルチフォーマットの略かと思ってました。
実行コードはC言語でもVBAでも豊富にあったのですっかり楽観してました。
ところが、DTMFで発信できるようにDLLを組み込んで実行しようとしたら、ドツボにはまりました。
DTMF信号なんて、低音と高音の周波数を組み合わせた単純なマトリックスで、
2つの音声周波数帯域の合成信号音を発信するだけなんだけどね。
実行したら、エラー続出です。
原因がわからないので、エンコードソフトで解析しても、なぜかエラーが出ている。
番号が跳んだり、1つの番号を複数の番号と認識したり。
間隔や時間を調整してみたりしたけど、まったく解決しない。
2晩も悩んでしまった。気がついたら夜の12時過ぎてるし。
こりゃあ、オシロスコープで周波数解析でもしなきゃダメか?。
今日になって、あっさり解決しました。
しかも、あまりにもくだらない原因で。
音量レベルが高すぎたんです。
0-100のレンジで、レベル100でずっとテストしていたら、それが原因でした。
受話器をスピーカーに乗せると、レベル5でも発信ができる。
20くらいがちょうど良いみたいで、レベル30だと受話器をスピーカーの隣に置いても発信できる。
これからは老眼の目で見えにくい電話番号を見ずとも、DTMF発信ボタンをクリックするだけで、電話が掛けられるようになりました。
めでたし めでたしです。
次の段階は、
PCのスピーカーは、常時ミュート状態なので、音量レベルをDTMF発信の時だけレベル20くらいで音を出して、送信が終わったらまたミュートに戻すコードを考え中です。
これが以外と難しい。
うまく行かないんだよな。
APIを組み込まないとダメみたいだし。
一難去って また一難。