Wọle aifọwọyi si awọn apejọ Lync lori Lainos

Hey Habr!

Fun mi, gbolohun yii jọra si aye hello, niwọn igba ti Mo ti de si atẹjade akọkọ mi. Mo fi akoko iyanu yii silẹ fun igba pipẹ, nitori pe ko si nkankan lati kọ nipa, ati pe Emi ko tun fẹ lati mu ohun kan ti o ti fa mu tẹlẹ ni awọn igba pupọ. Ni gbogbogbo, fun atẹjade akọkọ mi Mo fẹ nkan atilẹba, ti o wulo fun awọn miiran ti o ni iru ipenija kan ati ipinnu iṣoro ninu. Ati nisisiyi Mo le pin eyi. Bayi jẹ ki ká soro nipa ohun gbogbo ni ibere.

Ifihan

Gbogbo rẹ bẹrẹ nigbati akoko diẹ sẹhin Mo ṣe igbasilẹ Mint Linux lori kọnputa iṣẹ mi. Ọpọlọpọ eniyan le mọ pe Pidgin pẹlu ohun itanna Sipe jẹ aropo pipe fun Microsoft Lync (ti a pe ni Skype fun iṣowo ni bayi) fun awọn eto Linux. Nitori awọn pato ti iṣẹ mi, Mo nigbagbogbo ni lati kopa ninu awọn apejọ SIP, ati nigbati mo jẹ oṣiṣẹ Windows, titẹ awọn apejọ jẹ alakọbẹrẹ: a gba ifiwepe nipasẹ meeli, tẹ ọna asopọ iwọle, ati pe a ti ṣetan lati lọ. .

Nigbati o ba yipada si ẹgbẹ dudu ti Linux, ohun gbogbo di idiju diẹ sii: nitorinaa, o tun le wọle si awọn apejọ ni Pidgin, ṣugbọn lati ṣe eyi o nilo lati yan aṣayan alapejọ apapọ ninu atokọ ni awọn ohun-ini ti akọọlẹ SIP rẹ ati ninu ferese ti o ṣii, fi ọna asopọ kan si apejọpọ tabi tẹ orukọ oluṣeto ati conf id. Ati lẹhin igba diẹ Mo bẹrẹ si ronu: “Ṣe o ṣee ṣe lati ṣe eyi ni ọna kan rọrun?” Bẹẹni, o le sọ, kilode ti apaadi ti o nilo eyi? Emi yoo kuku joko lori Windows ki o ma fẹ ọkan mi.

Igbesẹ 1: Iwadi

“Ti o ba ni ariwo diẹ ninu ori rẹ, iwọ ko le kọlu rẹ pẹlu igi,” Nekrasov sọ ninu iṣẹ rẹ “Tani N gbe Dara ni Rus.”

Nitorinaa, ni kete ti ero naa ba wọle si ori mi, lẹhin igba diẹ imọran akọkọ fun imuse dide. Ohun gbogbo dabi ẹnipe o rọrun - o nilo lati iwọle si awọn ọna asopọ pade.company.com/user/confid - fi sori ẹrọ ilana ohun elo wẹẹbu agbegbe lori ọkọ ayọkẹlẹ rẹ ni 127.0.0.1 ati ni /etc/hosts ṣafikun titẹsi aimi fun agbegbe ile-iṣẹ nipasẹ eyiti o tẹ apejọ naa, tọka si localhost. Nigbamii ti, olupin wẹẹbu yii gbọdọ ṣe ilana ọna asopọ ti o wa si ati bakan gbe lọ si inu Pidgin (Emi yoo sọ lẹsẹkẹsẹ pe ni ipele yii Emi ko tun ni imọran bi o ṣe le fun ni rara). Ojutu naa, dajudaju, n run bi awọn crutches, ṣugbọn awa jẹ awọn olutọpa, awọn crutches ko dẹruba wa (shit).

Lẹhinna, nipasẹ aye, Mo ṣii ọna asopọ ifiwepe ni Google Chrome (ati nigbagbogbo Mo lo Mozilla Firefox). Ati si iyalẹnu mi, oju-iwe wẹẹbu naa yatọ patapata - ko si fọọmu fun titẹ data olumulo ati lẹsẹkẹsẹ lẹhin titẹ oju-iwe naa ibeere kan wa lati ṣii nkan nipasẹ xdg-ṣii. Fun igbadun, Mo tẹ “bẹẹni” ati pe ifiranṣẹ aṣiṣe kan han - ọna asopọ lync15:confjoin?url=https://meet.company.com/user/confid ko le ṣii. Unh. Iru xdg-ìmọ wo ni eyi ati kini o nilo ni ibere fun iru awọn ọna asopọ lati ṣii? Kika iwe-iku-lẹhin ti iwe naa fihan pe o jẹ olutọju GUI ti o ṣe iranlọwọ ṣiṣe awọn ohun elo ti o somọ boya pẹlu awọn ilana fun ero uri tabi pẹlu awọn iru faili kan pato. Awọn ẹgbẹ ti wa ni tunto nipasẹ mime-iru aworan agbaye. Nitorinaa a rii pe a n wa ohun elo ti o baamu fun ero uri ti a npè ni Lync15 ati ọna asopọ naa ti kọja si xdg-open, eyiti lẹhinna, ni imọ-jinlẹ, yẹ ki o fi si diẹ ninu awọn ohun elo ti o ni iduro fun iru ọna asopọ yii. Ewo, nitorinaa, a ko ni ninu eto wa. Ti kii ba ṣe bẹ, lẹhinna kini wọn ṣe ni agbaye orisun ṣiṣi? Iyẹn tọ, a yoo kọ funrararẹ.

Immersion siwaju sii ni agbaye ti Linux ati ni pataki ni kikọ bi ikarahun ayaworan (agbegbe tabili, DE) ṣiṣẹ, nipasẹ ọna, Mo ni Xfce ni Linux Mint, fihan pe awọn ohun elo ati iru mime ti o ni nkan ṣe pẹlu rẹ nigbagbogbo ni kikọ taara ni ọna abuja awọn faili pẹlu itẹsiwaju .desktop. O dara, kilode ti kii ṣe, Mo ṣẹda ọna abuja ohun elo ti o rọrun, eyiti o yẹ ki o ṣe ifilọlẹ iwe afọwọkọ bash kan ki o jade ariyanjiyan ti o kọja si console, Mo pese faili ọna abuja nikan funrararẹ:

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

Mo ṣe ifilọlẹ xdg-ṣii lati console, n kọja ọna asopọ kanna ti o wa lati ẹrọ aṣawakiri ati… bummer. Lẹẹkansi o sọ pe ko le ṣe ilana ọna asopọ naa.

Bi o ti wa ni jade, Emi ko ṣe imudojuiwọn iwe-itọsọna ti awọn iru mime-iṣọpọ pẹlu ohun elo mi. Eyi ni a ṣe pẹlu aṣẹ ti o rọrun:

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

eyi ti o rọrun satunkọ faili ~/.config/mimeapps.list.

Nọmba igbiyanju 2 pẹlu ipe ṣiṣi xdg - ati ikuna lẹẹkansi. Ko si nkankan, awọn iṣoro ko dẹruba wa, ṣugbọn nikan mu anfani wa. Ati ni ihamọra pẹlu gbogbo agbara ti bash (ie wiwa kakiri), a tẹ ori ni akọkọ sinu n ṣatunṣe aṣiṣe. O ṣe pataki lati ṣe akiyesi nibi pe xdg-open jẹ iwe afọwọkọ ikarahun nikan.

bash -x xdg-open $url

Ṣiṣayẹwo abajade lẹhin wiwa kakiri o di mimọ diẹ pe iṣakoso lẹhinna gbe lọ si exo-ìmọ. Ati pe eyi ti jẹ faili alakomeji tẹlẹ ati pe o nira diẹ sii lati ni oye idi ti o fi pada koodu ipadabọ ti ko ni aṣeyọri nigbati o ba kọja ọna asopọ si rẹ ni ariyanjiyan.

Lẹhin ti wo nipasẹ awọn inu ti xdg-open, Mo rii pe o ṣe itupalẹ ọpọlọpọ awọn aye ayika ati kọja iṣakoso siwaju boya si diẹ ninu awọn irinṣẹ fun ṣiṣi awọn ọna asopọ faili ni pato si DE kan pato, tabi o ni iṣẹ-pada sẹhin ìmọ_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
}

Emi yoo yara fi sabe nibi gige kekere kan pẹlu itupalẹ ariyanjiyan ti o kọja ati ti o ba wa ni pato ti o wa nibẹ linc15:, lẹhinna a gbe iṣakoso lẹsẹkẹsẹ si iṣẹ naa ìmọ_generic.

Igbiyanju nọmba 3 ati pe o ro pe o ṣiṣẹ? Bẹẹni, ni bayi, dajudaju. Ṣugbọn ifiranṣẹ aṣiṣe ti yipada tẹlẹ, eyi ti ni ilọsiwaju tẹlẹ - bayi o n sọ fun mi pe a ko ri faili naa ati ni irisi faili kan o kọwe si mi ọna asopọ kanna ti o kọja bi ariyanjiyan.

