VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Проблема с приемом факса FreePBX Distro 2.11

Обо всем касательно FreePBX, MetPBX, TrixBox, Elastix, AstPBX и всех других дистрибутивов

Модераторы: april22, Zavr2008

Ответить
koliama
Сообщения: 38
Зарегистрирован: 28 мар 2014, 12:08
Откуда: СПб

Проблема с приемом факса FreePBX Distro 2.11

Сообщение koliama »

Приветствую всех присутствующих! всем.
Столкнулся со странной проблемой при попытке использовать функционал FreePBX по приему факсов. Сборка FreePBX Distro Stable-5.211.65-15 Release Date-07-25-14 FreePBX 2.11, Linux 6.5
Не работает перенаправление fax-to-email.
Что делаю:
- захожу в раздел Settings -> Fax Configuration, задаю почтовые адреса :
Outgoing Email address: fax@localhost
Email address: test@ya.ru
Error correction mode : yes
max-min transfer rate: 14400
Always Allow Legacy Mode: no

В настройках Asterisk SIP Settings указал:
T38 Pass-Through = Yes

Звоню на номер 666 c внутреннего ext, который зареган на Zoiper (вроде он поддерживает отправку факса в формате Tif). При дозвоне слышу тон факса. Посылаю факс. В консоли астера вижу следующее:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:
-- Executing [666@from-internal:1] Set("SIP/001107-000001f4", "FAX_RX_EMAIL= test@ya.ru") in new stack

-- Executing [666@from-internal:2] Goto("SIP/001107-000001f4", "ext-fax,s,1") in new stack

-- Goto (ext-fax,s,1)

-- Executing [s@ext-fax:1] Macro("SIP/001107-000001f4", "user-callerid,") in new stack

-- Executing [s@macro-user-callerid:1] Set("SIP/001107-000001f4", "TOUCH_MONITOR=1408045522.6951") in new stack

-- Executing [s@macro-user-callerid:2] Set("SIP/001107-000001f4", "AMPUSER=001107") in new stack

-- Executing [s@macro-user-callerid:3] GotoIf("SIP/001107-000001f4", "0?report") in new stack

-- Executing [s@macro-user-callerid:4] ExecIf("SIP/001107-000001f4", "1?Set(REALCALLERIDNUM=001107)") in new stack

-- Executing [s@macro-user-callerid:5] Set("SIP/001107-000001f4", "AMPUSER=001107") in new stack

-- Executing [s@macro-user-callerid:6] GotoIf("SIP/001107-000001f4", "0?limit") in new stack

-- Executing [s@macro-user-callerid:7] Set("SIP/001107-000001f4", "AMPUSERCIDNAME=test nik") in new stack

-- Executing [s@macro-user-callerid:8] GotoIf("SIP/001107-000001f4", "0?report") in new stack

-- Executing [s@macro-user-callerid:9] Set("SIP/001107-000001f4", "AMPUSERCID=001107") in new stack

-- Executing [s@macro-user-callerid:10] Set("SIP/001107-000001f4", "__DIAL_OPTIONS=Ttr") in new stack

-- Executing [s@macro-user-callerid:11] Set("SIP/001107-000001f4", "CALLERID(all)="test nik" <001107>") in new stack

-- Executing [s@macro-user-callerid:12] GotoIf("SIP/001107-000001f4", "0?limit") in new stack

-- Executing [s@macro-user-callerid:13] ExecIf("SIP/001107-000001f4", "0?Set(GROUP(concurrency_limit)=001107)") in new stack

-- Executing [s@macro-user-callerid:14] ExecIf("SIP/001107-000001f4", "0?Set(CHANNEL(language)=)") in new stack

-- Executing [s@macro-user-callerid:15] GosubIf("SIP/001107-000001f4", "7?sub-ccss,s,1(ext-fax,666)") in new stack

-- Executing [s@sub-ccss:1] ExecIf("SIP/001107-000001f4", "0?Return()") in new stack

-- Executing [s@sub-ccss:2] Set("SIP/001107-000001f4", "CCSS_SETUP=TRUE") in new stack

-- Executing [s@sub-ccss:3] GosubIf("SIP/001107-000001f4", "0?monitor_config,1(ext-fax,666):monitor_default,1(ext-fax,666)") in new stack

-- Executing [monitor_default@sub-ccss:1] GotoIf("SIP/001107-000001f4", "0?is_exten") in new stack

-- Executing [monitor_default@sub-ccss:2] StackPop("SIP/001107-000001f4", "") in new stack

-- Executing [monitor_default@sub-ccss:3] Return("SIP/001107-000001f4", "FALSE") in new stack

-- Executing [s@macro-user-callerid:16] GotoIf("SIP/001107-000001f4", "0?continue") in new stack

-- Executing [s@macro-user-callerid:17] ExecIf("SIP/001107-000001f4", "1?Set(__CALLEE_ACCOUNCODE=)") in new stack

