Hi all,
I’m building a new system using FreePBX core 15.0.9.12 on Debian 9.
IVR module is on version 15.0.14.
I’ve read the recent changes in behavior using Read instead of WaitExten, not sure if this is related and I couldn’t find reference of others with this problem. I have 2 IVRs in my system. The first is for language choice (options 1 and 2), then the main IVR for routing. Options are 1, 2 and 3 for now. The problem is whatever I enter on the 2nd IVR will be read as my result from the 1st + from the 2nd. Example, if I press 1 for language, that works, sets the language, then goes to the next IVR. If I enter 1 there, it times out after 10 seconds and says the entry is invalid. I can see that FreePBX reads it as 11. Then on the retry, I enter 1 again and it works. Seems like digits is not properly reset after the 1st one.
Example output below. I first thought DTMF might be funky and reading the “1” twice on the 2nd IVR, but it’s 100% reproducible on my system and if I enter “2” then “1” I will see DIGITS=21 on the 2nd IVR. Always.
Any input? Can anyone reproduce?
-- Executing [+18332271313@from-trunk:1] Set("SIP/TwilioIn3-00000036", "__DIRECTION=INBOUND") in new stack
-- Executing [+18332271313@from-trunk:2] Gosub("SIP/TwilioIn3-00000036", "sub-record-check,s,1(in,+18332271313,
yes)") in new stack
-- Executing [s@sub-record-check:1] GotoIf("SIP/TwilioIn3-00000036", "0?initialized") in new stack
-- Executing [s@sub-record-check:2] Set("SIP/TwilioIn3-00000036", "__REC_STATUS=INITIALIZED") in new stack
-- Executing [s@sub-record-check:3] Set("SIP/TwilioIn3-00000036", "NOW=1554995502") in new stack
-- Executing [s@sub-record-check:4] Set("SIP/TwilioIn3-00000036", "__DAY=11") in new stack
-- Executing [s@sub-record-check:5] Set("SIP/TwilioIn3-00000036", "__MONTH=04") in new stack
-- Executing [s@sub-record-check:6] Set("SIP/TwilioIn3-00000036", "__YEAR=2019") in new stack
-- Executing [s@sub-record-check:7] Set("SIP/TwilioIn3-00000036", "__TIMESTR=20190411-151142") in new stack
-- Executing [s@sub-record-check:8] Set("SIP/TwilioIn3-00000036", "__FROMEXTEN=unknown") in new stack
-- Executing [s@sub-record-check:9] Set("SIP/TwilioIn3-00000036", "__MON_FMT=wav") in new stack
-- Executing [s@sub-record-check:10] NoOp("SIP/TwilioIn3-00000036", "Recordings initialized") in new stack
-- Executing [s@sub-record-check:11] ExecIf("SIP/TwilioIn3-00000036", "0?Set(ARG3=dontcare)") in new stack
-- Executing [s@sub-record-check:12] Set("SIP/TwilioIn3-00000036", "REC_POLICY_MODE_SAVE=") in new stack
-- Executing [s@sub-record-check:13] ExecIf("SIP/TwilioIn3-00000036", "0?Set(REC_STATUS=NO)") in new stack
-- Executing [s@sub-record-check:14] GotoIf("SIP/TwilioIn3-00000036", "2?checkaction") in new stack
-- Goto (sub-record-check,s,17)
-- Executing [s@sub-record-check:17] GotoIf("SIP/TwilioIn3-00000036", "1?sub-record-check,in,1") in new stack
-- Goto (sub-record-check,in,1)
-- Executing [in@sub-record-check:1] NoOp("SIP/TwilioIn3-00000036", "Inbound Recording Check to +18332271313")
in new stack
-- Executing [in@sub-record-check:2] Set("SIP/TwilioIn3-00000036", "FROMEXTEN=unknown") in new stack
-- Executing [in@sub-record-check:3] ExecIf("SIP/TwilioIn3-00000036", "12?Set(FROMEXTEN=+15142677694)") in new
stack
-- Executing [in@sub-record-check:4] Gosub("SIP/TwilioIn3-00000036", "recordcheck,1(yes,in,+18332271313)") in n
ew stack
-- Executing [recordcheck@sub-record-check:1] NoOp("SIP/TwilioIn3-00000036", "Starting recording check against
yes") in new stack
-- Executing [recordcheck@sub-record-check:2] Goto("SIP/TwilioIn3-00000036", "yes") in new stack
-- Goto (sub-record-check,recordcheck,9)
-- Executing [recordcheck@sub-record-check:9] ExecIf("SIP/TwilioIn3-00000036", "0?Return()") in new stack
-- Executing [recordcheck@sub-record-check:10] Set("SIP/TwilioIn3-00000036", "__REC_POLICY_MODE=YES") in new st
ack
-- Executing [recordcheck@sub-record-check:11] Goto("SIP/TwilioIn3-00000036", "startrec") in new stack
-- Goto (sub-record-check,recordcheck,16)
-- Executing [recordcheck@sub-record-check:16] NoOp("SIP/TwilioIn3-00000036", "Starting recording: in, +1833227
1313") in new stack
-- Executing [recordcheck@sub-record-check:17] Set("SIP/TwilioIn3-00000036", "__CALLFILENAME=in-+18332271313-+1
5142677694-20190411-151142-1554995502.54") in new stack
-- Executing [recordcheck@sub-record-check:18] MixMonitor("SIP/TwilioIn3-00000036", "2019/04/11/in-+18332271313
-+15142677694-20190411-151142-1554995502.54.wav,abi(LOCAL_MIXMON_ID),") in new stack
-- Executing [recordcheck@sub-record-check:19] Set("SIP/TwilioIn3-00000036", "__MIXMON_ID=0x7fa6500034a0") in n
ew stack
-- Executing [recordcheck@sub-record-check:20] Set("SIP/TwilioIn3-00000036", "__RECORD_ID=SIP/TwilioIn3-0000003
6") in new stack
-- Executing [recordcheck@sub-record-check:21] Set("SIP/TwilioIn3-00000036", "__REC_STATUS=RECORDING") in new s
tack
-- Executing [recordcheck@sub-record-check:22] Set("SIP/TwilioIn3-00000036", "CDR(recordingfile)=in-+1833227131
3-+15142677694-20190411-151142-1554995502.54.wav") in new stack
-- Executing [recordcheck@sub-record-check:23] Return("SIP/TwilioIn3-00000036", "") in new stack
-- Executing [in@sub-record-check:5] Return("SIP/TwilioIn3-00000036", "") in new stack
-- Executing [+18332271313@from-trunk:3] Set("SIP/TwilioIn3-00000036", "CHANNEL(tonezone)=us") in new stack
-- Executing [+18332271313@from-trunk:4] Set("SIP/TwilioIn3-00000036", "__FROM_DID=+18332271313") in new stack
-- Executing [+18332271313@from-trunk:5] Set("SIP/TwilioIn3-00000036", "returnhere=1") in new stack
-- Executing [+18332271313@from-trunk:6] Gosub("SIP/TwilioIn3-00000036", "app-blacklist-check,s,1()") in new st
ack
-- Executing [s@app-blacklist-check:1] GotoIf("SIP/TwilioIn3-00000036", "0?blacklisted") in new stack
-- Executing [s@app-blacklist-check:2] Set("SIP/TwilioIn3-00000036", "CALLED_BLACKLIST=1") in new stack
-- Executing [s@app-blacklist-check:3] Return("SIP/TwilioIn3-00000036", "") in new stack
-- Executing [+18332271313@from-trunk:7] Set("SIP/TwilioIn3-00000036", "CDR(did)=+18332271313") in new stack
-- Executing [+18332271313@from-trunk:8] GotoIf("SIP/TwilioIn3-00000036", "0?") in new stack
-- Executing [+18332271313@from-trunk:9] ExecIf("SIP/TwilioIn3-00000036", "1 ?Set(CALLERID(name)=+15142677694)"
) in new stack
-- Executing [+18332271313@from-trunk:10] Set("SIP/TwilioIn3-00000036", "__MOHCLASS=") in new stack
-- Executing [+18332271313@from-trunk:11] Set("SIP/TwilioIn3-00000036", "__REVERSAL_REJECT=FALSE") in new stack
-- Executing [+18332271313@from-trunk:12] GotoIf("SIP/TwilioIn3-00000036", "1?post-reverse-charge") in new stac
k
-- Goto (from-trunk,+18332271313,14)
-- Executing [+18332271313@from-trunk:14] NoOp("SIP/TwilioIn3-00000036", "") in new stack
-- Executing [+18332271313@from-trunk:15] Set("SIP/TwilioIn3-00000036", "__CALLINGNAMEPRES_SV=allowed_not_scree
ned") in new stack
-- Executing [+18332271313@from-trunk:16] Set("SIP/TwilioIn3-00000036", "__CALLINGNUMPRES_SV=allowed_not_screen
ed") in new stack
-- Executing [+18332271313@from-trunk:17] Set("SIP/TwilioIn3-00000036", "CALLERID(name-pres)=allowed_not_screen
ed") in new stack
-- Executing [+18332271313@from-trunk:18] Set("SIP/TwilioIn3-00000036", "CALLERID(num-pres)=allowed_not_screene
d") in new stack
-- Executing [+18332271313@from-trunk:19] NoOp("SIP/TwilioIn3-00000036", "CallerID Entry Point") in new stack
-- Executing [+18332271313@from-trunk:20] Goto("SIP/TwilioIn3-00000036", "ivr-2,s,1") in new stack
-- Goto (ivr-2,s,1)
-- Executing [s@ivr-2:1] Set("SIP/TwilioIn3-00000036", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-2:2] Set("SIP/TwilioIn3-00000036", "_IVR_CONTEXT_ivr-2=") in new stack
-- Executing [s@ivr-2:3] Set("SIP/TwilioIn3-00000036", "_IVR_CONTEXT=ivr-2") in new stack
-- Executing [s@ivr-2:4] Set("SIP/TwilioIn3-00000036", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-2:5] GotoIf("SIP/TwilioIn3-00000036", "0?skip") in new stack
-- Executing [s@ivr-2:6] Answer("SIP/TwilioIn3-00000036", "") in new stack
== Begin MixMonitor Recording SIP/TwilioIn3-00000036
-- Executing [s@ivr-2:7] Set("SIP/TwilioIn3-00000036", "IVR_MSG=custom/lang-pick") in new stack
-- Executing [s@ivr-2:8] Set("SIP/TwilioIn3-00000036", "DIGITS=") in new stack
-- Executing [s@ivr-2:9] Set("SIP/TwilioIn3-00000036", "NODEFOUND=0") in new stack
-- Executing [s@ivr-2:10] Set("SIP/TwilioIn3-00000036", "LOCALEXT=0") in new stack
-- Executing [s@ivr-2:11] Set("SIP/TwilioIn3-00000036", "DIREXT=0") in new stack
-- Executing [s@ivr-2:12] ExecIf("SIP/TwilioIn3-00000036", "0?Set(DIGITS=)") in new stack
-- Executing [s@ivr-2:13] While("SIP/TwilioIn3-00000036", "1 ") in new stack
-- Executing [s@ivr-2:14] Read("SIP/TwilioIn3-00000036", "IVREXT,custom/lang-pick,1,,0,10") in new stack
-- Accepting a maximum of 1 digits.
-- <SIP/TwilioIn3-00000036> Playing 'custom/lang-pick.ulaw' (language 'fr')
-- User entered '1'
-- Executing [s@ivr-2:15] Set("SIP/TwilioIn3-00000036", "IVR_MSG=") in new stack
-- Executing [s@ivr-2:16] GotoIf("SIP/TwilioIn3-00000036", "0?t,1") in new stack
-- Executing [s@ivr-2:17] NoOp("SIP/TwilioIn3-00000036", "") in new stack
-- Executing [s@ivr-2:18] GotoIf("SIP/TwilioIn3-00000036", "0?beforewhile:nodedial") in new stack
-- Goto (ivr-2,s,21)
-- Executing [s@ivr-2:21] Goto("SIP/TwilioIn3-00000036", "1,1") in new stack
-- Goto (ivr-2,1,1)
-- Executing [1@ivr-2:1] Set("SIP/TwilioIn3-00000036", "__ivrreturn=0") in new stack
-- Executing [1@ivr-2:2] Goto("SIP/TwilioIn3-00000036", "app-languages,1,1") in new stack
-- Goto (app-languages,1,1)
-- Executing [1@app-languages:1] NoOp("SIP/TwilioIn3-00000036", "Changing Channel to language: fr (FR)") in new stack
-- Executing [1@app-languages:2] Set("SIP/TwilioIn3-00000036", "CHANNEL(language)=fr") in new stack
-- Executing [1@app-languages:3] Goto("SIP/TwilioIn3-00000036", "timeconditions,1,1") in new stack
-- Goto (timeconditions,1,1)
-- Executing [1@timeconditions:1] Set("SIP/TwilioIn3-00000036", "DB(TC/1/INUSESTATE)=INUSE") in new stack
-- Executing [1@timeconditions:2] Set("SIP/TwilioIn3-00000036", "DB(TC/1/NOT_INUSESTATE)=NOT_INUSE") in new stack
-- Executing [1@timeconditions:3] NoOp("SIP/TwilioIn3-00000036", "TIMENOW: 15:11,Thu,11,Apr") in new stack
-- Executing [1@timeconditions:4] NoOp("SIP/TwilioIn3-00000036", "TIMEMATCHED: TRUE") in new stack
-- Executing [1@timeconditions:5] GotoIfTime("SIP/TwilioIn3-00000036", "08:00-17:00,mon-fri,*,*?truestate") in new stack
-- Goto (timeconditions,1,14)
-- Executing [1@timeconditions:14] GotoIf("SIP/TwilioIn3-00000036", "0?falsegoto") in new stack
-- Executing [1@timeconditions:15] ExecIf("SIP/TwilioIn3-00000036", "0?Set(DB(TC/1)=)") in new stack
-- Executing [1@timeconditions:16] Set("SIP/TwilioIn3-00000036", "DEVICE_STATE(Custom:TC1)=NOT_INUSE") in new stack
-- Executing [1@timeconditions:17] ExecIf("SIP/TwilioIn3-00000036", "0?Set(DEVICE_STATE(Custom:TCSTICKY)=INUSE)") in new stack
-- Executing [1@timeconditions:18] GotoIf("SIP/TwilioIn3-00000036", "1?ivr-1,s,1") in new stack
-- Goto (ivr-1,s,1)
-- Executing [s@ivr-1:1] Set("SIP/TwilioIn3-00000036", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-1:2] Set("SIP/TwilioIn3-00000036", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-1:3] Set("SIP/TwilioIn3-00000036", "_IVR_CONTEXT_ivr-1=ivr-2") in new stack
-- Executing [s@ivr-1:4] Set("SIP/TwilioIn3-00000036", "_IVR_CONTEXT=ivr-1") in new stack
-- Executing [s@ivr-1:5] Set("SIP/TwilioIn3-00000036", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-1:6] GotoIf("SIP/TwilioIn3-00000036", "1?skip") in new stack
-- Goto (ivr-1,s,8)
-- Executing [s@ivr-1:8] Set("SIP/TwilioIn3-00000036", "IVR_MSG=custom/main-ivr") in new stack
-- Executing [s@ivr-1:9] Set("SIP/TwilioIn3-00000036", "DIGITS=") in new stack
-- Executing [s@ivr-1:10] Set("SIP/TwilioIn3-00000036", "NODEFOUND=0") in new stack
-- Executing [s@ivr-1:11] Set("SIP/TwilioIn3-00000036", "LOCALEXT=0") in new stack
-- Executing [s@ivr-1:12] Set("SIP/TwilioIn3-00000036", "DIREXT=0") in new stack
-- Executing [s@ivr-1:13] ExecIf("SIP/TwilioIn3-00000036", "1?Set(DIGITS=1)") in new stack
-- Executing [s@ivr-1:14] While("SIP/TwilioIn3-00000036", "1 ") in new stack
-- Executing [s@ivr-1:15] Read("SIP/TwilioIn3-00000036", "IVREXT,custom/main-ivr,1,,0,10") in new stack
-- Accepting a maximum of 1 digits.
-- <SIP/TwilioIn3-00000036> Playing 'custom/main-ivr.ulaw' (language 'fr')
-- User entered '1'
-- Executing [s@ivr-1:16] Set("SIP/TwilioIn3-00000036", "IVR_MSG=") in new stack
-- Executing [s@ivr-1:17] GotoIf("SIP/TwilioIn3-00000036", "0?t,1") in new stack
-- Executing [s@ivr-1:18] NoOp("SIP/TwilioIn3-00000036", "") in new stack
-- Executing [s@ivr-1:19] GotoIf("SIP/TwilioIn3-00000036", "1?beforewhile:nodedial") in new stack
-- Goto (ivr-1,s,13)
-- Executing [s@ivr-1:13] ExecIf("SIP/TwilioIn3-00000036", "1?**Set(DIGITS=11)**") in new stack
-- Executing [s@ivr-1:14] While("SIP/TwilioIn3-00000036", "1 ") in new stack
-- Executing [s@ivr-1:15] Read("SIP/TwilioIn3-00000036", "IVREXT,,1,,0,10") in new stack
-- Accepting a maximum of 1 digits.
-- User entered nothing.
-- Executing [s@ivr-1:16] Set("SIP/TwilioIn3-00000036", "IVR_MSG=") in new stack
-- Executing [s@ivr-1:17] GotoIf("SIP/TwilioIn3-00000036", "1?t,1") in new stack
-- Goto (ivr-1,t,1)
-- Executing [t@ivr-1:1] Set("SIP/TwilioIn3-00000036", "TIMEOUT_LOOPCOUNT=1") in new stack
-- Executing [t@ivr-1:2] GotoIf("SIP/TwilioIn3-00000036", "0?final") in new stack
-- Executing [t@ivr-1:3] Set("SIP/TwilioIn3-00000036", "IVR_MSG=no-valid-responce-pls-try-again&custom/main-ivr
") in new stack
-- Executing [t@ivr-1:4] Goto("SIP/TwilioIn3-00000036", "s,start") in new stack
-- Goto (ivr-1,s,9)
-- Executing [s@ivr-1:9] Set("SIP/TwilioIn3-00000036", "DIGITS=") in new stack
-- Executing [s@ivr-1:10] Set("SIP/TwilioIn3-00000036", "NODEFOUND=0") in new stack
-- Executing [s@ivr-1:11] Set("SIP/TwilioIn3-00000036", "LOCALEXT=0") in new stack
-- Executing [s@ivr-1:12] Set("SIP/TwilioIn3-00000036", "DIREXT=0") in new stack
-- Executing [s@ivr-1:13] ExecIf("SIP/TwilioIn3-00000036", "0?Set(DIGITS=)") in new stack
-- Executing [s@ivr-1:14] While("SIP/TwilioIn3-00000036", "1 ") in new stack
-- Executing [s@ivr-1:15] Read("SIP/TwilioIn3-00000036", "IVREXT,no-valid-responce-pls-try-again&custom/main-iv
r,1,,0,10") in new stack
-- Accepting a maximum of 1 digits.
-- <SIP/TwilioIn3-00000036> Playing 'no-valid-responce-pls-try-again.ulaw' (language 'fr')
-- <SIP/TwilioIn3-00000036> Playing 'custom/main-ivr.ulaw' (language 'fr')
-- User entered '1'
-- Executing [s@ivr-1:16] Set("SIP/TwilioIn3-00000036", "IVR_MSG=") in new stack
-- Executing [s@ivr-1:17] GotoIf("SIP/TwilioIn3-00000036", "0?t,1") in new stack
-- Executing [s@ivr-1:18] NoOp("SIP/TwilioIn3-00000036", "") in new stack
-- Executing [s@ivr-1:19] GotoIf("SIP/TwilioIn3-00000036", "0?beforewhile:nodedial") in new stack
-- Goto (ivr-1,s,22)
-- Executing [s@ivr-1:22] Goto("SIP/TwilioIn3-00000036", "1,1") in new stack
-- Goto (ivr-1,1,1)
-- Executing [1@ivr-1:1] Set("SIP/TwilioIn3-00000036", "__ivrreturn=0") in new stack
-- Executing [1@ivr-1:2] Goto("SIP/TwilioIn3-00000036", "app-announcement-1,s,1") in new stack
-- Goto (app-announcement-1,s,1)
-- Executing [s@app-announcement-1:1] GotoIf("SIP/TwilioIn3-00000036", "1?begin") in new stack
-- Goto (app-announcement-1,s,4)
-- Executing [s@app-announcement-1:4] NoOp("SIP/TwilioIn3-00000036", "Playing announcement Recording warning to
support") in new stack
-- Executing [s@app-announcement-1:5] Playback("SIP/TwilioIn3-00000036", "custom/recording-warning,noanswer") i
n new stack
-- <SIP/TwilioIn3-00000036> Playing 'custom/recording-warning.ulaw' (language 'fr')
== MixMonitor close filestream (mixed)
== End MixMonitor Recording SIP/TwilioIn3-00000036