Re: input processing issues

David Sugar <[email protected]>
Newsgroups gmane.comp.gnu.bayonne.devel
Organization GNU Telephony
Message-ID <[email protected]>
I should add "input" normally deals with "line oriented" input; that is, 
something that expects to have some kind of in effect "newline" 
character at the end.  The default is "#".  Collect can also use a exit 
or terminating character, but in the case of collect, it is part of the 
input returned, and when a digit count is fixed, it returns after the 
full count is collected.

David Sugar wrote:
> I think "collect" is what you would normally use for this case.  Read 
> generally deals with parsing dtmf digits that have already been 
> buffered.  You could either use collect in front of read, as in:
> 
>     collect count=8
>     read %myvar count=8 format="????????"
> 
> Or possibly do it in collect itself:
> 
>     collect %myvar count=8 format="????????"
> 
> Although you do not need the format= for this, either, since you are not 
> transforming the data being read.  Format is normally used for things 
> like parsing a date field:
> 
> ????/??/??
> 
> Hence, if the user enters 20050109 the %var will then hold 
> "2005/01/09"...but to just fill a var with digits, format is redundent 
> and unneeded.
> 
> 
> Alexandre BOULANGER wrote:
> 
>> Hi,
>>
>> I have a working IVR application based on Bayonne2 (0.8.8) with SIP
>> support. Nice work, congratulations
>>
>> One annoying thing in my script is input processing. I have a
>>     string.8 %tel_dtmf
>>         input %tel_dtmf count=8 format="????????"
>>
>> statement that retrieves a 8 numbers value; after the 8e value has been
>> entered, there's a 3-4s blank time before the script continues.
>> If I use # as a terminating digit, there's no blank, but I don't want to
>> use such a digit.
>>
>> I tried
>>     string.8 %tel_dtmf
>>     read  %tel_dtmf count=8 format="????????"
>>     slog "your input: %tel_dtmf"
>>
>> but read() does not seem to get any input
>>
>> ---- snip ----
>> sip/0: state=play, event=400, seq=12   <--- my prompt ends
>> sip/0: state=run, event=100, seq=12
>> sip/0: state=sleep, event=100, seq=12
>> sip/0: state=sleep, event=708, seq=13
>> sip/0: state=run, event=100, seq=13
>> sip/0: state=read, event=100, seq=13    <-- read begins
>> sip/0: state=read, event=400, seq=17
>> sip/0: state=run, event=100, seq=17
>> sip/0: your input: sip/0: state=wait, event=100, seq=17    <-- :(
>> ---- snip ----
>>
>>
>> I had a quick look at the source code but I didn't manage to get what's
>> wrong. Is this a DTMF in/out band issue or a coding one? I know read()
>> differs from input() by the terminating digit abstraction, that's what I
>> want to use.
>>
>> And, by the way, what does 'interdigits' refer to?
>>
>>
>> TIA
>>
> _______________________________________________
> Bayonne-devel mailing list
> [email protected]
> http://lists.gnu.org/mailman/listinfo/bayonne-devel

_______________________________________________
Bayonne-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bayonne-devel
dyfet.vcf (text/x-vcard, 187 B)
begin:vcard
fn:David Sugar
n:Sugar;David
org:GNU Telephony
adr:;;;;;;USA
email;internet:[email protected]
x-mozilla-html:FALSE
url:http://www.gnutelephony.org
version:2.1
end:vcard
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.