Так и не нашел к сожалению инструкцию до конца Установил Free Fax Asterisk по инструкции все нормально. Входящие факсы приходят все отлично. Но как отправить факс так и не нашел толком. Незнаю правильно ли исправьте где не так.
exten => 9,1,Dial(DAHDI/g1/2918333,120,M(sendfax))
[macro-sendfax]
exten => s,1,NoOp(* SENDING FAX *)
exten => s,n,Wait(6)
;exten => s,n,Set(GLOBAL(FAXCOUNT)=$[ ${GLOBAL(FAXCOUNT)} + 1 ])
;exten => s,n,Set(FAXCOUNT=${GLOBAL(FAXCOUNT)})
exten => s,n,Set(FAXFILE=/var/spool/asterisk/tmp/1.tif)
; Set FAXOPTs
exten => s,n,NoOp(* SETTING FAXOPT *)
exten => s,n,Set(FAXOPT(ecm)=yes)
exten => s,n,Set(FAXOPT(headerinfo)=Fax from was received.)
exten => s,n,Set(FAXOPT(localstationid)=2918333)
exten => s,n,Set(FAXOPT(maxrate)=14400)
exten => s,n,Set(FAXOPT(minrate)=2400)
; Send the fax
exten => s,n,NoOp(* SENDING FAX : ${FAXFILE} *)
exten => s,n,SendFAX(${FAXFILE},d)
exten => s,n,Hangup()
При дебаге выдает -- Executing [9@ivr:1] Dial("DAHDI/31-1", "DAHDI/g1/2918333,120,M(sendfax)") in new stack -- Requested transfer capability: 0x10 - 3K1AUDIO -- Called g1/2918333 -- Channel 0/1, span 1 got hangup, cause 1 -- Hungup 'DAHDI/1-1'
<?php
$callto = $argv[1];
$sys_ip = "serverip";
$User_str = "login";
$Secret_str = "password";
$oSocket = fsockopen($sys_ip, 5038, $errnum, $errdesc) or die("Connection to host failed");
fputs($oSocket, "Action: login\r\n");
sleep(1);
fputs($oSocket, "Username: $User_str\r\n");
sleep(1);
fputs($oSocket, "Secret: $Secret_str\r\n\r\n");
sleep(1);
fputs($oSocket, "Events: off\r\n\r\n");
sleep(1);
fputs($oSocket, "Action: originate\r\n");
sleep(1);
fputs($oSocket, "Channel: SIP/SPA-400/$callto\r\n");
sleep(1);
fputs($oSocket, "Exten: s\r\n");
sleep(1);
fputs($oSocket, "Context: outboundfax\r\n");
sleep(1);
fputs($oSocket, "Priority: 1\r\n\r\n");
sleep(1);
fputs($oSocket, "Timeout: 100\r\n");
sleep(1);
fputs($oSocket, "Async: true\r\n");
sleep(1);
fputs($oSocket, "Action: Logoff\r\n\r\n");
sleep(1);
fclose($oSocket);
?>
Я не юзаю кол-файлы, а юзаю АМИ. Почти тоже самое.
логин и пароль прописываеш в файле /etc/asterisk/managers.conf
SIP/SPA-400 в моём случае это транк на FXO
$callto - номер телефона
outboundfax - название контекста описаного выше в файле extension_custom.conf
Я вызываю так:
php /route/to/script.php 2441111
exten => s,1,NoOp(send a fax)
exten => s,n,Set(FAXOPT(filename)=${FAXFILE})
exten => s,n,Set(FAXOPT(ecm)=yes)
exten => s,n,Set(FAXOPT(headerinfo)=Fax from %COMPANY_NAME%)
exten => s,n,Set(FAXOPT(localstationid)=000000000)
exten => s,n,Set(FAXOPT(maxrate)=14400)
exten => s,n,Set(FAXOPT(minrate)=2400)
exten => s,n,SendFAX(/sysutils/fax.tif)
exten => s,n,Hangup
exten => h,1,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})
А этот контекст вызываю через кол-файл
Задам вопрос тут чтобы было более читабельно Получилось у меня отправить фак но только используя ivr exten => 11,1,Dial(DAHDI/g1/2918003,120,M(sendfax))
[macro-sendfax]
exten => s,1,NoOp(* SENDING FAX )
exten => s,n,Wait(6)
exten => s,n,Set(FAXFILE=/var/spool/asterisk/tmp/1.tif)
; Set FAXOPTs
exten => s,n,NoOp( SETTING FAXOPT )
exten => s,n,Set(FAXOPT(ecm)=yes)
exten => s,n,Set(FAXOPT(headerinfo)=Fax from was received.)
exten => s,n,Set(FAXOPT(localstationid)=2918333)
exten => s,n,Set(FAXOPT(maxrate)=14400)
exten => s,n,Set(FAXOPT(minrate)=2400)
; Send the fax
exten => s,n,NoOp( SENDING FAX : ${FAXFILE} *)
exten => s,n,SendFAX(${FAXFILE},d)
exten => s,n,Hangup()
И то почему то это если я звоню по внутренней сип линии, если я звоню через внешний е1 не отправляет. С пхп тоже что то не получается, пишет ошибку
-- Executing [11@ivr:1] Dial("DAHDI/29-1", "DAHDI/g1/2918003,120,M(sendfax)") in new stack
-- Requested transfer capability: 0x00 - SPEECH
-- Called g1/2918003
-- Channel 0/1, span 1 got hangup, cause 1
-- Hungup 'DAHDI/1-1'
Пхп в консоле запускается там никакких ошибок не выдает сам скрипт такой как вы выкладывали токо параметры подключения свои вставил и все
$sys_ip = "localhost";
$User_str = "admin";
$Secret_str = "xxx";
$oSocket = fsockopen($sys_ip, 5038, $errnum, $errdesc) or die("Connection to host failed");
fputs($oSocket, "Action: login\r\n"); sleep(1);
fputs($oSocket, "Username: $User_str\r\n"); sleep(1);
fputs($oSocket, "Secret: $Secret_str\r\n\r\n"); sleep(1);
fputs($oSocket, "Events: off\r\n\r\n"); sleep(1);
fputs($oSocket, "Action: originate\r\n"); sleep(1);
fputs($oSocket, "Channel: DAHDI/g1/$callto\r\n"); sleep(1);
fputs($oSocket, "Exten: s\r\n"); sleep(1);
fputs($oSocket, "Context: macro-sendfax\r\n"); sleep(1);
fputs($oSocket, "Priority: 1\r\n\r\n"); sleep(1);
fputs($oSocket, "Timeout: 100\r\n"); sleep(1);
fputs($oSocket, "Async: true\r\n"); sleep(1);
fputs($oSocket, "Action: Logoff\r\n\r\n"); sleep(1);
fclose($oSocket);
в Cli выдает
== Manager 'admin' logged on from 127.0.0.1
-- Requested transfer capability: 0x00 - SPEECH
-- Channel 0/1, span 1 got hangup, cause 1
-- Hungup 'DAHDI/1-1'
== Manager 'admin' logged off from 127.0.0.1
Задан: 2011-06-28 05:32:16 +0400
Просмотрен: 694 раз
Обновлен: Jun 29 '11
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.