web-dev-qa-db-ja.com

AT + VCID = 1がUSRモデムで発信者IDを有効にしていない

私は 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も有効にしません。

2
jww

しばらく時間がかかりましたが、ここに答えがあります。 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>+XNAME=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レジスタパラメータで示されるように行末として使用されます)。

1
jww