Назад | Перейти на главную страницу

Отправка факсов из Asterisk (электронная почта на факс) - возможна ли обратная связь?

Я собираюсь отправить электронное письмо на шлюз факса - какая-то программа на Python сделает Звездочка файлы вызова и поместите их в какую-то очередь (файлы или на основе БД).

Затем другая программа должна взять «задачи вызова» из очереди и «скормить» их звездочке (соблюдая некоторый настроенный лимит, поскольку res_fax_digium сбросит слишком ограниченные задачи).

Далее, допустим, все отлично и звездочка успешно отправила какой-то факсимильный документ. Как можно узнать статус этой операции?

Если парсинг лог-файлов самый лучший, я бы, наверное, назначил какой-нибудь специальный accountcode (Возможно, я могу поиграть с этим полем), чтобы тоже разбить CDR в отдельные файлы.

Пожалуйста, какие еще способы мне следует оценить?

Итак, я отказался от этого подхода и выбрал другой путь - AMI, Asterisk Management Interface API.

В двух словах.

Создав такой диалплан:

[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 = on в manager.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 завершено.