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

Elastix и получение факсов

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

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

Angel_19
Сообщения: 94
Зарегистрирован: 19 апр 2013, 15:01

Elastix и получение факсов

Сообщение Angel_19 »

Доброго дня!

Есть Elastix.
Прием факсов на одну эл. почту настроен и работает.

Далее у внутренних номеров включил прием факса, указал эл. почту.
Факс отправляется, но на эл. почту не приходит.
В Elastix кажется нерабочий код:

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

[app-fax]
include => app-fax-custom
exten => 666,1,Set(FAX_RX_EMAIL=fax@mydomain.com)
exten => 666,n,Goto(ext-fax,s,1)
exten => h,1,Macro(hangupcall,)

; end of [app-fax]

[ext-fax]
include => ext-fax-custom
exten => 250,1,Noop(Receiving Fax for: Maksim (250), From: ${CALLERID(all)})
exten => 250,n,Set(FAX_RX_EMAIL=mail1@mail.ru)
exten => 250,n(receivefax),Goto(s,receivefax)
exten => 270,1,Noop(Receiving Fax for: Roman (270), From: ${CALLERID(all)})
exten => 270,n,Set(FAX_RX_EMAIL=mail2@mail.ru)
exten => 270,n(receivefax),Goto(s,receivefax)
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($["${FAXOPT(error)}"=""]?Set(FAXSTATUS=FAILED LICENSE EXCEEDED))
exten => s,n,ExecIf($["${FAXOPT(error)}"!="" && "${FAXOPT(error)}"!="NO_ERROR"]?Set(FAXSTATUS="FAILED FAXOPT: error: ${FAXOPT(error)} status: ${FAXOPT(status)} statusstr: ${FAXOPT(statusstr)}"))
exten => s,n,Hangup
exten => h,1,GotoIf($["${FAXSTATUS:0:6}" = "FAILED"]?failed)
exten => h,n(process),GotoIf($[${LEN(${FAX_RX_EMAIL})} = 0]?end)
exten => h,n,System(${ASTVARLIBDIR}/bin/fax-process.pl --to "${FAX_RX_EMAIL}" --from "freepbx@gmail.com" --dest "${FROM_DID}" --subject "New fax from ${URIENCODE(${CALLERID(name)})} ${URIENCODE(<${CALLERID(number)}>)}" --attachment fax_${URIENCODE(${CALLERID(number)})}.pdf --type application/pdf --file ${ASTSPOOLDIR}/fax/${UNIQUEID}.tif)
exten => h,n(end),Macro(hangupcall,)
exten => h,process+101(failed),Noop(FAX ${FAXSTATUS} for: ${FAX_RX_EMAIL} , From: ${CALLERID(all)})
exten => h,n,Macro(hangupcall,)

; end of [ext-fax]
Т.е. тут проблема втом, что:

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

exten => 666,n,Goto(ext-fax,s,1)
переходит в [ext-fax], минуя строки:

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

exten => 250,1,Noop(Receiving Fax for: Maksim (250), From: ${CALLERID(all)})
exten => 250,n,Set(FAX_RX_EMAIL=mail1@mail.ru)
exten => 250,n(receivefax),Goto(s,receivefax)
exten => 270,1,Noop(Receiving Fax for: Roman (270), From: ${CALLERID(all)})
exten => 270,n,Set(FAX_RX_EMAIL=mail2@mail.ru)
exten => 270,n(receivefax),Goto(s,receivefax)
Как тут поправить, чтобы работало правильно?
Аватара пользователя
SolarW
Сообщения: 1331
Зарегистрирован: 01 сен 2010, 14:21
Откуда: Днепропетровск, Украина

Re: Elastix и получение факсов

Сообщение SolarW »

Перейти по ссылке
https://elastix.ip/index.php?menu=remote_smtp
и настроить там все.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Elastix и получение факсов

Сообщение ded »

Angel_19 писал(а):Как тут поправить, чтобы работало правильно?
Ничего поправлять не надо, всё там правильно.
Вы не до конца понимаете, возможно, высе варианты приёма факса.
Диавольское число 666 - это какбы общеконторский факс. Если Роман разговаривает с тётенькой, которая заявляет вдруг "Примите факс!", то самый простой способ - трансфер тётеньку на 666, и готово (только в вэб интерфейсе укажите правильный мэйл бокс вместо глупости -
FAX_RX_EMAIL=fax@mydomain.com).

