Nbanye akpaaka na ọgbakọ Lync na Linux

Ndewo, Habr!

Maka m, nkebi ahịrịokwu a dabara na ndewo ụwa, ebe ọ bụ na m mechara nweta akwụkwọ mbụ m. M na-ewepụ oge a magburu onwe ya ruo ogologo oge, ebe ọ bụ na ọ dịghị ihe ọ bụla m ga-ede banyere ya, na achọghịkwa m ịṅụ ihe na-aṅụrị ọṅụ n'ọtụtụ oge. N'ozuzu, maka akwụkwọ mbụ m, achọrọ m ihe mbụ, bara uru nye ndị ọzọ ma nwee ụdị ihe ịma aka na ngwọta nsogbu. Ma ugbu a enwere m ike ịkekọrịta nke a. Ugbu a, ka anyị kwuo banyere ihe niile n'usoro.

entry

Ọ malitere mgbe ụfọdụ oge gara aga m budata Linux Mint na kọmputa ọrụ m. Ọtụtụ ndị mmadụ nwere ike mara na Pidgin nwere Sipe ngwa mgbakwunye bụ ezigbo nnọchi maka Microsoft Lync (nke a na-akpọ Skype maka azụmaahịa) maka sistemụ Linux. N'ihi nkọwapụta nke ọrụ m, ana m etinyekarị aka na ọgbakọ SIP, mgbe m bụ onye ọrụ Windows, ịbanye na ọgbakọ bụ elementrị: anyị na-enweta akwụkwọ ịkpọ òkù site na mail, pịa njikọ nbanye, anyị adịla njikere ịga. .

Mgbe ị na-atụgharị n'akụkụ gbara ọchịchịrị nke Linux, ihe niile ghọrọ ihe mgbagwoju anya: n'ezie, ị nwekwara ike ịbanye na nnọkọ na Pidgin, mana iji mee nke a, ị ga-ahọrọ nhọrọ njikọ ogbako na menu na njirimara nke akaụntụ SIP gị na n'ime. mpio nke mepere, tinye njikọ na ogbako ma ọ bụ tinye aha onye nhazi na conf id. Ma mgbe oge ụfọdụ gasịrị, amalitere m iche: "ọ nwere ike ime ka nke a dị mfe?" Ee, ị nwere ike ịsị, gịnị kpatara hel ji chọọ nke a, ọ ga-akara m mma ịnọdụ ala na Windows ma ghara ịfụ m n'obi.

Nzọụkwụ 1: Nyocha

"Ọ bụrụ na ị nweta isi gị, ị gaghị eji osisi kụpụ ya," Nekrasov kwuru n'ọrụ ya "Onye bi na Rus nke ọma."

Ya mere, ozugbo echiche ahụ banyere n'isi m, mgbe oge ụfọdụ gasịrị, echiche mbụ maka mmejuputa bilitere. Ihe niile dị ka ọ dị mfe - ịkwesịrị igbochi ịnweta njikọ izute.company.com/user/confid - wụnye usoro ngwa weebụ mpaghara na ụgbọ ala gị na 127.0.0.1 na na /etc/hosts tinye ntinye aha maka ngalaba ụlọ ọrụ nke ị na-abanye na ogbako, na-atụ aka na localhost. Na-esote, sava weebụ a ga-edozi njikọ nke bịara na ya ma nyefee ya n'ụzọ ụfọdụ n'ime Pidgin (M ga-ekwu ozugbo na n'oge a, m ka na-amaghị otú e si enye ya ma ọlị). Ngwọta ahụ, n'ezie, na-esi ísì dị ka crutches, ma anyị bụ ndị mmemme, crutches adịghị atụ anyị egwu (shit).