-- Executing [s@macro-user-callerid:18] Set("SIP/001107-000001f4", "__TTL=64") in new stack

-- Executing [s@macro-user-callerid:19] GotoIf("SIP/001107-000001f4", "1?continue") in new stack

-- Goto (macro-user-callerid,s,30)

-- Executing [s@macro-user-callerid:30] Set("SIP/001107-000001f4", "CALLERID(number)=001107") in new stack

-- Executing [s@macro-user-callerid:31] Set("SIP/001107-000001f4", "CALLERID(name)=test ") in new stack

-- Executing [s@macro-user-callerid:32] Set("SIP/001107-000001f4", "CDR(cnum)=001107") in new stack

-- Executing [s@macro-user-callerid:33] Set("SIP/001107-000001f4", "CDR(cnam)=test") in new stack

-- Executing [s@macro-user-callerid:34] Set("SIP/001107-000001f4", "CHANNEL(language)=en") in new stack

-- Executing [s@ext-fax:2] NoOp("SIP/001107-000001f4", "Receiving Fax for: test@ya.ru , From: "test" <001107>") in new stack

-- Executing [s@ext-fax:3] StopPlayTones("SIP/001107-000001f4", "") in new stack

-- Executing [s@ext-fax:4] ReceiveFAX("SIP/001107-000001f4", "/var/spool/asterisk/fax/1408045522.6951.tif,f") in new stack

-- Channel 'SIP/001107-000001f4' receiving FAX '/var/spool/asterisk/fax/1408045522.6951.tif'


> 0x7fd2540420d0 -- Probation passed - setting RTP source address to xx.xx.xx.xx:8000

== Using UDPTL TOS bits 184

== Using UDPTL CoS mark 5

-- Executing [h@ext-fax:1] GotoIf("SIP/001107-000001f4", "1?failed") in new stack

-- Goto (ext-fax,h,103)

-- Executing [h@ext-fax:103] NoOp("SIP/001107-000001f4", "FAX FAILED for: test@ya.ru , From: "test nik" <001107>") in new stack

-- Executing [h@ext-fax:104] Macro("SIP/001107-000001f4", "hangupcall,") in new stack

-- Executing [s@macro-hangupcall:1] GotoIf("SIP/001107-000001f4", "1?theend") in new stack

-- Goto (macro-hangupcall,s,3)

-- Executing [s@macro-hangupcall:3] ExecIf("SIP/001107-000001f4", "0?Set(CDR(recordingfile)=)") in new stack

-- Executing [s@macro-hangupcall:4] Hangup("SIP/001107-000001f4", "") in new stack

== Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/001107-000001f4' in macro 'hangupcall'

== Spawn extension (ext-fax, h, 104) exited non-zero on 'SIP/001107-000001f4'

Вроде все просто: факс должен быть послан на адрес test@ya.ru c адреса fax@local. Но в логах postfix на хосте попыток отправить письмо я не вижу + в поле From стоит CALLERID, а не почтовый адрес.

Где я накосячил, подскажите пожалуйста..
awsswa
Сообщения: 2390
Зарегистрирован: 09 июн 2012, 10:52
Откуда: Россия, Пермь skype: yarick_perm

Re: Проблема с приемом факса FreePBX Distro 2.11

Сообщение awsswa »

из командной строки тестовое письмо с такими же параметрами на ya.ru уходит ?
платный суппорт по мере возможностей
koliama
Сообщения: 38
Зарегистрирован: 28 мар 2014, 12:08
Откуда: СПб

Re: Проблема с приемом факса FreePBX Distro 2.11

Сообщение koliama »

Да, локальный postfix настроен на пересылку на смарт-хост. Если из шелла mailx запустить - сообщение уходит без проблем..
koliama
Сообщения: 38
Зарегистрирован: 28 мар 2014, 12:08
Откуда: СПб

Re: Проблема с приемом факса FreePBX Distro 2.11

Сообщение koliama »

Полез в кишки.
В контексте ext-fax вызывается скрипт
exten => h,n,System(${ASTVARLIBDIR}/bin/fax2mail.php --to "${FAX_RX_EMAIL}" --dest "${FROM_DID}" --callerid '${STRREPLACE(CALLERID(all),',\\')}' --file ${ASTSPOOLDIR}/fax/${UNIQUEID}.tif --exten "${FAX_FOR}" --delete "${DELETE_AFTER_SEND}" --attachformat "${FAX_ATTACH_FORMAT}")

А app-fax (который 666) запускает ext-fax...
Коллеги, кто ставил такой дистриб - скажите были ли проблемы с факсами?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с приемом факса FreePBX Distro 2.11

Сообщение ded »

