I’ve received some truly heart warming help from a member here to try to recognise if a caller has called before already {today} and I’m 90% there but for some reason the script always returns true, even if the caller is calling for the first time. Just wondered if anyone had time to assist?
As I say, I called today (the inbound route points at this script via an announcement) and I got a ‘yesmatch’ even though I hadn’t already called. There’s a call trace here if it’s useful. Thanks!!
[app-announcement-10]
include => app-announcement-5-custom
exten => s,1,GotoIf($["${CHANNEL(state)}" = "Up"]?begin)
exten => s,n,Answer
exten => s,n,Wait(1)
exten => s,n(begin),Noop(Playing announcement testannoucement)
exten => s,n,ExecIf($["${FROMEXTEN }" != "07113380031"]?goto(yesmatch))
exten => s,n,ExecIf($["${FROMEXTEN}" = ""]?goto(nomatch))
exten => s,n,ExecIf($[${LEN(${FROMEXTEN})} != 11]?goto(match))
exten => s,n,Set(dblogin=root)
exten => s,n,Set(dbpass=)
exten => s,n,Set(DateCheck=${STRFTIME(${EPOCH},,%Y-%m-%d)})
exten => s,n,MYSQL(Connect connid localhost ${dblogin} ${dbpass} asteriskcdrdb)
exten => s,n,MYSQL(Query resultid ${connid} select * from cdr where clid like "%${FROMEXTEN}%" and calldate like "%${DateCheck}%" order by calldate desc limit 1)
exten => s,n,MYSQL(Fetch fetchid ${resultid} calldate clid src dst dcontext )
exten => s,n,NoOp(&&&&&&&&&&&&&&&&&&&&&&& ${calldate} ${clid} ${src} ${dst} ${dcontext} &&&&&&&&&&&&)
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,GotoIf($["${calldate}" = "" ]?nomatch)
exten => s,n,GotoIf($["${dst}" = "" ]?nomatch)
exten => s,n,GotoIf($["${dst}" != "" ]?yesmatch)
exten => s,n,ExecIf($["${dst}" = "macro-pincollection"]?goto(${dst},s,1)
exten => s,n,ExecIf($["${dst}" = "6475580588"]?Dial(Local/${dst}@from-internal/n,)
exten => s,n,ExecIf($["${dst}" = "app-annoucement-1"]?goto(${dst},s,1)
exten => s,n,ExecIf($[${LEN(${FROMEXTEN})} != 11]?goto(match))
exten => s,n,Set(dblogin=root)
exten => s,n,Set(dbpass=)
exten => s,n,Set(DateCheck=${STRFTIME(${EPOCH},,%Y-%m-%d)})
exten => s,n,MYSQL(Connect connid localhost ${dblogin} ${dbpass} asteriskcdrdb)
exten => s,n,MYSQL(Query resultid ${connid} select * from cdr where clid like "%${FROMEXTEN}%" and calldate like "%${DateCheck}%" orde$
exten => s,n,MYSQL(Fetch fetchid ${resultid} calldate clid src dst dcontext )
exten => s,n,NoOp(&&&&&&&&&&&&&&&&&&&&&&& ${calldate} ${clid} ${src} ${dst} ${dcontext} &&&&&&&&&&&&)
exten => s,n,MYSQL(Disconnect ${connid})
exten => s,n,MYSQL(Clear ${resultid})
exten => s,n,GotoIf($["${calldate}" = "" ]?nomatch)
exten => s,n,GotoIf($["${dst}" = "" ]?nomatch)
exten => s,n,GotoIf($["${dst}" != "" ]?yesmatch)
exten => s,n,ExecIf($["${dst}" = "macro-pincollection"]?goto(${dst},s,1)
exten => s,n,ExecIf($["${dst}" = "6475580588"]?Dial(Local/${dst}@from-internal/n,)
exten => s,n,ExecIf($["${dst}" = "app-annoucement-1"]?goto(${dst},s,1)
exten => s,n(nomatch),NoOp(No previous caller match)
exten => s,n,Goto(ivr-1,s,1)
exten => s,n(yesmatch),NoOp(Previous caller match)
exten => s,n,Background(custom/heater)