ื›ื ื™ืกื” ืื•ื˜ื•ืžื˜ื™ืช ืœื•ื•ืขื™ื“ื•ืช Lync ื‘-Linux

ื”ื™ื™ ื”ื‘ืจ!

ืขื‘ื•ืจื™, ื”ื‘ื™ื˜ื•ื™ ื”ื–ื” ื“ื•ืžื” ืœืฉืœื•ื ืขื•ืœื, ืžืื– ืฉื”ื’ืขืชื™ ืกื•ืฃ ืกื•ืฃ ืœืคืจืกื•ื ื”ืจืืฉื•ืŸ ืฉืœื™. ื“ื—ื™ืชื™ ืืช ื”ืจื’ืข ื”ื ืคืœื ื”ื–ื” ื”ืจื‘ื” ื–ืžืŸ, ื›ื™ ืœื ื”ื™ื” ืขืœ ืžื” ืœื›ืชื•ื‘, ื•ื’ื ืœื ืจืฆื™ืชื™ ืœื™ื ื•ืง ืžืฉื”ื• ืฉื›ื‘ืจ ื ืฉืื‘ ื”ืžื•ืŸ ืคืขืžื™ื. ื‘ืื•ืคืŸ ื›ืœืœื™, ืœืคืจืกื•ื ื”ืจืืฉื•ืŸ ืฉืœื™ ืจืฆื™ืชื™ ืžืฉื”ื• ืžืงื•ืจื™, ืฉื™ืžื•ืฉื™ ืœืื—ืจื™ื ื•ืžื›ื™ืœ ืื™ื–ืฉื”ื• ืืชื’ืจ ื•ืคืชืจื•ืŸ ื‘ืขื™ื•ืช. ื•ืขื›ืฉื™ื• ืื ื™ ื™ื›ื•ืœ ืœืฉืชืฃ ืืช ื–ื”. ืขื›ืฉื™ื• ื‘ื•ืื• ื ื“ื‘ืจ ืขืœ ื”ื›ืœ ืœืคื™ ื”ืกื“ืจ.

ื›ื ื™ืกื”

ื”ื›ืœ ื”ืชื—ื™ืœ ื›ืืฉืจ ืœืคื ื™ ื–ืžืŸ ืžื” ื”ื•ืจื“ืชื™ ืืช Linux Mint ืœืžื—ืฉื‘ ื”ืขื‘ื•ื“ื” ืฉืœื™. ืื ืฉื™ื ืจื‘ื™ื ื‘ื•ื•ื“ืื™ ื™ื•ื“ืขื™ื ืฉ-Pidgin ืขื ืชื•ืกืฃ Sipe ื”ื•ื ืชื—ืœื™ืฃ ืžืชืื™ื ืœื—ืœื•ื˜ื™ืŸ ืœ-Microsoft Lync (ืฉื ืงืจืืช ื›ื™ื•ื Skype for business) ืขื‘ื•ืจ ืžืขืจื›ื•ืช ืœื™ื ื•ืงืก. ื‘ื’ืœืœ ื”ืกืคืฆื™ืคื™ื•ืช ืฉืœ ื”ืขื‘ื•ื“ื” ืฉืœื™, ืื ื™ ื ืืœืฅ ืœื”ืฉืชืชืฃ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ื›ื ืกื™ื ืฉืœ SIP, ื•ื›ืฉื”ื™ื™ืชื™ ืขื•ื‘ื“ ืฉืœ Windows, ื”ื›ื ื™ืกื” ืœื›ื ืกื™ื ื”ื™ื™ืชื” ืืœืžื ื˜ืจื™ืช: ืื ื—ื ื• ืžืงื‘ืœื™ื ื”ื–ืžื ื” ื‘ื“ื•ืืจ, ืœื•ื—ืฆื™ื ืขืœ ืงื™ืฉื•ืจ ื”ื›ื ื™ืกื”, ื•ืื ื—ื ื• ืžื•ื›ื ื™ื ืœืฆืืช ืœื“ืจืš .

ื‘ืขืช ื”ืžืขื‘ืจ ืœืฆื“ ื”ืืคืœ ืฉืœ ืœื™ื ื•ืงืก, ื”ื›ืœ ื ืขืฉื” ืงืฆืช ื™ื•ืชืจ ืžืกื•ื‘ืš: ื›ืžื•ื‘ืŸ, ืืชื” ื™ื›ื•ืœ ื’ื ืœื”ื™ื›ื ืก ืœื›ื ืกื™ื ื‘-Pidgin, ืื‘ืœ ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช ืืชื” ืฆืจื™ืš ืœื‘ื—ื•ืจ ื‘ืืคืฉืจื•ืช ื”ืฆื˜ืจืคื•ืช ืœื•ื•ืขื™ื“ื” ื‘ืชืคืจื™ื˜ ื‘ืžืืคื™ื™ื ื™ ื—ืฉื‘ื•ืŸ ื”-SIP ืฉืœืš. ื‘ื—ืœื•ืŸ ืฉื ืคืชื—, ื”ื›ื ืก ืงื™ืฉื•ืจ ืœื•ื•ืขื™ื“ื” ืื• ื”ื–ืŸ ืืช ืฉื ื”ืžืืจื’ืŸ ื•ืžื–ื”ื” ื”-conf id. ื•ืื—ืจื™ ื–ืžืŸ ืžื” ื”ืชื—ืœืชื™ ืœื—ืฉื•ื‘: "ื”ืื ืืคืฉืจ ืื™ื›ืฉื”ื• ืœืคืฉื˜ ืืช ื–ื”?" ื›ืŸ, ืืชื” ื™ื›ื•ืœ ืœื•ืžืจ, ืœืžื” ืœืขื–ืื–ืœ ืืชื” ืฆืจื™ืš ืืช ื–ื”? ืื ื™ ืžืขื“ื™ืฃ ืœืฉื‘ืช ืขืœ Windows ื•ืœื ืœืคื•ืฆืฅ ืืช ื“ืขืชื™.

