2

Есть ли программа для платформы Windows (или Linux linux), которая будет делать из командной строки ниже?

  • позвоните по номеру телефона земли (используя мою учетную запись SIP)
  • введите пароль
  • записать звонок
  • заканчивается через некоторое время или после зависания другой части?

1 ответ1

3

Командная строка Linux:

linphone включает в себя linphonec командной строки linphonec с поддержкой сценариев . Запуск linphonec с параметром --pipe создаст сокет в /tmp который можно писать и читать.

Он отвечает всем вашим требованиям, и я успешно проверил (для собственных нужд) все из них:

  • Звонить через SIP,
  • передача DTMF-последовательностей,
  • запись вызова в файл, и
  • анализируя его вывод, вы можете увидеть, когда вызов завершится и выйдет из программы.

Вы бы сделали цикл следующим образом:

#!/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

Это еще не оптимальное решение. Обратите внимание, что в разделе >>> sending pass я воспроизводю wav-файл вместо отправки последовательности DTMF. linphone способен на это, но во время беглого манипулирования я еще не нашел правильный способ сделать это, пока вход и выход звука ведутся на файловой основе, чтобы позволить запись.

К сожалению, документация по linphone редкая. Я добился лучших результатов, просто запустив linphonec интерактивном режиме и используя встроенную help .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .