Коллеги, прошу совета.
Что хотел получить: прием и отправка факсов в asterisk (asterisk 11). За основу взял описанное здесь:
http://habrahabr.ru/post/185260/. Решил немного "модернизировать", задумка такая: пользователь вместо того чтобы делать atx- или blind- transfer на специальные экстеншены, набирает одну из комбинаций: *3 для отправки факса , *4 - для приема факса. Получилось вот что:
extensions.conf:
Код: Выделить всё
[macro-faxes]
exten => s,1,Noop()
exten => s,n,SET(__BLINDTRANSFER=${BRIDGEPEER})
exten => s,n,Dial(local/${ARG1}@internal_faxes,,${DIAL_OPTIONS})
[internal_faxes]
; экстеншен на котором стартует отправка факса
exten => 333,1,Verbose(1,Sending FAX to ${CALLERID(number)})
exten => 333,n,Wait(1)
exten => 333,n,Answer()
exten => 333,n,ExecIf($[${LEN(${BLINDTRANSFER})} > 0]?SET(TRANSFERCHAN=${BLINDTRANSFER}))
exten => 333,n,ExecIf($[${LEN(${TRANSFERERNAME})} > 0]?SET(TRANSFERCHAN=${TRANSFERERNAME})
exten => 333,n,ExecIf($[${LEN(${TRANSFERCHAN})} > 0]?SET(FROMNUM=${CUT(CUT(TRANSFERCHAN,-,1),\/,2)}))
exten => 333,n,ExecIf($[${LEN(${FROMNUM})} = 0]?SET(FROMNUM=${CALLERID(number)}))
exten => 333,n,Set(FAXOPT(headerinfo)=Fax from ${FAX_STATIONID})
exten => 333,n,Set(FAXOPT(localstationid)=${FAX_STATIONID})
exten => 333,n,SendFax(/var/fax/${FROMNUM}.tif,d)
exten => 333,n,Verbose(1,${FAXSTATUS})
exten => 333,n,System(/bin/rm -f /var/fax/${FROMNUM}.tif)
exten => 333,n,Hangup()
; экстеншен на котором стартует прием факса
exten => 444,1,Verbose(1,Receiving FAX from ${CALLERID(number)})
exten => 444,n,Answer()
exten => 444,n,ExecIf($[${LEN(${BLINDTRANSFER})} > 0]?SET(TRANSFERCHAN=${BLINDTRANSFER}))
exten => 444,n,ExecIf($[${LEN(${TRANSFERERNAME})} > 0]?SET(TRANSFERCHAN=${TRANSFERERNAME})
exten => 444,n,ExecIf($[${LEN(${TRANSFERCHAN})} > 0]?SET(TONUM=${CUT(CUT(TRANSFERCHAN,-,1),\/,2)}))
exten => 444,n,ExecIf($[${LEN(${TONUM})} = 0]?SET(TONUM=${CALLERID(number)}))
exten => 444,n,Set(FAXOPT(headerinfo)=${STRFTIME(${EPOCH},,%Y-%m-%d %H-%M)})
exten => 444,n,Set(FAXOPT(localstationid)=${FAX_STATIONID})
exten => 444,n,ReceiveFax(/var/fax_rx/${TONUM}/${FAXOPT(headerinfo)}.tif)
exten => 444,n,Hangup()
features.conf:
Код: Выделить всё
[applicationmap]
sendFax => *3,peer,Macro(faxes,333)
receiveFax => *4,peer,Macro(faxes,444)
Проверил - работает, но в логи сыплется это:
Код: Выделить всё
[Sep 8 14:15:16] WARNING[28622]: chan_sip.c:4258 __sip_autodestruct: Autodestruct on dialog 'D1B9-12C9-46835696BE5A34D736C6-100@SipHost' with owner SIP/206-00000000 in place (Method: BYE). Rescheduling destruction for 10000 ms
[Sep 8 14:15:22] WARNING[28622]: chan_sip.c:4258 __sip_autodestruct: Autodestruct on dialog 'D1B9-12C9-46835696BE5A34D736C6-100@SipHost' with owner SIP/206-00000000 in place (Method: BYE). Rescheduling destruction for 10000 ms
[Sep 8 14:15:26] WARNING[28622]: chan_sip.c:4258 __sip_autodestruct: Autodestruct on dialog '035373992f6b0f9730f12e9807d7e98d@192.168.1.80:5060' with owner SIP/205-00000003 in place (Method: BYE). Rescheduling destruction for 10000 ms
[Sep 8 14:15:29] WARNING[28622]: chan_sip.c:4258 __sip_autodestruct: Autodestruct on dialog 'D1B9-12C9-46835696BE5A34D736C6-100@SipHost' with owner SIP/206-00000000 in place (Method: BYE). Rescheduling destruction for 10000 ms
[Sep 8 14:15:33] WARNING[28622]: chan_sip.c:4258 __sip_autodestruct: Autodestruct on dialog '035373992f6b0f9730f12e9807d7e98d@192.168.1.80:5060' with owner SIP/205-00000003 in place (Method: BYE). Rescheduling destruction for 10000 ms
[Sep 8 14:15:35] WARNING[28622]: chan_sip.c:4258 __sip_autodestruct: Autodestruct on dialog 'D1B9-12C9-46835696BE5A34D736C6-100@SipHost' with owner SIP/206-00000000 in place (Method: BYE). Rescheduling destruction for 10000 ms
[Sep 8 14:15:39] WARNING[28622]: chan_sip.c:4258 __sip_autodestruct: Autodestruct on dialog '035373992f6b0f9730f12e9807d7e98d@192.168.1.80:5060' with owner SIP/205-00000003 in place (Method: BYE). Rescheduling destruction for 10000 ms
[Sep 8 14:15:42] WARNING[28622]: chan_sip.c:4258 __sip_autodestruct: Autodestruct on dialog 'D1B9-12C9-46835696BE5A34D736C6-100@SipHost' with owner SIP/206-00000000 in place (Method: BYE). Rescheduling destruction for 10000 ms
Наверное что-то не так сделал?