Страница 2 из 3
Re: CDR дубли звонков
Добавлено: 06 дек 2016, 12:06
asterisker
У вас работает всё корректно, как и должно. Другое дело, что вам надо другое. Ну например - отправлять письмо не по hangup, а по выходу из группы.
Re: CDR дубли звонков
Добавлено: 06 дек 2016, 12:39
skynetyar
GotoIf использовать что ле как то? не хватает навыка не намекнете как примерно реализовать?
Re: CDR дубли звонков
Добавлено: 06 дек 2016, 12:57
asterisker
если в группе никто не ответил за, скажем, 60 секунд, то отправить письмо.
exten => 1000,1,Группа(вызывать всех 60 секунд)
exten => 1000,2,Отправить письмо()
Re: CDR дубли звонков
Добавлено: 06 дек 2016, 13:49
awsswa
exten => 1000,1,Dial(SIP/101&SIP/102,60,gt) - важно продолжить выполнения диаплана
exten => 1000,2,ExecIF($[${DIALSTATUS}!=ANSWER]?Отправить письмо())
Re: CDR дубли звонков
Добавлено: 06 дек 2016, 14:20
skynetyar
Что то типа
Код: Выделить всё
[ext-group]
exten => h,1,ExecIF($[${DIALSTATUS}!=ANSWER]?System(/usr/local/bin/sendEmail.pl -o tls=yes -f мыл@gmail.com -t мыл@gmail.com -s smtp.gmail.com:587 -xu мыл@gmail.com -xp тютю -u "NOANSWER- Пропущенный звонок от ${CALLERID(name)}" -m "${STRFTIME(${EPOCH},,%C%y-%m-%d в %H:%M)} на наш номер ${CHANNEL(peername)} звонит : ${CALLERID(name)} - пропущенный звонок")
Если находит ANSWER то не отсылает письмо ? так как то что ли?
Re: CDR дубли звонков
Добавлено: 06 дек 2016, 14:43
awsswa
Если статус звонка НЕ РАВЕН статусу ANSWER - тогда делать тото
Re: CDR дубли звонков
Добавлено: 06 дек 2016, 14:49
skynetyar
А то что в группе есть и ANSWER и NOANSWER это как сыграет?
Re: CDR дубли звонков
Добавлено: 06 дек 2016, 14:52
asterisker
DumpChan() вместо отправки повесьте и посмотрите все переменные.
Re: CDR дубли звонков
Добавлено: 06 дек 2016, 15:21
skynetyar
Spawn extension (ext-group, 700, 14) exited non-zero on 'SIP/номер3'
-- Executing [h@ext-group:1] ExecIf("SIP/номер", "1?DumpChan(") in new stack
Dumping Info For Channel: SIP/номер:
================================================================================
Info:
Name= SIP/номер
Type= SIP
UniqueID= 1481026627.1602
LinkedID= 1481026627.1602
CallerIDNum= +79номер
CallerIDName= Multifon-92номер
ConnectedLineIDNum= (N/A)
ConnectedLineIDName=(N/A)
DNIDDigits= 79номер
RDNIS= (N/A)
Parkinglot= default
Language= ru
State= Ring (4)
Rings= 0
NativeFormat= (ulaw)
WriteFormat= ulaw
ReadFormat= ulaw
RawWriteFormat= ulaw
RawReadFormat= ulaw
WriteTranscode= No
ReadTranscode= No
1stFileDescriptor= 44
Framesin= 402
Framesout= 387
TimetoHangup= 0
ElapsedTime= 0h0m8s
BridgeID= (Not bridged)
Context= ext-group
Extension= h
Priority= 1
CallGroup=
PickupGroup=
Application= DumpChan
Data= (Empty)
Blocking_in= (Not Blocking)
Variables:
MACRO_DEPTH=0
DIALSTATUS=CANCEL
DIALEDTIME=
ANSWEREDTIME=
DIALEDPEERNAME=
DIALEDPEERNUMBER=
ITER=3
DB_RESULT=
EXTTOCALL=723
LOOPCNT=2
AGISTATUS=SUCCESS
ds=SIP/703&SIP/723,20,TtrM(auto-blkvm)
FILTERED_DIAL=703-723
DIALSTATUS_CW=
KEEPCID=TRUE
RingGroupMethod=ringall
GOSUB_RETVAL=
REC_POLICY_MODE_SAVE=YES
NODEST=700
RRNODEST=
BLKVM_CHANNEL=SIP/92номер
TTL=64
CALLEE_ACCOUNCODE=
AMPUSERCIDNAME=
AMPUSER=
REALCALLERIDNUM=+79номер
TOUCH_MONITOR=1481026627.1602
RGPREFIX=Multifon-92номер:
CALLINGNUMPRES_SV=allowed_not_screened
CALLINGNAMEPRES_SV=allowed_not_screened
REVERSAL_REJECT=FALSE
RINGINGSENT=TRUE
MOHCLASS=
FROM_DID=79номер
CALLED_BLACKLIST=1
REC_STATUS=RECORDING
RECORD_ID=SIP/92номер
MIXMON_ID=0x9baeba0
LOCAL_MIXMON_ID=0x9baeba0
MIXMONITOR_FILENAME=/var/spool/asterisk/monitor/2016/12/06/in-7номер-+79номер-20161206-151707-1481026627.1602.wav
CALLFILENAME=in-79номер-+7номер-20161206-151707-1481026627.1602
REC_POLICY_MODE=YES
FROMEXTEN=+79номер
MON_FMT=wav
TIMESTR=20161206-151707
YEAR=2016
MONTH=12
DAY=06
NOW=1481026627
SIPCALLID=SDu7pca01-v300g00020
SIPDOMAIN=ип
SIPURI=sip:79номер0@ип:5060
================================================================================
Использовал так
Код: Выделить всё
[ext-group]
exten => h,1,ExecIF($[${DIALSTATUS}!=ANSWER]?DumpChan()
Трубку повесил вызывающий...
DIALSTATUS=CANCEL
Re: CDR дубли звонков
Добавлено: 06 дек 2016, 16:27
skynetyar
Да,при таком раскладе
Код: Выделить всё
exten => h,1,ExecIF($[${DIALSTATUS}!=ANSWER]?DumpChan()
если берется трубка то DumpChan() не срабатывает, а если вешается то срабатывает DumpChan()..
Из этого следует что такую схему можно использовать!?
Спасибо большое за помощь!