Funções do Dialplan do Asterisk 20
Comando:
FILE()
Sinopse:
Ler ou escrever um arquivo de texto.
Descrição:A função
FILE() permite ler e escrever arquivos de texto tanto em modo de caracteres quanto de linhas. É útil para manipular dados em arquivos diretamente no dialplan do Asterisk.
A sintaxe geral é
FILE(filename, offset, length, options, format), onde:
filename: O caminho para o arquivo.offset: O deslocamento (posição) no arquivo. Pode ser um número positivo (a partir do início), negativo (a partir do final) ou omitido.length: O comprimento dos dados a serem lidos ou escritos. Pode ser um número positivo (comprimento fixo), negativo (trimar do final) ou omitido.options: Opções para controlar o modo de operação (l para modo de linha, a para anexar, d para não adicionar nova linha).format: O formato de quebra de linha (u para Unix, d para DOS, m para Macintosh).
Exemplos de leitura:same => n,Set(foo=${FILE(/tmp/test.txt)}) - Lê todo o conteúdo do arquivo.
same => n,Set(foo=${FILE(/tmp/test.txt,10)}) - Lê a partir do 11º byte até o final.
same => n,Set(foo=${FILE(/tmp/test.txt,10,10)}) - Lê do 11º ao 20º byte.
same => n,Set(foo=${FILE(/tmp/test.txt,3,1,l)}) - Lê a 3ª linha.
Exemplos de escrita:same => n,Set(FILE(/tmp/test.txt)=bar) - Trunca o arquivo e escreve "bar".
same => n,Set(FILE(/tmp/test.txt,,,a)=bar) - Anexa "bar" ao final do arquivo.
same => n,Set(FILE(/tmp/foo.txt,0,1,l)=bar) - Substitui a primeira linha por "bar".
Observação: Se a opção '
live_dangerously' no arquivo '
asterisk.conf' estiver definida como '
no', esta função só pode ser executada a partir do dialplan e não diretamente de protocolos externos.
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