Funções do Dialplan do Asterisk 23
Comando:
FILE()
Sinopse:
Ler ou escrever arquivo de texto.
Descrição:A função FILE() permite ler e escrever arquivos de texto no Asterisk, tanto em modo caractere quanto em modo linha.
Modo de Leitura (byte):same => n,Set(foo=${FILE(/tmp/test.txt)}) - Lê todo o conteúdo do arquivosame => n,Set(foo=${FILE(/tmp/test.txt,10)}) - Lê a partir do 11º byte até o final do arquivo (ignora os primeiros 10 bytes)same => n,Set(foo=${FILE(/tmp/test.txt,10,10)}) - Lê do 11º ao 20º byte do arquivo (ignora os primeiros 10 e lê 10 bytes)
Modo de Leitura (linha):same => n,Set(foo=${FILE(/tmp/test.txt,3,1,l)}) - Lê a 3ª linha do arquivosame => n,Set(foo=${FILE(/tmp/test.txt,3,2,l)}) - Lê a 3ª e 4ª linhas do arquivosame => n,Set(foo=${FILE(/tmp/test.txt,3,,l)}) - Lê da terceira linha até o final do arquivosame => n,Set(foo=${FILE(/tmp/test.txt,-3,,l)}) - Lê as últimas três linhas do arquivosame => n,Set(foo=${FILE(/tmp/test.txt,3,1,l,d)}) - Lê a 3ª linha de um arquivo no formato DOS
Modo 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) - Acrescenta 'bar' ao final do arquivosame => n,Set(FILE(/tmp/test.txt,0,1)=bar) - Substitui o primeiro byte por 'bar' (substitui 1 caractere por 3)same => n,Set(FILE(/tmp/test.txt,20,10)=bar) - Substitui 10 bytes começando no 21º byte do arquivo por 'bar'same => n,Set(FILE(/tmp/test.txt,20)=bar) - Substitui todos os bytes a partir do 21º por 'bar'same => n,Set(FILE(/tmp/test.txt,4,0)=bar) - Insere 'bar' após o 4º caractere
Opções disponíveis:- l - Modo linha: offset e length são medidos em linhas, em vez de deslocamentos de bytes
- a - Em modo de escrita, acrescenta ao final do arquivo em vez de sobrescrever
- d - Em modo de escrita e modo linha, não adiciona automaticamente uma nova linha no final do valor
Formatos de nova linha:- u - Formato Unix
- d - Formato DOS
- m - Formato Macintosh
Observação: Se 'live_dangerously' em 'asterisk.conf' estiver definido 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