[asterisk-users] Read Timeout

Danny Nicholas danny at debsinc.com
Tue Apr 20 09:57:04 CDT 2010


This should work:

exten => s,n,Gotoif($[${LEN(${ACCEPT})} < 1]?no)

 

  _____  

From: asterisk-users-bounces at lists.digium.com
[mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Dan Journo
Sent: Tuesday, April 20, 2010 9:50 AM
To: Asterisk Users Mailing List - Non-Commercial Discussion
Subject: Re: [asterisk-users] Read Timeout

 

Hi Danny,

 

There seems to be a syntax error with your solution but i can't pin point
it.

 

This is what happens when I hit "1".

 

   -- Executing [s at macro-screen:2] Read("SIP/magrathea-00001ec6",
"ACCEPT|priv-instruct-custom|1") in new stack

    -- Accepting a maximum of 1 digits.

    -- <SIP/magrathea-00001ec6> Playing 'priv-instruct-custom' (language
'en')

    -- User entered '1'

[2010-04-20 15:46:59] WARNING[25723]: ast_expr2.fl:415 ast_yyerror:
ast_yyerror():  syntax error: syntax error, unexpected '(', expecting $end;
Input:

LEN(1) < 1

   ^

[2010-04-20 15:46:59] WARNING[25723]: ast_expr2.fl:419 ast_yyerror: If you
have questions, please refer to doc/channelvariables.txt.

    -- Executing [s at macro-screen:3] GotoIf("SIP/magrathea-00001ec6",
"LEN?no") in new stack

    -- Goto (macro-screen,s,5)

    -- Executing [s at macro-screen:5] Set("SIP/magrathea-00001ec6",
"MACRO_RESULT=CONTINUE") in new stack

    -- Executing [s at macro-screen:6] Wait("SIP/magrathea-00001ec6", "0.1") in
new stack

 

Thanks

Dan

 

From: asterisk-users-bounces at lists.digium.com
[mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Danny Nicholas
Sent: 20 April 2010 14:19
To: 'Asterisk Users Mailing List - Non-Commercial Discussion'
Subject: Re: [asterisk-users] Read Timeout

 

Not necessarily the best way, but here's how I handle this type of thing in
1.4.X

macro-screen]

exten => s,1,Wait(0.2)

exten => s,n,Read(ACCEPT|priv-instruct-custom|1)

exten => s,n,GotoIf($[LEN(${ACCEPT})  <  1 ] ?no)

exten => s,n,GotoIf($[${ACCEPT} = 1 ] ?yes:no)

exten => s,n(no),Set(MACRO_RESULT=CONTINUE)

exten => s,n(yes),Wait(0.1)

 

 

  _____  

From: asterisk-users-bounces at lists.digium.com
[mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of Dan Journo
Sent: Tuesday, April 20, 2010 8:12 AM
To: Asterisk Users Mailing List - Non-Commercial Discussion
Subject: [asterisk-users] Read Timeout

 

Hello,

 

I use the following macro to screen calls when they come in. 

 

Priv-instruct-custom says "press 1 to accept, press 2 to reject"

 

However, when no input is made (or the call goes to my mobile's voicemail
and therefore no input is made), the result is that the ACCEPT variable is
not set and then the GotoIf statement fails.

 

How can I resolve this? Can I simply preset the ACCEPT variable to 2, or
will the read cmd override the ACCEPT variable with nothing if it times out?

 

[macro-screen]

exten => s,1,Wait(0.2)

exten => s,n,Read(ACCEPT|priv-instruct-custom|1)

exten => s,n,GotoIf($[${ACCEPT} = 1 ] ?yes:no)

exten => s,n(no),Set(MACRO_RESULT=CONTINUE)

exten => s,n(yes),Wait(0.1)

 

Many thanks

Dan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/asterisk-users/attachments/20100420/1011874e/attachment.htm 


More information about the asterisk-users mailing list