ืฉืœื‘ 1: ืžื—ืงืจ

"ืื ื™ืฉ ืœืš ื’ื—ืžื” ื‘ืจืืฉ, ืืชื” ืœื ื™ื›ื•ืœ ืœื”ืคื™ืœ ืื•ืชื” ืขื ื™ืชื“", ืืžืจ ื ืงืจืกื•ื‘ ื‘ื™ืฆื™ืจืชื• "ืžื™ ื—ื™ ื˜ื•ื‘ ื‘ืจื•ืกื™ื”".

ืื–, ื‘ืจื’ืข ืฉื”ืžื—ืฉื‘ื” ืขืœืชื” ื‘ืจืืฉื™, ืœืื—ืจ ื–ืžืŸ ืžื” ืขืœื” ื”ืจืขื™ื•ืŸ ื”ืจืืฉื•ืŸ ืœื™ื™ืฉื•ื. ื”ื›ืœ ื ืจืื” ืคืฉื•ื˜ - ืืชื” ืฆืจื™ืš ืœื™ื™ืจื˜ ื’ื™ืฉื” ืœืงื™ืฉื•ืจื™ื meet.company.com/user/confid - ื”ืชืงืŸ ืชื”ืœื™ืš ื™ื™ืฉื•ื ืื™ื ื˜ืจื ื˜ ืžืงื•ืžื™ ื‘ืžื›ื•ื ื™ืช ืฉืœืš ื‘-127.0.0.1 ื•ื‘-/etc/hosts ื”ื•ืกืฃ ืขืจืš ืกื˜ื˜ื™ ืขื‘ื•ืจ ื“ื•ืžื™ื™ืŸ ื”ื—ื‘ืจื” ืฉื“ืจื›ื• ืืชื” ื ื›ื ืก ืœื•ื•ืขื™ื“ื”, ื”ืžืฆื‘ื™ืข ืขืœ localhost. ื‘ืฉืœื‘ ื”ื‘ื, ืฉืจืช ื”ืื™ื ื˜ืจื ื˜ ื”ื–ื” ื—ื™ื™ื‘ ืœืขื‘ื“ ืืช ื”ืงื™ืฉื•ืจ ืฉื”ื’ื™ืข ืืœื™ื• ื•ืื™ื›ืฉื”ื• ืœื”ืขื‘ื™ืจ ืื•ืชื• ื‘ืชื•ืš Pidgin (ืื ื™ ืื’ื™ื“ ืžื™ื“ ืฉื‘ืฉืœื‘ ื”ื–ื” ืขื“ื™ื™ืŸ ืœื ื”ื™ื” ืœื™ ืžื•ืฉื’ ืื™ืš ืœืชืช ืœื• ืื•ืชื• ื‘ื›ืœืœ). ื”ืคืชืจื•ืŸ, ื›ืžื•ื‘ืŸ, ืžืจื™ื— ื›ืžื• ืงื‘ื™ื™ื, ืื‘ืœ ืื ื—ื ื• ืžืชื›ื ืชื™ื, ืงื‘ื™ื™ื ืœื ืžืคื—ื™ื“ื™ื ืื•ืชื ื• (ื—ืจื).

