ΠΠ΄ΡΠ°Π²Π΅ΠΉΡΠ΅, Π₯Π°Π±Ρ!
ΠΠ° ΠΌΠ΅Π½ ΡΠ°Π·ΠΈ ΡΡΠ°Π·Π° Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° hello world, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π½Π°ΠΉ-Π½Π°ΠΊΡΠ°Ρ ΡΡΠΈΠ³Π½Π°Ρ Π΄ΠΎ ΠΏΡΡΠ²Π°ΡΠ° ΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ. ΠΡΠ»Π³ΠΎ ΠΎΡΠ»Π°Π³Π°Ρ ΡΠΎΠ·ΠΈ Π·Π½Π°ΡΠΈΠΌ ΠΌΠΎΠΌΠ΅Π½Ρ, Π·Π°ΡΠΎΡΠΎ Π½ΡΠΌΠ°ΡΠ΅ ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΠΈΡΠ°, Π° Π½Π΅ ΠΌΠΈ ΡΠ΅ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΎΠ±ΡΡΠΆΠ΄Π°ΠΌ Π½Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π²Π΅ΡΠ΅ ΡΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°Π½ΠΈ. ΠΡΡΡΠ½ΠΎΡΡ, Π·Π° ΠΏΡΡΠ²Π°ΡΠ° ΡΠΈ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ ΠΈΡΠΊΠ°Ρ Π½Π΅ΡΠΎ ΠΎΡΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΎ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° Π΄ΡΡΠ³ΠΈΡΠ΅ ΠΈ ΡΡΠ΄ΡΡΠΆΠ°ΡΠΎ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΠΏΡΠ΅Π΄ΠΈΠ·Π²ΠΈΠΊΠ°ΡΠ΅Π»ΡΡΠ²ΠΎ ΠΈ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ. Π Π΅ΡΠΎ, ΠΌΠΎΠ³Π° Π΄Π° ΡΠΏΠΎΠ΄Π΅Π»Ρ ΡΠΎΠ²Π°. Π‘Π΅Π³Π° Π·Π° Π²ΡΠΈΡΠΊΠΎ ΠΏΠΎ ΡΠ΅Π΄.
ΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
ΠΡΠΈΡΠΊΠΎ Π·Π°ΠΏΠΎΡΠ½Π° Ρ ΡΠΎΠ²Π°, ΡΠ΅ ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Ρ Linux Mint Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΡ. ΠΠ½ΠΎΠ³ΠΎ ΠΎΡ Π²Π°Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π·Π½Π°ΡΡ, ΡΠ΅ Pidgin Ρ ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° Sipe Π΅ ΡΡΠ²ΡΠ΅ΠΌ Π΄ΠΎΠ±ΡΠ° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° Π½Π° Microsoft Lync (ΡΠ΅Π³Π° Π½Π°ΡΠ΅ΡΠ΅Π½ Skype for business) Π·Π° Linux ΡΠΈΡΡΠ΅ΠΌΠΈ. ΠΠΎΡΠ°Π΄ΠΈ ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° ΠΌΠΈ ΡΠ΅ΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ°ΡΡΠ²Π°ΠΌ Π² SIP-ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ, ΠΈ ΠΊΠΎΠ³Π°ΡΠΎ Π±ΡΡ Windows ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», Π²Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Π±Π΅ΡΠ΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΠΎ: ΠΏΠΎΠ»ΡΡΠ°Π²Π°Ρ ΠΌΠ΅ ΠΏΠΎΠΊΠ°Π½Π° ΠΏΠΎ ΠΈΠΌΠ΅ΠΉΠ», ΠΊΠ»ΠΈΠΊΠ²Π°Ρ ΠΌΠ΅ Π½Π° Π»ΠΈΠ½ΠΊΠ° Π·Π° Π²Ρ ΠΎΠ΄ ΠΈ Π³ΠΎΡΠΎΠ²ΠΎ, Π±ΡΡ ΠΌΠ΅ Π²ΡΡΡΠ΅.
ΠΠΎΠ³Π°ΡΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Ρ
Π½Π° ΡΡΠΌΠ½Π°ΡΠ° ΡΡΡΠ°Π½Π° Π½Π° Linux, Π²ΡΠΈΡΠΊΠΎ ΡΡΠ°Π½Π° ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΎ: Π²Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ Ρ Pidgin ΡΡΡΠΎ Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π½ΠΎ ΡΠ°ΠΌ ΡΡΡΠ±Π²Π°ΡΠ΅ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° Π²Π°ΡΠΈΡ SIP-Π°ΠΊΠ°ΡΠ½Ρ Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΡΠ΅ ΠΎΠΏΡΠΈΡΡΠ° Π·Π° ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΎΡ ΠΌΠ΅Π½ΡΡΠΎ ΠΈ Π² ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ Π»ΠΈΠ½ΠΊΠ° ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ° ΠΈΠ»ΠΈ Π΄Π° Π²ΡΠ²Π΅Π΄Π΅ΡΠ΅ ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ°. Π ΡΠ»Π΅Π΄ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ Π·Π°ΠΏΠΎΡΠ½Π°Ρ
Π΄Π° ΡΠ΅ Π·Π°ΠΌΠΈΡΠ»ΡΠΌ: "Π½Π΅ ΠΌΠΎΠΆΠ΅ Π»ΠΈ ΡΠΎΠ²Π° Π΄Π° ΡΠ΅ ΠΎΠΏΡΠΎΡΡΠΈ?" ΠΡ
Π°, ΡΠ΅ ΠΊΠ°ΠΆΠ΅ΡΠ΅ Π²ΠΈΠ΅, Π½Π° ΠΊΠ°ΠΊΠ²ΠΎ ΡΠΈ Π΅ ΡΠΎΠ²Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅Π΄ΠΈΡ Π½Π° Windows ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΡΡΠ΅Π²ΠΎΠΆΠΈΡ.
Π‘ΡΡΠΏΠΊΠ° 1. ΠΠ·ΡΠ»Π΅Π΄Π²Π°Π½Π΅
"ΠΠ°ΠΊΠ²Π°ΡΠΎ ΠΈ Π³Π»ΡΠΏΠΎΡΡ Π΄Π° ΡΠ΅ Π²ΠΌΡΠΊΠ½Π΅ Π² Π³Π»Π°Π²Π°ΡΠ°, ΡΡΡΠ΄Π½ΠΎ ΡΠ΅ Ρ ΠΈΠ·Π³ΠΎΠ½ΠΈ" β ΠΊΠ°Π·Π²Π°Π» Π΅ ΠΠ΅ΠΊΡΠ°ΡΠΎΠ² Π² ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠΈ "ΠΠΎΠΌΡ Π½Π° Π ΡΡΠΈ Π΄Π° ΠΆΠΈΠ²Π΅Π΅ Π΄ΠΎΠ±ΡΠ΅".
Π ΡΠ°ΠΊΠ°, ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΌΠΈΡΡΠ»ΡΠ° ΠΏΠΎΠΏΠ°Π΄Π½Π° Π² Π³Π»Π°Π²Π°ΡΠ° ΠΌΠΈ, ΡΠ»Π΅Π΄ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ ΠΈ ΠΏΡΡΠ²Π°ΡΠ° ΠΈΠ΄Π΅Ρ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ. ΠΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΠΏΡΠΎΡΡΠΎ β ΡΡΡΠ±Π²Π°ΡΠ΅ Π΄Π° Π·Π°Ρ Π²Π°ΡΠ°ΠΌ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡΡΠ° ΠΊΡΠΌ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ΡΠ΅ β Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌ Π½Π° Π»ΠΎΠΊΠ°Π»Π½ΠΈΡ ΡΠΈ ΠΊΠΎΠΌΠΏΡΡΡΡ Π»ΠΎΠΊΠ°Π»Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 127.0.0.1 ΠΈ Π² /etc/hosts Π΄Π° Π΄ΠΎΠ±Π°Π²Ρ ΡΡΠ°ΡΠΈΡΠ΅Π½ Π·Π°ΠΏΠΈΡ Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ°, ΡΡΠ΅Π· ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π²Π»ΠΈΠ·Π° Π² ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈΡΠ΅, ΠΏΠΎΡΠΎΡΠ²Π°Ρ Π½Π° localhost. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠΎΠ·ΠΈ ΡΠ΅Π± ΡΡΡΠ²ΡΡ ΡΡΡΠ±Π²Π° Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½Π°ΡΠ° Π»ΠΈΠ½ΠΊΠ° ΠΈ ΠΏΠΎ Π½ΡΠΊΠ°ΠΊΡΠ² Π½Π°ΡΠΈΠ½ Π΄Π° Ρ ΠΏΡΠ΅Π΄Π°Π΄Π΅ Π½Π° Pidgin (Π²Π΅Π΄Π½Π°Π³Π° ΡΠ΅ ΠΊΠ°ΠΆΠ°, ΡΠ΅ Π² ΡΠΎΠ·ΠΈ Π΅ΡΠ°ΠΏ Π½ΡΠΌΠ°ΡΠ΅ Π΄Π° ΡΠ°Π·Π±ΠΈΡΠ°ΠΌ ΠΊΠ°ΠΊ ΡΠ΅ ΠΌΡ Ρ Π΄Π°ΠΌ). Π Π΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΌΠΈΡΠΈΡΠ΅ Π½Π° ΠΈΠΌΠΏΡΠΎΠ²ΠΈΠ·Π°ΡΠΈΡ, Π½ΠΎ Π½ΠΈΠ΅ ΡΠΌΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠΈ, Π·Π° Π½Π°Ρ ΠΈΠΌΠΏΡΠΎΠ²ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π΅ Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ (ΡΠ΅Π³Π°).
Π’Π°ΠΊΠ° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΎΡΠΊΡΠΈΡ Π»ΠΈΠ½ΠΊ Π·Π° ΠΏΠΎΠΊΠ°Π½Π° Π² Google Chrome (ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Mozilla Firefox). Π Π½Π° ΠΌΠΎΠ΅ΡΠΎ ΡΡΡΠ΄Π²Π°Π½Π΅ ΡΠ΅Π± ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°ΡΠ΅ ΡΡΠ²ΡΠ΅ΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎ β Π½ΡΠΌΠ°ΡΠ΅ ΡΠΎΡΠΌΠ° Π·Π° Π²ΡΠ²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ Π²Π»ΠΈΠ·Π°Π½Π΅ΡΠΎ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° ΠΈΠ·Π»Π΅Π·Π΅ Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π·Π° ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° Π½Π΅ΡΠΎ ΡΡΠ΅Π· xdg-open. ΠΡ Π»ΡΠ±ΠΎΠΏΠΈΡΡΡΠ²ΠΎ Π½Π°ΡΠΈΡΠΊΠ°ΠΌ "Π΄Π°" ΠΈ ΠΈΠ·Π»ΠΈΠ·Π° ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π³ΡΠ΅ΡΠΊΠ° β Π»ΠΈΠ½ΠΊΡΡ lync15:confjoin?url=https://meet.company.com/user/confid Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΎΡΠ²ΠΎΡΠ΅Π½. Π₯ΠΌΠΌ. ΠΠ°ΠΊΠ²ΠΎ Π΅ ΡΠΎΠ²Π° xdg-open ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ ΠΌΡ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ, Π·Π° Π΄Π° ΠΌΠΎΠ³Π°Ρ ΡΠ°ΠΊΠΈΠ²Π° Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ Π΄Π° ΡΠ΅ ΠΎΡΠ²Π°ΡΡΡ? Π Π°Π·Π³Π»Π΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡΠ° ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ ΡΠΎΠ²Π° Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π½Π° Π³ΡΠ°ΡΠΈΡΠ½Π°ΡΠ° ΡΡΠ΅Π΄Π°, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎΠΌΠ°Π³Π° Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ Ρ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈ Π·Π° uri scheme, ΠΈΠ»ΠΈ Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅. ΠΡΠΎΡΠΈΠ°ΡΠΈΠΈΡΠ΅ ΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠ²Π°Ρ ΡΡΠ΅Π· ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° mime-type. Π ΡΠ°ΠΊΠ°, Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅, ΡΠ΅ ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΡΡΡΠ΅Π½Π΅ Π½Π° ΡΠ²ΡΡΠ·Π°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° uri scheme Ρ ΠΈΠΌΠ΅ΡΠΎ lync15 ΠΈ Π»ΠΈΠ½ΠΊΡΡ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° Π½Π° xdg-open, ΠΊΠΎΠΉΡΠΎ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΡΡΠ±Π²Π° Π΄Π° Π³ΠΎ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΠΈ Π½Π° Π½ΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠ³ΠΎΠ²Π°ΡΡ Π·Π° ΡΠΎΠ·ΠΈ ΡΠΈΠΏ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅. ΠΠΎΠ΅ΡΠΎ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π½ΡΠΌΠ°ΠΌΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. Π Π°ΠΊΠΎ Π½ΡΠΌΠ°ΠΌΠ΅, ΠΊΠ°ΠΊΠ²ΠΎ ΠΏΡΠ°Π²ΡΡ Π² ΡΠ²Π΅ΡΠ° Π½Π° ΠΎΡΠ²ΠΎΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄? ΠΡΠ°Π²ΠΈΠ»Π½ΠΎ, ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΠΈΡΠ΅ΠΌ ΡΠ°ΠΌΠΈ.
ΠΠΎ-Π΄ΡΠ»Π±ΠΎΠΊΠΎΡΠΎ Π½Π°Π²Π»ΠΈΠ·Π°Π½Π΅ Π² ΡΠ²Π΅ΡΠ° Π½Π° Linux, ΠΎΡΠΎΠ±Π΅Π½ΠΎ Π² ΠΈΠ·ΡΡΠ°Π²Π°Π½Π΅ΡΠΎ Π½Π° Π½Π°ΡΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π³ΡΠ°ΡΠΈΡΠ½Π°ΡΠ° ΡΡΠ΅Π΄Π° (desktop environment, DE), Π² ΡΠ»ΡΡΠ°Ρ Π°Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ Xfce Π² Linux Mint, ΠΏΠΎΠΊΠ°Π·Π°, ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΡ Ρ ΡΡΡ mime-type ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ ΠΏΡΠ°Π²ΠΎ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Ρ ΠΏΡΡΠΊΠΎΡ Ρ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ .desktop. Π Π·Π°ΡΠΎ Π΄Π° Π½Π΅, ΡΡΠ·Π΄Π°Π²Π°ΠΌ ΠΏΡΠΎΡΡ ΡΡΠ»ΠΈΠΊ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ, ΠΊΠΎΠΉΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ° Π±Π°Ρ-ΡΠΊΡΠΈΠΏΡ ΠΈ Π΄Π° ΠΈΠ·Π²Π΅Π΄Π΅ ΠΏΡΠ΅Π΄Π°Π΄Π΅Π½ΠΈΡ ΠΌΡ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ°, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠΌ ΡΠ°ΠΌΠΎ ΡΠ°ΠΌΠΈΡ ΡΠ°ΠΉΠ» Π½Π° ΡΡΠ»ΠΈΠΊΠ°:
[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 ΠΎΡ ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ° Ρ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΡΡΠΈΡ Π»ΠΈΠ½ΠΊ, ΠΊΠΎΠΉΡΠΎ ΠΈΠ΄Π²Π° ΠΎΡ Π±ΡΠ°ΡΠ·Π΅ΡΠ° ΠΈβ¦ ΠΏΡΠΎΠ²Π°Π». ΠΡΠ½ΠΎΠ²ΠΎ ΠΊΠ°Π·Π²Π°, ΡΠ΅ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΈ Π»ΠΈΠ½ΠΊΠ°.
ΠΠ°ΠΊΡΠΎ ΡΠ΅ ΠΎΠΊΠ°Π·Π°, Π½Π΅ ΡΡΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Ρ Π°ΡΠΎΡΠΈΠΈΡΠ°Π½ΠΈ mime-type Ρ ΠΌΠΎΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΠ²Π° ΡΡΠ°Π²Π° Ρ ΠΏΡΠΎΡΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π°:
xdg-mime default lync.desktop x-scheme-handler/lync15
ΠΊΠΎΡΡΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠ° ΡΠ°ΠΉΠ»Π° ~/ .config/mimeapps.list.
ΠΠΏΠΈΡ Π½ΠΎΠΌΠ΅Ρ 2 Ρ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° xdg-open β ΠΈ ΠΎΡΠ½ΠΎΠ²ΠΎ Π½Π΅ΡΡΠΏΠ΅Ρ . ΠΠΈΡΠΎ, ΡΡΡΠ΄Π½ΠΎΡΡΠΈΡΠ΅ Π½Π΅ Π½ΠΈ ΠΏΠ»Π°ΡΠ°Ρ, Π° ΡΠ°ΠΌΠΎ ΠΏΠΎΠ΄Ρ ΡΠ°Π½Π²Π°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ°. Π Ρ ΡΡΠ»Π°ΡΠ° ΠΌΠΎΡ Π½Π° Π±Π°ΡΠ° (Ρ.Π΅. ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ°ΡΠ°) ΡΠ΅ ΠΏΠΎΡΠ°ΠΏΡΠΌΠ΅ Π² ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π³ΡΠ΅ΡΠΊΠΈ. Π’ΡΠΊ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ, ΡΠ΅ xdg-open Π²ΡΡΡΠ½ΠΎΡΡ Π΅ ΠΏΡΠΎΡΡΠΎ ΡΠ΅Π»Π»-ΡΠΊΡΠΈΠΏΡ.
bash -x xdg-open $url
ΠΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΉΠΊΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΡΡΠ°ΡΠΈΡΠΎΠ²ΠΊΠ°ΡΠ°, ΡΡΠ°Π²Π° ΠΌΠ°Π»ΠΊΠΎ ΡΡΠ½ΠΎ, ΡΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π° ΠΊΡΠΌ exo-open. Π’ΠΎΠ²Π° Π²Π΅ΡΠ΅ Π΅ Π±ΠΈΠ½Π°ΡΠ΅Π½ ΡΠ°ΠΉΠ» ΠΈ ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ΡΠΎ Π·Π°ΡΠΎ ΡΠΎΠΉ Π²ΡΡΡΠ° Π½Π΅ΡΡΠΏΠ΅ΡΠ΅Π½ ΡΡΠ°ΡΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΈ ΠΏΡΠ΅Π΄Π°Π²Π°Π½Π΅ Π½Π° Π»ΠΈΠ½ΠΊ Π² Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° Π΅ ΠΏΠΎ-ΡΠ»ΠΎΠΆΠ½ΠΎ.
ΠΠ·ΡΠ»Π΅Π΄Π²Π°ΠΉΠΊΠΈ Π²ΡΡΡΠ΅ΡΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° xdg-open, ΡΠ°Π·Π±ΡΠ°Ρ , ΡΠ΅ ΡΠΎΠΉ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΡΡΠ΅Π΄Π°ΡΠ° ΠΈ ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΠΈΠ»ΠΈ Π½Π° Π½ΡΠΊΠ°ΠΊΠ²ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΎΡΠ²Π°ΡΡΠ½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½Π° DE, ΠΈΠ»ΠΈ ΠΈΠΌΠ° ΡΠ΅Π·Π΅ΡΠ²Π½Π° ΡΡΠ½ΠΊΡΠΈΡ 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 Π·Π° ΡΠ½ΠΈΠΊΠ°Π»Π΅Π½ ΡΠ΅ΡΡΡΡΠ΅Π½ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ ΡΡΠ°Π½Π° ΡΡΠ½ΠΎ, ΡΠ΅ ΡΠΎΠ·ΠΈ ΠΏΡΡ Microsoft Π½Π΅ Π½Π°ΡΡΡΠ°Π²Π° Π½ΠΈΡΠΎ (ΠΌΠ°ΠΊΠ°Ρ ΡΠ΅ ΠΈΠΌΠ°Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π²Π΅ΡΡΠΈΡ). ΠΡΠΎΡΡΠΎ ΠΊΠ»Π°ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ :alpha: ΡΡΠ΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ Π»Π°ΡΠΈΠ½ΡΠΊΠΈ Π±ΡΠΊΠ²ΠΈ. ΠΡΡΠ·ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΡΠ° ΠΏΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠΊΠ° Π½Π° alphanumeric. ΠΠΎΡΠΎΠ²ΠΎ, Π²ΠΈΠ΅ ΡΡΠ΅ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΈ, Π²ΡΠΈΡΠΊΠΎ Π½Π°ΠΊΡΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°, ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΡΠΎ ΡΠ»Π΅Π΄ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΠ΅ ΠΏΡΠ΅Π΄Π°Π²Π° Π½Π° Π½Π°ΡΠ΅ΡΠΎ ΡΠΊΡΠΈΠΏΡ-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ° ΡΠ΅ ΠΈΠ·Π²Π΅ΠΆΠ΄Π° Π½Π°ΡΠΈΡΡ Π»ΠΈΠ½ΠΊ, Π²ΡΠΈΡΠΊΠΎ ΠΊΠ°ΠΊΠ²ΠΎΡΠΎ ΡΡΡΠ±Π²Π°. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π·Π°ΠΏΠΎΡΠ²Π°ΠΌ Π΄Π° ΠΏΠΎΠ΄ΠΎΠ·ΠΈΡΠ°ΠΌ, ΡΠ΅ Π²ΡΠΈΡΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Ρ exo-open ΡΡΡΠΎ ΡΠ° Π·Π°ΡΠ°Π΄ΠΈ Π²Π°Π»ΠΈΠ΄ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° Π»ΠΈΠ½ΠΊΠ° Π·Π°ΡΠ°Π΄ΠΈ ΡΠΈΡΡΠΈΡΠ΅ Π² ΡΡ Π΅ΠΌΠ°ΡΠ°. ΠΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Ρ ΠΈΠΏΠΎΡΠ΅Π·Π°ΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡΡΠ° Π½Π° mime-type ΠΏΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΡΡΠΎ ΡΡ Π΅ΠΌΠ° lync ΠΈ Π²ΠΎΠ°Π»Π° β Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ ΠΈ Π±Π΅Π· ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠ½ΠΊΡΠΈΡΡΠ° 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 (desktop bus) ΠΈ Π² ΡΠ°ΠΌΠΈΡΠ΅ ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅ ΠΈΠΌΠ° ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡ ΠΏΠΎ Π»ΠΈΠ½ΠΊ, ΠΈΠ»ΠΈ ΡΡΠ΅Π· ΠΈΠΌΠ΅ΡΠΎ Π½Π° ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΎΡΠ° ΠΈ conf-id, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ½ΠΈΡΠΈΠΈΡΠ°ΠΌΠ΅ ΠΎΠ±Π°ΠΆΠ΄Π°Π½Π΅ ΠΏΡΠ΅Π· sip. Π’ΠΎΠ²Π° Π΅ ΡΠΎΡΠ½ΠΎ ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ Π½ΠΈ Π»ΠΈΠΏΡΠ²Π°ΡΠ΅.
Π‘ΡΡΠΏΠΊΠ° 2. Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Π·Π° Π°Π²ΡΠΎΠΆΠΎΠΉΠ½Π°
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π³ΠΎΡΠΎΠ²ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π½Π° Perl, ΡΠ΅ΡΠΈΡ ΠΏΡΠΎΡΡΠΎ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌ sipe-join-conference-with-uri.pl ΠΈ Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΠΌΠ°Π»ΠΊΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎ Π½Π΅Π³ΠΎ. ΠΠΈΡΠ° Π½Π° Perl, Π·Π°ΡΠΎΠ²Π° Π½Π΅ ΠΌΠΈ ΡΡΠ·Π΄Π°Π΄Π΅ ΠΎΡΠΎΠ±Π΅Π½ΠΈ ΡΡΡΠ΄Π½ΠΎΡΡΠΈ.
Π‘Π»Π΅Π΄ ΡΠ΅ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΡΠΊΡΠΈΠΏΡΠ° ΠΎΡΠ΄Π΅Π»Π½ΠΎ, Π·Π°ΠΏΠΈΡΠ°Ρ
ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ ΠΌΡ Π² ΡΠ°ΠΉΠ»Π° lync.desktop. Π ΡΠΎΠ²Π° Π±Π΅ΡΠ΅ ΠΏΠΎΠ±Π΅Π΄Π°! ΠΡΠΈ Π²Π»ΠΈΠ·Π°Π½Π΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π·Π° ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ ΠΊΡΠΌ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ° ΠΈ ΡΠ°Π·ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° xdg-open, ΠΈΠ·ΡΠΊΠ°ΡΠ°ΡΠΎΡΠΎ ΠΏΡΠΎΠ·ΠΎΡΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ° ΠΎΡ Pidgin ΡΠ΅ ΠΎΡΠ²Π°ΡΡΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ. ΠΠ°ΠΊ Π»ΠΈ ΡΠ΅ ΡΠ°Π΄Π²Π°Ρ
.
ΠΠ΄ΡΡ
Π½ΠΎΠ²Π΅Π½ ΠΎΡ ΡΡΠΏΠ΅Ρ
Π°, ΡΠ΅ΡΠΈΡ
Π΄Π° Π½Π°ΠΏΡΠ°Π²Ρ ΡΡΡΠΎΡΠΎ ΠΈ Π·Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΡΠΈ Π±ΡΠ°ΡΠ·ΡΡ Mozilla Firefox. ΠΠΎΠ³Π°ΡΠΎ Π²Π»ΠΈΠ·Π°ΠΌ ΠΏΡΠ΅Π· Π»ΠΈΡΠ°ΡΠ°, ΡΠ΅ ΠΎΡΠ²Π°ΡΡ ΡΡΡΠ°Π½ΠΈΡΠ° Π·Π° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΠΈ ΠΎΡΠ΅ Π² ΡΠ°ΠΌΠΈΡ ΠΊΡΠ°ΠΉ ΠΈΠΌΠ° Π±ΡΡΠΎΠ½Π° ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΠΈ ΡΠ΅ Ρ office communicator. Π’ΠΎΠΉ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΡΠΎ ΠΌΠΈ. ΠΡΠΈ ΠΊΠ»ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° Π½Π΅Π³ΠΎ Π² Π±ΡΠ°ΡΠ·ΡΡΠ° ΡΠ΅ ΠΏΡΠ΅Ρ
Π²ΡΡΠ»Ρ Π°Π΄ΡΠ΅ΡΡΡ:
conf:sip:{user};gruu;opaque=app:conf:focus:id:{conf-id}required-media=audio
, Π½Π° ΠΊΠΎΠ΅ΡΠΎ ΡΠΎΠΉ ΡΡΡΠΈΠ²ΠΎ ΠΌΠΈ ΠΊΠ°Π·Π²Π°, ΡΠ΅ Π½Π΅ Π·Π½Π°Π΅ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΎ ΠΎΡΠ²ΠΎΡΠΈ ΠΈ Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π½ΡΠΌΠ°ΠΌ Π°ΡΠΎΡΠΈΠΈΡΠ°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΡΠΎΠΊΠΎΠ». ΠΠΎ Π²Π΅ΡΠ΅ ΠΌΠΈΠ½Π°Ρ ΠΌΠ΅ ΠΏΡΠ΅Π· ΡΠΎΠ²Π°.
ΠΡΡΠ·ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ-ΡΠΊΡΠΈΠΏΡ ΠΈ Π·Π° uri-ΡΡ Π΅ΠΌΠ°ΡΠ° conf ΠΈβ¦ Π½ΠΈΡΠΎ Π½Π΅ ΡΠ΅ ΡΠ»ΡΡΠ²Π°. ΠΡΠ°ΡΠ·ΡΡΡΡ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° Π΄Π° ΡΠ΅ ΠΎΠΏΠ»Π°ΠΊΠ²Π°, ΡΠ΅ Π½ΡΠΌΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΄Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΌΠΎΠΈΡΠ΅ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅. ΠΡΠΈ ΡΠΎΠ²Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ ΠΎΡ ΠΊΠΎΠ½ΡΠΎΠ»Π°ΡΠ° xdg-open Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΡΠ°Π±ΠΎΡΠΈ ΠΎΡΠ»ΠΈΡΠ½ΠΎ.
βSet custom protocol handler in firefoxβ β Ρ ΡΠΎΠ·ΠΈ Π²ΡΠΏΡΠΎΡ ΡΠ΅ ΠΎΠ±ΡΡΠ½Π°Ρ ΠΊΡΠΌ ΠΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΡΠ΅Π³Π»Π΅Π΄Π°Ρ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄ΠΈΡΠΊΡΡΠΈΠΈ Π² stackoverflow (Π° ΠΊΡΠ΄Π΅ Π΄ΡΡΠ³Π°Π΄Π΅), ΠΈ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π°ΠΌΠ΅ΡΠΈΡ ΠΎΡΠ³ΠΎΠ²ΠΎΡ. ΠΡΠΆΠ½ΠΎ Π΅ Π΄Π° ΡΡΠ·Π΄Π°ΠΌ ΡΠΏΠ΅ΡΠΈΠ°Π»Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² about:config (ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, Π·Π°ΠΌΠ΅Π½ΡΠΉΠΊΠΈ foo Ρ conf):
network.protocol-handler.expose.foo = false
Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅, ΠΎΡΠ²Π°ΡΡΠΌΠ΅ Π»ΠΈΠ½ΠΊΠ° ΠΈβ¦ Π½Π΅ ΡΡΠΊ-ΡΠΎ Π±Π΅ΡΠ΅. ΠΡΠ°ΡΠ·Π΅ΡΡΡ, ΡΡΠΊΠ°Ρ Π½ΠΈΡΠΎ Π½Π΅ Π΅ ΡΡΠ°Π½Π°Π»ΠΎ, ΠΊΠ°Π·Π²Π°, ΡΠ΅ Π½Π΅ ΠΏΠΎΠ·Π½Π°Π²Π° Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
Π§Π΅ΡΠΎΡ ΠΎΡΠΈΡΠΈΠ°Π»Π½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΎΡ Mozilla, ΠΈΠΌΠ° Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π΄Π°Ρ Π°ΡΠΎΡΠΈΠ°ΡΠΈΠΈ Π² ΡΠ°ΠΌΠΈΡ gnome desktop (Π·Π°ΠΌΠ΅Π½ΡΠΉΠΊΠΈ, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, 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 ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°, ΠΎΡΠ²Π°ΡΡΠΌ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°, ΠΊΠ»ΠΈΠΊΠ²Π°ΠΌ ΠΏΠΎ Π»ΠΈΠ½ΠΊΠ° β Yos! ΠΡΠ²Π°ΡΡ ΡΠ΅ ΠΏΡΠΎΠ·ΠΎΡΠ΅Ρ Ρ Π²ΡΠΏΡΠΎΡ Π² ΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π° ΠΎΡΠ²ΠΎΡΠΈΠΌ Π»ΠΈΠ½ΠΊΠ° ΠΈ ΡΠ°ΠΌ Π² ΡΠΏΠΈΡΡΠΊΠ° Π²Π΅ΡΠ΅ Π΅ Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Lync β Π½ΠΈΠ΅ Π³ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°Ρ ΠΌΠ΅ ΠΏΠΎ Π²ΡΠΈΡΠΊΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ. Π ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΡΡ ΠΈΠΌΠ° ΠΎΡΠΌΠ΅ΡΠΊΠ° βΠ·Π°ΠΏΠΎΠΌΠ½ΠΈ ΠΈΠ·Π±ΠΎΡΠ° ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ ΠΎΡΠ²Π°ΡΡΠΉ Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ Π² Π½Π°ΡΠ΅ΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅β, ΠΎΡΠ±Π΅Π»ΡΠ·Π²Π°ΠΌΠ΅, Π½Π°ΡΠΈΡΠΊΠ°ΠΌΠ΅ ΠΎΠΊ. Π ΡΠΎΠ²Π° Π΅ Π²ΡΠΎΡΠ°ΡΠ° ΠΏΠΎΠ±Π΅Π΄Π° β ΠΏΡΠΎΠ·ΠΎΡΠ΅ΡΡΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ° ΡΠ΅ ΠΎΡΠ²Π°ΡΡ. ΠΡΠΈ ΡΠΎΠ²Π°, Π²Π΅ΡΠ΅ ΠΎΡΠΊΡΠΈΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡΡ Π½Π΅ ΡΠ°ΠΌΠΎ ΠΊΠΎΠ³Π°ΡΠΎ ΠΊΠ»ΠΈΠΊΠ½Π΅ΠΌ Π½Π° Π»ΠΈΠ½ΠΊΠ°, Π° ΠΈ ΠΏΡΠΈ ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ ΠΎΡ Π½ΡΠΆΠ½Π°ΡΠ° ΡΡΡΠ°Π½ΠΈΡΠ° Π·Π° ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ Π² ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ°.
ΠΠΎΡΠ»Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ , ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ network.protocol-handler.expose.conf Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Π² Firefox. ΠΠΈΠ½ΠΊΠΎΠ²Π΅ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°Ρ Π° Π΄Π° ΡΠ°Π±ΠΎΡΡΡ.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ°ΡΠΈΡ
Π²ΡΠΈΡΠΊΠΈΡΠ΅ ΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ Π½Π° GitHub, Π»ΠΈΠ½ΠΊΠΎΠ²Π΅ ΠΊΡΠΌ Π²ΡΠΈΡΠΊΠΈ ΡΠ΅ΡΡΡΡΠΈ ΡΠ΅ ΠΈΠΌΠ° Π² ΠΊΡΠ°Ρ Π½Π° ΡΡΠ°ΡΠΈΡΡΠ°.
Π©Π΅ ΠΌΠΈ Π±ΡΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π΄Π° ΠΏΠΎΠ»ΡΡΠ° ΠΎΠ±ΡΠ°ΡΠ½Π° Π²ΡΡΠ·ΠΊΠ° ΠΎΡ ΡΠ΅Π·ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΈΡΠΊΠ°Ρ Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΎΡ ΠΌΠΎΠΈΡΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ΅Π΄Π½Π°Π³Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠ°, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½ΠΎ Π·Π° ΠΌΠΎΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Linux Mint, ΡΠ°ΠΊΠ° ΡΠ΅ Π΄ΡΡΠ³ΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ°Π±ΠΎΡΡΡ Π² ΡΠΎΠ·ΠΈ Π²Π°ΡΠΈΠ°Π½Ρ. ΠΡΡΡΠ½ΠΎΡΡ, ΠΏΠΎΡΡΠΈ ΡΡΠΌ ΡΠ²Π΅ΡΠ΅Π½ Π² ΡΠΎΠ²Π°, Π·Π°ΡΠΎΡΠΎ ΠΏΠ°ΡΡΠ½Π°Ρ
ΡΠ°ΠΌΠΎ 1 ΡΡΠ½ΠΊΡΠΈΡ Π² xdg-open, ΡΠ²ΡΡΠ·Π°Π½Π° ΡΠ°ΠΌΠΎ Ρ ΠΌΠΎΡ DE. ΠΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΄ΡΡΠ³ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ ΠΈΠ»ΠΈ Π΄Π΅ΡΠΊΡΠΎΠΏΠΈ, ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠΈ ΠΏΡΠ»-ΡΠ΅ΠΊΠ²Π΅ΡΡΠΈ Π² GitHub.
ΠΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ΅Π»ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΎΡΠ½Π΅ 1 Π²Π΅ΡΠ΅Ρ.
ΠΠΈΠ½ΠΊΠΎΠ²Π΅:
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
