[asterisk-users] Multiple readfile oddities, newlines etc

Jonathan H lardconcepts at gmail.com
Mon Oct 17 08:31:42 CDT 2016


I have a plain text file, ASCII, unix line breaks. 1 single line, and all
that is in it is the word "radio".

Here's some test dialplan:

exten => 5,1,Verbose(Context: ${CONTEXT} Exten:${EXTEN})

    same => n,Set(feature=${FILE(/home/test/feature-1.txt,0,1,l,u)})
    same => n,Verbose(${feature})

    same => n,Set(featurefile=/home/test/feature-1.txt)
    same => n,Set(feature2=${FILE(${featurefile},0,1,l,u)})
    same => n,Verbose(${feature2})

Both should output "radio", right? Here's the output:

    -- Executing [5 at fromvoipfone201:2] Set("PJSIP/6001-00000052",
"feature=radio") in new stack
    -- Executing [5 at fromvoipfone201:3] Verbose("PJSIP/6001-00000052",
"radio") in new stack
radio

    -- Executing [5 at fromvoipfone201:4] Set("PJSIP/6001-00000052",
"featurefile=/home/test/feature-1.txt") in new stack
    -- Executing [5 at fromvoipfone201:5] Set("PJSIP/6001-00000052", "feature2=
*radi*") in new stack
                                                        *GAAAAARRRGGGHHHH!
 ^^^^^*

    -- Executing [5 at fromvoipfone201:6] Verbose("PJSIP/6001-00000052",
"radi") in new stack

And this is what's just at the top of the script. If I put it way down in
another context:

    -- Executing [s at track-handler:3] Verbose("Local/s at root-00000026;2",
"/home/test/feature-1") in new stack
/home/test/feature-1
    -- Executing [s at track-handler:4] Set("Local/s at root-00000026;2",
"feature=*radio▒▒*") in new stack
                                                    *EVEN MORE**
GAAAAARRRGGGHHHH!
 ^^^^^*

[Oct 17 13:29:33] ERROR[5093][C-0000003c]: json.c:704 ast_json_vpack: Error
building JSON from '{s: s, s: s}': Invalid UTF-8 string.
[Oct 17 13:29:33] ERROR[5093][C-0000003c]: stasis_channels.c:773
ast_channel_publish_varset: Error creating message
    -- Executing [s at track-handler:5] Verbose("Local/s at root-00000026;2",
"radio▒▒") in new stack
radio▒▒
    -- Executing [s at track-handler:6] GotoIf("Local/s at root-00000026;2",
"1?radio▒▒,s,1") in new stack


So, at the top of the file, when it's just a straight file as the filename,
it gives the full word. If the filename is a variable, it strips and
character. And further down, same thing, but it adds two weird blocks,
which appear side by side in the console, but weirdly, stacked up in this
email.

(Oh, by the way, if there is more than one line in the file, even if I used
"u" for line breaks, it adds a newline to the variable, Is that correct?)

What am I missing? I've opened it in both nano and notepad++, I've used
iconv and all the tools I can think of to check that file, and all the
asterisk conf files, too.
It all looks as it should here:

$ cat feature-1.txt
radio$ file feature-1.txt
feature-1.txt: ASCII text
$ wc -l feature-1.txt
0 feature-1.txt
wc -c feature-1.txt
5 feature-1.txt

After 6 hours struggling with this, I think I'm starting to lose the plot.
Can anyone tell me where I'm going wrong? Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20161017/392f13bd/attachment.html>


More information about the asterisk-users mailing list