Ukungena ngemvume okuzenzakalelayo kuzinkomfa ze-Lync ku-Linux

Sawubona Habr!

Kimina, lesi sisho sifana nezwe sawubona, njengoba ngigcine ngifinyelele ekushicilelweni kwami ​​kokuqala. Ngawuyeka lo mzuzu omuhle kakhulu isikhathi eside, ngoba kwakungekho lutho engangingabhala ngalo, futhi ngangingafuni ukuncela into eyayivele imunce izikhathi eziningi. Ngokuvamile, ekushicilelweni kwami ​​kokuqala bengifuna okuthile okwangempela, okuwusizo kwabanye futhi okuqukethe uhlobo oluthile lwenselelo nokuxazulula izinkinga. Futhi manje ngingabelana ngalokhu. Manje ake sikhulume ngakho konke ngohlelo.

entry

Konke kwaqala lapho esikhathini esithile esidlule ngilanda i-Linux Mint kukhompyutha yami yomsebenzi. Abantu abaningi cishe bayazi ukuthi i-Pidgin ene-plugin ye-Sipe iyindawo efanelekile ngokuphelele ye-Microsoft Lync (manje ebizwa ngokuthi i-Skype yebhizinisi) yezinhlelo ze-Linux. Ngenxa yokucaciswa komsebenzi wami, ngokuvamile kufanele ngibambe iqhaza ezingqungqutheleni ze-SIP, futhi lapho ngisengumsebenzi we-Windows, ukungena ezinkomfeni kwakuyinto yokuqala: sithola isimemo ngeposi, chofoza isixhumanisi sokungena, futhi sesilungele ukuhamba. .

Lapho ushintshela ohlangothini olumnyama lwe-Linux, yonke into yaba nzima kakhulu: yebo, ungangena futhi ezingqungqutheleni ku-Pidgin, kodwa ukwenza lokhu udinga ukukhetha inketho yokujoyina ingqungquthela kumenyu ezakhiweni ze-akhawunti yakho ye-SIP futhi efasiteleni elivulekayo, faka isixhumanisi senkomfa noma faka igama lomhleli kanye ne-conf id. Futhi ngemva kwesikhathi esithile ngaqala ukucabanga: "ingabe ngandlela-thile ukwenza kube lula lokhu?" Yebo, ungase uthi, kungani udinga lokhu?

Isinyathelo 1: Cwaninga

"Uma uthola okuthile ekhanda lakho, awukwazi ukuyikhipha ngesigxobo," kusho uNekrasov encwadini yakhe ethi "Who Lives Well in Rus'."

Ngakho, lapho umcabango usungenile ekhanda lami, ngemva kwesikhathi esithile kwavela umqondo wokuqala wokuqaliswa. Konke kwakubonakala kulula - udinga ukuvimba ukufinyelela kuzixhumanisi meet.company.com/user/confid — faka inqubo yesicelo sewebhu sendawo emotweni yakho kokuthi 127.0.0.1 futhi kokuthi /etc/hosts wengeze okufakwayo okumile kusizinda senkampani ongena ngaso engqungqutheleni, ekhomba kumsingathi wendawo. Okulandelayo, le seva yewebhu kufanele icubungule isixhumanisi esize kuyo futhi ngandlela thize isidlulisele ngaphakathi kwe-Pidgin (ngizosho ngaso leso sikhathi ukuthi kulesi sigaba ngangingazi ukuthi ngingayinika kanjani nhlobo). Isixazululo, yiqiniso, siphunga njengezinduku, kodwa singabahleli bezinhlelo, izinduku azisesabi (shit).

Bese, ngenhlanhla, ngandlela thize ngavula isixhumanisi sesimemo ku-Google Chrome (futhi ngokuvamile ngihlala ngisebenzisa i-Mozilla Firefox). Futhi okwangimangaza, ikhasi lewebhu lalibukeka lihluke ngokuphelele - lalingekho ifomu lokufaka idatha yomsebenzisi futhi ngokushesha ngemva kokufaka ikhasi kwakukhona isicelo sokuvula okuthile. xdg-kuvulwe. Ukuze nje ngizijabulise, ngichofoza okuthi “yebo” bese kuvela umlayezo wephutha - isixhumanisi lync15:confjoin?url=https://meet.company.com/user/confid asikwazi ukuvulwa. Hmm. Hlobo luni lwe-xdg-open lolu futhi ludingani ukuze izixhumanisi ezinjalo zivuleke? Ukufundwa kokuhlolwa kwesidumbu kwemibhalo kwembule ukuthi isibambi se-GUI esiza ukusebenzisa izinhlelo zokusebenza ezihlotshaniswayo noma ngamaphrothokholi ohlelo lwe-uri noma ngezinhlobo ezithile zamafayela. Izinhlangano zilungiswa kusetshenziswa imephu yohlobo lwe-mime. Ngakho-ke siyabona ukuthi senza ukusesha kwesicelo esifanayo sohlelo lwe-uri oluqanjwe lync15 futhi isixhumanisi sidluliselwa ku-xdg-open, okuthi, ngokombono, idlulisele kolunye uhlelo lokusebenza olunesibopho salolu hlobo lwesixhumanisi. Okuyinto, vele, asinakho ohlelweni lwethu. Uma kungenjalo, benzani-ke emhlabeni womthombo ovulekile? Kunjalo, sizozibhala ngokwethu.

Ukucwiliswa okwengeziwe emhlabeni we-Linux futhi ikakhulukazi ekutadisheni ukuthi igobolondo lesithombe (indawo yedeskithophu, DE) lisebenza kanjani, ngendlela, ngine-Xfce ku-Linux Mint, yabonisa ukuthi izinhlelo zokusebenza kanye nohlobo lwe-mime oluhlotshaniswa nayo ngokuvamile lubhalwa ngokuqondile amafayela ezinqamuleli anesandiso esithi .desktop. Hhayi-ke, kungani kungenjalo, ngakha isinqamuleli sohlelo lokusebenza esilula, okufanele sivele sethule iskripthi se-bash futhi sikhiphe ingxabano edluliselwe kuso kukhonsoli, nginikeza kuphela ifayela lesinqamuleli ngokwalo:

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

Ngethula i-xdg-open kusukela kukhonsoli, ngidlulisa isixhumanisi esifanayo esivela kusiphequluli futhi... bummer. Futhi ithi ayikwazi ukucubungula isixhumanisi.

Njengoba kwenzeka, angizange ngibuyekeze uhla lwemibhalo lwezinhlobo ze-mime ezihlotshaniswa nohlelo lwami lokusebenza. Lokhu kwenziwa ngomyalo olula:

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

emane ihlele ifayela ~/.config/mimeapps.list.

Inombolo yokuzama 2 ngocingo oluvulekile lwe-xdg - futhi futhi ukwehluleka. Lutho, ubunzima abusesabi, kodwa bukhulisa isithakazelo sethu. Futhi sihlome ngawo wonke amandla e-bash (okungukuthi ukulandelela), singena ngamakhanda ekususeni iphutha. Kubalulekile ukuqaphela lapha ukuthi i-xdg-open iwumbhalo wegobolondo nje.

bash -x xdg-open $url

Ukuhlaziya okukhiphayo ngemva kokulandelela kuba sobala kancane ukuthi ukulawula kudluliselwa kukho exo-open. Futhi leli seliyifayela kanambambili futhi kunzima kakhulu ukuqonda ukuthi kungani libuyisela ikhodi yokubuyisela engaphumelelanga lapho lidlulisa isixhumanisi kulo ngengxabano.

Ngemva kokubheka izinto zangaphakathi ze-xdg-open, ngathola ukuthi ihlaziya imingcele ehlukahlukene yezemvelo futhi idlulisele ukulawula kwamanye amathuluzi okuvula izixhumanisi zefayela eziqondene ne-DE ethile, noma inomsebenzi wokubuyela emuva. 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
}

Ngizoshumeka lapha ngokushesha ukugebenga okuncane ngokuhlaziya ingxabano edlulisiwe futhi uma uchungechunge lwethu oluthile lukhona lapho I-lync15:, bese sidlulisela ngokushesha isilawuli kumsebenzi open_generic.

Umzamo nombolo 3 futhi ucabanga ukuthi usebenzile? Yebo, manje, kunjalo. Kodwa umlayezo wephutha usuvele ushintshile, lokhu sekuvele kuyinqubekelaphambili - manje ubengitshela ukuthi ifayela alitholakalanga futhi ngesimo sefayela wangibhalela isixhumanisi esifanayo esidlule njengengxabano.

Kulokhu kube umsebenzi is_file_url_or_path, ehlaziya isixhumanisi sefayela esidluliselwe kokokufakayo: file:// noma indlela eya kufayela noma enye into. Futhi isheke alisebenzanga kahle ngenxa yokuthi isiqalo sethu (uhlelo lwe-url) sinezinombolo, futhi isisho esivamile sihlola kuphela isethi yohlamvu ehlanganisa :alpha: amachashazi namadeshi. Ngemva kokubonisana nezinga le-rfc3986 le isihlonzi sensiza efanayo Kwacaca ukuthi kulokhu iMicrosoft ayephuli lutho (yize nginenguqulo enjalo). Isigaba somlingiswa :alpha: siqukethe kuphela izinhlamvu zezinhlamvu zesiLatini. Ngokushesha ngishintsha isheke elivamile libe yi-alphanumeric. Kwenziwe, uyamangalisa, yonke into ekugcineni iqala, lawula ngemuva kokuthi wonke amasheke anikezwe kuhlelo lwethu lokusebenza lweskripthi, isixhumanisi sethu siboniswa kukhonsoli, konke kunjengoba kufanele kube. Ngemuva kwalokhu, ngiqala ukusola ukuthi zonke izinkinga nge-exo-open nazo zibangelwa ukuqinisekiswa kwefomethi yesixhumanisi ngenxa yezinombolo ezisesikimu. Ukuhlola i-hypothesis, ngishintsha ukubhaliswa kohlobo lwe-mime lwesicelo kube isikimu nje lync futhi voila - yonke into isebenza ngaphandle kokweqa umsebenzi ovulekile_xfce. Kodwa lokhu ngeke kusisize nganoma iyiphi indlela, ngoba ikhasi lewebhu lokungena engqungqutheleni lidala isixhumanisi ne-lync15.

Ngakho, ingxenye yokuqala yohambo isiqediwe. Siyazi ukuthi singabamba kanjani ucingo lwesixhumanisi bese sidinga ukuthi ngandlela thize lucutshungulwe futhi ludluliselwe ngaphakathi kwe-Pidgin. Ukuze uqonde ukuthi isebenza kanjani ngaphakathi lapho ufaka idatha ngesixhumanisi kumenyu "yokujoyina ingqungquthela", ngihlanganise inqolobane ye-Git yephrojekthi ye-Sipe futhi ngalungela ukucwila kukhodi futhi. Kodwa-ke, ngenhlanhla, ngakhangwa imibhalo kukhathalogi contrib/dbus/:

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

Kuvele ukuthi i-plugin ye-Sipe iyatholakala ukuze kusetshenziswe i-dbus (ibhasi ledeskithophu) futhi ngaphakathi kwemibhalo kunezibonelo zokujoyina ingqungquthela ngesixhumanisi, noma ngegama lomhleli kanye ne-conf-id, noma ungaqalisa ucingo ngokuphuza. . Yilokhu kanye ebesikushoda.

Isinyathelo sesi-2. Ukusebenzisa isibambi sokujoyina ngokuzenzakalelayo

Njengoba kunezibonelo ezenziwe ngomumo ePearl, nginqume ukusebenzisa nje sipe-join-conference-with-uri.pl futhi uyiguqule kancane ukuze ivumelane nawe. Ngingabhala ngoPearl, ngakho-ke akuzange kubangele ubunzima obuthile.

Ngemva kokuhlola iskripthi ngokwehlukana, ngabhala ucingo lwaso efayeleni lync.desktop. Futhi kwaba ukunqoba! Uma ufaka ikhasi lokujoyina ingqungquthela futhi uvumela i-xdg-open ukuthi iqalise, iwindi le-popup yenkomfa elisuka ku-Pidgin lizovuleka ngokuzenzakalelayo. Ngajabula kanjani.
Ngokukhuthazwa impumelelo, nganquma ukwenza okufanayo esipheqululini sami esikhulu, iMozilla Firefox. Uma ungena ngempungushe, ikhasi lokugunyazwa liyavuleka futhi ngezansi kunenkinobho joyina usebenzisa i-office communicator. Uyena owangidonsa amehlo. Uma uchofoza kuyo esipheqululini, iya ekhelini:

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

lapho engitshela khona ngomusa ukuthi akazi ukuthi ayivula kanjani futhi, mhlawumbe, anginaso isicelo esihlobene nephrothokholi enjalo. Hhayi-ke sesidlulile kulokhu.