Ni akoko yii o yipada lati jẹ iṣẹ kan jẹ_faili_url_tabi_ọna, eyiti o ṣe itupalẹ ọna asopọ faili ti o kọja si titẹ sii: faili: // tabi ọna si faili tabi nkan miiran. Ati pe ayẹwo naa ko ṣiṣẹ ni deede nitori otitọ pe ìpele wa (eto url) ni awọn nọmba, ati pe ikosile deede nikan n ṣayẹwo eto ihuwasi ti o ni: alpha: awọn aami ati awọn dashes. Lẹhin ijumọsọrọ boṣewa rfc3986 fun aṣọ awọn oluşewadi idamo O han gbangba pe ni akoko yii Microsoft ko rú ohunkohun (botilẹjẹpe Mo ni iru ẹya kan). O kan ni kilaasi ohun kikọ: alpha: ni awọn lẹta nikan ti alfabeti Latin ninu. Mo yara yi ayẹwo deede pada si alphanumeric. Ti ṣe, o jẹ iyalẹnu, ohun gbogbo nikẹhin bẹrẹ, iṣakoso lẹhin ti gbogbo awọn sọwedowo ti fun ohun elo iwe afọwọkọ wa, ọna asopọ wa ti han lori console, ohun gbogbo jẹ bi o ti yẹ. Lẹhin eyi, Mo bẹrẹ lati fura pe gbogbo awọn iṣoro pẹlu exo-open tun jẹ nitori afọwọsi ti ọna asopọ ọna asopọ nitori awọn nọmba ninu ero naa. Lati ṣe idanwo idawọle, Mo yi iforukọsilẹ iru mime ti ohun elo naa pada si ero kan lync ati voila - ohun gbogbo n ṣiṣẹ laisi bori iṣẹ open_xfce. Ṣugbọn eyi kii yoo ṣe iranlọwọ fun wa ni eyikeyi ọna, nitori oju-iwe wẹẹbu fun titẹ si apejọ naa ṣẹda ọna asopọ pẹlu lync15.

Nitorinaa, apakan akọkọ ti irin-ajo naa ti pari. A mọ bi a ṣe le ṣe idilọwọ ipe ọna asopọ kan lẹhinna o nilo lati ni ilọsiwaju bakan ati kọja inu Pidgin. Lati le ni oye bi o ṣe n ṣiṣẹ ni inu nigbati titẹ data sii nipasẹ ọna asopọ kan ninu akojọ aṣayan “darapọ mọ apejọ kan”, Mo ṣe akopọ ibi ipamọ Git ti iṣẹ akanṣe Sipe ati murasilẹ lati besomi sinu koodu naa lẹẹkansi. Ṣugbọn lẹhinna, ni oriire, Mo ni ifamọra nipasẹ awọn iwe afọwọkọ ti o wa ninu katalogi naa idasi/dbus/:

  • sipe-join-conference-with-uri.pl
  • sipe-join-conference-with-oluṣeto-ati-id.pl
  • sipe-ipe-foonu-nọmba.pl
  • SipeHelper.pm

O wa ni pe ohun itanna Sipe wa fun ibaraenisepo nipasẹ dbus (ọkọ tabili tabili) ati inu awọn iwe afọwọkọ awọn apẹẹrẹ wa ti didapọ mọ apejọ kan nipasẹ ọna asopọ kan, boya nipasẹ orukọ oluṣeto ati conf-id, tabi o le bẹrẹ ipe nipasẹ sip . Eleyi jẹ gangan ohun ti a ni won sonu.

Igbesẹ 2. Ṣiṣe olutọju autojoin

Niwọn bi awọn apẹẹrẹ ti a ti ṣetan ni Pearl, Mo pinnu lati lo nikan sipe-join-conference-with-uri.pl ki o si yipada diẹ lati ba ara rẹ mu. Mo le kọ ni Pearl, nitorinaa ko fa awọn iṣoro kan pato.

Lẹhin idanwo iwe afọwọkọ lọtọ, Mo kọ ipe rẹ sinu faili naa lync.desktop. Ati pe o jẹ iṣẹgun! Nigbati titẹ si oju-iwe idapọ apejọ ati gbigba xdg-ṣii lati ṣiṣẹ, window igarun apejọ lati Pidgin yoo ṣii laifọwọyi. Bawo ni mo ṣe yọ.
Ni iyanju nipasẹ aṣeyọri, Mo pinnu lati ṣe kanna fun ẹrọ aṣawakiri akọkọ mi, Mozilla Firefox. Nigbati o wọle nipasẹ fox, oju-iwe kan fun aṣẹ yoo ṣii ati ni isalẹ pupọ bọtini kan wa da lilo ọfiisi asoro. Arabinrin ni o gba akiyesi mi. Nigbati o ba tẹ lori ẹrọ aṣawakiri, o lọ si adirẹsi naa:

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

