Kulowetsamo zokha kumisonkhano ya Lync pa Linux

Pa Habr!

Kwa ine, mawu awa akufanana ndi dziko lapansi moni, popeza pomaliza pake ndidapeza buku langa loyamba. Ndinasiya mphindi yabwinoyi kwa nthawi yayitali, popeza panalibe chilichonse choti ndilembe, komanso sindinkafuna kuyamwa chinthu chomwe chidayamwa kale nthawi zambiri. Nthawi zambiri, pakufalitsa kwanga koyamba ndidafuna china chake choyambirira, chothandiza kwa ena komanso chokhala ndi zovuta komanso kuthetsa mavuto. Ndipo tsopano ndikhoza kugawana izi. Tsopano tiyeni tikambirane za chirichonse mu dongosolo.

kulowa

Zonse zidayamba pomwe nthawi ina ndidatsitsa Linux Mint pakompyuta yanga yantchito. Anthu ambiri mwina amadziwa kuti Pidgin yokhala ndi Sipe plugin ndiyolowa m'malo mwa Microsoft Lync (yomwe tsopano imatchedwa Skype for business) pamakina a Linux. Chifukwa cha ntchito yanga, nthawi zambiri ndimayenera kutenga nawo mbali pamisonkhano ya SIP, ndipo pamene ndinali wogwira ntchito pa Windows, kulowa m'misonkhano kunali koyambirira: timalandira kuyitanidwa ndi makalata, dinani ulalo wolowera, ndipo takonzeka kupita. .

Mukasinthira ku mbali yamdima ya Linux, zonse zidakhala zovuta kwambiri: inde, mutha kulowanso mumisonkhano ku Pidgin, koma kuti muchite izi muyenera kusankha cholowa chamsonkhano mu menyu omwe ali muakaunti yanu ya SIP ndi pawindo lomwe likutsegulidwa, ikani ulalo wa msonkhano kapena lowetsani dzina la wokonza ndi conf id. Ndipo patapita nthawi ndinayamba kuganiza kuti: "Kodi ndizotheka kufewetsa izi?" Inde, munganene kuti, chifukwa chiyani gehena mukufunikira izi?

Gawo 1: Kafukufuku

"Mukadakhala ndi chidwi m'mutu mwanu, simungathe kuwugwetsa ndi mtengo," adatero Nekrasov m'buku lake "Who Lives Well in Rus".

Choncho, lingaliro litangolowa m'mutu mwanga, patapita nthawi lingaliro loyamba lokhazikitsa lidawuka. Chilichonse chinkawoneka chophweka - muyenera kulepheretsa kupeza maulalo meet.company.com/user/confid - khazikitsani pulogalamu yapaintaneti yapagalimoto yanu pa 127.0.0.1 ndipo mu /etc/hosts onjezerani cholowa chokhazikika pagawo la kampani momwe mumalowera nawo pamsonkhano, kuloza kwa localhost. Chotsatira, seva yapaintaneti iyi iyenera kukonza ulalo womwe udabwerako ndikuwusamutsa mkati mwa Pidgin (ndinena nthawi yomweyo kuti pakadali pano sindimadziwa momwe ndingamupatse). Yankho, ndithudi, limanunkhiza ngati ndodo, koma ndife opanga mapulogalamu, ndodo sizimatiwopsyeza (zoyipa).

