Не секрет, что SFLphone — одна из лучших программ для IP-телефонии под линукс, очень удобный и компактный софтфон. Кроме того, это единственная программа, полностью автоматически записывающая все телефонные разговоры без необходимости нажимать на соответствующую кнопочку, что делает её просто незаменимой в маленьком колл-центре.
Одним из огромных минусов этой программы всегда была слабая интеграция с браузерами — обучить её открывать ссылки callto: и tel: можно было только крайне извращёнными методами. По всему интернету мне так и не удалось найти вменяемого способа срастить SFLphone и Google Chrome, Chromium, Firefox и любой другой браузер.
Именно для тех, кто отчаялся научить SFLphone звонить из браузера, я предлагаю наименее извращённый способ. Он подходит для тех, у кого на рабочем столе имеется Gnome-версия SFLphone, тестировался на ElementaryOS (Ubuntu 12.04 LTS).
Способ 1: полуавтоматический
- Скачайте архив с нужными файлами: sflphonetel.tar.gz
- Распакуйте в удобное для вас место
- Запустите sflphonetel.sh и укажите пароль для sudo
Если способ не сработал полностью автоматически, попробуйте вот что:
- Измените права доступа к sflphonetel.sh, добавив туда права на выполнение. Для этого щёлкните по файлу правой кнопкой мыши, выберите «Свойства» и в закладке «Ещё» выберите все пункты выполнения. Ну или просто chmod a+x sflphonetel.sh
- Попробуйте запустить sflphonetel.sh из терминала. Для этого откройте терминал, перейдите в нём в папку с архивом (вполне возможно, это будет команда cd ~/Downloads/sflphonetel/) и выполните там ./sflphonetel.sh
После выполнения этих действий всё должно заработать. Рекомендуется щёлкать по tel-ссылкам при запущенном SFLphone.
Важно! В Firefox этот способ может сразу не сработать и предложить выбрать программу, которой открывать файлы. В окне выбора программы найдите вот эту: /usr/bin/sflphone-tel
Способ 2: подробный
Вы можете скачать архив с необходимыми файлами выше и использовать его.
Для начала, создадим обработчик tel-ссылок. Для этого:
sudo nano /usr/bin/sflphone-tel
И вводим сюда:
#!/bin/sh # # This script can be used as a callto: (or other) protocol handler in # Mozilla Firefox-based browser. # In Firefox use Preferences > Applications and set the callto handler # to this script. # Test if a SFLphone client is already open, if not open a new one # Opening a new client will start sflphoned if not already running SFLPHONEC=`ps -A | grep sflphone-client` if [ "$SFLPHONEC" = "" ]; then /usr/bin/sflphone-client-gnome& fi # Check 1st argument (phone number) if [ -z $1 ]; then echo "Error: argument 1 (phone number) not provided." exit 1 fi # Cleanup destination, keeping numbers only TO="`echo $1 | sed -e 's/[^+0123456789]//g'`" # Generate call id. CALLID=${RANDOM}$$ # Dbus placeCallFirstAccount method does not reach sflphoned if starting # Should find another way to do this sleep 1 dbus-send \ --type="method_call" \ --dest="org.sflphone.SFLphone" \ "/org/sflphone/SFLphone/CallManager" \ "org.sflphone.SFLphone.CallManager.placeCallFirstAccount" \ string:"$CALLID" \ string:"$TO" exit 0
Теперь сделаем его исполняемым:
sudo chmod 0777 /usr/bin/sflphone-tel sudo chown root:root /usr/bin/sflphone-tel
Далее, подготовим псевдо-приложение для запуска SFLphone в режиме набора номера:
sudo nano /usr/share/applications/sflphonetel.desktop
В нём напишем:
[Desktop Entry] Name=SFLphone CallTo Extension GenericName=VoIP Client X-GNOME-FullName=SFLphone CallTo Extension Comment=Use SFLphone in browser for callto: and tel: protocol Exec=/usr/bin/sflphone-tel %u Icon=sflphone.svg StartupNotify=true Terminal=false Type=Application Categories=Network;Telephony; MimeType=x-scheme-handler/callto;x-scheme-handler/tel;
И также сделаем его исполняемым. Не знаю, зачем, просто так, на всякий случай:
sudo chmod 0777 /usr/share/applications/sflphonetel.desktop sudo chown root:root /usr/share/applications/sflphonetel.desktop
Теперь перестроим схему стандартных приложений рабочего стола:
sudo update-desktop-database
И всё, наши tel-ссылки работают!