Funções do Dialplan do Asterisk 22
Comando:
FILE()
Sinopse:
Ler ou escrever arquivo de texto.
Descrição:Esta função permite ler e escrever arquivos de texto no modo caractere e modo linha.
Modo de Leitura (byte):
- Exemplo: Lê todo o conteúdo do arquivo
same => n,Set(foo=${FILE(/tmp/test.txt)}) - Exemplo: Lê a partir do 11º byte até o final do arquivo (ou seja, pula os primeiros 10)
same => n,Set(foo=${FILE(/tmp/test.txt,10)}) - Exemplo: Lê do 11º ao 20º byte do arquivo (ou seja, pula os primeiros 10 e lê 10 bytes)
same => n,Set(foo=${FILE(/tmp/test.txt,10,10)})
Modo de Leitura (linha):
- Exemplo: Lê a 3ª linha do arquivo
same => n,Set(foo=${FILE(/tmp/test.txt,3,1,l)}) - Exemplo: Lê a 3ª e 4ª linhas do arquivo
same => n,Set(foo=${FILE(/tmp/test.txt,3,2,l)}) - Exemplo: Lê da terceira linha até o final do arquivo
same => n,Set(foo=${FILE(/tmp/test.txt,3,,l)}) - Exemplo: Lê as últimas três linhas do arquivo
same => n,Set(foo=${FILE(/tmp/test.txt,-3,,l)}) - Exemplo: Lê a 3ª linha de um arquivo no formato DOS
same => n,Set(foo=${FILE(/tmp/test.txt,3,1,l,d)})
Modo de Escrita:
- Exemplo: Trunca o arquivo e escreve 'bar'
same => n,Set(FILE(/tmp/test.txt)=bar) - Exemplo: Acrescenta 'bar'
same => n,Set(FILE(/tmp/test.txt,,,a)=bar) - Exemplo: Substitui o primeiro byte com 'bar' (substitui 1 caractere com 3)
same => n,Set(FILE(/tmp/test.txt,0,1)=bar) - Exemplo: Substitui 10 bytes começando no 21º byte do arquivo com 'bar'
same => n,Set(FILE(/tmp/test.txt,20,10)=bar) - Exemplo: Substitui todos os bytes a partir do 21º com 'bar'
same => n,Set(FILE(/tmp/test.txt,20)=bar) - Exemplo: Insere 'bar' após o 4º caractere
same => n,Set(FILE(/tmp/test.txt,4,0)=bar)
Escrita em modo linha:
- Exemplo: Substitui a primeira linha do arquivo com 'bar'
same => n,Set(FILE(/tmp/foo.txt,0,1,l)=bar) - Exemplo: Substitui a última linha do arquivo com 'bar'
same => n,Set(FILE(/tmp/foo.txt,-1,,l)=bar) - Exemplo: Acrescenta 'bar' ao arquivo com uma nova linha
same => n,Set(FILE(/tmp/foo.txt,,,al)=bar)
Observação: Se 'live_dangerously' no '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: FILE(filename,offset,length,options,format)
Parâmetros:
- filename
- offset - Pode ser especificado como qualquer número. Se negativo, offset indica o número de bytes a partir do final do arquivo.
- length - Se especificado, limita o tamanho dos dados lidos a esse tamanho. Se negativo, remove bytes do final do arquivo.
- options
l - Modo linha: offset e length são considerados em linhas, em vez de deslocamentos de bytes.a - Apenas no modo de escrita, a opção append é usada para adicionar ao final do arquivo, em vez de sobrescrever o arquivo existente.d - Apenas no modo de escrita e modo linha, esta opção não adiciona automaticamente uma nova linha no final de um valor. Isso é útil para excluir linhas, em vez de defini-las como em branco.
- format - O parâmetro format pode ser usado para delimitar o tipo de terminadores de linha no modo linha:
u - Formato de nova linha Unix.d - Formato de nova linha DOS.m - Formato de nova linha Macintosh.
Funções relacionadas: FILE_COUNT_LINE, FILE_FORMAT
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)
Veja Também:
Fonte: Asterisk Wiki