Since version 4.3, Skype for Linux requires PulseAudio. It is available from SBo, but since Skype is a 32bit program only, the necessary 32bit compatibility packages should be installed as well. I am running Slackware64 14.1 -multilib system and I have a virtual machine with Slackware 32. So what I did was:
First of all, PulseAudio needs its own group and user. You can add them like this:
# groupadd -g 216 pulse
# useradd -u 216 -g pulse -d /var/lib/pulse pulse
In the virtual machine, I compiled the following from SBo:
speex | an audio compression format designed for speech
json-c | JSON library in C
pulseaudio | PulseAudio Sound Server
I converted the m to compat32 packages on my host machine like this:
convertpkg-compat32 -i speex-1.2rc1-i486-3_SBo.tgz -e tgz
In case you have no virtual machine at hand, you can use sbotools which is capable of creating compat32 packages from SlackBuilds.org, like this:
sboinstall --compat32 speex
However, with the above approach, the compilation of pulseaudio broke.
Then, I compiled the above packages on the host x86_64 system and installed them together with the ready compat32 packages and Skype. This worked for me right away. I had sound notifications, could hear the Skype test call and was able to record a message and hear it back.
There has been an active discussion about it on LQ where people reported various problems. There were also many suggestions, solutions and a user even prepared packages. From reading the discussion, I decided to configure an un-intrusive set up of PulseAudio. Following the Arch Linux Wiki article, I modified these files as suggested:
/etc/pulse/daemon.conf | Replace these with the proper values:
exit-idle-time = 0 # Exit as soon as unneeded
flat-volumes = yes # Prevent messing with the master volume
/etc/pulse/client.conf | Replace these with the proper values:
# Applications that uses PulseAudio *directly* will spawn it,
# use it, and pulse will exit itself when done because of the
# exit-idle-time setting in daemon.conf
autospawn = yes
/etc/pulse/default.pa | Replace the entire content of this file with this:
# Set tsched=0 here if you experience glitchy playback. This will
# revert back to interrupt-based scheduling and should fix it.
# Replace the device= part if you want pulse to use a specific device
# such as "dmix" and "dsnoop" so it doesn't lock an hw: device.
load-module module-alsa-source device="default" tsched=1
load-module module-alsa-sink device="default" tsched=1
# Accept clients -- very important
# Publish to X11 so the clients know how to connect to Pulse. Will
# clear itself on unload.
To be honest, I don’t know it this helps or makes things better…