Kenako, mwamwayi, ndinatsegula ulalo woitanira ku Google Chrome (ndipo nthawi zambiri ndimagwiritsa ntchito Mozilla Firefox). Ndipo chodabwitsa changa, tsamba lawebusayiti linkawoneka mosiyana kwambiri - panalibe mawonekedwe olowetsa deta ya ogwiritsa ntchito ndipo atangolowa patsambalo panali pempho loti mutsegule china chake. xdg-lotseguka. Kungosangalala, ndikudina "inde" ndipo uthenga wolakwika umawonekera - ulalo lync15:confjoin?url=https://meet.company.com/user/confid sungathe kutsegulidwa. Hmm. Ndi mtundu wanji wa xdg-open iyi ndipo ikufunika chiyani kuti maulalo otere atseguke? Kuwerenga kwakufa kwa zolembedwazo kunawonetsa kuti ndi GUI yogwira ntchito yomwe imathandiza kuyendetsa mapulogalamu ogwirizana ndi ma protocol a uri scheme kapena ndi mafayilo enaake. Mabungwe amakonzedwa kudzera pa mapu amtundu wa mime. Chifukwa chake tikuwona kuti tikufufuza pulogalamu yofananira ya uri scheme yotchedwa lync15 ndipo ulalo umaperekedwa ku xdg-open, womwe ndiye, mwachidziwitso, uyenera kuupereka ku pulogalamu ina yomwe imayang'anira ulalo wamtunduwu. Chimene, ndithudi, tiribe mu dongosolo lathu. Ngati sichoncho, ndiye amachita chiyani m'dziko lotseguka? Ndiko kulondola, tidzalemba tokha.

Kumizidwa kwina mu dziko la Linux makamaka pophunzira momwe chigoba chojambula (desktop chilengedwe, DE) chimagwirira ntchito, mwa njira, ndili ndi Xfce mu Linux Mint, adawonetsa kuti ntchito ndi mtundu wa mime womwe umagwirizanitsidwa nawo nthawi zambiri zimalembedwa mwachindunji. mafayilo achidule okhala ndi extension .desktop. Chabwino, bwanji, ndimapanga njira yachidule yogwiritsira ntchito, yomwe iyenera kungoyambitsa bash script ndikutulutsa mkangano womwe waperekedwa kwa console, ndimangopereka fayilo yokhayokhayo:

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

Ndikuyambitsa xdg-open kuchokera ku console, ndikudutsa ulalo womwewo womwe umachokera kwa osatsegula ndi ... bummer. Apanso akuti silingathe kukonza ulalo.

Monga momwe zinakhalira, sindinasinthire chikwatu cha mitundu ya mime yogwirizana ndi pulogalamu yanga. Izi zimachitika ndi lamulo losavuta:

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

zomwe zimangosintha fayilo ~/.config/mimeapps.list.

Yesani nambala 2 ndi foni ya xdg-open - komanso kulephera. Palibe, zovuta sizimatiwopsa, koma zimangowonjezera chidwi chathu. Ndipo tili ndi mphamvu zonse za bash (mwachitsanzo, kutsatira), timadumphira pamutu pakukonza zolakwika. Ndikofunika kuzindikira apa kuti xdg-open ndi chipolopolo chabe.

bash -x xdg-open $url

Kusanthula zomwe zatuluka pambuyo potsata zimawonekera pang'ono kuti kuwongolera kumasamutsidwa exo-otsegula. Ndipo iyi ndi fayilo ya binary kale ndipo ndizovuta kumvetsetsa chifukwa chake imabwezeretsanso nambala yobwereza yosapambana popereka ulalo pamkangano.

Nditayang'ana mkati mwa xdg-open, ndidapeza kuti imasanthula magawo osiyanasiyana achilengedwe ndikudutsanso ku zida zina zotsegulira mafayilo okhudzana ndi DE, kapena ili ndi ntchito yobwerera. 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
}

Ndiphatikizira apa kaphatikizidwe kakang'ono ndikusanthula mkangano womwe wadutsa ndipo ngati gawo lathu laling'ono lili pamenepo lync15:, ndiye nthawi yomweyo timasamutsa kuwongolera ku ntchitoyo open_generic.

Yesani nambala 3 ndipo mukuganiza kuti idagwira ntchito? Eya, tsopano, ndithudi. Koma uthenga wolakwika wasintha kale, izi zapita kale - tsopano akundiuza kuti fayiloyo sinapezeke ndipo mu mawonekedwe a fayilo adandilembera ulalo womwewo wadutsa ngati mkangano.

