Funções do Dialplan do Asterisk 18
Comando:
FILE()
Sinopse:
Read or write text file.
Descrição:A função
FILE() permite ler ou escrever em arquivos de texto, tanto em modo de caracteres (bytes) quanto em modo de linhas. É útil para manipular dados armazenados em arquivos diretamente no dialplan do Asterisk.
A sintaxe geral é
FILE(filename, offset, length, options, format), onde:
filename: O caminho para o arquivo.offset: A posição inicial para leitura ou escrita. Pode ser um número positivo (byte ou linha), ou negativo (contagem a partir do final do arquivo).length: O número de bytes ou linhas a serem lidos ou escritos. Pode ser negativo para indicar o número de bytes/linhas a serem removidos do final do arquivo.options: Opções adicionais, como 'l' para modo de linha, 'a' para anexar (apenas em escrita), 'd' para não adicionar nova linha (apenas em escrita e modo de linha).format: O formato de quebra de linha (u para Unix, d para DOS, m para Macintosh).
Exemplos de uso incluem leitura de conteúdo completo, leitura a partir de um byte/linha específico, escrita para truncar, anexar ou substituir partes do arquivo.
Sintaxe:
same => n,Set(foo=${FILE(/tmp/test.txt)})
same => n,Set(foo=${FILE(/tmp/test.txt,10)})
same => n,Set(foo=${FILE(/tmp/test.txt,10,10)})
same => n,Set(foo=${FILE(/tmp/test.txt,3,1,l)})
same => n,Set(foo=${FILE(/tmp/test.txt,3,2,l)})
same => n,Set(foo=${FILE(/tmp/test.txt,3,,l)})
same => n,Set(foo=${FILE(/tmp/test.txt,-3,,l)})
same => n,Set(foo=${FILE(/tmp/test.txt,3,1,l,d)})
same => n,Set(FILE(/tmp/test.txt)=bar)
same => n,Set(FILE(/tmp/test.txt,,,a)=bar)
same => n,Set(FILE(/tmp/test.txt,0,1)=bar)
same => n,Set(FILE(/tmp/test.txt,20,10)=bar)
same => n,Set(FILE(/tmp/test.txt,20)=bar)
same => n,Set(FILE(/tmp/test.txt,4,0)=bar)
same => n,Set(FILE(/tmp/foo.txt,0,1,l)=bar)
same => n,Set(FILE(/tmp/foo.txt,-1,,l)=bar)
same => n,Set(FILE(/tmp/foo.txt,,,al)=bar)
FILE(filename,offset,length,options,format)
Fonte: Asterisk Wiki