Theres always garbage in the end of the files.


I do this when I want to read a file:

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

    same => n,Set(feature2=${SHIFT(unfilteredfeat2)})


After that, add a , inside end of the file, so


Cat feature-1.txt




Thus if there is garbage in the file, it will happen after the ,. Same if 
garbage happens to find its way into the end of the variable for some reason.

[] För Jonathan H
Skickat: den 17 oktober 2016 15:32
Till: Asterisk Users Mailing List - Non-Commercial Discussion 
Ämne: [asterisk-users] Multiple readfile oddities, newlines etc


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@fromvoipfone201:2] Set("PJSIP/6001-00000052", 
"feature=radio") in new stack
    -- Executing [5@fromvoipfone201:3] Verbose("PJSIP/6001-00000052", "radio") 
in new stack

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

                                                        GAAAAARRRGGGHHHH!  ^^^^^


    -- Executing [5@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@track-handler:3] Verbose("Local/s@root-00000026;2", 
"/home/test/feature-1") in new stack
    -- Executing [s@track-handler:4] Set("Local/s@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@track-handler:5] Verbose("Local/s@root-00000026;2", 
"radio▒▒") in new stack
    -- Executing [s@track-handler:6] GotoIf("Local/s@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.

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

-- Bandwidth and Colocation Provided by --

Join the Asterisk Community at the 13th AstriCon, September 27-29, 2016

New to Asterisk? Start here:

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:

Reply via email to