Ngibhalisa ngokushesha isicelo sami sombhalo kanye nesikimu se-uri conf futhi ... akukho okwenzekayo. Isiphequluli sihlala sikhononda ngokuthi alukho uhlelo lokusebenza oluphethe izixhumanisi zami. Kulokhu, ukubiza i-xdg-open kusuka kukhonsoli enamapharamitha kusebenza kahle.

“Setha isibambi sephrothokholi ngokwezifiso ku-firefox” - Ngingene ku-inthanethi ngalo mbuzo. Ngemva kokudlula ezingxoxweni eziningi mayelana ne-stackoverflow (futhi besiyoba kuphi ngaphandle kwayo), kubonakala sengathi impendulo itholakele. Udinga ukudala ipharamitha ekhethekile ku mayelana: i-config (Yebo kungena esikhundleni se-foo nge-conf):

network.protocol-handler.expose.foo = false

Siyayidala, vula isixhumanisi futhi ... ayikho inhlanhla enjalo. Isiphequluli, njengokungathi akwenzekanga lutho, sithi asazi uhlelo lwethu lokusebenza.

Ngifunda imibhalo esemthethweni yokubhalisa iphrothokholi evela ku-Mozilla, kukhona inketho yokubhalisa izinhlangano kudeskithophu ye-gnome ngokwayo (ibuyisela i-foo nge-conf, kunjalo):

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

Ngiyabhalisa, ngivule isiphequluli... ngiphinde nentshebe.

Nawu umugqa ovela kumadokhumenti ongidonsa amehlo:

Ngokuzayo uma uchofoza isixhumanisi sohlobo lwephrothokholi-fo uzobuzwa ukuthi yiluphi uhlelo lokusebenza ongaluvula ngalo.

- Semyon Semenych
- Ahh

Asichofozi isixhumanisi, kodwa ikhasi lewebhu livele liguqule i-window.location nge-javascript. Ngibhala ifayela le-html elilula ngesixhumanisi sephrothokholi ye-conf, ngiyivule esipheqululini, chofoza isixhumanisi - Yos! Iwindi liyavuleka libuza ukuthi yiluphi uhlelo lokusebenza esiludingayo ukuze sivule isixhumanisi sethu, futhi lapho sesivele sinesicelo sethu se-Lync ohlwini - sibhalise ngokwethembeka ngazo zonke izindlela. Lapho efasiteleni kukhona ibhokisi lokuhlola elithi “khumbula ukukhetha futhi uhlale uvule izixhumanisi kuhlelo lwethu lokusebenza”, kuphawule, chofoza kulungile. Futhi lokhu ukunqoba kwesibili - iwindi lenkomfa liyavuleka. Ngesikhathi esifanayo, izingqungquthela zokuvula akusebenzi kuphela uma uchofoza isixhumanisi, kodwa futhi lapho usuka ekhasini lokujoyina esiyidingayo ukuya engqungqutheleni.

Ngabe sengihlola, ngisusa amapharamitha network.protocol-handler.expose.conf akuzange kuthinte nganoma iyiphi indlela ukusebenza kwephrothokholi kuFox. Izixhumanisi ziqhubekile nokusebenza.

isiphetho

Ngilayishe wonke umsebenzi wami endaweni yokugcina ye-GitHub; izixhumanisi kuzo zonke izinsiza zizoba sekupheleni kwesihloko.
Ngizoba nentshisekelo yokuthola impendulo evela kulabo abafuna ukusebenzisa umsebenzi wami. Kufanele ngiqaphele ngokushesha ukuthi ngenze konke ukuthuthukiswa kohlelo lwami lwe-Linux Mint kuphela, ngakho-ke okunye ukusatshalaliswa noma amadeskithophu angahle angasebenzi kuleyo nguqulo. Noma kunalokho, ngicishe ngiqiniseke ngalokhu, ngoba nginamathisele umsebenzi o-1 kuphela ku-xdg-open ohlobene ne-DE yami kuphela. Uma ufuna ukwengeza ukusekelwa kwezinye izinhlelo noma amadeskithophu, ngibhalele izicelo zokudonsa ku-Github.

Yonke iphrojekthi ithathe ubusuku obu-1 ukuqeda.

Izinkomba:

Source: www.habr.com

Engeza amazwana