Меню Рубрики

Client skype for business linux

How to join Skype for Business meeting on Ubuntu (without Skype for Business account)?

Following topic describes how I could connect to Skype for Business account under Linux:

However, what if I do not have a Skype for Business account?

I received an invitation to the meeting in form of the following URL:

I do not need to have a Skype for Business account to join such meeting. On my Android phone, I just installed the appropriate application and when I click on the mentioned link, I can join after providing my name.

When I click on the link on the Linux machine, it redirects me to the page where msi file is downloaded.

4 Answers 4

sorry to hear about your problems. There is no way that I know about to do this at the moment, and it is likely deliberate since the regular Skype runs on Linux as well as a web-based Skype version.

This is on the “roadmap” for Microsoft, but I believe that is likely mostly to drive goodwill.

In the near future, you may be able to run this via Wine. I checked with Codeweavers in St. Paul, MN and they are working on it; but the status for skype is “garbage” at the moment.

There is a non-free alternative “Sky Linux” from TelRed. This works for me in most cases.

They have a free (as in beer) trail, but it has a 2 minute limit on each call or screen share.

Here is my latest advice about running Skype4B aka Lync on Linux:

  • It’s annoying, but I am almost certain MS will never make Skype4B available on Linux.
    • The software is “Skype” by brand name only, and has nothing to do with regular Skype which already works on Linux.
    • Skype4B was always just a renamed version of the very old Microsoft Lync software which works totally differently to Skype regular (which was originally a separate company later purchased by MS).
    • The other nail in the coffin is that MS will reportedly discontinue Skype4B support in mid 2021.
  • Good news is that MS is replacing Skype4B with MS Teams which has a web and native Linux binary already. But some corporations could be over a decade slow in upgrading (many still use Lync 2007!).
  • For a long time I have used the method below to run MS software. It works 100% fine for me.

How I use Skype4B on my Linux laptop:

OK so this is a work-around but it works surprisingly well for me as I very rarely need to share my Linux host screen, or if I do, then its just a MS Office doc which is easy to share within VM. This is also how I use MS office 2016 on Linux.

All I do is use VirtualBox to create a Windows 10 VM with a little bit of RAM and 2 CPUs and install Skype4B + Office on it and Outlook online to get emails, calendar and links to Skype4B meetings. I pass through my audio and microphone to the VM. Make sure you install the VirtualBox Extension Pack on host and Guest Additions within VM to allow seamless resizing, drag and drop files and shared clipboard with host. This will give you an almost seamless experience on a decent PC.

Now this sounds like a crap solution but just try it and you might be surprised. Windows 10 boots up very quickly in VM, especially if you remove all bloatware and auto-login. The key is to install the Virtual Box extras mentioned above which allows the VM to works seamlessly with the Linux host OS (window resizing, shared files and clipboard).

Windows 10 DOES NOT require a license, just get the official ISO from MS website and install without a product key, it works fine but just disables a couple features like change color scheme and desktop background.

Edit: forgot to mention, if you dont have a Skype4B account, that is fine, just click the link and it will install the web version (msi) and you can join.


Programster’s Blog

Tutorials focusing on Linux, programming, and open-source

Ubuntu 16.04 – Configure Pidgin for Skype for Business/Lync

It can be pretty frustrating as a Linux user when you are asked to use Micro$oft based tools which never support Linux (unnecessarily in my view). At least with Skype-for-business (formerly Lync and not to be confused with “normal Skype”), we can configure the Pidgin chat client to use the same protocol in order to be available for instant messaging. You won’t be able to make VoIP calls though.


Install the pidgin-sipe extension which we will be using.

If pidgin is already running, kill it and restart it after having installed the package.

Start pidgin and click Add.

In the Basic tab, fill in your Username, Password, and optionally, your Local alias. Do not fill in the Login field.

On the Advanced tab, set the User Agent value to:

I used to have this set to UCCAPI/15.0.4420.1017 OC/15.0.4420.1017 (Microsoft Lync) , but updated it based on the settings mentioned here.

And leave the other fields as shown below before clicking the Add button.

You will then be shown the Accounts window. If your settings/credentials were correct, the Enabled checkbox by the account you just added should remain checked. If it unchecks itself, then a setting or your login credentials were incorrect.


Client skype for business linux


I am trying to use the official Microsoft Skype for Linux client but have difficulty authenticating. We are requiring a second factor authentication via a web extranet site to access most services like O365. Once you authenticated you can access all O365 services like one drive etc.

