Февраль 17

Twinkle и скрипты

Продолжая петь дифирамбы Twikle`у, можно сказать, что у него есть замечательная функция — исполнение скриптов при событиях. Ну и я накидал небольшой скриптик, который немного упрощает жизнь:

#!/bin/bash

player="/usr/bin/parole"

playkey="--play"
pausekey="-p"

echo $TWINKLE_TRIGGER >> /tmp/log

case "$TWINKLE_TRIGGER" in
"in_call" ) #Входящий звонок - сообщаем кто звонит и тормозим плеер
	notify-send -t 3000 -i "/usr/share/twinkle/twinkle48.png" "Входящий звонок:     $SIP_FROM_USER $SIP_FROM"
	$player $pausekey
;;
"out_call" ) #Исходящий звонок - тормозим плеер
	$player $pausekey
;;
"local_release" | "remote_release" ) #Звонок завершен любой из сторон - продолжаем музыку слушать
	$player $playkey
;;
"in_call_failed" )
	notify-send -t 3000 -i "/usr/share/twinkle/twinkle48.png" "Входящий звонок отменен!"
	$player $playkey
;;
"outcall_failed" )
        notify-send -t 3000 -i "/usr/share/twinkle/twinkle48.png" "Ошибка соединения: $SIPSTATUS_CODE $SIPSTATUS_REASON"
        "$player $playkey"
;;
"in_call_answered" | "outcall_answered" )
	echo "Connection estabilished!" >> /dev/null
;;
* ) # Если получаем любое другое значение - удивляемся и шлем в /dev/null. Мы к этому еще не готовы
	echo "WTF?!" >> /dev/null
;;
esac

Немного про переменные:

  • $player — плеер, которым я пользуюсь.
  • $playkey — ключ для продолжения воспроизведения
  • $pausekey — ключ для остановки воспроизведения

Определение статуса твинкла идет через переменную $TWINKLE_TRIGGER. Согласно мануалу, эта переменная может содержать следующие значения

TWINKLE_TRIGGER Trigger point
in_call Входящий звонок
in_call_answered Ответ на входящий
in_call_failed Входящий звонок сброшен или отменен
out_call Исходящий звонок
out_call_answered Исходящий звонок отвечен
out_call_failed Исходящиый звонок сброшен или отменен
local_release Разговор окончен с локальной стороны
remote_release Разговор окончен удаленной стороной

Обрабатывая эти значения можно выполнять определенные действия.

Прописываем использование скрипта в программе и можно пользоваться!

twinkle_script

В процессе эксплуатации скрипт оброс запросом в AD для получения данных об абоненте (для внутренних звонков), регулировкой громкости для Flash-плеера в браузере и прочими свистелками, но это уже личное дело каждого


Метки:

Опубликованно 17.02.2015 by khvphoenix в категории Linux

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *