Gastify уведомление о входящем звонке для Gnome

Skip to end of metadata
Go to start of metadata

Наткнулся в инете на  короткую статью о настройке уведомления о входящем звонке для gnome. Это конечно не Outcall, но мне и не нужна функциональность Outcall, я не пользуюсь телефонными контактами из почтового клиента. А вот уведомление о звонке очень кстати. Можно просто  слушать музыку в наушниках, выставить звук ringer в null, и при входящем звонке не дергаться , а спокойно снимать наушники и одевать USB гарнитуру Platronics 

В общем, решил попробовать. Для app_notify есть три клиента:

[MacOSX]  

Win  

Linux 

Установка Gastify

Качаем отсюда -  http://gastify.googlepages.com/.

./configure, make, make install.

У меня в gentoo после emerge netcat появился бинарник nc, а не netcat, как в примере на сайте gastify.

Запускаем, проверяем. Надо же, работает, и еще историю звонков показывает. Удобно, софтфон выключен, а лог звонков есть 
А зачем оно надо?

Теперь поразмышляем о применении. Архитектура такая:

  • При входящем звонке вызываем AGI скрипт, который делает поиск по корпоративной адресной книге или CRM.
  • С случае совпадения вызываем app_notify с именем звонящего.

Плюс такого решения - доступ к базе с сервера, а не каждого компа.

Minimalistic approach 

max@explorer /tmp $ gastify --help
Использование:
  gastify [ПАРАМЕТР...]
Параметры справки:
  -?, --help                           Показать параметры справки
  --help-all                           Показать все параметры справки
  --help-gtk                           Показать параметры GTK+
Параметры приложения:
  -p, --port=N                         listen on given port
  -t, --time=SECONDS                   display popup given time
  -d, --demonize                       forks in the background
  -e, --execute=COMMAND TO EXECUTE     executes command on new call
  -V, --version                        print version info
  --display=ДИСПЛЕЙ                    Используемый X-дисплей

Обратите внимание на параметр e. Что это значит?

  • Можно вызвать mpc stop и автоматически останавливать музыку при входящем звонке (если нет внешней USB гарнитуры, и софтфон использует звуковую плату), без такой штуки при каждом входящем звонке судорожно ищешь окно с проигрываетелем 
  • Можно вызвать броузер и передать ему данные о звонке для открытия карточки клиента. Вот те и CTI 

Нарисовал на Asterisk'e:

[check-notify]; Notify via netcat
exten => i,1,Return
exten => _X.,1,Set(addr=${DB(notify/${EXTEN})})
exten => _X.,n,ExecIf($[${addr} = ""]|Return)
exten => _X.,n,Set(ip=${CUT(addr,:,1)})
exten => _X.,n,Set(port=${CUT(addr,:,2)})
exten => _X.,n,System(/bin/echo "Call from ${CALLERID(name)}|${CALLERID(num)}|" |nc -u -w 1 ${ip} ${port})
exten => _X.,n,Return

Далее добавляем в macro-stdexten:

exten ⇒ s,n,Gosub(check-notify,${MACRO_EXTEN},1)

Далее помещаем в базу:

snowflake*CLI> database put notify 700 192.168.100.6:40000
Updated database successfully
snowflake*CLI>

И все. Теперь у меня на Linux'е есть уведомление о входящем вызове 

[2009-09-09 03:20:12]     -- Executing [s@macro-stdexten:5] Gosub("SIP/790-b571abc0", "check-notify|700|1") in new stack
[2009-09-09 03:20:12] DEBUG[14478]: app_macro.c:379 _macro_exec: Executed application: Gosub
[2009-09-09 03:20:12] DEBUG[14478]: app_macro.c:383 _macro_exec: Incrementing gosub_level
[2009-09-09 03:20:12]     -- Executing [700@check-notify:1] Set("SIP/790-b571abc0", "addr=192.168.100.6:40000") in new stack
[2009-09-09 03:20:12] DEBUG[14478]: app_macro.c:379 _macro_exec: Executed application: Set
[2009-09-09 03:20:12]     -- Executing [700@check-notify:2] ExecIf("SIP/790-b571abc0", "0|Return") in new stack
[2009-09-09 03:20:12] DEBUG[14478]: app_macro.c:379 _macro_exec: Executed application: ExecIf
[2009-09-09 03:20:12]     -- Executing [700@check-notify:3] Set("SIP/790-b571abc0", "ip=192.168.100.6") in new stack
[2009-09-09 03:20:12] DEBUG[14478]: app_macro.c:379 _macro_exec: Executed application: Set
[2009-09-09 03:20:12]     -- Executing [700@check-notify:4] Set("SIP/790-b571abc0", "port=40000") in new stack
[2009-09-09 03:20:12] DEBUG[14478]: app_macro.c:379 _macro_exec: Executed application: Set
[2009-09-09 03:20:12]     -- Executing [700@check-notify:5] System("SIP/790-b571abc0", "/bin/echo "Call from Max Dubna|790|" |nc -u -w 1 192.168.100.6 40000") in new stack

У меня все проще… В twinkle установлен ringer device - обычный аудио выход. Так что даже когда слушаю музыку, я слышу входящий вызов, и спокойно снимаю наушники и одеваю USB гарнитуру… Нафик мне gastify? 

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.