ื•ืื–, ื‘ืžืงืจื”, ืคืชื—ืชื™ ืื™ื›ืฉื”ื• ืืช ืงื™ืฉื•ืจ ื”ื”ื–ืžื ื” ื‘ื’ื•ื’ืœ ื›ืจื•ื (ื•ื‘ื“ืจืš ื›ืœืœ ืื ื™ ืชืžื™ื“ ืžืฉืชืžืฉ ื‘-Mozilla Firefox). ื•ืœื”ืคืชืขืชื™, ื“ืฃ ื”ืื™ื ื˜ืจื ื˜ ื ืจืื” ืื—ืจืช ืœื’ืžืจื™ - ืœื ื”ื™ื” ื˜ื•ืคืก ืœื”ื–ื ืช ื ืชื•ื ื™ ืžืฉืชืžืฉ ื•ืžื™ื“ ืœืื—ืจ ื”ื›ื ื™ืกื” ืœื“ืฃ ื”ื™ื™ืชื” ื‘ืงืฉื” ืœืคืชื•ื— ืžืฉื”ื• ื“ืจืš xdg ืคืชื•ื—. ืกืชื ื‘ืฉื‘ื™ืœ ื”ื›ื™ืฃ, ืื ื™ ืœื•ื—ืฅ ืขืœ "ื›ืŸ" ื•ืžื•ืคื™ืขื” ื”ื•ื“ืขืช ืฉื’ื™ืื” - ืœื ื ื™ืชืŸ ืœืคืชื•ื— ืืช ื”ืงื™ืฉื•ืจ lync15:confjoin?url=https://meet.company.com/user/confid. ื”ืžืž. ืื™ื–ื” ืกื•ื’ ืฉืœ xdg-open ื–ื” ื•ืžื” ื”ื•ื ืฆืจื™ืš ื›ื“ื™ ืฉืงื™ืฉื•ืจื™ื ื›ืืœื” ื™ื™ืคืชื—ื•? ืงืจื™ืื” ืฉืœืื—ืจ ื”ืžื•ื•ืช ืฉืœ ื”ืชื™ืขื•ื“ ื”ืขืœืชื” ื›ื™ ืžื“ื•ื‘ืจ ื‘ืžื˜ืคืœ ื‘-GUI ืฉืขื•ื–ืจ ืœื”ืคืขื™ืœ ื™ื™ืฉื•ืžื™ื ืงืฉื•ืจื™ื ืขื ืคืจื•ื˜ื•ืงื•ืœื™ื ืขื‘ื•ืจ ืกื›ื™ืžืช ื”-uri ืื• ืขื ืกื•ื’ื™ ืงื‘ืฆื™ื ืกืคืฆื™ืคื™ื™ื. ืืกื•ืฆื™ืืฆื™ื•ืช ืžื•ื’ื“ืจื•ืช ื‘ืืžืฆืขื•ืช ืžื™ืคื•ื™ ืžืกื•ื’ Mime. ืื– ืื ื• ืจื•ืื™ื ืฉืื ื• ืžืคืขื™ืœื™ื ื—ื™ืคื•ืฉ ืื—ืจ ื™ื™ืฉื•ื ืžื•ืชืื ืขื‘ื•ืจ ืขืจื›ืช uri ื‘ืฉื lync15 ื•ื”ืงื™ืฉื•ืจ ืžื•ืขื‘ืจ ืœ-xdg-open, ืฉืœืื—ืจ ืžื›ืŸ, ื‘ืชื™ืื•ืจื™ื”, ืืžื•ืจ ืœื”ืขื‘ื™ืจ ืื•ืชื• ืœืืคืœื™ืงืฆื™ื” ื›ืœืฉื”ื™ ืฉืื—ืจืื™ืช ืขืœ ืกื•ื’ ื–ื” ืฉืœ ืงื™ืฉื•ืจ. ืžื”, ื›ืžื•ื‘ืŸ, ืื™ืŸ ืœื ื• ื‘ืžืขืจื›ืช ืฉืœื ื•. ืื ืœื, ืื– ืžื” ื”ื ืขื•ืฉื™ื ื‘ืขื•ืœื ื”ืงื•ื“ ื”ืคืชื•ื—? ื ื›ื•ืŸ, ื ื›ืชื•ื‘ ืืช ื–ื” ื‘ืขืฆืžื ื•.

ื”ืชืขืžืงื•ืช ื ื•ืกืคืช ื‘ืขื•ืœื ื”ืœื™ื ื•ืงืก ื•ื‘ืขื™ืงืจ ื‘ืœื™ืžื•ื“ ืื™ืš ื”ืžืขื˜ืคืช ื”ื’ืจืคื™ืช (ืกื‘ื™ื‘ืช ืฉื•ืœื—ืŸ ืขื‘ื•ื“ื”, DE) ืขื•ื‘ื“ืช, ืื’ื‘, ื™ืฉ ืœื™ Xfce ื‘-Linux Mint, ื”ืจืืชื” ืฉื™ื™ืฉื•ืžื™ื ื•ืกื•ื’ ื”-mime ื”ืงืฉื•ืจื™ื ืืœื™ื• ื ื›ืชื‘ื™ื ื‘ื“ืจืš ื›ืœืœ ื™ืฉื™ืจื•ืช ื‘ ืงื‘ืฆื™ ืงื™ืฆื•ืจ ืขื ื”ืกื™ื•ืžืช .desktop. ื•ื‘ื›ืŸ, ืœืžื” ืœื, ืื ื™ ื™ื•ืฆืจ ืงื™ืฆื•ืจ ื“ืจืš ืคืฉื•ื˜ ืœื™ื™ืฉื•ื, ืฉืืžื•ืจ ืคืฉื•ื˜ ืœื”ืคืขื™ืœ ืกืงืจื™ืคื˜ bash ื•ืœื”ื•ืฆื™ื ืืช ื”ืืจื’ื•ืžื ื˜ ืฉื”ื•ืขื‘ืจ ืืœื™ื• ืœืงื•ื ืกื•ืœื”, ืื ื™ ืžืกืคืง ืจืง ืืช ืงื•ื‘ืฅ ื”ืงื™ืฆื•ืจ ืขืฆืžื•:

[Desktop Entry]
Name=Lync
Exec=/usr/local/bin/lync.sh %u
Type=Application
Terminal=false
Categories=Network;InstantMessaging;
MimeType=x-scheme-handler/lync15;

ืื ื™ ืžืคืขื™ืœ ืืช xdg-open ืžื”ืงื•ื ืกื•ืœื”, ืžืขื‘ื™ืจ ืืช ืื•ืชื• ืงื™ืฉื•ืจ ืฉืžื’ื™ืข ืžื”ื“ืคื“ืคืŸ ื•... ื‘ืืžืจ. ืฉื•ื‘ ื–ื” ืื•ืžืจ ืฉื”ื•ื ืœื ื™ื›ื•ืœ ืœืขื‘ื“ ืืช ื”ืงื™ืฉื•ืจ.

ื›ืคื™ ืฉืžืชื‘ืจืจ, ืœื ืขื“ื›ื ืชื™ ืืช ืกืคืจื™ื™ืช ืกื•ื’ื™ ื”ืคื ื˜ื•ืžื™ืžื” ื”ืžืฉื•ื™ื›ื™ื ืœื™ื™ืฉื•ื ืฉืœื™. ื–ื” ื ืขืฉื” ื‘ืคืงื•ื“ื” ืคืฉื•ื˜ื”:

xdg-mime default lync.desktop x-scheme-handler/lync15

ืฉืคืฉื•ื˜ ืขื•ืจืš ืืช ื”ืงื•ื‘ืฅ ~/.config/mimeapps.list.

ื ื™ืกื™ื•ืŸ ืžืกืคืจ 2 ืขื ื”ืงืจื™ืื” xdg-open - ื•ืฉื•ื‘ ื›ื™ืฉืœื•ืŸ. ื›ืœื•ื, ืงืฉื™ื™ื ืœื ืžืคื—ื™ื“ื™ื ืื•ืชื ื•, ืืœื ืจืง ืžืœื‘ื™ื ืืช ื”ืขื ื™ื™ืŸ ืฉืœื ื•. ื•ื—ืžื•ืฉื™ื ื‘ื›ืœ ื”ื›ื•ื— ืฉืœ bash (ื›ืœื•ืžืจ, ืžืขืงื‘), ืื ื—ื ื• ืฆื•ืœืœื™ื ืขื ืจืืฉ ืœื ื™ืคื•ื™ ื‘ืื’ื™ื. ื—ืฉื•ื‘ ืœืฆื™ื™ืŸ ื›ืืŸ ืฉ-xdg-open ื”ื•ื ืจืง ืกืงืจื™ืคื˜ ืžืขื˜ืคืช.

bash -x xdg-open $url

ื ื™ืชื•ื— ื”ืคืœื˜ ืœืื—ืจ ืžืขืงื‘ ืžืชื‘ืจืจ ืžืขื˜ ืฉื”ืฉืœื™ื˜ื” ืžื•ืขื‘ืจืช ืืœื™ื• ืืงืกื•-ืคืชื•ื—. ื•ื–ื” ื›ื‘ืจ ืงื•ื‘ืฅ ื‘ื™ื ืืจื™ ื•ืงืฉื” ื™ื•ืชืจ ืœื”ื‘ื™ืŸ ืœืžื” ื”ื•ื ืžื—ื–ื™ืจ ืงื•ื“ ื”ื—ื–ืจื” ืœื ืžื•ืฆืœื— ื›ืฉืžืขื‘ื™ืจื™ื ืืœื™ื• ืงื™ืฉื•ืจ ื‘ืืจื’ื•ืžื ื˜.

ืœืื—ืจ ืฉืขื™ื™ื ืชื™ ื‘ื—ืœืงื™ื ื”ืคื ื™ืžื™ื™ื ืฉืœ xdg-open, ื’ื™ืœื™ืชื™ ืฉื”ื•ื ืžื ืชื— ืคืจืžื˜ืจื™ื ืกื‘ื™ื‘ืชื™ื™ื ืฉื•ื ื™ื ื•ืžืขื‘ื™ืจ ืืช ื”ืฉืœื™ื˜ื” ื”ืœืื” ืื• ืœื›ืœื™ื ืžืกื•ื™ืžื™ื ืœืคืชื™ื—ืช ืงื™ืฉื•ืจื™ ืงื‘ืฆื™ื ืกืคืฆื™ืคื™ื™ื ืœ-DE ืžืกื•ื™ื, ืื• ืฉื™ืฉ ืœื• ืคื•ื ืงืฆื™ื™ืช fallback open_generic

open_xfce()
{
if exo-open --help 2>/dev/null 1>&2; then
exo-open "$1"
elif gio help open 2>/dev/null 1>&2; then
gio open "$1"
elif gvfs-open --help 2>/dev/null 1>&2; then
gvfs-open "$1"
else
open_generic "$1"
fi

if [ $? -eq 0 ]; then
exit_success
else
exit_failure_operation_failed
fi
}

ืื˜ืžื™ืข ื›ืืŸ ื‘ืžื”ื™ืจื•ืช ืคืจื™ืฆื” ืงื˜ื ื” ืขื ื ื™ืชื•ื— ืฉืœ ื”ืืจื’ื•ืžื ื˜ ืฉืขื‘ืจ ื•ืื ืชืช ื”ืžื—ืจื•ื–ืช ื”ืกืคืฆื™ืคื™ืช ืฉืœื ื• ื ืžืฆืืช ืฉื lync15:, ืื– ืื ื—ื ื• ืžื™ื“ ืžืขื‘ื™ืจื™ื ืืช ื”ืฉืœื™ื˜ื” ืœืคื•ื ืงืฆื™ื” open_generic.

ื ื™ืกื™ื•ืŸ ืžืกืคืจ 3 ื•ืืชื” ื—ื•ืฉื‘ ืฉื–ื” ืขื‘ื“? ื›ืŸ, ืขื›ืฉื™ื•, ื›ืžื•ื‘ืŸ. ืื‘ืœ ื”ื•ื“ืขืช ื”ืฉื’ื™ืื” ื›ื‘ืจ ื”ืฉืชื ืชื”, ื–ื• ื›ื‘ืจ ื”ืชืงื“ืžื•ืช - ืขื›ืฉื™ื• ื”ื•ื ืืžืจ ืœื™ ืฉื”ืงื•ื‘ืฅ ืœื ื ืžืฆื ื•ื‘ืฆื•ืจื” ืฉืœ ืงื•ื‘ืฅ ื”ื•ื ื›ืชื‘ ืœื™ ืืช ืื•ืชื• ืงื™ืฉื•ืจ ืฉื”ื•ืขื‘ืจ ื›ื˜ื™ืขื•ืŸ.