Когда Вы настраиваете индивидуальные факсы, то они работают главным образом при автоопределении звонка: голос или факс? И это автоопределение может работать на входящих на 270 только если передающий факс - автомат, тогда -
Send to the DTE when the V.25/T.30 2100 Hz Answer Tone (Data or Fax) is detected.
Angel_19
Сообщения: 94
Зарегистрирован: 19 апр 2013, 15:01

Re: Elastix и получение факсов

Сообщение Angel_19 »

Для принятия факсов на один эл.ящик для всей компании у меня все настроено и работает!!!!

Я хочу сделать, чтобы во время разговора, если просят принять факс, сотрудник переводит на 666 и факс принимается и приходит на эл.почту именно этого сотрудника!!! А не на общий эл.ящик.
Диавольское число 666 - это какбы общеконторский факс. Если Роман разговаривает с тётенькой, которая заявляет вдруг "Примите факс!", то самый простой способ - трансфер тётеньку на 666, и готово (только в вэб интерфейсе укажите правильный мэйл бокс
Я так и делаю, и в настройках Романа (и Максима) указан верный мэйл бокс. Смысл тут в том, чтобы когда Роман переводит тётеньку на 666, чтоб факс пришел Роману на его эл. почту, а не на общую. Вот для этих целей в екстеншене Романа есть пункт - Fax , Enabled - включаем, Fax Email - указываем эл. почту Романа.
После этого, Elastix добавляет следующий код в ([ext-fax]):

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

[ext-fax]
exten => 250,1,Noop(Receiving Fax for: Maksim (250), From: ${CALLERID(all)})
exten => 250,n,Set(FAX_RX_EMAIL=mail1@mail.ru)
exten => 250,n(receivefax),Goto(s,receivefax)
exten => 270,1,Noop(Receiving Fax for: Roman (270), From: ${CALLERID(all)})
exten => 270,n,Set(FAX_RX_EMAIL=mail2@mail.ru)
exten => 270,n(receivefax),Goto(s,receivefax)
который как раз и задает личные эл. ящики для факсов. Но судя по логам * , этот код не выполняется!!!!
Вместо этого кода, * переходит в экстеншен - [ext-fax] , и сразу идет на:

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

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($["${FAXOPT(error)}"=""]?Set(FAXSTATUS=FAILED LICENSE EXCEEDED))
exten => s,n,ExecIf($["${FAXOPT(error)}"!="" && "${FAXOPT(error)}"!="NO_ERROR"]?Set(FAXSTATUS="FAILED FAXOPT: error: ${FAXOPT(error)} status: ${FAXOPT(status)} statusstr: ${FAXOPT(statusstr)}"))
exten => s,n,Hangup
exten => h,1,GotoIf($["${FAXSTATUS:0:6}" = "FAILED"]?failed)
exten => h,n(process),GotoIf($[${LEN(${FAX_RX_EMAIL})} = 0]?end)
exten => h,n,System(${ASTVARLIBDIR}/bin/fax-process.pl --to "${FAX_RX_EMAIL}" --from "freepbx@gmail.com" --dest "${FROM_DID}" --subject "New fax from ${URIENCODE(${CALLERID(name)})} ${URIENCODE(<${CALLERID(number)}>)}" --attachment fax_${URIENCODE(${CALLERID(number)})}.pdf --type application/pdf --file ${ASTSPOOLDIR}/fax/${UNIQUEID}.tif)
exten => h,n(end),Macro(hangupcall,)
exten => h,process+101(failed),Noop(FAX ${FAXSTATUS} for: ${FAX_RX_EMAIL} , From: ${CALLERID(all)})
exten => h,n,Macro(hangupcall,)

; end of [ext-fax]
Т.е. переменной FAX_RX_EMAIL , должен присвоится другой, отличный от стандартного эл.ящик, и код для этого есть! Но он не выполняется!
Вот в чем проблема.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Elastix и получение факсов

Сообщение ded »

Чтобы фвкс пришёл не на общую почту, а именно Роману, он должен перевести не нп 666, а на 270. Вы же видите код? Не умеете его прочесть? Когд выполняется отсылка на эл почту принятого факса согласно

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

exten => h,n,System(${ASTVARLIBDIR}/bin/fax-process.pl --to "${FAX_RX_EMAIL}" --from "freepbx@gmail.com" --dest "${FROM_DID}" --subject "New fax from ${URIENCODE(${CALLERID(name)})} ${URIENCODE(<${CALLERID(number)}>)}" --attachment fax_${URIENCODE(${CALLERID(number)})}.pdf --type application/pdf --file ${ASTSPOOLDIR}/fax/${UNIQUEID}.tif)
то видны все переменные, установленные перед эим, и в частности - содержимое "${FAX_RX_EMAIL}"
Angel_19
Сообщения: 94
Зарегистрирован: 19 апр 2013, 15:01

Re: Elastix и получение факсов

Сообщение Angel_19 »

Чтобы фвкс пришёл не на общую почту, а именно Роману, он должен перевести не нп 666, а на 270.
270 это как раз и есть внутренний номер Романа, он должен перевести сам на себя?
Я же писал, что когда в экстеншене Романа (внутрений 270) (Максима - внутренний 250), ставишь галочки насчет факса и прописываешь эл.почту, то этот код и появляется.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Elastix и получение факсов

Сообщение Vlad1983 »

вот ман:
между строками
exten => 666,1,Set(FAX_RX_EMAIL=fax@mydomain.com)
exten => 666,n,Goto(ext-fax,s,1)
нужно добавить проверку на то что был трансфер
выцепить переменную в которой присутствует номер сделавшего его (пусть будет ради примера TRANSFERUSER)
и перед exten => 666,n,Goto(ext-fax,s,1)
exten => 666,n,Goto(ext-fax,${TRANSFERUSER},1)

ваша задача: найти все надостающие кубики и построить диалплан
ЛС: @rostel
Angel_19
Сообщения: 94
Зарегистрирован: 19 апр 2013, 15:01

Re: Elastix и получение факсов

Сообщение Angel_19 »

Буду искать. Если сделаю, отпишусь.
Если у кого есть уже решение - вэлком.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Elastix и получение факсов

Сообщение ded »

Angel_19 писал(а):270 это как раз и есть внутренний номер Романа, он должен перевести сам на себя?
Я же писал, что когда в экстеншене Романа (внутрений 270) (Максима - внутренний 250), ставишь галочки насчет факса и прописываешь эл.почту, то этот код и появляется.
И я писал -
ded писал(а):Когда Вы настраиваете индивидуальные факсы, то они работают главным образом при автоопределении звонка: голос или факс? И это автоопределение может работать на входящих на 270 только если передающий факс - автомат, тогда -
Send to the DTE when the V.25/T.30 2100 Hz Answer Tone (Data or Fax) is detected.
Angel_19
Сообщения: 94
Зарегистрирован: 19 апр 2013, 15:01

Re: Elastix и получение факсов

Сообщение Angel_19 »

Сделать нужно так:

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

[app-fax]
include => app-fax-custom
exten => 666,1,Set(FAX_RX_EMAIL=fax@mydomain.com)
exten => 666,n,Set(TRANSFER=${BLINDTRANSFER:4:3}) ; добавили строчку (у меня трехзначные номера) 
exten => 666,n,Goto(ext-fax,${TRANSFER},1) ; добавили строчку
;exten => 666,n,Goto(ext-fax,s,1)
exten => h,1,Macro(hangupcall,)

; end of [app-fax]
Но это еще не все, нужно внести изменения в экстеншен [ext-fax] , т.к. там неверно определяется статус завершения приема факса:

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

[ext-fax]
...
exten => s,n,ExecIf($["${FAXOPT(error)}"=""]?Set(FAXSTATUS=FAILED LICENSE EXCEEDED))
exten => s,n,ExecIf($["${FAXOPT(error)}"!="" && "${FAXOPT(error)}"!="NO_ERROR"]?Set(FAXSTATUS="FAILED FAXOPT: error: ${FAXOPT(error)} status: ${FAXOPT(status)} statusstr: ${FAXOPT(statusstr)}"))
exten => s,n,ExecIf($["${FAXOPT(statusstr)}"="OK"]?Set(FAXSTATUS=OK)) ; добавили строчку
...
Теперь, если абонент во время беседы просит принять факс, переводим его на номер 666, там автоматом начинается приемка факса, и факс приходит на личный эл.ящик.
Осталось только придумать, как эти изменения сохранить, т.к. extensions_additional.conf будет перезаписан.
В этом пока не разобрался...
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH