나는 팩스 게이트웨이로 이메일을 보내려고 합니다 --- 어떤 파이썬 프로그램이별표 통화 파일그리고 이를 대기열(파일 또는 DB 기반)에 넣습니다.
res_fax_digium
그런 다음 다른 프로그램은 대기열에서 "호출 작업"을 가져와서 별표로 "공급"해야 합니다( 제한된 작업이 삭제되기 때문에 일부 구성된 제한을 준수함 ).
다음으로 모든 것이 훌륭하고 별표가 팩스 문서를 성공적으로 보냈다고 가정해 보겠습니다. 이 작업의 상태를 확인하는 방법은 무엇입니까?
로그 파일 구문 분석이 최고라면 accountcode
CDR을 별도의 파일에 추가하기 위해 특수한 기능(아마도 이 필드를 사용할 수 있음)을 할당할 것입니다.
다른 어떤 방법으로 평가해야 할까요?
답변1
그래서 저는 이 접근 방식을 중단하고 다른 방법인 AMI, Asterisk Management Interface API를 사용하려고 합니다.
몇 마디로.
다음과 같은 다이얼플랜을 생성했습니다.
[01-sendfax]
exten => _X.,1,NoOp()
same => n,SendFax(${faxfile},f)
다음을 사용하여 전화를 걸 수 있습니다.피스트):
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