ื”ืคืขื ื”ืชื‘ืจืจ ืฉื–ื• ืคื•ื ืงืฆื™ื” is_file_url_or_path, ืฉืžื ืชื— ืืช ืงื™ืฉื•ืจ ื”ืงื•ื‘ืฅ ื”ืžื•ืขื‘ืจ ืœืงืœื˜: file:// ืื• ืืช ื”ื ืชื™ื‘ ืœืงื•ื‘ืฅ ืื• ืžืฉื”ื• ืื—ืจ. ื•ื”ื‘ื“ื™ืงื” ืœื ืขื‘ื“ื” ื›ืžื• ืฉืฆืจื™ืš ื‘ื’ืœืœ ื”ืขื•ื‘ื“ื” ืฉืœืงื™ื“ื•ืžืช (ืกื›ื™ืžืช url) ืฉืœื ื• ื™ืฉ ืžืกืคืจื™ื, ื•ื”ื‘ื™ื˜ื•ื™ ื”ืจื’ื•ืœืจื™ ื‘ื•ื“ืง ืจืง ืืช ืขืจื›ืช ื”ืชื•ื•ื™ื ื”ืžื•ืจื›ื‘ืช ืž-:alpha: ื ืงื•ื“ื•ืช ื•ืžืงืคื™ื. ืœืื—ืจ ื”ืชื™ื™ืขืฆื•ืช ืขื ืชืงืŸ rfc3986 ืขื‘ื•ืจ ืžื–ื”ื” ืžืฉืื‘ ืื—ื™ื“ ื”ืชื‘ืจืจ ืฉื”ืคืขื ืžื™ืงืจื•ืกื•ืคื˜ ืœื ืžืคืจื” ื›ืœื•ื (ืœืžืจื•ืช ืฉื”ื™ื™ืชื” ืœื™ ื’ืจืกื” ื›ื–ื•). ืจืง ืžื—ืœืงืช ื”ืชื•ื•ื™ื :alpha: ืžื›ื™ืœื” ืจืง ืื•ืชื™ื•ืช ืžื”ืืœืคื‘ื™ืช ื”ืœื˜ื™ื ื™. ืื ื™ ืžืฉื ื” ื‘ืžื”ื™ืจื•ืช ืืช ื”ืกื™ืžื•ืŸ ื”ืจื’ื™ืœ ืœืืœืคืื ื•ืžืจื™. ืกื™ื™ืžืช, ืืชื” ืžื“ื”ื™ื, ื”ื›ืœ ืกื•ืฃ ืกื•ืฃ ืžืชื—ื™ืœ, ื”ืฉืœื™ื˜ื” ืื—ืจื™ ื›ืœ ื”ื‘ื“ื™ืงื•ืช ื ืชื•ื ื” ืœืืคืœื™ืงืฆื™ื™ืช ื”ืกืงืจื™ืคื˜ ืฉืœื ื•, ื”ืงื™ืฉื•ืจ ืฉืœื ื• ืžื•ืฆื’ ื‘ืงื•ื ืกื•ืœื”, ื”ื›ืœ ื›ืžื• ืฉืฆืจื™ืš. ืœืื—ืจ ืžื›ืŸ, ืื ื™ ืžืชื—ื™ืœ ืœื—ืฉื•ื“ ืฉื›ืœ ื”ื‘ืขื™ื•ืช ื‘-exo-open ื ื•ื‘ืขื•ืช ื’ื ืžืื™ืžื•ืช ืคื•ืจืžื˜ ื”ืงื™ืฉื•ืจ ืขืงื‘ ื”ืžืกืคืจื™ื ื‘ืกื›ืžื”. ื›ื“ื™ ืœื‘ื—ื•ืŸ ืืช ื”ื”ืฉืขืจื”, ืื ื™ ืžืฉื ื” ืืช ื”ืจื™ืฉื•ื ืžืกื•ื’ ืคื ื˜ื•ืžื™ืžืื™ ืฉืœ ื”ืืคืœื™ืงืฆื™ื” ืœืกื›ืžื” ื‘ืœื‘ื“ ืœื™ื ืฅ ' ื•ื”ื•ืืœื” - ื”ื›ืœ ืขื•ื‘ื“ ื‘ืœื™ ืœืขืงื•ืฃ ืืช ื”ืคื•ื ืงืฆื™ื” open_xfce. ืื‘ืœ ื–ื” ืœื ื™ืขื–ื•ืจ ืœื ื• ื‘ืฉื•ื ืฆื•ืจื”, ื›ื™ ื“ืฃ ื”ืื™ื ื˜ืจื ื˜ ืœื›ื ื™ืกื” ืœื›ื ืก ื™ื•ืฆืจ ืงื™ืฉื•ืจ ืขื lync15.

