Summary:ASTERISK-21898: Read application does not set the variable
Reporter:Siddharth Jagtiani (jsiddharth)Labels:
Date Opened:2013-06-11 00:29:34Date Closed:2013-06-11 08:58:38
Versions:11.4.0 Frequency of
Environment:I am running a Ubuntu 12.04, I have downloaded 1.8 asterisk version, build was successful. I have configured chan_dongle to work with a voice enabled dongle. Marked as Major since setting the variable is a essential feature for the read application. Without that its a useless app.Attachments:( 0) debugLog.txt
>core show dongle state dongle0< reports
Device                  : dongle0
 State                   : Free
 Audio                   : /dev/ttyUSB1
 Data                    : /dev/ttyUSB2
 Voice                   : Yes
 SMS                     : Yes
 Manufacturer            : huawei
 Model                   : E303D
 Firmware                :
 IMEI                    : correctIMEI
 IMSI                    : correctIMSI
 GSM Registration Status : Registered, home network
 RSSI                    : 15, -116 dBm
 Mode                    : No Service
 Submode                 : No service
 Provider Name           : IDEA
 Location area code      : "A03D"
 Cell ID                 : "B96B"
 Subscriber Number       : Unknown
 SMS Service Center      : +91correctnumber
 Use UCS-2 encoding      : Yes
 USSD use 7 bit encoding : No
 USSD use UCS-2 decoding : Yes
 Tasks in queue          : 0
 Commands in queue       : 0
 Call Waiting            : Disabled
 Current device state    : start
 Desired device state    : start
 When change state       : now
 Calls/Channels          : 0
   Active                : 0
   Held                  : 0
   Dialing               : 0
   Alerting              : 0
   Incoming              : 0
   Waiting               : 0
   Releasing             : 0
   Initializing          : 0

When I make a incoming call, and put punch in a code I get following results only in " entered" as a result.
When I send a sms to this number, it fills up sms.txt with the sms and the source number correctly.
Basically pincode variable does not get a value on the read application.

exten => sms,1,Verbose(Incoming SMS from ${CALLERID(num)} ${SMS})
exten => sms,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DONGLE} - ${CALLERID(num)}: ${SMS}' >> /var/log/asterisk/sms.txt)
exten => sms,n,Hangup()

exten => ussd,1,Verbose(Incoming USSD: ${USSD})
exten => ussd,n,System(echo '${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} - ${DONGLE}: ${USSD}' >> /var/log/asterisk/ussd.txt)
exten => ussd,n,Hangup()

exten => s,1,Answer()
exten => s,n,Read(pincode,agent-newlocation,3)
exten => s,n,System(echo '${pincode} entered')
exten => s,n,Goto(1)
Comments:By: Michael L. Young (elguero) 2013-06-11 07:14:54.841-0500

In order to help troubleshooting this issue, please attach debug logs.


The READ application appears to be working from my testing.  Perhaps the debug logs will help show what is happening.

One thing I notice is that you are not outputting to a file like in the other two extensions sms and ussd.  You are simply doing "echo".  For troubleshooting, I put a NoOp in there instead of using System and I do see that pincode variable is being set properly.

By: Siddharth Jagtiani (jsiddharth) 2013-06-11 07:43:35.083-0500

Here is the myDebugLog contents. I dialed the number, dongle answered the call and played the voice prompt. After that same result, no dtmf.

[removed debug log and attached it to issue]

By: Michael L. Young (elguero) 2013-06-11 08:38:24.649-0500

READ application is saying that nothing was entered.  I don't think there is anything wrong with READ, perhaps the problem is in the third party driver you are using.

It looks like you are using chan_dongle, is that correct?  Please check their wiki page that has some options for debugging problems with DTMF.

By: Siddharth Jagtiani (jsiddharth) 2013-06-11 08:40:39.700-0500

My dtmf value in dongle.conf is


I also tried off, inband. Did not work. Same thing, dtmf variable not set on read application in dialplan.

I just also tried 'tail -f /var/log/asterisk/myDebugLog' and while I was punching in the keys no response. So guess the issue is somewhere in recognizing the dtmf signal from my mobile phone (HTC Wildfire Android 2.3.6)

By: Malcolm Davenport (mdavenport) 2013-06-11 08:52:02.778-0500

app_read is fine.  I used that exact dialplan snippit against a Digium phone connected via chan_sip.  It's a problem with chan_dongle or the device attached to chan_dongle.  Since that's not a channel driver that's a part of Asterisk, I recommend closing this issue in the Asterisk issue tracker and referring instead to the authors of chan_dongle.

By: Michael L. Young (elguero) 2013-06-11 08:58:38.426-0500

Just like Malcolm stated, app_read is working fine.  I have tested it and Malcolm has tested it.

Since this driver is not part of Asterisk, we are unable to provide any further support.  Please contact the authors of chan_dongle for further help in getting the driver to read input from your device.