Skypeは音声通話もテキストチャットも両方できて便利。

ただP2Pなので、やりとりしている相手と自分の両方がオンラインでないと、メッ セージが流れず、送ったつもりのメッセージが手元に溜まってしまう。ラップトッ プユーザのように、使わないときはコンピュータをオフラインにする使い方をし ていると、これはちょっと不便。

これを何とかするには、常時オンラインなコンピュータでSkypeを動かして、中継 役として加わってもらえばいい。幸い手元には常時オンラインなDebian boxが1台 ある。

Linux版Skypeをheadlessで動かせないか調べてみると、厳密にはheadlessではな いけれども、ダミーのXサーバをあてがっておけばいいらしい。

“Headless” Skype for API-only usage
http://forum.skype.com/index.php?s=&showtopic=89970&view=findpost&p=1083521

具体的な手順は次のとおり(無保証)。

skypeに加えて、xvfbをインストールしておく。

wget http://www.skype.com/go/getskype-linux-deb
sudo dpkg -i skype-debian_*.deb
sudo apt-get install -f
sudo apt-get install xvfb

Xvfbに2番目のディスプレイを提供させて、そこに出力する形でskypeを起動する。

#!/usr/bin/ruby
# skypeheadless.rb
# hisashim 2009-03-31
# cf. "Headless" Skype for API-only usage
# http://forum.skype.com/index.php?s=&showtopic=89970&view=findpost&p=1083521

system("stty -echo")
print "Enter id, password, and ^D in one line (e.g. \"johndoe opensesame^D\"):"
id_and_password = ARGF.read.gsub(/[\r\n]/, " ")
system("nohup Xvfb :2 &")
system("echo #{id_and_password} | DISPLAY=localhost:2 nohup skype --pipelogin &")

今のところうまく動いている模様。