ืื–, ื”ื—ืœืง ื”ืจืืฉื•ืŸ ืฉืœ ื”ืžืกืข ื”ื•ืฉืœื. ืื ื—ื ื• ื™ื•ื“ืขื™ื ืื™ืš ืœื™ื™ืจื˜ ืฉื™ื—ืช ืงื™ืฉื•ืจ ื•ืื– ืฆืจื™ืš ืื™ื›ืฉื”ื• ืœืขื‘ื“ ืื•ืชื” ื•ืœื”ืขื‘ื™ืจ ืื•ืชื” ื‘ืชื•ืš Pidgin. ืขืœ ืžื ืช ืœื”ื‘ื™ืŸ ืื™ืš ื–ื” ืขื•ื‘ื“ ื‘ืื•ืคืŸ ืคื ื™ืžื™ ื‘ื”ื–ื ืช ื ืชื•ื ื™ื ื“ืจืš ืงื™ืฉื•ืจ ื‘ืชืคืจื™ื˜ "ื”ืฆื˜ืจืคื•ืช ืœื›ื ืก", ืฉื™ื‘ื˜ืชื™ ืืช ืžืื’ืจ Git ืฉืœ ืคืจื•ื™ืงื˜ Sipe ื•ื”ืชื›ื•ื ื ืชื™ ืœืฆืœื•ืœ ืฉื•ื‘ ืœืงื•ื“. ืื‘ืœ ืื–, ืœืžืจื‘ื” ื”ืžื–ืœ, ื ืžืฉื›ืชื™ ืœืชืกืจื™ื˜ื™ื ื‘ืงื˜ืœื•ื’ contrib/dbus/:

  • sipe-join-conference-with-uri.pl
  • sipe-join-conference-with-organizer-and-id.pl
  • sipe-call-phone-number.pl
  • SipeHelper.pm

ืžืกืชื‘ืจ ืฉื”ืชื•ืกืฃ ืฉืœ Sipe ื–ืžื™ืŸ ืœืื™ื ื˜ืจืืงืฆื™ื” ื“ืจืš dbus (ืื•ื˜ื•ื‘ื•ืก ืฉื•ืœื—ื ื™) ื•ื‘ืชื•ืš ื”ืกืงืจื™ืคื˜ื™ื ื™ืฉ ื“ื•ื’ืžืื•ืช ืœื”ืฆื˜ืจืคื•ืช ืœื•ื•ืขื™ื“ื” ื“ืจืš ืงื™ืฉื•ืจ, ืื• ื“ืจืš ืฉื ื”ืžืืจื’ืŸ ื•-conf-id, ืื• ืฉืืคืฉืจ ืœื™ื–ื•ื ืฉื™ื—ื” ื“ืจืš sip . ื–ื” ื‘ื“ื™ื•ืง ืžื” ืฉื”ื™ื” ื—ืกืจ ืœื ื•.

ืฉืœื‘ 2. ื™ื™ืฉื•ื ืžื˜ืคืœ ื‘ื”ืฆื˜ืจืคื•ืช ืื•ื˜ื•ืžื˜ื™ืช

ืžื›ื™ื•ื•ืŸ ืฉื™ืฉ ื“ื•ื’ืžืื•ืช ืžื•ื›ื ื•ืช ื‘ืคืจืœ, ื”ื—ืœื˜ืชื™ ืคืฉื•ื˜ ืœื”ืฉืชืžืฉ sipe-join-conference-with-uri.pl ื•ืชืฉื ื” ืื•ืชื• ืžืขื˜ ื›ื“ื™ ืœื”ืชืื™ื ืœืขืฆืžืš. ืื ื™ ื™ื›ื•ืœ ืœื›ืชื•ื‘ ื‘ืคืจืœ, ืื– ื–ื” ืœื ื’ืจื ืœืงืฉื™ื™ื ืžื™ื•ื—ื“ื™ื.

ืœืื—ืจ ื‘ื“ื™ืงืช ื”ืกืงืจื™ืคื˜ ื‘ื ืคืจื“, ื›ืชื‘ืชื™ ืืช ื”ืงืจื™ืื” ืฉืœื• ืœืงื•ื‘ืฅ lync.desktop. ื•ื–ื” ื”ื™ื” ื ื™ืฆื—ื•ืŸ! ื›ืืฉืจ ื ื›ื ืกื™ื ืœื“ืฃ ื”ื”ืฆื˜ืจืคื•ืช ืœื•ื•ืขื™ื“ื” ื•ืžืืคืฉืจื™ื ืœ-xdg-open ืœืคืขื•ืœ, ื—ืœื•ืŸ ื”ื•ื•ืขื™ื“ื” ื”ืงื•ืคืฅ ืž-Pidgin ื™ื™ืคืชื— ืื•ื˜ื•ืžื˜ื™ืช. ื›ืžื” ืฉืžื—ืชื™.
ืžืขื•ื“ื“ ืžื”ื”ืฆืœื—ื”, ื”ื—ืœื˜ืชื™ ืœืขืฉื•ืช ืืช ืื•ืชื• ื”ื“ื‘ืจ ืขื‘ื•ืจ ื”ื“ืคื“ืคืŸ ื”ืจืืฉื™ ืฉืœื™, Mozilla Firefox. ื›ืฉื ื›ื ืกื™ื ื“ืจืš ื”ืฉื•ืขืœ ื ืคืชื— ืขืžื•ื“ ืœื”ืจืฉืื” ื•ื‘ื—ืœืง ื”ืชื—ืชื•ืŸ ืžืžืฉ ื™ืฉ ื›ืคืชื•ืจ ื”ืฆื˜ืจืฃ ื‘ืืžืฆืขื•ืช ืชืงืฉื•ืจืช ืžืฉืจื“ื™ืช. ื”ื™ื ื–ื• ืฉืžืฉื›ื” ืืช ืชืฉื•ืžืช ืœื‘ื™. ื›ืืฉืจ ืืชื” ืœื•ื—ืฅ ืขืœื™ื• ื‘ื“ืคื“ืคืŸ, ื”ื•ื ืขื•ื‘ืจ ืœื›ืชื•ื‘ืช:

conf:sip:{user};gruu;opaque=app:conf:focus:id:{conf-id}%3Frequired-media=audio

ืืœื™ื• ื”ื•ื ืื•ืžืจ ืœื™ ื‘ืื“ื™ื‘ื•ืช ืฉื”ื•ื ืœื ื™ื•ื“ืข ืื™ืš ืœืคืชื•ื— ืืช ื–ื” ื•ืื•ืœื™ ืื™ืŸ ืœื™ ืืคืœื™ืงืฆื™ื” ืงืฉื•ืจื” ืœืคืจื•ื˜ื•ืงื•ืœ ื›ื–ื”. ื•ื‘ื›ืŸ, ื›ื‘ืจ ืขื‘ืจื ื• ืืช ื–ื”.

ืื ื™ ืจื•ืฉื ื‘ืžื”ื™ืจื•ืช ืืช ื™ื™ืฉื•ื ื”ืกืงืจื™ืคื˜ ืฉืœื™ ื’ื ืขื‘ื•ืจ ืขืจื›ืช uri conf ื•... ืฉื•ื ื“ื‘ืจ ืœื ืงื•ืจื”. ื”ื“ืคื“ืคืŸ ืžืžืฉื™ืš ืœื”ืชืœื•ื ืŸ ืฉืื™ืŸ ืืคืœื™ืงืฆื™ื” ืฉืžื˜ืคืœืช ื‘ืงื™ืฉื•ืจื™ื ืฉืœื™. ื‘ืžืงืจื” ื–ื”, ืงืจื™ืื” ืœ-xdg-open ืžื”ืžืกื•ืฃ ืขื ืคืจืžื˜ืจื™ื ืขื•ื‘ื“ืช ื‘ืฆื•ืจื” ืžื•ืฉืœืžืช.

"ื”ื’ื“ืจ ืžื˜ืคืœ ื‘ืคืจื•ื˜ื•ืงื•ืœ ืžื•ืชืื ืื™ืฉื™ืช ื‘ืคื™ื™ืจืคื•ืงืก" - ื ื›ื ืกืชื™ ืœืื™ื ื˜ืจื ื˜ ืขื ื”ืฉืืœื” ื”ื–ื•. ืœืื—ืจ ืฉืขื‘ืจื ื• ืžืกืคืจ ื“ื™ื•ื ื™ื ืขืœ stackoverflow (ื•ื”ื™ื›ืŸ ื”ื™ื™ื ื• ื‘ืœืขื“ื™ื•), ื ืจืื” ืฉื”ืชืฉื•ื‘ื” ื ืžืฆืื”. ืืชื” ืฆืจื™ืš ืœื™ืฆื•ืจ ืคืจืžื˜ืจ ืžื™ื•ื—ื“ ื‘ about: config (ื›ืžื•ื‘ืŸ ืžื—ืœื™ืฃ ืืช foo ื‘-conf):

network.protocol-handler.expose.foo = false

ืื ื—ื ื• ื™ื•ืฆืจื™ื ืืช ื–ื”, ืคื•ืชื—ื™ื ืืช ื”ืงื™ืฉื•ืจ ื•... ืื™ืŸ ื›ื–ื” ืžื–ืœ. ื”ื“ืคื“ืคืŸ, ื›ืื™ืœื• ื›ืœื•ื ืœื ืงืจื”, ืื•ืžืจ ืฉื”ื•ื ืœื ืžื›ื™ืจ ืืช ื”ืืคืœื™ืงืฆื™ื” ืฉืœื ื•.

ืื ื™ ืงื•ืจื ืืช ื”ืชื™ืขื•ื“ ื”ืจืฉืžื™ ืขืœ ืจื™ืฉื•ื ืคืจื•ื˜ื•ืงื•ืœ ืžืžื•ื–ื™ืœื”, ื™ืฉ ืืคืฉืจื•ืช ืœืจืฉื•ื ืืกื•ืฆื™ืืฆื™ื•ืช ื‘ืฉื•ืœื—ืŸ ื”ืขื‘ื•ื“ื” ืฉืœ gnome ืขืฆืžื• (ื”ื—ืœืคืช foo ื‘-conf, ื›ืžื•ื‘ืŸ):

gconftool-2 -s /desktop/gnome/url-handlers/foo/command '/path/to/app %s' --type String
gconftool-2 -s /desktop/gnome/url-handlers/foo/enabled --type Boolean true

ืื ื™ ื ืจืฉื, ืคื•ืชื— ืืช ื”ื“ืคื“ืคืŸ... ื•ืฉื•ื‘ ืืช ื”ื–ืงืŸ.

ื”ื ื” ืฉื•ืจื” ืžื”ืชื™ืขื•ื“ ืžื•ืฉื›ืช ืืช ืขื™ื ื™:

ื‘ืคืขื ื”ื‘ืื” ืฉืชืœื—ืฅ ืขืœ ืงื™ืฉื•ืจ ืฉืœ foo ืžืกื•ื’ ืคืจื•ื˜ื•ืงื•ืœ ืชื™ืฉืืœ ื‘ืื™ื–ื• ืืคืœื™ืงืฆื™ื” ืœืคืชื•ื— ืื•ืชื•.

โ€” ืกืžื™ื•ืŸ ืกืžื ื™ืš
- ืื”ื”

