Skype-for-Business on Linux

2019-12-16

Sometimes we Linux types are forced into the Micro$oft world. If you have to attend a conference call on Skype-for-Linux (not plain Skype) — we had to run a Windows VM or similar to do it. No longer. Here’s instructions to run Skype-for-Business on Ubuntu 16.04 and 18.04. For other Linux distros I imagine the steps are similar. I hope this helps!


Introduction

Skype-for-business (S4B), formerly called Lync, formerly called Office Communicator, is meeting collaboration software. It’s similar to HPE MyRoom (recommended, free) or Microsoft Teams, both of which run fine on Linux.

But Skype-for-business on Linux never got much love from Microsoft, so you’ll have to do a few things described here to use it on Linux. The below are instructions for two versions of Ubuntu; similar things should work on other distros.  You’ll have most of the S4B functionality, including

  • Chat
  • Audio calls
  • Join conference calls
  • See shared screens
  • Share you screen to others

In the following instructions, most of the packages are used for desktop viewing/sharing. If you need only chat, install just the pidgin and pidgin-sipe packages, then proceed to setup your account.

But for (nearly) full functionality, read on:

Package Install

1) First, it really helps to nuke all related packages. You’ll re-install them in just a bit, getting the right versions:

sudo apt remove freerdp2-x11 gstreamer1.0-nice libfarstream-0.2-5 libfreerdp-client2-2 libfreerdp-server2-2 libfreerdp-shadow-subsystem2-2 libfreerdp-shadow2-2 libfreerdp2-2 libnice10 libwinpr-tools2-2 libwinpr2-2 pidgin pidgin-data pidgin-libnotify pidgin-sipe remmina remmina-common remmina-plugin-rdp remmina-plugin-secret remmina-plugin-vnc 

2) The remmina components have a way of sticking around. And sometimes pidgin. Kill ’em:

sudo killall -9 remmina pidgin

3) Pin the pidgin-sipe package (at 600 or higher) so you don’t get the older one.  Create the file /etc/apt/preferences.d/sipe-collab-600 with these contents:

Package: *
Pin: release o=LP-PPA-sipe-collab
Pin-Priority: 600

4) Add the newer sipe-collab repo:

sudo apt-add-repository ppa:sipe-collab
sudo apt-get update
sudo apt-get upgrade

Note: If you need to use a proxy server to access the Internet, set it via BOTH the http_proxy and https_proxy envvars, and use -E with sudo so they’re passed on to the command.

For example:

export http_proxy=http://your-proxy-server.your-corp.com:8080
export https_proxy=http://your-proxy-server.your-corp.com:8080
sudo -E add-apt-repository ppa:sipe-collab/ppa/
sudo -E apt-get update
sudo -E apt-get upgrade

5) Install this whole collection of packages:

sudo apt-get install freerdp2-x11 gstreamer1.0-nice libfarstream-0.2-5 libfreerdp-client2-2 libfreerdp-server2-2 libfreerdp-shadow-subsystem2-2 libfreerdp-shadow2-2 libfreerdp2-2 libnice10 libwinpr-tools2-2 libwinpr2-2 pidgin pidgin-data pidgin-libnotify pidgin-sipe remmina remmina-common remmina-plugin-rdp remmina-plugin-secret remmina-plugin-vnc 

That should do it. Run pidgin to get things going.

Run It

You should have a menu item for Pidgin, often under

Applications → Internet

but the location varies depending upon the desktop environment you have. You may also run it from the command line. Just enter the command ‘pidgin’.

Hangs/Nothing?

If it just hangs and you don’t see anything, first kill all pidgin instances (killall -9 pidgin), then remove the prior configuration for it, which would be found in the ~/.purple directory. Simply nuke the whole dir:

rm -fr ~/.purple

If you’ve been playing around with this already, it’s a good idea to start clean even if it doesn’t hang.

Pidgin Account Setup

In Pidgin, create an Office Communicator account. If this is the first time, or you nuked the config and are starting clean, it should prompt you to setup an account. Otherwise, go to Accounts –> Manage Accounts and click Add. For protocol choose “Office Communicator”. Then set these options, most of which are defaults:

Basic Tab:
  Username: email-addr
  Login:    DOMAIN\username
  Password: whatever-you-use

Advanced Tab:
  server:port - leave blank
  Connection type - leave auto
  User Agent: UCCAPI/16.0.6965.5308 OC/16.0.6965.2117 
  Authentication scheme - leave at Auto
  All the rest - leave blank or unchecked

Proxy Tab:
  Leave Proxy type on "Use Global Settings"

Voice and Video Tab:
  Leave "use silence suppression" UNCHECKED

Click the Add button at the bottom to save your settings. Pidgin should try to connect to this account automatically; if it does not, make sure that this new account is “enabled” in the Manage Accounts dialog box.

Test Your Account Setup