With the Skype client on Linux, it only allows for user name and password, I do see the help guide for skype on this topic advise that you can log into your O365 account and issue an app password but we have setup O365 to prevent users from doing this. That option is missing in accounts.

Is there a way that the client can redirect to the web to get this second authentication?

Note we have tested another chat client on linux called Pidgin which uses the office communicator plugin which does allow authentication in the app to the extranet.

yes we are using Skype for business and O365 its a business account.

We first have to be authenticated on our company extra-net site using our domain credentials, then a second factor authentication which can be text SMS code or RSA token and pin. Once that is done you can access O365 apps.

this is the location of the download from MS, so is the download for Skype for business from MS a different app to that of the non Skype for business.

We are starting to use linux desktops and wonder how we can use the client.


Автоматический вход в Lync конференции в Linux

Для меня эта фраза сродни hello world, так как я добрался наконец до своей первой публикации. Долго откладывал этот замечательный момент, так как и писать было не о чем, а обсасывать то, что уже по куче раз обсосано, тоже не хотелось. Вообще для своей первой публикации хотелось что-то оригинальное, полезное другим и содержащее какой-то челленж и решение проблем. И вот я уже могу поделиться этим. Теперь обо всем по порядку.


Началось все с того, что некоторое время назад я на рабочем компе накатил себе Linux Mint. Многие наверняка знают, что Pidgin с плагином Sipe вполне годная замена Microsoft Lync (сейчас называется Skype for business) для Linux систем. В силу специфики работы мне часто приходится участвовать в sip-конференциях, и в бытность виндузятника вход в конференции был элементарным: получаем приглашение по почте, кликаем на ссылку входа, готово мы внутри.

При переходе на темную сторону Linux все несколько усложнилось: вход в конференции в Pidgin конечно же тоже есть, но там для этого нужно в свойствах вашего sip-аккаунта выбрать пункт присоединения к конференции в меню и в открывшемся окне вставить ссылку на конференцию либо ввести имя организатора и conf id. И через какое-то время я начал задумываться: «а нельзя ли как-то это упростить». Ага, скажете вы, на кой черт тебе это понадобилось, сидел бы себе на винде и в ус не дул.

Шаг 1. Исследование

«Втемяшится в башку какая блажь — колом ее оттудова не выбьешь» — так говорил Некрасов в своем произведении «Кому на Руси жить хорошо».

Итак, раз уж мысль попала в голову, то через какое-то время возникла и первая идея для реализации. Казалось все просто — нужно перехватывать обращение к ссылкам meet.company.com/user/confid — поставить у себя на тачке локальный процесс веб-приложения на и в /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. Ну а почему бы и нет, создаю простой ярлык приложения, который должен просто запустить баш-скрипт и вывести переданный ему аргумент на консоль, привожу только сам файл ярлыка:

запускаю xdg-open из консоли с передачей той же ссылки, какая идет из браузера и… облом. Снова говорит что не может обработать ссылку.

Как оказалось я не обновил каталог ассоциированных mime-type с моим приложением. Делается это простой командой:

которая просто редактирует файл

Попытка номер 2 с вызовом xdg-open — и снова неудача. Ничего, трудности нас не пугают, а только подогревают интерес. И вооружившись всей мощью баша (т.е. трассировкой) ныряем с головой в отладку. Тут важно отметить, что xdg-open является просто шелл-скриптом.

Анализируя вывод после трассировки становится немного понятно, что дальше управление передается в exo-open. А это уже бинарный файл и разбираться почему он возвращает неуспешный код возврата при передаче ему ссылки в аргументе уже сложнее.

Пробежав по внутренностям xdg-open я выяснил, что он анализирует разные параметры окружения и передает управление дальше либо каким-то инструментам для открывания файлов\ссылок специфичных для конкретного DE, либо у него имеется fallback в виде функции open_generic

Быстро впиливаю сюда небольшой хак с анализом переданного аргумента и если там находится наша специфическая подстрока lync15:, то передаем сразу управление в функцию open_generic.

Попытка номер 3 и вы думаете заработало? Ага, сейчас, как же. Но сообщение об ошибке уже поменялось, это уже прогресс — сейчас он мне говорил что файл не найден и в виде файла писал мне ту самую ссылку, переданную в виде аргумента.

На этот раз дело оказалось в функции is_file_url_or_path, которая анализирует передана на вход ссылка на файл file:// либо путь до файла или что-то иное. И проверка не работала верно из-за того что наш префикс (url scheme) имеет цифры, а регулярное выражение проверяется только набор символов, состоящий из :alpha: точки и тире. После консультация со стандартом rfc3986 для uniform resource identifier стало понятно что на этот раз Майкрософт ничего не нарушает (хотя у меня была такая версия). Просто класс символов :alpha: содержит только буквы латинского алфавита. Быстро меняю проверку по регулярке на alphanumeric. Готово, вы восхитительны, все наконец запускается, управление после всех проверок отдается в наш скрипт-приложение, на консоль выводится наша ссылка, все как полагается. После этого начинаю подозревать, что все проблемы у exo-open тоже из-за валидации формата ссылки из-за цифр в схеме. Для проверки гипотезы меняю регистрацию mime-type у приложения на просто схему lync и вуаля — все работает и без переопределения функции open_xfce. Но нам это никак не поможет, потому что веб-страница для входа в конференцию создает именно ссылку с lync15.

Итак, первая часть пути пройдена. Мы умеем перехватывать вызов ссылки и дальше ее нужно как-то обработать и передать внутрь Pidgin. Для того чтобы понять как оно работает внутри при вводе данных по ссылке в меню «присоединения к конференции» я склонировал гит репозиторий проекта 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. Реализация обработчика для автоджойна

Раз уж есть готовые примеры на перл, то я решил просто использовать sipe-join-conference-with-uri.pl и немного доработать под себя. Писать на перл я умею, поэтому особых сложностей это не доставило.

После тестирования скрипта отдельно, я вписал его вызов в файл lync.desktop. И это была победа! При входе на страницу присоединения к конференции и разрешения запуска xdg-open всплывающее окно конференции из Pidgin открывалось автоматически. Как же я ликовал.
Воодушевленный успехом, я решил сделать то же самое и для своего основного браузера Mozilla Firefox. При входе через лису открывается страничка для авторизации и еще в самом низу есть кнопка join using office communicator. Она-то и привлекла мое внимание. При клике на нее в браузере происходит переход по адресу:

на что он мне любезно говорит, что не знает как ее открыть и, возможно, у меня нет ассоциированного приложения для такого протокола. Ну это мы уже проходили.

Быстренько регистрирую свое приложение-скрипт еще и для uri-схемы conf и… ничего не происходит. Браузер продолжает жаловаться, что нет приложения, которое обрабатывает мои ссылки. При этом вызов из консоли xdg-open с параметрами работает превосходно.

«Set custom protocol handler in firefox» — с этим вопросом я вышел в Интернет. Прошерстив несколько обсуждений на stackoverflow (а куда же без него), вроде ответ нашелся. Нужно создать специальный параметр в about:config (конечно заменив foo на conf):

Создаем, открываем ссылку и… не тут-то было. Браузер как ни в чем ни бывало говорит что не знает наше приложение.

Читаю официальную документацию по регистрации протокола у Mozilla, есть вариант прописать асоциации в самом gnome desktop (заменив конечно foo на conf):

Регистрирую, открываю браузер… и снова борода.

Тут на глаза попадается строчка из документации:

Next time you click a link of protocol-type foo you will be asked which application to open it with.

— Семен Семеныч
— Ааа

Мы же не кликаем по ссылке, а просто веб-страница делает смену window.location через javascript. Пишу простой html файл со ссылкой на conf протокол, открываю в браузере, кликаю по ссылке — Yos! Открывается окно с вопросом в каком приложении нужно открыть нашу ссылку и там в списке у нас уже есть наше приложение Lync — мы же его честно зарегистрировали всеми возможными способами. Там же в окошке есть галочка «запомнить выбор и всегда открывать ссылки в нашем приложении», отмечаем, нажимаем ок. И это вторая победа — окно конференции открывается. При этом уже открытие конференций работает и не только при клике на ссылку, а и при переходе из нужной нам страницы присоединения в конференцию.

Потом я проверил, удаление параметров network.protocol-handler.expose.conf никак не повляло на работу протокола в лисе. Ссылки продолжали работать.


Я залил все свои наработки в репозиторий на гитхаб, ссылки на все ресурсы будут в конце статьи.
Мне будет интересно получить обратную связь от тех кто захочет воспользоваться моими наработками. Сразу отмечу, что я все делал разработку только под свою систему Linux Mint, поэтому какие-то другие дистрибутивы или десктопы могут не заработать в том варианте. Вернее я даже почти уверен в этом, потому что я пропатчил в xdg-open только 1 функцию, относящуюся только к моему DE. Если вы захотите добавить поддержку других систем или декстопов, пишите мне пул-реквесты в гитхабе.