si eyiti o fi inurere sọ fun mi pe ko mọ bi a ṣe le ṣii ati, boya, Emi ko ni ohun elo ti o somọ fun iru ilana kan. O dara, a ti kọja nipasẹ eyi.

Mo yara forukọsilẹ ohun elo iwe afọwọkọ mi tun fun ero uri conf ati... ko si ohun ti o ṣẹlẹ. Ẹrọ aṣawakiri naa n ṣe ẹdun pe ko si ohun elo ti o mu awọn ọna asopọ mi. Ni idi eyi, pipe xdg-ìmọ lati console pẹlu awọn paramita ṣiṣẹ daradara.

“Ṣeto oluṣakoso ilana ilana aṣa ni Firefox” - Mo lọ lori ayelujara pẹlu ibeere yii. Lẹhin lilọ nipasẹ ọpọlọpọ awọn ijiroro lori stackoverflow (ati nibo ni a yoo wa laisi rẹ), o dabi pe a ti rii idahun naa. O nilo lati ṣẹda paramita pataki kan ninu nipa: konfigi (dajudaju rirọpo foo pẹlu conf):

network.protocol-handler.expose.foo = false

A ṣẹda rẹ, ṣii ọna asopọ ati ... ko si iru orire. Ẹrọ aṣawakiri naa, bi ẹnipe ko si nkan ti o ṣẹlẹ, sọ pe ko mọ ohun elo wa.

Mo n ka iwe aṣẹ osise lori fiforukọṣilẹ ilana kan lati Mozilla, aṣayan wa lati forukọsilẹ awọn ẹgbẹ ni tabili gnome funrararẹ (rọpo foo pẹlu conf, nitorinaa):

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

Mo forukọsilẹ, ṣii ẹrọ aṣawakiri… ati lẹẹkansi irungbọn.

Nibi laini kan lati inu iwe gba oju mi:

Nigbamii ti o ba tẹ ọna asopọ kan ti foo iru-ilana iwọ yoo beere lọwọ rẹ kini ohun elo lati ṣii pẹlu.

- Semyon Semenych
- Ahh

A ko tẹ ọna asopọ, ṣugbọn oju-iwe wẹẹbu n yipada ni irọrun window.location nipasẹ JavaScript. Mo kọ faili html ti o rọrun pẹlu ọna asopọ si ilana conf, ṣii ni ẹrọ aṣawakiri, tẹ ọna asopọ - Yos! Ferese kan ṣii ti o beere ninu kini ohun elo ti a nilo lati ṣii ọna asopọ wa, ati pe nibẹ a ti ni ohun elo Lync wa tẹlẹ ninu atokọ - a forukọsilẹ ni otitọ ni gbogbo awọn ọna ti o ṣeeṣe. Nibẹ ni window nibẹ ni apoti ayẹwo "ranti aṣayan ati nigbagbogbo ṣii awọn ọna asopọ ninu ohun elo wa", samisi, tẹ ok. Ati pe eyi ni iṣẹgun keji - window apejọ ṣii. Ni akoko kanna, ṣiṣi awọn apejọ ṣiṣẹ kii ṣe nigbati o ba tẹ ọna asopọ nikan, ṣugbọn tun nigba gbigbe lati oju-iwe didapọ a nilo si apejọ naa.

Lẹhinna Mo ṣayẹwo, piparẹ awọn paramita network.protocol-handler.expose.conf ko ni ipa ni eyikeyi ọna iṣẹ ti ilana ni Fox. Awọn ọna asopọ tẹsiwaju lati ṣiṣẹ.

ipari

Mo ti gbe gbogbo iṣẹ mi si ibi ipamọ GitHub; awọn ọna asopọ si gbogbo awọn orisun yoo wa ni ipari nkan naa.
Emi yoo nifẹ lati gba esi lati ọdọ awọn ti o fẹ lati lo iṣẹ mi. Mo yẹ ki o ṣe akiyesi lẹsẹkẹsẹ pe Mo ṣe gbogbo idagbasoke nikan fun eto Mint Linux mi, nitorinaa diẹ ninu awọn pinpin tabi awọn kọnputa agbeka le ma ṣiṣẹ ni ẹya yẹn. Tabi dipo, Mo paapaa ni idaniloju eyi, nitori pe Mo paṣe iṣẹ 1 nikan ni xdg-ìmọ ti o ni ibatan si DE mi nikan. Ti o ba fẹ ṣafikun atilẹyin fun awọn ọna ṣiṣe miiran tabi awọn kọnputa agbeka, kọ mi fa awọn ibeere lori Github.

Gbogbo ise agbese mu 1 aṣalẹ lati pari.

Awọn ọna asopọ:

orisun: www.habr.com

Fi ọrọìwòye kun