Mgbe ahụ, site na ohere, m meghere njikọ ọkpụkpọ òkù na Google Chrome (na m na-ejikarị Mozilla Firefox mgbe niile). Ọ tụrụ m n'anya, ibe weebụ ahụ dị nnọọ iche - ọ nweghị ụdị maka ịbanye data onye ọrụ na ozugbo ịbanye na ibe ahụ, a rịọrọ ka imepe ihe site na. xdg-emeghe. Naanị maka ntụrụndụ, m pịa "ee" na ozi njehie pụtara - njikọ lync15:confjoin?url=https://meet.company.com/user/confid enweghị ike imeghe. Hmm. Kedu ụdị xdg-oghe bụ nke a na gịnị ka ọ chọrọ ka njikọ ndị dị otú ahụ mepee? Ọgụgụ akwụkwọ ọnwụ nwụrụ anwụ gosiri na ọ bụ onye na-ahụ maka GUI na-enyere aka mee ngwa ndị metụtara ya na ụkpụrụ maka atụmatụ uri ma ọ bụ ụdị faịlụ ụfọdụ. A na-ahazi ndị otu site na maapụ ụdị mime. Yabụ na anyị na-ahụ na anyị na-achọ ngwa dabara adaba maka atụmatụ uri aha ya bụ lync15 na njikọ ahụ gafere na xdg-open, nke mgbe ahụ, na tiori, kwesịrị ịnyefe ya na ngwa ụfọdụ na-ahụ maka ụdị njikọ a. Kedu nke, n'ezie, anyị enweghị na usoro anyị. Ọ bụrụ na ọ bụghị, gịnị ka ha na-eme na ụwa mepere emepe? Ọ dị mma, anyị ga-ede ya n'onwe anyị.

Imikpu ọzọ n'ime ụwa nke Linux na karịsịa n'ịmụ otú shei eserese (desktọpụ desktọọpụ, DE) si arụ ọrụ, n'ụzọ, enwere m Xfce na Linux Mint, gosiri na ngwa na ụdị mime jikọtara ya na-edekarị ya ozugbo. ụzọ mkpirisi faịlụ nwere ndọtị .desktop. Ọ dị mma, gịnị kpatara na m na-emepụta ụzọ mkpirisi ngwa dị mfe, nke kwesịrị ịmalite edemede bash wee wepụta arụmụka ahụ na njikwa ahụ, m na-enye naanị faịlụ mkpirisi n'onwe ya:

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

M na-ewepụta xdg-oghe site na njikwa, na-agafe otu njikọ ahụ na-abịa site na ihe nchọgharị na ... bummer. Ọzọ ọ na-ekwu na ọ nweghị ike hazie njikọ ahụ.

Dịka ọ siri pụta, emeliteghị m ndekọ nke ụdị mime metụtara na ngwa m. A na-eji iwu dị mfe eme nke a:

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

nke na-edozi faịlụ ahụ naanị ~/.config/mimeapps.list.

Mgbalị 2 na oku mepere emepe xdg - na ọdịda ọzọ. Ọ dịghị ihe ọ bụla, ihe isi ike adịghị atụ anyị egwu, kama na-eme ka mmasị anyị dị elu. Ma jiri ike niile nke bash (ya bụ tracing), anyị na-abanye n'isi n'ime nbibi. Ọ dị mkpa ịmara ebe a na xdg-open bụ naanị edemede shei.

bash -x xdg-open $url

Nyochaa mmepụta mgbe ịchọtachara ọ na-aghọ ntakịrị doro anya na a na-ebufe njikwa na ya exo-oghe. Na nke a abụrụlarị faịlụ ọnụọgụ abụọ na ọ na-esiri ike ịghọta ihe mere ọ na-eji weghachi koodu nkwụghachi na-enweghị ihe ịga nke ọma mgbe ị na-agafe njikọ na ya na arụmụka.

Mgbe m lere anya na internals nke xdg-open, achọpụtara m na ọ na-enyocha usoro gburugburu ebe obibi dị iche iche ma na-agafe njikwa n'ihu ma ọ bụ na ụfọdụ ngwaọrụ maka imepe njikọ faịlụ kpọmkwem na otu DE, ma ọ bụ na ọ nwere ọrụ ọdịda. 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
}

Aga m etinye ngwa ngwa ebe a obere mbanye anataghị ikike na nyocha nke arụmụka agafeela ma ọ bụrụ na substring anyị akọwapụtara dị ebe ahụ linc15:, mgbe ahụ, anyị na-ebufe njikwa ozugbo na ọrụ ahụ open_generic.

Mgbalị nọmba 3 ma ị chere na ọ rụrụ ọrụ? Ee, ugbu a, n'ezie. Ma ozi njehie ahụ agbanweela, nke a enweela ọganihu - ugbu a ọ na-agwa m na achọtaghị faịlụ ahụ na n'ụdị faịlụ o degaara m otu njikọ ahụ gafere dị ka arụmụka.

