Então, eu larguei essa abordagem e vou de outra maneira --- AMI, API de Interface de Gerenciamento do Asterisk.
Em poucas palavras.
Ter criado um plano de discagem como este:
[01-sendfax]
exten => _X.,1,NoOp()
same => n,SendFax(${faxfile},f)
Eu posso originar chamadas com (usando 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',
}
)
E, depois de definir debug = on
em manager.conf
, posso ouvir os eventos necessários:
# 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)
Portanto, res_fax_digium
aciona FaxStatus
evento após a conclusão de SendFax
.