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: [email protected] 
[mailto:[email protected]] 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 
<[email protected]> 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

Reply via email to