Oge a ọ tụgharịrị bụrụ ọrụ bụ_file_url_ma ọ bụ ụzọ, nke na-enyocha njikọ faịlụ gafere na ntinye: faịlụ: // ma ọ bụ ụzọ faịlụ ahụ ma ọ bụ ihe ọzọ. Ntụle ego ahụ arụghịkwa ọrụ nke ọma n'ihi na prefix anyị (atụmatụ url) nwere ọnụọgụ, na okwu mgbe niile na-enyocha naanị agwa agwa nke nwere: alfa: ntụpọ na dashes. Mgbe nyochachara ọkọlọtọ rfc3986 maka edo akụrụngwa nchọpụta Ọ bịara doo anya na oge a Microsoft anaghị emebi ihe ọ bụla (n'agbanyeghị na enwere m ụdị ụdị a). Naanị klaasị agwa: alfa: nwere naanị mkpụrụedemede nke mkpụrụedemede Latịn. M na-agbanwe ngwa ngwa nlele oge niile ka ọ bụrụ ọnụọgụgụ. Emeela, ị dị ịtụnanya, ihe niile na-amalite n'ikpeazụ, na-achịkwa mgbe nyochachara niile na ngwa edemede anyị, njikọ anyị gosipụtara na njikwa, ihe niile dị ka ọ kwesịrị ịdị. Mgbe nke a gasịrị, m na-amalite na-enyo enyo na nsogbu niile na exo-open bụkwa n'ihi nkwenye nke usoro njikọ n'ihi ọnụọgụgụ dị na atụmatụ ahụ. Iji nwalee echiche ahụ, m na-agbanwe ndebanye ụdị mime nke ngwa ahụ ka ọ bụrụ naanị atụmatụ lync na voila - ihe niile na-arụ ọrụ n'ebughị ụzọ mebie ọrụ open_xfce. Ma nke a agaghị enyere anyị aka n'ụzọ ọ bụla, n'ihi na ibe weebụ maka ịbanye ogbako na-emepụta njikọ na lync15.

Ya mere, akụkụ mbụ nke njem ahụ agwụla. Anyị maara ka esi egbochi oku njikọ wee chọzie nhazi ya n'ụzọ ụfọdụ wee gafere n'ime Pidgin. Iji ghọta ka o si arụ ọrụ n'ime mgbe ị na-abanye data site na njikọ dị na menu "sonye na ogbako", emechiri m ebe nchekwa Git nke ọrụ Sipe wee dịrị njikere ịbanye na koodu ahụ ọzọ. Ma mgbe ahụ, ọ dabara nke ọma, ihe odide ndị dị na katalọgụ ahụ masịrị m inye onyinye/dbus/:

  • sipe-join-conference-with-uri.pl
  • sipe-join-conference-na-ahazi-na-id.pl
  • sipe-call-phone-nọmba.pl
  • SipeHelper.pm

Ọ tụgharịrị na Sipe ngwa mgbakwunye dị maka mmekọrịta site na dbus (bọs desktọpụ) na n'ime scripts e nwere ihe atụ nke isonye na ogbako site na njikọ, ma site na onye nhazi aha na conf-id, ma ọ bụ na ị nwere ike na-amalite oku site sip. . Nke a bụ kpọmkwem ihe na-efunahụ anyị.

Nzọụkwụ 2. Na-emejuputa ihe njikwa autojoin

Ebe ọ bụ na enwere ihe atụ emebere na Pearl, ekpebiri m iji naanị ya sipe-join-conference-with-uri.pl ma gbanwee ya ntakịrị ka ọ dabara onwe gị. Enwere m ike ide na Pearl, yabụ na ọ kpataraghị nsogbu ọ bụla.

Mgbe m nwalechara edemede ahụ iche, edere m oku ya n'ime faịlụ ahụ lync.desktọpụ. Ma ọ bụ mmeri! Mgbe ị na-abanye ibe njikọ ogbako ma kwe ka xdg-emeghe ka ọ na-agba ọsọ, windo mpụta ogbako sitere na Pidgin ga-emeghe na-akpaghị aka. Otú m si ṅụrịa ọṅụ.
N'ịbụ onye ihe ịga nke ọma gbara m ume, ekpebiri m ime otu ihe ahụ maka ihe nchọgharị m bụ Mozilla Firefox. Mgbe ịbanye na fox, ibe maka ikike ga-emepe ma na ala ala enwere bọtịnụ sonyere n'iji onye nkwukọrịta ozi ụlọ ọrụ. Ọ bụ ya dọọrọ mmasị m. Mgbe ị pịrị ya na ihe nchọgharị ahụ, ọ na-aga na adreesị:

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

