私は SR 5637 USBモデム をテストしています。 SR docs によると、 AT+VCID
で発信者IDのモデムサポートを照会できます。
Debug: modem_write
Debug: Write 10: "AT+VCID=?\r"
Debug: modem_read
Debug: Read 24: "AT+VCID=?
(0-16)
OK"
手動の状態 値が0-16
であるため、0, 1, 2
は異常です。次に、1
に設定します。これは マニュアルによるEnables formatted Caller ID
:
Debug: modem_write
Debug: Write 10: "AT+VCID=1\r"
Debug: modem_read
Debug: Read 14: "AT+VCID=1
OK"
その後、コールが到着すると、発信者ID情報はUSRモデムによって提示されません。発信者ID情報は、リング1と2の間に提示する必要があります。
同じコードがConextant93001ベースのモデムでうまく機能するので、コードが正しいと確信しています。 (または、明らかな欠陥はなく、ほとんど問題ありません)。
他の人も同様の問題を経験しているようです(たとえば、 発信者IDの検出-> US Robotics 56K? 別の製品で)が、解決策が見つかりません。
USRモデムが発信者ID情報を表示しないのはなぜですか?
これが私が使用している起動シーケンスです。 USRoboticsのマニュアルに従っているようです。
init:
while (ATZ != OK)
goto init
# gather modem info
ATI0
ATI1
ATI2
ATI3
ATI4
# query fax class
AT+FCLASS=?
# query compression
AT+VSM=?
# set caller id
AT+VCID=1
loop:
# process data
read_modem
...
goto loop
Conexantモデムでのformatted Caller ID
の外観は次のとおりです。 Conexantモデムでは、これはリング1と2の間に表示されます。
Debug: modem_read
Debug: Read 59: "DATE = 0302
TIME = 1601
NMBR = 6045551212
NAME = JOHN DOE"
これは、Windowsが使用する初期化文字列です。 SR5637Voice64bit.exeドライバー ダウンロードとusr5637_rv.inf
ファイルから取得されます:
AT
AT&F1E0Q0V1&C1&D2S0=0
私がそれをテストしたとき、初期化文字列は発信者IDも有効にしません。
しばらく時間がかかりましたが、ここに答えがあります。 USR5367モデムから発信者ID情報を取得するには、次の3つのオプションを設定する必要があります。
init:
while (ATZ != OK)
goto init
# set fax class
AT+FCLASS=8
# disable call waiting
AT+PCW=0
# set caller id
AT+VCID=1
loop:
# process data
read_modem
...
goto loop
キャッチホン機能は、USRモデムの保留中のモデム(MoH)機能、および通話中に回線を切り替えるモデムの機能と関係があります。ただし、キャッチホンが発信者IDとどのような関係があるのかはよくわかりません。
対照的に、ConexantCX93001ベースのモデムはAT+VCID=1
のみを必要とします。そして、ConexantにはAT+FCLASS=0
が必要です。 +FCLASS
を設定すると、発信者IDが機能しなくなります。 +PCW
は違いを生むようには見えません。 ConexantはAT+PCW=2
で動作します。
実行時にConexantモデムとUSRモデムを検出する必要がある場合は、ATI3
を使用します。返されるモデム文字列は次のとおりです。
コネクサント:
Debug: modem_write
Debug: Write 7: "ATI3\r"
Debug: modem_read
Debug: Read 38: "ATI3
CX93001-EIS_V0.2013-V92
OK"
USR:
Debug: modem_write
Debug: Write 7: "ATI3\r"
Debug: modem_read
Debug: Read 48: "ATI3
U.S. Robotics 56K FAX USB V1.2.23
OK"
これは、USR5367モデムをプログラミングしている人に役立つ場合があります...発信者IDがUSR5367で機能している場合、モデムは発信者ID関連のメッセージを"データリンクエスケープ"(DLE)メッセージと通信します。 DLEメッセージは文字0x10で通知されます。
RING
は<DLE>+R
と通信し、発信者ID情報は<DLE>+X
と通信します。したがって、リングは2バイトの0x10 0x52
で通知されます(その後に<CR><LF>
が続きます)。発信者ID情報は、2バイトの0x10 0x58 0x10
で通知されます(その後に<CR><LF>
が続きます)。発信者IDデータは、<DLE>+X
やNAME=PASADENA MD<CR><LF>
などの名前と値のペアを使用してNMBR=4104394421<CR><LF>
に従います。完全なCallerIDメッセージは次のようになります。
<DLE>+X<CR><LF>
NAME=PASADENA MD<CR><LF>
NMBR=4104394421<CR><LF>
DATE=1106<CR><LF>
TIME=1425<CR><LF>
(そして、<CR><LF>
はマニュアルでは「トレーラー」と呼ばれ、S3
およびS4
レジスタパラメータで示されるように行末として使用されます)。