2.10 работает без проблем.
1) Считайте все эти переменные
exten => h,1,NoOp(--to "${FAX_RX_EMAIL}" --dest "${FROM_DID}" --callerid '${STRREPLACE(CALLERID(all),',\\')}' --file ${ASTSPOOLDIR}/fax/${UNIQUEID}.tif --exten "${FAX_FOR}" --delete "${DELETE_AFTER_SEND}" --attachformat "${FAX_ATTACH_FORMAT}")
2) Попробуйте поставить валидный исходящий -
Outgoing Email address: fax@yourcompany.biz
koliama
Сообщения: 38
Зарегистрирован: 28 мар 2014, 12:08
Откуда: СПб

Re: Проблема с приемом факса FreePBX Distro 2.11

Сообщение koliama »

To ded
Идея понятна, попробую. Спасибо за совет..
koliama
Сообщения: 38
Зарегистрирован: 28 мар 2014, 12:08
Откуда: СПб

Re: Проблема с приемом факса FreePBX Distro 2.11

Сообщение koliama »

To ded
Скажи пожалуйста, если есть возможность посмотреть , в 2.10 скрипт такой же отрабатывает в контексте ext-fax? с такими же параметрами?
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Проблема с приемом факса FreePBX Distro 2.11

Сообщение ded »

koliama писал(а):To ded
Скажи пожалуйста, ....
Скажи-те
ded писал(а):1) Считайте все эти переменные
.....
2) Попробуйте поставить валидный исходящий

Код: Выделить всё

[ext-fax]
include => ext-fax-custom
exten => s,1,Macro(user-callerid,)
exten => s,n,Noop(Receiving Fax for: ${FAX_RX_EMAIL} , From: ${CALLERID(all)})
exten => s,n(receivefax),StopPlaytones
exten => s,n,ReceiveFAX(${ASTSPOOLDIR}/fax/${UNIQUEID}.tif,f)
exten => s,n,ExecIf($["${FAXSTATUS:0:6}"="FAILED" && "${FAXERROR}"!="INIT_ERROR"]?Set(FAXSTATUS="FAILED: error: ${FAXERROR} statusstr:${FAXOPT(statusstr)}"))
exten => s,n,Hangup

exten => h,1,GotoIf($[${STAT(e,${ASTSPOOLDIR}/fax/${UNIQUEID}.tif)} = 0]?failed)
exten => h,n(process),GotoIf($[${LEN(${FAX_RX_EMAIL})} = 0]?noemail)
exten => h,n(delete_opt),Set(DELETE_AFTER_SEND=true)
exten => h,n,System(${ASTVARLIBDIR}/bin/fax2mail.php --to "${FAX_RX_EMAIL}" --dest "${FROM_DID}" --callerid '${CALLERID(all)}' --file ${ASTSPOOLDIR}/fax/${UNIQUEID}.tif --exten "${FAX_FOR}" --delete "${DELETE_AFTER_SEND}")
exten => h,n(end),Macro(hangupcall,)
exten => h,n(noemail),Noop(ERROR: No Email Address to send FAX: status: [${FAXSTATUS}],  From: [${CALLERID(all)}])
exten => h,n,Macro(hangupcall,)
exten => h,process+101(failed),Noop(FAX ${FAXSTATUS} for: ${FAX_RX_EMAIL} , From: ${CALLERID(all)})
exten => h,n,Macro(hangupcall,)
Ясно видно, что в 2.11 завернули что-то новое: функцию --callerid '${STRREPLACE(CALLERID(all),',\\')}'
koliama
Сообщения: 38
Зарегистрирован: 28 мар 2014, 12:08
Откуда: СПб

Re: Проблема с приемом факса FreePBX Distro 2.11

Сообщение koliama »

1) Считайте все эти переменные
-- Executing [666@from-internal:1] Set("SIP/001107-0000024a", "FAX_RX_EMAIL=test@ya.ru") in new stack
-- Executing [666@from-internal:2] Goto("SIP/001107-0000024a", "ext-fax,s,1") in new stack
........
-- Executing [s@ext-fax:2] NoOp("SIP/001107-0000024a", "Receiving Fax for: test@ya.ru , From: "test" <001107>") in new stack

Не подхватывается адрес, который указан в поле Outgoing Email address- я задал fax@test.ru
Ерунда какая-то.. Не может это быть из-за того, что я звоню с внутреннего ext, а не через внешний номер?

to ded
Скажи-те
Понял, без проблем.
koliama
Сообщения: 38
Зарегистрирован: 28 мар 2014, 12:08
Откуда: СПб

Re: Проблема с приемом факса FreePBX Distro 2.11

Сообщение koliama »

Возможно что это проблемы Zoiper, кстати.
В файле extensions_override_freepbx.conf переписал контекст ext-fax как ext-fax-test и задал переменную DELETE_AFTER_SEND = false (вроде как при этом не должен удаляться tif файл). Ну и заодно переписал контекст app-fax, чтобы вызывался ext-fax-test.
После попытки пересылки факса проверяю директорию /var/spool/asterisk/fax/ - там пусто.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH