2016-04-23 24 views
0

私はシリアル経由で接続された電話のモデムをシミュレートするためにパテを使用しています。私の電話が通話を受信すると、それはパテに「RING」を出力しますが、通話者がコールをキャンセルすると、パテは応答や結果を出力しません。ATコマンドの着信を逃したかどうかを知る方法

モデムは、発信者がコールを切断またはキャンセルしたが、パテで出力しないことをどのように知っていますか?

おかげ

答えて

2

不在着信を検出するには、3つの方法があります。

オンにすることができる適切なAT+CINDインジケータがあるかどうか確認してください。私はそれが1に行くと仮定して以来、callがやっているとは思わない。あなたの電話がcallsetupかそれに似た何か必要なものをサポートしていれば(コールがアクティブ状態にならないときに検出するロジックを実装する必要があります)。

詳細については、27.007の「8.57参考情報」の章を参照してください。 AT + CIND =?

+CIND: ("abc",(0-1)),("xyz",(0,1)),("call",(0,1)) 

その後、呼び出しを返すことは、インデックス3である、と

+CIND: ("abc",(0-1)),("call",(0,1)),("xyz",(0,1)) 

コールするためのインデックス2.ですかないハードコードここではどのような仮定で、これは解析され、実行時(1つのチェックをチェックする必要があります最初は十分です)。コールはもはやリストされるまで


別の方法としては、RINGAT+CLCCでポーリングコールのステータスを開始することはできません。


また、MC電話帳の保存をポーリングして変更を検出することもできます。

+0

私はあなたの2番目の方法を使いました。私のモデムが呼び出すたびに、私は 'AT + CLCC'を送り、' OK'以外のものが返ってくるかどうか確認します。ご協力ありがとうございました。 – Dac

2

ほとんどのモデムは、着信電話番号と通話が受信されRINGと呼び出しが取り消されENDを示しました。不在着信を表示するには、次のATコマンドを使用します。

AT+CPBS="MC" 
AT+CPBR=1,99 

最初のコマンドは不在着信の電話帳と、この動作は、標準ではないことを1〜99注から2番目のコマンドをロードエントリに見えるようにモデムに指示します。私はこれをGSMモジュールでは複製できましたが、私の3Gモデムでは複製できませんでした。あなたのモデムで試して、これが動作するかどうか確認してください。ではごきげんよう。

+0

明らかにするために、「MC」 - 不在着信 - 電話帳の格納はあらゆる方法で可能です。しかしながら、エントリの数、例えば、 99、完全に製造業者特有のものです(厳密に言えば、MCはAT + CPBRの '定義された'記憶価値だけであり、特に必須ではありませんが、実際には絶対にすべての携帯電話メーカーがこれをサポートしています。また、携帯電話の標準ATコマンドがサポートされていないため、現在のMCをサポートしていない理由はありません(90年代初期にはほとんどありませんでした)。 – hlovdal

+0

サポートされている電話帳ストレージとサポートするエントリの数を確認するには、[27.007標準](http://www.3gpp.org/ftp/Specs/html-info)の「8.57参考情報」の章の最後の例を参照してください。/27007.htm)。両方ともコマンドを与えて説明します。 – hlovdal

+0

'END'結果コードに関しては、これは標準ではなく、V.250と27.007のどちらにも参照がありません。最も近いのは、ATDで開始された音声コールのための 'NO CARRIER' [double final result code](http://stackoverflow.com/a/15591673/23118)ですが、着信コールではありません。 – hlovdal

関連する問題