Nthawi iyi idakhala ntchito is_file_url_or_path, yomwe imasanthula ulalo wa fayilo womwe waperekedwa ku zolowetsa: file:// kapena njira yopita ku fayilo kapena china chake. Ndipo cheke sichinagwire ntchito bwino chifukwa chakuti chiyambi chathu (url scheme) chili ndi manambala, ndipo mawu okhazikika amangoyang'ana mawonekedwe omwe ali ndi :alpha: madontho ndi mitsinje. Pambuyo pokambirana ndi rfc3986 muyezo wa chizindikiritso cha zida zofananira Zinadziwika kuti nthawi ino Microsoft sikuphwanya chilichonse (ngakhale ndinali ndi mtundu wotere). Gulu lokhalo :alpha: lili ndi zilembo za zilembo zachilatini zokha. Ndimasintha cheke chokhazikika kukhala alphanumeric. Mwachita, ndinu odabwitsa, zonse zimayamba, kuwongolera pambuyo poti macheke onse aperekedwa ku pulogalamu yathu ya script, ulalo wathu ukuwonetsedwa pa kontrakitala, zonse zili momwe ziyenera kukhalira. Zitatha izi, ndikuyamba kukayikira kuti mavuto onse omwe ali ndi exo-open amakhalanso chifukwa cha kutsimikizika kwa mawonekedwe a ulalo chifukwa cha manambala omwe ali pachiwembu. Kuti ndiyese malingaliro, ndimasintha kulembetsa kwa mtundu wa mime kukhala chiwembu lync ndi voila - chirichonse chimagwira ntchito popanda kupitirira ntchito ya open_xfce. Koma izi sizidzatithandiza mwanjira iliyonse, chifukwa tsamba lawebusayiti lolowera msonkhano limapanga ulalo ndi lync15.

Choncho, gawo loyamba la ulendo watha. Timadziwa kuyitanitsa kuyimba kwa ulalo kenako kumafunika kukonzedwa ndikudutsa mkati mwa Pidgin. Kuti ndimvetsetse momwe zimagwirira ntchito mkati ndikulowa mu data kudzera pa ulalo wa "join a conference", ndinapanga chosungira cha Git cha projekiti ya Sipe ndikukonzekera kulowanso mu code. Koma ndiye, mwamwayi, ndinakopeka ndi zolemba zomwe zili m'kabukhuli contrib/dbus/:

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

Zikuoneka kuti pulogalamu yowonjezera ya Sipe imapezeka kuti igwirizane kudzera pa dbus (desktop bus) ndipo mkati mwazolemba pali zitsanzo zolowa nawo msonkhano kudzera pa ulalo, mwina kudzera pa dzina la okonza ndi conf-id, kapena mutha kuyambitsa kuyimba kudzera pa sip. . Izi ndi zomwe tinali kusowa.

Gawo 2. Kukhazikitsa chogwirizira autojoin

Popeza pali zitsanzo zokonzeka ku Pearl, ndinaganiza zongogwiritsa ntchito sipe-join-conference-with-uri.pl ndikusintha pang'ono kuti zigwirizane ndi inu nokha. Ndikhoza kulemba mu Pearl, kotero sizinabweretse vuto lililonse.

Nditayesa script padera, ndinalemba kuyitana kwake mu fayilo lync.desktop. Ndipo chinali chipambano! Mukalowa patsamba lojowina pamsonkhano ndikulola xdg-open kuti igwire ntchito, zenera la popup la msonkhano kuchokera ku Pidgin limangotseguka. Ndinasangalala bwanji.
Chifukwa cholimbikitsidwa ndi chipambanocho, ndinaganiza zochitiranso msakatuli wanga wamkulu, Mozilla Firefox. Mukalowa mkati mwa nkhandwe, tsamba lovomerezeka limatsegulidwa ndipo pansi kwambiri pali batani kujowina pogwiritsa ntchito communicator office. Iye ndi amene anandikopa chidwi. Mukadina pa msakatuli, imapita ku adilesi:

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

