Для отправки факсимильного сообщения из 1C, нам необходимо также дописать в диалплан mikoajamdll дополнительные строки:
[miko_ajam] exten => 0000333,1,Answer() exten => 0000333,n,Playback(custom/press_start_to_receive_a_fax) exten => 0000333,n,Wait(1) exten => 0000333,n,Playback(vm-goodbye) exten => 0000333,n,Set(input_path=${ASTSPOOLDIR}/uploads/) exten => 0000333,n,Set(outbox_path=${ASTSPOOLDIR}/fax/) exten => 0000333,n,Set(CDR(clid=${faxcallerid})) exten => 0000333,n,System( gs -q -dNOPAUSE -dBATCH -sDEVICE=tiffg4 -sPAPERSIZE=a4 -g1680x2285 -sOutputFile=${outbox_path}${faxfile}.tif ${input_path}${faxfile}.pdf) ;//add /etc/sudoers folowing asterisk ALL = NOPASSWD: ALL exten => 0000333,n,System( rm ${input_path}${faxfile}.pdf) exten => 0000333,n,SendFAX(${outbox_path}${faxfile}.tif) exten => 0000333,n,ExecIf($[${FAXSTATUS}=SUCCESS]?Set(CDR(userfield)=${faxfile}.pdf)) exten => 0000333,n,ExecIf($[${FAXSTATUS}=SUCCESS]?UserEvent(SendFaxStatusOk,Channel: ${chan},CallerID: ${faxcallerid})) exten => 0000333,n,ExecIf($[${FAXSTATUS}!=SUCCESS]?UserEvent(SendFaxStatusFail,Channel: ${chan},CallerID: ${faxcallerid})) exten => 0000333,n,Hangup()
Asterisk умеет отправлять факсимильные сообщения подготовленные в графическом формате TIFF. В данном скрипте используется конвертер Ghostscript установленный на сервере Asterisk, можно использовать Windows версию Ghostscript, тогда конвертацию файла нужно будет делать до отправки на Asterisk. Конвертер позволяет преобразовывать файлы PDF в TIFF.
При использовании конвертации в Windows диалплан будет выглядеть так:
[miko_ajam] exten => 0000999,1,NoCDR() exten => 0000999,n,Answer() exten => 0000999,n,Wait(60) exten => 0000999,n,Hangup() exten => 0000333,1,Answer() exten => 0000333,n,Playback(custom/press_start_to_receive_a_fax) exten => 0000333,n,Wait(1) exten => 0000333,n,Playback(vm-goodbye) exten => 0000333,n,Set(outbox_path=${ASTSPOOLDIR}/fax/) exten => 0000333,n,SendFAX(${outbox_path}${faxfile}.tif) exten => 0000333,n,ExecIf($[${FAXSTATUS}=SUCCESS]?Set(CDR(userfield)=${faxfile}.pdf)) exten => 0000333,n,ExecIf($[${FAXSTATUS}=SUCCESS]?UserEvent(SendFaxStatusOk,Channel: ${chan},CallerID: ${faxcallerid})) exten => 0000333,n,ExecIf($[${FAXSTATUS}!=SUCCESS]?UserEvent(SendFaxStatusFail,Channel: ${chan},CallerID: ${faxcallerid})) exten => 0000333,n,Hangup()
Для передачи файла факса из 1С в Asterisk используется механизм описанный в блоге Игоря Гончаровского.
Для проверки вашей АТС на возможность принимать файлы с помощью POST запроса используйте этот пакет.