web-dev-qa-db-ja.com

アスタリスクからFAXを送信する(EメールからFAXへ)---フィードバックはありますか?

ファックスゲートウェイに電子メールを送信しようとしています---いくつかのpythonプログラムは アスタリスク呼び出しファイル を作成し、それらをいくつかのキューに入れます(ファイルまたはデータベースベース)。

次に、別のプログラムがキューから「呼び出しタスク」を取得し、それらをアスタリスクに「フィード」する必要があります(res_fax_digiumは制限を超えたタスクをドロップするため、構成された制限を尊重します)。

次に、すべてが素晴らしく、アスタリスクがファックス文書を正常に送信したとしましょう。この操作のステータスを取得する方法は何でしょうか?

ログファイルの解析が最適な場合は、おそらく、CDRを別のファイルにドロップするために特別なaccountcode(おそらくこのフィールドで遊ぶことができます)を割り当てます。

他にどのように評価すべきですか?

4
brownian

そこで、私はこのアプローチをやめ、別の方法に進みます--- AMI、Asterisk Management InterfaceAPI。

一言で言えば。

このようなダイヤルプランを作成した:

[01-sendfax]
exten => _X.,1,NoOp()
     same => n,SendFax(${faxfile},f)

私は( pyst を使用して)で電話をかけることができます:

res = mgr.originate(
    'SIP/m2000/1234567',
    '1234567',
    context='01-sendfax',
    priority='1',
    caller_id='7654321',
    async=True,
    variables={
        'TRUNK': 'SIP/m2000',
        'faxfile': '/tmp/file.tiff',
    }
)

そして、debug = onmanager.confを設定すると、必要なイベントを聞くことができます。

# will catch a status of `originate` call
# (this does not require `debug = on` in `manager.conf`):
mgr.register_event('OriginateResponse', handle_response)

# will catch `SendFax` application's result:
mgr.register_event('FaxStatus', handle_response)

したがって、res_fax_digiumは、FaxStatusが完了した後にSendFaxイベントを発生させます。

3
brownian