Skypeが繋がらないのはESETのファイアウォールが原因だった
気がついたらMacでSkypeの通話ができなくなっていました。
セキュリティソフトのESETの設定を変更したら解決したのでメモしておこうかなと。
普段はSkypeを使わないので気がつかなかったのですが、Skypeでの通話が出来なくなっていました。お互い受話はできるのですが、相手の音声が聴こえませんでした。
トラブルシューティングで大事なのは問題の切り分けです(多分)。切り分けていきましょう。
テストコール
まずは通信相手が原因なのかを切り分けるためにテストコールを行います。
「Echo / Sound Test Service」に電話を掛けたらすぐに接続されて音声が聞こえてくるはずなのですが、すぐに接続されるものの何も聞こえず10秒経ったら切れてしまいました。 したがって、通信相手ではなく通信元である私のMacが原因だとわかりました。
ファイアウォールを切る
上の写真の「接続が弱すぎる」という文言と、何回テストコールをしても10秒ちょうどで切れるという点を加味すると、そもそも通信が全く出来ていないと考えられました。
もし通信が全く出来ないという症状であれば、ポート開放系の設定ができていないのが原因な予感がしました。
そこで、ファイアウォールが原因かもと思いファイアウォールをひとまず切ってみると、見事テストコールで音声が聞こえるようになりました。
したがって、ファイアウォールによって通信が阻害されていたのが原因だとわかりました。
(記事を書いているときに思い出したのですが、以前Skypeが使えていた頃のセキュリティソフトはIntegoだったのですが、使えなくなっていたときにはESETに乗り換えていました。)
ファイアウォールの例外設定
スカイプするためにファイアウォールを切るなんてことは恐ろしいので、ファイアウォールを有効にしててもSkypeの通信を許可するようにファイアウォールの例外設定を行います。
ところがこの例外設定が中々上手くいきませんでした。
denchu.asia www.itsecad-blog.com
これらの記事を参考にして設定を行っても、テストコールが失敗してしまいます。
そこで、どんな例外条件を設定すれば良いのかを地道に検証していきました。
その結果、以下の通りに設定すれば解決しました。
(記事を書くために当時の状況を再現していたのですが、たまに設定が反映されていないことがありました。その場合は再起動したら反映されました。)
検証方法
まず以下のように条件が一番緩い例外設定を行い、だんだんと厳しい条件にしていくことで検証しました。 まず重要だったのは、Skype.appだけに対する例外設定ではなくすべてのアプリケーションに対する例外設定にすることでした。通話機能はSkype.app以外のプログラムを使っているのかもしれません。
次に重要なのは、ポート番号の特定です。ポート番号は0番から65535番まで存在しますので、ポート番号の例外設定を「0-30000」「0-15000」「0-5000」のようにだんだんと狭めていきました。幸いにも今回関係していたのは3478番ポートの一つだけだったので、容易にポートを特定できました。
さらに、許可する通信の方向は内向きだけで大丈夫でした。通信相手からのパケットさえ届けば通話できるようです。
余談
1年ほど前にはMacの言語設定を英語にしないとSkypeで画面共有ができないというバグがありましたが、今は解決していました。 Skype で 画面共有ができない。 -Mac Skype 5.8.0.1027 から画面共有を- 迷惑メール・スパム | 教えて!goo
追記
以下の記事によると、UDPの3479〜3481番ポートも開放すると通信品質が向上するようです。 Skype for Business Online – UDP ポートが追加されます – Skype/Lync Support Team Blog JAPAN
Debug your life!