Exit Pidgin then restart it. It should connect to the corporate server and you’ll see your buddy list. If not, try running Pidgin from the command line — just enter the command “pidgin”. If you want to get overrun with output, you can also use the -d option to enable debugging. But be warned, it’s a lot of output!

FAQ’s

Connect to Server Fails?

I often see that the first connect to the SIPE server fails. Just try again, then it works fine.

Start a Chat with Someone

Find their name in the Buddies list. Right click and select “IM”.

Share your desktop with Someone

Find their name in the Buddies list. Right click and select “Share my Desktop”.

Join a Conference Call

This is easy – you just need the link for the call, which usually is in the invite. But where you paste the link is a bit “hidden”. Find it under

Accounts → (your email addr) → Join Scheduled Conference…

Paste the link into the Meeting Location field then click Join.

Share your desktop to a conference call

In the call window, do Media → Share my Desktop


Inspired by xhaakon’s (Jakub Adam’s) post at https://github.com/tieto/sipe/issues/183

Enjoy!
— Steve

Pronunciation of UNIX/Linux Meta-character Sets

Working on UNIX and Linux shells and with shell scripts, as well as Perl and other scripting languages, is rife with “meta-characters” and combinations of meta-characters. Reading each character literally is tedious and can be ambiguous; over time a defacto English pronunciation has emerged for them. Many of these pronunciations settled into place as far back as the 1970’s.

Single Characters

!  "Bang", in math say "Not"
@ "At"
# "Sh" or "Shuh" (from "shell")
Also "hash" when used outside a shell script,
but never "pound".
$ "Doll" (from "dollar"),
"Var" when preceding a variable
as in $func ("var func")
or $1 ("var one").
% "Cent" or "Perk" (from "percent")
^ "Hat", sometimes "Not"
& "Bag" (from "background") or "Amp" (from "ampersand")
in math, "Band" (bitwise and)
* "Star" or "Pop", also "Ass" (from "asterix")
in math, "Times"
( "Open", or "Open paren"
if part of a function then "Of"
as in x(2) "X of two"
) "Close", or "Close Paren"
{ "O-Brace",
or { "Brace" ... } "Close" (matches nested type).
When opening a choice set say "Choice" or
"Choice of" ending with "End", as in {a,bb,ccc}
"Choice aye comma be be comma cee cee cee end"
} "C-Brace"
[ "O-Brak",
or [ "Brak" ... ] "Close" (matches nested type)
] "C-Brak"
- "Dash", "Standard In/Out" (by itself)
in math expressions say unary "Neg"
or binary "Minus"
_ "Under"
+ "Plus" or "Add" (no surprise here)
= For assignment say "Gets", for compare say "Equals" (rare)
~ "Tilda", for bit inversion say "Flip",
as shell input say "Home".
' "Tick" (single quote or single apostrophe)
" "Quote" (no surprise here),
or "O-Quote" for opening quote
and "End" for end quote
` "Zek" (from "exec") or "Back" (the back-tick)
. "Dot" (no surprise here), in file path context say "Here"
as in ./a.b is "here slash a dot b"
, "Comma" (no surprise here)
/ "Slash" - only noobs say "forward slash"
In a path the first and last slashes are *always*
pronounced, if present; but middle slashes are
often silent.
In math, "Per", "By", or "Over"
\ "Whack" - don't say "back slash"!
| "Pipe" or "Send", in math "Boor" (bitwise or)
|& is "Piping" not "pipe and"
: "Colon" or "Ta", often silent in context
; "Sem" or "Semi" (from "semicolon")
< "From" in redirection, "Less" in comparison
> "To" in redirection, "Great" in comparison
? "What" (without inflection) or "Kwess" (from "question")
w "Dub" (from "double-u") - Don't say "Double U"
"Blank" for a single blank character
"Tab" when an actual tab character is used
"Space" or "Whites" for a series of whitespace
"Next" or "Newline" for a newline (10) or (13)(10)
"Ret" or "Return" for an actual carriage return (13)

Uppercase letters or a word with a leading uppercase
letter are preceded with the word "Up", for example:
"ptrX3" is pronounced "pee tee ar up x three".
"q_Delta_X"
is "que under up Dee ee el tee ay under up x"
or "que under up delta under up x".
And for an entire uppercase word say "All up" then the
letters or word:
"EOF" is pronounced "all up ee oh eff".

Examples

This snipped of shell is read as:

TBS…

Character Combinations

#!   "SheBang"
++   "Barb" or "plus plus"
--   "Dada" or "dosh" when preceding an option
         "Down" or "dek-er" (from decrement) in math
..   "Dit" or "ditdit", or in range context "Through",
         In filepath context say "Up" or "Updir"
...  "Whatever", or in range context "Ranges"
<>   "Box"
>&   "Goes to", as in 2>&1 "Two goes to One"
!!   "Bang bang"
&&   "And" (not "and-and")  See & "band".
        When sequence chaining, "Then".
||   "Or" (not "or-or")     See | "boor".
        When sequence chaining, "Else".
|&   "Piping", not "pipe and"
:=   "Gives" (also called "Walrus" as in a Pascal or Golang assign)
::   "Scope"
==   "Is" (comparison), "Gets" (assignment, rare)
!=   "Isn't"
<=   "Less-Ek" or "Less than"
>=   "Big-Ek" or "Greater than"
=>   "Fat comma"
<<   "Much less", "shift left"
<<<  "Rotate left"
>>   "Append", "shift right"
>>>  "Rotate right"
=~   "Kinda like"
!~   "Not like"
$?   "Huh?"
$!   "Wow"
etc  "Etsy"
www  "Dub dub dub"
()   "Nothing" in list contexts

Special operators, common in Perl but used in shells too
Operator     Nickname     Function
 0+           Venus                        
                    numification
 @{[ ]}       Turtle or Babycart           
                    list interpolation
 !!           Bang bang                    
                    boolean conversion
 ~~           Inchworm                     
                    scalar
 ~-           Inchworm on a stick          
                    high-precedence decrement
 -~           Inchworm off a stick         
                    high-precedence increment
 -+-          Space station                
                    high-precedence numification
 =( )=        Saturn                       
                    scalar / list context
 =< >=~       Flaming X-Wing               
                    match input, assign captures
 ~~<>         Kite                         
                    a single line of input
 }{           Eskimo greeting              
                    END block for one-liners
 -=!   -=!!   Flathead                     
                    conditional decrement
 +=!   +=!!   Phillips                     
                    conditional increment
 x=!   x=!!   Pozidriv                     
                    conditional reset to ''
 *=!   *=!!   Torx                         
                    conditional reset to 0
 ,=>          Winking fat comma            
                    non-stringifying fat comma
 ()x!!        Enterprise (as in NCC-1701)                
                    boolean list squash
 0+!!         Truthkey                     
                    numeric boolean conversion
 ~~!!         Serpent of truth             
                    numeric boolean conversion
 ||()         Abbott and Costello          
                    remove false scalar from list
 //()         Leaning Abbott and Costello  
                    remove undef from list

Constant    Nickname            Value
 <=><=><=>   Space fleet          0
 <~>         Amphisbaena      $ENV{HOME}

AlphaMonth – Take Two

Back in this post, I proposed a new set of month names that would sort the same in both chronological and alphabetical order.    I’ve since come across a similar proposal by Stewart Smith.  I like his proposed month names better than what I originally proposed:

No Name   Abbrv  Days
----------------------------
 1 Alamen   Am   30
 2 Belamen  Bm   31
 3 Calamen  Cm   30
 4 Delamen  Dm   31
 5 Edamen   Em   30
 6 Fedamen  Fm   31
 7 Gadamen  Gm   30
 8 Hedamen  Hm   31
 9 Inamen   Im   30
10 Jenamen  Jm   31
11 Kanamen  Km   30
12 Lenamen  Lm   31 or 30
----------------------------

FWIW.

SV3200 Enable ssh Login

So you got yourself a shiny new HPE StoreVirtual 3200 device.  Now you want to login to the controllers over the network with ssh.  But by default, it’s not enabled (a good thing from a security point of view).

To enable it, go to the CLIQ> prompt on the 4th USB serial console, and enter:

setSupportLogin enabled=true

This allows what HPE calls a Support Login, which allows for ssh on the default port 22 to root@<your-bond-ip-address>

But now you have to deal with the OTP process: HPE’s one-time-password scheme that’s based on SKEY.  For that, you’ll need to work with an HPE support technician to go thru the challenge and responses, that will eventually get you logged into root.

Once a root user, you will want to bypass this OTP mechanism.  Fortunately HPE uses the standard Pluggable Authentication Mechanism (PAM), and provides both the SKEY mechanism as well as the standard one.  You want to switch it to the standard method.  It’s as simple as changing a softlink:

cd /etc/pam.d
ln -sf /etc/pam.lhn/sshd.std sshd

That should do it.  Now when you login as root via ssh, it’s a “normal” login!

One more thing, tho.  If you created users via the Web UI, and want to login to a shell for them, note that the web UI makes their default shell be CLIQ.  To change this, edit /etc/passwd and change the home dir and shell to something like /bin/bash .

Coal Mine Maps

I just came across these two maps that show where some coal mining activity occurred in Colorado Springs. My day job sits right above one of these areas — in the Rockrimmon arial photo one of the trucks in the parking lot is mine (I had to look very, very close). Also nearby is an old coke oven from the Pikeview mine. I find it fascinating; I hope you do too.

abandoned-mines-rockrimmon (PDF)

abandoned-mines-cragmoor (PDF)