Это старая версия документа!
Обратно к основной инструкции...
Для отправки факсов, на АТС должны присутствовать модули, позволяющие это сделать. Пример с использованием spandsp:
CLI> module show like fax Module Description Use Count res_fax.so Generic FAX Applications 1 res_fax_spandsp.so Spandsp G.711 and T.38 FAX Technologies 0 2 modules loaded
В плане набора должен быть описан контекст miko_ajam.
В контексте miko_ajam определяется extension с номером 10000333.
[miko_ajam] exten => 10000333,1,NoOP(Send fax Asterisk app)
При необходимости, “Панель телефонии Asterisk” выполняет AMI команду originate.
Параметры originate
Переменные канала
[miko_ajam] exten => 10000333,1,NoCDR() exten => 10000333,n,Noop(internal calling application: 10000333 1C_SendFax) ; получим параметры, переданные из 1С exten => 10000333,n,Set(_chan=${chan}) exten => 10000333,n,Set(_faxcallerid=${faxcallerid}) exten => 10000333,n,Set(_faxfile=${faxfile}) ; звонок в контекст отправки факса exten => 10000333,n,Dial(LOCAL/${CALLERID(num)}@miko_ajam_fax_tx,,g) exten => 10000333,n,Hangup [miko_ajam_fax_tx] exten => _X!,1,WaitForSilence(500,1,15)) exten => _X!,n,Answer ; ${ASTSPOOLDIR} - параметр из /etc/asterisk/asterisk.conf exten => _X!,n,SendFAX(${ASTSPOOLDIR}/fax/${faxfile}.tif) ; в userfield сохраним информацию о вызванном приложении exten => _X!,n,Set(CDR(userfield)=SendFAX) exten => _X!,n,Hangup exten => h,1,GotoIf($["${FAXSTATUS}" = "SUCCESS"]?h,success:h,failed) ; сообщим 1С о неудаче exten => h,n(failed),UserEvent(SendFaxStatusFail,Channel: ${chan},CallerID: ${faxcallerid}) exten => h,n,Hangup ; сообщим 1С об успешности операции exten => h,n(success),UserEvent(SendFaxStatusOk,Channel: ${chan},CallerID: ${faxcallerid}) ; сохраним имя файла в поле recordingfile exten => h,n,Set(CDR(recordingfile)=${faxfile}.tif) exten => h,n,Hangup