komwe amandiuza mokoma mtima kuti sakudziwa momwe angatsegule, ndipo mwina, ndilibe pulogalamu yolumikizana nayo. Chabwino, ife tadutsa kale mu izi.

Ndimalembetsa mwachangu script yanga komanso ya uri scheme CONF ndipo ... palibe chomwe chimachitika. Msakatuli amangodandaula kuti palibe pulogalamu yomwe imagwira maulalo anga. Pankhaniyi, kuyimba xdg-open kuchokera ku console yokhala ndi magawo kumagwira ntchito bwino.

"Khazikitsani makonda a protocol mu firefox" - Ndinapita pa intaneti ndi funso ili. Pambuyo pokambirana zingapo pa stackoverflow (ndipo tikanakhala kuti popanda izo), zikuwoneka ngati yankho linapezeka. Muyenera kupanga parameter yapadera za: config (ndipo m'malo mwa foo ndi conf):

network.protocol-handler.expose.foo = false

Timapanga, tsegulani chiyanjano ndi ... palibe mwayi wotere. Msakatuli, ngati kuti palibe chomwe chachitika, akunena kuti sadziwa ntchito yathu.

Ndikuwerenga zolemba zovomerezeka zolembetsa protocol kuchokera ku Mozilla, pali mwayi wolembetsa mayanjano pakompyuta ya gnome (m'malo mwa foo ndi conf, inde):

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

Ndimalembetsa, tsegulani msakatuli ... komanso ndevu.

Nawu mzere wa zolembedwa zomwe zimandichititsa chidwi:

Nthawi ina mukadina ulalo wa protocol-type foo mudzafunsidwa kuti mutsegule nawo pulogalamu yanji.

- Semyon Semenych
-Ahh

Sitidina ulalo, koma tsamba lawebusayiti limangosintha windows.location kudzera pa javascript. Ndimalemba fayilo yosavuta ya html yokhala ndi ulalo wa protocol ya conf, tsegulani msakatuli, dinani ulalo - Yos! Zenera limatsegulidwa ndikufunsa kuti ndi pulogalamu iti yomwe tikufunika kutsegula ulalo wathu, ndipo pamenepo tili ndi pulogalamu yathu ya Lync pamndandanda - tidalembetsa moona mtima m'njira zonse. Pazenera pali bokosi loyang'ana "kumbukirani zomwe mwasankha ndipo nthawi zonse mutsegule maulalo mu pulogalamu yathu", ikani chizindikiro, dinani chabwino. Ndipo ichi ndi chigonjetso chachiwiri - zenera la msonkhano limatsegulidwa. Panthawi imodzimodziyo, kutsegulira misonkhano sikumagwira ntchito pokhapokha mutadina ulalo, komanso mukachoka patsamba lojowina lomwe tikufunika kupita ku msonkhano.

Kenako ndinayang'ana, ndikuchotsa magawo network.protocol-handler.expose.conf sizinakhudze m'njira iliyonse kugwira ntchito kwa protocol ku Fox. Maulalo anapitiriza kugwira ntchito.

Pomaliza

Ndakweza ntchito zanga zonse kumalo osungirako a GitHub; maulalo kuzinthu zonse adzakhala kumapeto kwa nkhaniyo.
Ndikhala ndi chidwi cholandira mayankho kuchokera kwa omwe akufuna kugwiritsa ntchito ntchito yanga. Ndiyenera kuzindikira nthawi yomweyo kuti ndidapanga zonse zomwe ndidapanga pa Linux Mint system yanga, kotero magawo ena kapena ma desktops sangagwire ntchito mumtunduwu. Kapena m'malo, ndili wotsimikiza za izi, chifukwa ndidalemba ntchito imodzi yokha mu xdg-open yomwe ikukhudzana ndi DE yanga yokha. Ngati mukufuna kuwonjezera thandizo pamakina ena kapena ma desktops, ndilembeni kukoka zopempha pa Github.

Ntchito yonseyi idatenga 1 madzulo kuti ithe.

Zolemba:

Source: www.habr.com

Kuwonjezera ndemanga