[asterisk-users] Why does it take several seconds to interpret DTMF-input ?
Hello, I notice that it takes 4 to 6 seconds between someone pressing a cipher and Asterisk continuing inside the dialplan. How come ??? Taken from verbose logfile : (attempt 1) [Jun 11 15:29:25] DTMF[18549] channel.c: DTMF begin '1' received on SIP/SipAgenT01-1eb0 [Jun 11 15:29:25] DTMF[18549] channel.c: DTMF begin ignored '1' on SIP/SipAgenT01-1eb0 [Jun 11 15:29:25] DTMF[18549] channel.c: DTMF end '1' received on SIP/SipAgenT01-1eb0, duration 180 ms [Jun 11 15:29:25] DTMF[18549] channel.c: DTMF end passthrough '1' on SIP/SipAgenT01-1eb0 [Jun 11 15:29:30] VERBOSE[18549] pbx.c: [Jun 11 15:29:30] == CDR updated on SIP/SipAgenT01-1eb0 [Jun 11 15:29:30] VERBOSE[18549] pbx.c: [Jun 11 15:29:30] -- Executing [1@pbx-routing:1] Set(SIP/SipAgenT01-1eb0, choice=1) in new stack [Jun 11 15:29:30] VERBOSE[18549] pbx.c: [Jun 11 15:29:30] -- Executing [1@pbx-routing:2] System(SIP/SipAgenT01-1eb0, echo '418','IVR','1','','SipAgenT01-1eb0','$(date +%s)' /var/log/asterisk/loggingAST/SipAgenT01-1eb0.csv) in new stack (attempt 2) [Jun 11 15:30:21] DTMF[18780] channel.c: DTMF begin '8' received on SIP/SipAgenT01-1ec1 [Jun 11 15:30:21] DTMF[18780] channel.c: DTMF begin ignored '8' on SIP/SipAgenT01-1ec1 [Jun 11 15:30:21] DTMF[18780] channel.c: DTMF end '8' received on SIP/SipAgenT01-1ec1, duration 160 ms [Jun 11 15:30:21] DTMF[18780] channel.c: DTMF end passthrough '8' on SIP/SipAgenT01-1ec1 [Jun 11 15:30:27] VERBOSE[18780] pbx.c: [Jun 11 15:30:27] == CDR updated on SIP/SipAgenT01-1ec1 [Jun 11 15:30:27] VERBOSE[18780] pbx.c: [Jun 11 15:30:27] -- Executing [8@pbx-routing:1] Set(SIP/SipAgenT01-1ec1, choice=8) in new stack [Jun 11 15:30:27] VERBOSE[18780] pbx.c: [Jun 11 15:30:27] -- Executing [8@pbx-routing:2] System(SIP/SipAgenT01-1ec1, echo '418','IVR','8','','SipAgenT01-1ec1','$(date +%s)' /var/log/asterisk/loggingAST/SipAgenT01-1ec1.csv) in new stack Why doesn't Asterisk continue immediately inside the dialplan after having received the DTMF-input ? Kind regards, Jonas. -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ?
Jonas Kellens wrote: I notice that it takes 4 to 6 seconds between someone pressing a cipher and Asterisk continuing inside the dialplan. How come ??? ... Why doesn't Asterisk continue immediately inside the dialplan after having received the DTMF-input ? Jonas, Please provide the version of Asterisk you are using and the part of the dialplan that receives the DTMF input. Regards, Matthew Roth InterMedia Marketing Solutions Software Engineer and Systems Developer -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ?
On 06/11/2013 04:12 PM, Matthew J. Roth wrote: Jonas Kellens wrote: I notice that it takes 4 to 6 seconds between someone pressing a cipher and Asterisk continuing inside the dialplan. How come ??? ... Why doesn't Asterisk continue immediately inside the dialplan after having received the DTMF-input ? Jonas, Please provide the version of Asterisk you are using and the part of the dialplan that receives the DTMF input. Regards, Matthew Roth Hello, using Asterisk 1.8.12.2. Dialplan : exten = ivr,1,NoOp() exten = ivr,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivr,n,NoOp(${BACKGROUNDSTATUS}) exten = ivr,n,WaitExten(15) exten = ivr,n,GoTo(restartprompt) exten = _X,1,Set(choice=${EXTEN}) exten = _X,n,System(echo '${klantID}','IVR','${choice}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X,n,other_stuff_I_do exten = _X.,1,Set(choice=${EXTEN}) exten = _X.,n,System(echo '${klantID}','IVR','${keuzeID}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X.,n,other_stuff_I_do Kind regards, Jonas. -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ?
On Tue, Jun 11, 2013 at 9:29 AM, Jonas Kellens jonas.kell...@telenet.bewrote: On 06/11/2013 04:12 PM, Matthew J. Roth wrote: Jonas Kellens wrote: I notice that it takes 4 to 6 seconds between someone pressing a cipher and Asterisk continuing inside the dialplan. How come ??? ... Why doesn't Asterisk continue immediately inside the dialplan after having received the DTMF-input ? snip Dialplan : exten = ivr,1,NoOp() exten = ivr,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivr,n,NoOp(${BACKGROUNDSTATUS}) exten = ivr,n,WaitExten(15) exten = ivr,n,GoTo(restartprompt) exten = _X,1,Set(choice=${EXTEN}) exten = _X,n,System(echo '${klantID}','IVR','${choice}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X,n,other_stuff_I_do exten = _X.,1,Set(choice=${EXTEN}) exten = _X.,n,System(echo '${klantID}','IVR','${keuzeID}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X.,n,other_stuff_I_do It is waiting for more digits because you have asked it for a possible multi-digit exten and it needs to distinguish between the _X and _X. patterns. Richard -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ?
On 06/11/2013 04:39 PM, Richard Mudgett wrote: On Tue, Jun 11, 2013 at 9:29 AM, Jonas Kellens jonas.kell...@telenet.be mailto:jonas.kell...@telenet.be wrote: On 06/11/2013 04:12 PM, Matthew J. Roth wrote: Jonas Kellens wrote: I notice that it takes 4 to 6 seconds between someone pressing a cipher and Asterisk continuing inside the dialplan. How come ??? ... Why doesn't Asterisk continue immediately inside the dialplan after having received the DTMF-input ? snip Dialplan : exten = ivr,1,NoOp() exten = ivr,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivr,n,NoOp(${BACKGROUNDSTATUS}) exten = ivr,n,WaitExten(15) exten = ivr,n,GoTo(restartprompt) exten = _X,1,Set(choice=${EXTEN}) exten = _X,n,System(echo '${klantID}','IVR','${choice}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X,n,other_stuff_I_do exten = _X.,1,Set(choice=${EXTEN}) exten = _X.,n,System(echo '${klantID}','IVR','${keuzeID}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X.,n,other_stuff_I_do It is waiting for more digits because you have asked it for a possible multi-digit exten and it needs to distinguish between the _X and _X. patterns. Richard Ok thanks. Any idea how I can resolve this ? Even if there *can* be more than 1 digit, in case there is only 1 digit it should go faster. Could this dialplan logic be a good solution : [my-context] exten = ivr,1,NoOp() exten = ivr,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivr,n,NoOp(${BACKGROUNDSTATUS}) exten = ivr,n,WaitExten(15) exten = ivr,n,GoTo(restartprompt) exten = _X,1,Set(choice=${EXTEN}) exten = _X,n,System(echo '${klantID}','IVR','${choice}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X,n,other_stuff_I_do exten = ivradvanced,1,NoOp() exten = ivradvanced,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivradvanced,n,NoOp(${BACKGROUNDSTATUS}) exten = ivradvanced,n,WaitExten(15) exten = ivradvanced,n,GoTo(restartprompt) exten = _X.,1,Set(choice=${EXTEN}) exten = _X.,n,System(echo '${klantID}','IVR','${keuzeID}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X.,n,other_stuff_I_do [another-context] ... ... Kind regards, Jonas. -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ?
The only way to resolve this is to redesign your dialplan so you do not have ambiguous matching, This is not an Asterisk issue, this is an issue with the way you designed your dialplan and would apply to any IVR on any system. -Original Message- From: asterisk-users-boun...@lists.digium.com [mailto:asterisk-users-boun...@lists.digium.com] On Behalf Of Jonas Kellens Sent: Tuesday, June 11, 2013 10:44 AM To: Asterisk Users Mailing List - Non-Commercial Discussion Subject: Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ? On 06/11/2013 04:39 PM, Richard Mudgett wrote: On Tue, Jun 11, 2013 at 9:29 AM, Jonas Kellens jonas.kell...@telenet.be wrote: On 06/11/2013 04:12 PM, Matthew J. Roth wrote: Jonas Kellens wrote: I notice that it takes 4 to 6 seconds between someone pressing a cipher and Asterisk continuing inside the dialplan. How come ??? ... Why doesn't Asterisk continue immediately inside the dialplan after having received the DTMF-input ? snip Dialplan : exten = ivr,1,NoOp() exten = ivr,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivr,n,NoOp(${BACKGROUNDSTATUS}) exten = ivr,n,WaitExten(15) exten = ivr,n,GoTo(restartprompt) exten = _X,1,Set(choice=${EXTEN}) exten = _X,n,System(echo '${klantID}','IVR','${choice}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X,n,other_stuff_I_do exten = _X.,1,Set(choice=${EXTEN}) exten = _X.,n,System(echo '${klantID}','IVR','${keuzeID}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X.,n,other_stuff_I_do It is waiting for more digits because you have asked it for a possible multi-digit exten and it needs to distinguish between the _X and _X. patterns. Richard Ok thanks. Any idea how I can resolve this ? Even if there *can* be more than 1 digit, in case there is only 1 digit it should go faster. Could this dialplan logic be a good solution : [my-context] exten = ivr,1,NoOp() exten = ivr,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivr,n,NoOp(${BACKGROUNDSTATUS}) exten = ivr,n,WaitExten(15) exten = ivr,n,GoTo(restartprompt) exten = _X,1,Set(choice=${EXTEN}) exten = _X,n,System(echo '${klantID}','IVR','${choice}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X,n,other_stuff_I_do exten = ivradvanced,1,NoOp() exten = ivradvanced,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivradvanced,n,NoOp(${BACKGROUNDSTATUS}) exten = ivradvanced,n,WaitExten(15) exten = ivradvanced,n,GoTo(restartprompt) exten = _X.,1,Set(choice=${EXTEN}) exten = _X.,n,System(echo '${klantID}','IVR','${keuzeID}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X.,n,other_stuff_I_do [another-context] ... ... Kind regards, Jonas. -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ?
On 06/11/2013 04:44 PM, Jonas Kellens wrote: [snip] Ok thanks. Any idea how I can resolve this ? Even if there *can* be more than 1 digit, in case there is only 1 digit it should go faster. Would it help if they pressed for example 1 followed by the # key? If not then, as Eric mentioned, redesign your dialplan. Any IVR with a double digit amount of options needs some rethinking. IMHO the average attention span of a person is such that at option 6 they forgot options 1 through 5. And if the option explanations last longer than 5 seconds it gets even worse. Regards, Patrick -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ?
No. When you dial 1 the PBX does not know if it needs to match _X or _X. -Original Message- From: Jonas Kellens [mailto:jonas.kell...@telenet.be] Sent: Tuesday, June 11, 2013 10:53 AM To: Asterisk Users Mailing List - Non-Commercial Discussion Cc: Eric Wieling Subject: Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ? On 06/11/2013 04:46 PM, Eric Wieling wrote: The only way to resolve this is to redesign your dialplan so you do not have ambiguous matching, This is not an Asterisk issue, this is an issue with the way you designed your dialplan and would apply to any IVR on any system. I understand that I need to re-design my dialplan logic. I gave an example of my re-design in my last post. Would that have been a good re-design ?? Or is it still ambiguous ? I will post it again : [my-context] exten = ivr,1,NoOp() exten = ivr,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivr,n,NoOp(${BACKGROUNDSTATUS}) exten = ivr,n,WaitExten(15) exten = ivr,n,GoTo(restartprompt) exten = _X,1,Set(choice=${EXTEN}) exten = _X,n,System(echo '${klantID}','IVR','${choice}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X,n,other_stuff_I_do exten = ivradvanced,1,NoOp() exten = ivradvanced,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivradvanced,n,NoOp(${BACKGROUNDSTATUS}) exten = ivradvanced,n,WaitExten(15) exten = ivradvanced,n,GoTo(restartprompt) exten = _X.,1,Set(choice=${EXTEN}) exten = _X.,n,System(echo '${klantID}','IVR','${keuzeID}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X.,n,other_stuff_I_do [another-context] ... ... Kind regards, Jonas. -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ?
On 06/11/2013 04:46 PM, Eric Wieling wrote: The only way to resolve this is to redesign your dialplan so you do not have ambiguous matching, This is not an Asterisk issue, this is an issue with the way you designed your dialplan and would apply to any IVR on any system. I understand that I need to re-design my dialplan logic. I gave an example of my re-design in my last post. Would that have been a good re-design ?? Or is it still ambiguous ? I will post it again : [my-context] exten = ivr,1,NoOp() exten = ivr,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivr,n,NoOp(${BACKGROUNDSTATUS}) exten = ivr,n,WaitExten(15) exten = ivr,n,GoTo(restartprompt) exten = _X,1,Set(choice=${EXTEN}) exten = _X,n,System(echo '${klantID}','IVR','${choice}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X,n,other_stuff_I_do exten = ivradvanced,1,NoOp() exten = ivradvanced,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivradvanced,n,NoOp(${BACKGROUNDSTATUS}) exten = ivradvanced,n,WaitExten(15) exten = ivradvanced,n,GoTo(restartprompt) exten = _X.,1,Set(choice=${EXTEN}) exten = _X.,n,System(echo '${klantID}','IVR','${keuzeID}','','${CHANNEL:4}','$(date +%s)' /var/log/asterisk/loggingAST/${CHANNEL:4}.csv) exten = _X.,n,other_stuff_I_do [another-context] ... ... Kind regards, Jonas. -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
Re: [asterisk-users] Why does it take several seconds to interpret DTMF-input ?
Jonas Kellens wrote: Even if there *can* be more than 1 digit, in case there is only 1 digit it should go faster. Jonas, Use the TIMEOUT function to set the maximum amount of time permitted between digits when the user is typing in DTMF. As you've discovered, the default is 5 seconds. The following example reduces it to 2 seconds: exten = ivr,1,NoOp() exten = ivr,n,Set(TIMEOUT(digit)=2) exten = ivr,n(restartprompt),Background(/var/lib/asterisk/sounds/vprompts/${KNUMMER}/${ASTPROMPT}) exten = ivr,n,NoOp(${BACKGROUNDSTATUS}) exten = ivr,n,WaitExten(15) exten = ivr,n,GoTo(restartprompt) Enter 'core show function TIMEOUT' at the Asterisk CLI for more information about the TIMEOUT function. Regards, Matthew Roth InterMedia Marketing Solutions Software Engineer and Systems Developer -- _ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users