[asterisk-users] Why does it take several seconds to interpret DTMF-input ?

2013-06-11 Thread Jonas Kellens

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 ?

2013-06-11 Thread Matthew J. Roth
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 ?

2013-06-11 Thread Jonas Kellens

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 ?

2013-06-11 Thread Richard Mudgett
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 ?

2013-06-11 Thread Jonas Kellens

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 ?

2013-06-11 Thread Eric Wieling
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 ?

2013-06-11 Thread Patrick Lists

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 ?

2013-06-11 Thread Eric Wieling
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 ?

2013-06-11 Thread Jonas Kellens

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 ?

2013-06-11 Thread Matthew J. Roth
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