ืื ื—ื ื• ืœื ืœื•ื—ืฆื™ื ืขืœ ื”ืงื™ืฉื•ืจ, ืื‘ืœ ื“ืฃ ื”ืื™ื ื˜ืจื ื˜ ืคืฉื•ื˜ ืžืฉื ื” ืืช window.location ื‘ืืžืฆืขื•ืช javascript. ืื ื™ ื›ื•ืชื‘ ืงื•ื‘ืฅ HTML ืคืฉื•ื˜ ืขื ืงื™ืฉื•ืจ ืœืคืจื•ื˜ื•ืงื•ืœ conf, ืคื•ืชื— ืื•ืชื• ื‘ื“ืคื“ืคืŸ, ืœื•ื—ืฅ ืขืœ ื”ืงื™ืฉื•ืจ - ื™ื•ืก! ื ืคืชื— ื—ืœื•ืŸ ืฉืฉื•ืืœ ื‘ืื™ื–ื• ืืคืœื™ืงืฆื™ื” ืื ื—ื ื• ืฆืจื™ื›ื™ื ืœืคืชื•ื— ืืช ื”ืงื™ืฉื•ืจ ืฉืœื ื•, ื•ืฉื ื›ื‘ืจ ื™ืฉ ืœื ื• ืืช ืืคืœื™ืงืฆื™ื™ืช Lync ืฉืœื ื• ื‘ืจืฉื™ืžื” - ื™ืฉืจ ืจืฉืžื ื• ืื•ืชื” ื‘ื›ืœ ื”ื“ืจื›ื™ื ื”ืืคืฉืจื™ื•ืช. ืฉื ื‘ื—ืœื•ืŸ ื™ืฉ ืชื™ื‘ืช ืกื™ืžื•ืŸ "ื–ื›ื•ืจ ืืช ื”ื‘ื—ื™ืจื” ื•ืคืชื— ืชืžื™ื“ ืงื™ืฉื•ืจื™ื ื‘ืืคืœื™ืงืฆื™ื” ืฉืœื ื•", ืกืžืŸ ืื•ืชื”, ืœื—ืฅ ืขืœ ืื™ืฉื•ืจ. ื•ื–ื” ื”ื ื™ืฆื—ื•ืŸ ื”ืฉื ื™ - ื—ืœื•ืŸ ื”ื•ื•ืขื™ื“ื” ื ืคืชื—. ื™ื—ื“ ืขื ื–ืืช, ืคืชื™ื—ืช ื›ื ืกื™ื ืขื•ื‘ื“ืช ืœื ืจืง ื›ืืฉืจ ืœื•ื—ืฆื™ื ืขืœ ืงื™ืฉื•ืจ, ืืœื ื’ื ื‘ืžืขื‘ืจ ืžื“ืฃ ื”ื”ืฆื˜ืจืคื•ืช ืฉืื ื• ืฆืจื™ื›ื™ื ืœื›ื ืก.

ื•ืื– ื‘ื“ืงืชื™, ืžื—ืงืชื™ ืคืจืžื˜ืจื™ื network.protocol-handler.expose.conf ืœื ื”ืฉืคื™ืข ื‘ืฉื•ื ืื•ืคืŸ ืขืœ ืคืขื•ืœืช ื”ืคืจื•ื˜ื•ืงื•ืœ ื‘ืคื•ืงืก. ื”ืงื™ืฉื•ืจื™ื ื”ืžืฉื™ื›ื• ืœืขื‘ื•ื“.

ืžืกืงื ื”

ื”ืขืœื™ืชื™ ืืช ื›ืœ ื”ืขื‘ื•ื“ื” ืฉืœื™ ืœืžืื’ืจ GitHub; ืงื™ืฉื•ืจื™ื ืœื›ืœ ื”ืžืฉืื‘ื™ื ื™ื”ื™ื• ื‘ืกื•ืฃ ื”ืžืืžืจ.
ืื”ื™ื” ืžืขื•ื ื™ื™ืŸ ืœืงื‘ืœ ืžืฉื•ื‘ ืžืžื™ ืฉืจื•ืฆื” ืœื”ืฉืชืžืฉ ื‘ืขื‘ื•ื“ืชื™. ืขืœื™ ืœืฆื™ื™ืŸ ืžื™ื“ ืฉืขืฉื™ืชื™ ืืช ื›ืœ ื”ืคื™ืชื•ื— ืจืง ืขื‘ื•ืจ ืžืขืจื›ืช Linux Mint ืฉืœื™, ื›ืš ืฉื—ืœืง ืžื”ื”ืคืฆื•ืช ืื• ืฉื•ืœื—ื ื•ืช ื”ืขื‘ื•ื“ื” ื”ืื—ืจื™ื ืขืฉื•ื™ื™ื ืฉืœื ืœืขื‘ื•ื“ ื‘ื’ืจืกื” ื–ื•. ืื• ืœื™ืชืจ ื“ื™ื•ืง, ืื ื™ ืืคื™ืœื• ื›ืžืขื˜ ื‘ื˜ื•ื— ื‘ื–ื”, ื›ื™ ืชื™ืงื ืชื™ ืจืง ืคื•ื ืงืฆื™ื” ืื—ืช ื‘-xdg-open ืฉืžืชื™ื™ื—ืกืช ืจืง ืœ-DE ืฉืœื™. ืื ืืชื” ืจื•ืฆื” ืœื”ื•ืกื™ืฃ ืชืžื™ื›ื” ืœืžืขืจื›ื•ืช ืื—ืจื•ืช ืื• ืœืžื—ืฉื‘ื™ื ืฉื•ืœื—ื ื™ื™ื, ื›ืชื•ื‘ ืœื™ ื‘ืงืฉื•ืช ืžืฉื™ื›ื” ื‘-Github.

ื›ืœ ื”ืคืจื•ื™ืงื˜ ืœืงื— ืขืจื‘ ืื—ื“ ื›ื“ื™ ืœื”ืฉืœื™ื.

ืงื™ืฉื•ืจื™ื:

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”