programa para discar telefone terra, digite a senha e gravar?

2

existe um programa para a plataforma Windows (ou linha de comando linux) que faria abaixo de uma linha de comando?

  • ligue para um número de telefone fixo (usando minha conta SIP)
  • digite senha
  • registra a chamada
  • termina após um período de tempo ou depois que a outra parte desliga?
por Radek 19.04.2011 / 02:05

1 resposta

3

Linha de comando do Linux:

linphone inclui uma versão de linha de comando linphonec com script. A partir de linphonec com a opção --pipe , será criado um soquete em /tmp para o qual é possível gravar e ler.

Ele atende a todos os seus requisitos e eu testei (para meus próprios usos) todos eles com sucesso:

  • Chamando via SIP,
  • transmitindo sequências DTMF,
  • gravando uma chamada para o arquivo e
  • ao analisar sua saída, você pode ver quando a chamada termina e sair do programa.

Você faria um loop assim:

#!/bin/bash
socket=/tmp/linphonec-$(id -u)
filename=$HOME/record
number=123456789
passfile=$HOME/1234.wav

linphonec --pipe 2>&1 |
while read -r line
do
    echo $line
    case $line in
        *Ready )
            sleep 1
            echo ">>> initializing"
            for command in "soundcard use files" "record $filename" "call $number"
            do
                echo -n $command | nc -q 5 -U $socket
            done
            ;;
        *Call\ *\ with\ *\ connected. )
            sleep 1
            echo ">>> sending pass"
            echo -n "play $passfile" | nc -q 5 -U $socket
            ;;
        *Call\ *\ ended. )
            sleep 1
            echo ">>> quitting"
            while echo -n quit | nc -q 5 -U $socket 2&>-
            do
                i=$(expr $i + 1)
                if test $i -ge 5
                then
                    echo $(basename $0): could not shut down linphonec &>2
                    exit 1
                fi
                sleep 2
            done
            echo ">>> END"
            exit
            ;;
    esac
done

Isso ainda não está na solução ideal. Observe que, em >>> sending pass , estou reproduzindo um arquivo wav em vez de enviar uma sequência DTMF. linphone é capaz do último, mas durante a minha palpação superficial eu ainda não encontrei o caminho certo para fazê-lo enquanto a entrada e saída de som está na base de arquivo para permitir a gravação.

Infelizmente, a documentação do linphone é esparsa. Eu tive os melhores resultados apenas começando linphonec interativamente e usando o builtin help .

    
por 19.04.2011 / 12:18