nke o ji obiọma gwa m na ọ maghị ka e si emepe ya na, ikekwe, enweghị m ngwa ejikọtara maka usoro iwu dị otú ahụ. Ọfọn, anyị agabigalarị nke a.

Ana m edebanye aha ngwa ngwa script m maka atụmatụ uri conf na ... ọ dịghị ihe na-eme. Ihe nchọgharị ahụ na-eme mkpesa na ọ nweghị ngwa na-ejikwa njikọ m. N'okwu a, ịkpọ xdg-open si console na parampat na-arụ ọrụ nke ọma.

"Tọọ onye na-ahụ maka protocol omenala na firefox" - Eji m ajụjụ a wee banye n'ịntanetị. Mgbe anyị nwesịrị mkparịta ụka dị iche iche na stackoverflow (na ebe anyị ga-anọ na-enweghị ya), ọ dị ka a chọtara azịza ya. Ịkwesịrị ịmepụta parameter pụrụ iche n'ime banyere: config (N'ezie iji conf dochie foo):

network.protocol-handler.expose.foo = false

Anyị na-emepụta ya, mepee njikọ na ... enweghị chi dị otú ahụ. Ihe nchọgharị ahụ, dị ka a ga-asị na ọ nweghị ihe mere, na-ekwu na ọ maghị ngwa anyị.

Ana m agụ akwụkwọ gọọmentị na ịdenye aha usoro sitere na Mozilla, enwere nhọrọ ịdebanye aha ndị otu na desktọpụ gnome n'onwe ya (dochie foo na conf, n'ezie):

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

Ana m edebanye aha, mepee ihe nchọgharị ahụ... na ọzọ afụ ọnụ.

Ebe a ahịrị sitere na akwụkwọ ahụ dọtara m anya:

Oge ọzọ ị pịrị njikọ nke foo ụdị protocol, a ga-ajụ gị ngwa ị ga-eji meghee ya.

- Semyon Semenych
- Ahuhu

Anyị anaghị pịnye njikọ ahụ, mana ibe weebụ na-agbanwe naanị window.location site na javascript. M na-ede faịlụ html dị mfe na njikọ nke conf protocol, mepee ya na ihe nchọgharị ahụ, pịa njikọ ahụ - Yos! Window mepere na-ajụ nke ngwa anyị kwesịrị imepe njikọ anyị, ebe ahụ anyị enweela ngwa Lync na listi ahụ - anyị debara aha ya n'eziokwu n'ụzọ niile enwere ike. Enwekwara igbe nrịbama na mpio "cheta nhọrọ wee mepee njikọ mgbe niile na ngwa anyị", lelee ya wee pịa OK. Na nke a bụ mmeri nke abụọ - windo ogbako na-emepe. N'otu oge ahụ, mmeghe ogbako na-arụ ọrụ ọ bụghị naanị mgbe ịpịrị njikọ, kamakwa mgbe ị na-esi na ibe njikọ anyị chọrọ na ogbako.

M wee lelee, ihichapụ paramita network.protocol-handler.expose.conf emetụtaghị ọrụ nke protocol na Fox n'ụzọ ọ bụla. Njikọ ahụ gara n'ihu na-arụ ọrụ.

nkwubi

Ebugowo m ọrụ m niile na ebe nchekwa GitHub;
M ga-enwe mmasị ịnata nzaghachi n'aka ndị chọrọ iji ọrụ m. Ekwesịrị m mara ozugbo na emere m mmepe niile naanị maka sistemụ Mint Linux m, yabụ ụfọdụ nkesa ma ọ bụ desktọpụ ndị ọzọ nwere ike ọ gaghị arụ ọrụ na ụdị ahụ. Ma ọ bụ kama, ọ fọrọ nke nta ka m kwenye na nke a, n'ihi na ejiri m naanị otu ọrụ na xdg-open nke metụtara naanị DE m. Ọ bụrụ na ịchọrọ ịgbakwunye nkwado maka sistemu ma ọ bụ desktọpụ ndị ọzọ, dee m arịrịọ dọtara na Github.

Ọrụ ahụ niile were 1 mgbede iji wuchaa.

Ntughari:

isi: www.habr.com

Tinye a comment