Это старая версия документа.


Skype — бесплатное проприетарное программное обеспечение с закрытым кодом, обеспечивающее шифрованную голосовую связь через Интернет между компьютерами (VoIP), а также платные услуги для связи с абонентами обычной телефонной сети.

Установка из deb-пакета с официального сайта

  1. Скачайте файл .deb для вашей версии Ubuntu.

  2. Откройте скачанный файл (двойной щелчок левой кнопкой мыши).

  3. Выберите «Установить» в появившемся окне Центра приложений Ubuntu:

Установка из репозитория

Перед установкой Skype убедитесь что подключен партнерский репозиторий Canonical.

Skype

Установить Skype можно перейдя по ссылке слева или выполнив в терминале следующую команду:

sudo apt-get install skype

Горячие клавиши

Для того чтобы отвечать на входящие вызовы и завершать разговоры с помощью горячих клавиш, необходимо проделать определённые действия. Инструкция ниже проверялась на Ubuntu 10.10.

  1. Создаём два файла

    skype-answer.py:

    #!/usr/bin/env python
    import sys
    import traceback
    import re
     
    import dbus
    import dbus.service
    #for event loop
    import gobject
    from dbus.mainloop.glib import DBusGMainLoop
     
    #######################################################
    #catching the events
    class Callback_obj(dbus.service.Object):
        def __init__(self, bus, object_path):
            dbus.service.Object.__init__(self, bus, object_path, bus_name='com.Skype.API')
     
        @dbus.service.method(dbus_interface='com.Skype.API')
        def Notify(self, message_text):
            pass
     
    ######################################################
     
    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
     
    #connect to the session
    session_bus = dbus.SessionBus()
     
    #connect to Skype
    skype = session_bus.get_object('com.Skype.API', '/com/Skype')
     
    #ok lets hit up skype now!
    answer = skype.Invoke('NAME PythonManageCall')
    if answer != 'OK':
        sys.exit('Could not bind to Skype client')
    answer = skype.Invoke('PROTOCOL 5')
    if (answer != 'PROTOCOL 5'):
        sys.exit('Could not agree on protocol!')
     
    #tie up the events to the skype
    skype_callback = Callback_obj(session_bus, '/com/Skype/Client')
     
    print 'Alright lets go!\n'
     
    answer = skype.Invoke('SEARCH ACTIVECALLS') #get calls going on right now!
    print "Active calls ", answer
    if(re.search(r'CALLS [0-9]+', answer)): # see if there was a call
        callNum = re.search(r'CALLS ([0-9]+)', answer).group(1)
        print 'Answering Call ', callNum
        skype.Invoke('SET CALL ' + callNum + ' STATUS INPROGRESS')

    skype-hangup.py:

    #!/usr/bin/env python
    import sys
    import traceback
    import re
     
    import dbus
    import dbus.service
    #for event loop
    import gobject
    from dbus.mainloop.glib import DBusGMainLoop
     
    #######################################################
    #catching the events
    class Callback_obj(dbus.service.Object):
        def __init__(self, bus, object_path):
            dbus.service.Object.__init__(self, bus, object_path, bus_name='com.Skype.API')
     
        @dbus.service.method(dbus_interface='com.Skype.API')
        def Notify(self, message_text):
            pass
     
    ######################################################
     
    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
     
    #connect to the session
    session_bus = dbus.SessionBus()
     
    #connect to Skype
    skype = session_bus.get_object('com.Skype.API', '/com/Skype')
     
    #ok lets hit up skype now!
    answer = skype.Invoke('NAME PythonManageCall')
    if answer != 'OK':
        sys.exit('Could not bind to Skype client')
    answer = skype.Invoke('PROTOCOL 5')
    if (answer != 'PROTOCOL 5'):
        sys.exit('Could not agree on protocol!')
     
    #tie up the events to the skype
    skype_callback = Callback_obj(session_bus, '/com/Skype/Client')
     
    print 'Alright lets go!\n'
     
    answer = skype.Invoke('SEARCH ACTIVECALLS') #get calls going on right now!
    print "Active calls ", answer
    if(re.search(r'CALLS [0-9]+', answer)): # see if there was a call
        callNum = re.search(r'CALLS ([0-9]+)', answer).group(1)
        print 'Answering Call ', callNum
        skype.Invoke('SET CALL ' + callNum + ' STATUS FINISHED')
  2. Помещаем эти файлы в любую удобную вам папку, например ~/.Skype/hotkeys.
  3. Запускаем Skype и смотрим в Настройки - Публичный API стоит ли галочка напротив DBUS.
  4. Открываем терминал и набираем

    python ~/.Skype/hotkeys/skype-hangup.py
  5. Появится окно Запрос на авторизацию Skype API. Ставим галочку напротив Запомнить выбор и нажимаем Да.
  6. Запускаем Система - Параметры - Комбинации клавиш клавиатуры. Нажимаем кнопку Добавить. В поле Имя пишем: Ответить на вызов в Skype, в поле Команда вставляем:

    python /home/username/.Skype/hotkeys/skype-answer.py

    где username - ваше имя для входа в систему. Нажимаем Применить, и щёлкаем напротив появившейся строки с названием команды в столбце Комбинация клавиш. Нажимаем комбинацию Ctrl+Alt+Pg_Up.

  7. Для горячих клавиш завершения вызова проделываем аналогичные действия, только команда будет

    python /home/username/.Skype/hotkeys/skype-hangup.py

    и комбинация клавиш Ctrl+Alt+Pg_Down.

Статья написана на основе обсуждения http://forum.skype.com/index.php?showtopic=93334

Устранение треска при оповещениях в ubuntu 12.04 и старше

Наверное многим знакома ситуация, когда вместо (или вместе) с оповещением Skype раздается противный треск. Решение проблемы удалось найти на официальном форуме Skype. В файле /etc/pulse/default.pa

sudo nano /etc/pulse/default.pa

строку

load-module module-udev-detect

необходимо заменить на

load-module module-udev-detect tsched=0

и перезапустить PulseAudio командой

pulseaudio --k и skype

boskor 2012/09/07 16:02

Перевёрнутое изображение

Для x64 систем

Решение найдено здесь http://ubuntuforums.org/showthread.php?t=1460790. Во первых, необходимо установить пакет

sudo apt-get install libv4l-0:i386

Теперь можно запускать (для версий до 12.04 включительно)

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libv4l/v4l2convert.so skype

Для 12.10 и 13.04

LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype

Чтобы не переписывать автозапуски и меню, нужно изменить смысл команды skype. В файле /usr/share/applications/skype.desktop заменить

Exec=skype

на

Exec=bash -c 'ВАШ_ПРЕЛОАД_ЗДЕСЬ'

Интеграция с Pidgin

Смотрите раздел Интеграция Skype в Pidgin на странице Pidgin.

Запуск нескольких копий Skype

Способ работоспособен для Skype версии 4.0.0.8

Для запуска допольнительной копии Skype, необходимо в параметрах указать переменную dbpath:

skype -dbpath=~/.Skype2

Skype-wrapper интеграция Skype в Unity

Skype-wrapper позволяет интегрировать значок Skype, его уведомления, а так же управление статусом в индикатор сообщений Unity. Для установки

Установка

Для установки добавляем репозиторий и устанавливаем пакет

sudo apt-add-repository ppa:skype-wrapper/ppa && sudo apt-get update && sudo apt-get install skype-wrapper

Перезагружаем Skype, при запуске появится запрос на разрешение использования Skype сторонним приложением Skype4Py указываем «Запомнить выбор» и соглашаемся.

Проблемы

Проблема: После установки skype-wrapper Skype запускается со статусом «Оффлайн»
Причина: Это связано с тем, что skype-wrapper для установки статуса Skype берет статус приложения Empathy баг на ланчпаде, поэтому если вы используете другой мессенджер- то у вас будет такая проблема.
Решение: В настройках парамтеров skype-wrapper отключить «Использовать общую для всей системы систему он-лайн статусов». К сожалению, пока так, по заверениям разработчиков они уже пишут свой собственный механизм считывания статуса, поэтому остается только ждать.

Решение проблемы Заикается звук при использовании pulseaudio

Удаление значка Skype с панели Unity

Данная инструкция может выступать как приложение к использованию skype-wrapper. Существует три способа удаления значка Skype с панели Unity. Ниже они приведены в порядки уменьшения приоритета выполнения. Перед выполнением, не забудьте закрыть приложение Skype.

После выполнения любого из приведенных ниже необходимо проследить, чтобы в настройках панели systray-whitelist не было приложения Skype или записи All.

Запрет Skype использовать библиотеку libsni-qt.so (Лучший способ!)

Этот способ является приоритетным к выполнению, потому что он позволяет сохранить в системе пакет sni-qt, что даст возможность его использования другими приложениями, например everpad Смысл способа заключается в прописывании профиля для AppArmor -приложения, установленного в Ubuntu по умолчанию и следящего за доступом различных приложений к ресурсам системы.

Внимание! При выполнении данного способа пропадает возможность открывать ссылки из окна чата skype!

Для реализации данного способа необходимо создать (или отредактировать существующий?) файл /etc/apparmor.d/usr.bin.skype он должен выглядеть так:

usr.bin.skype
# Last Modified: Tue Jun 12 03:49:49 2012 by izx
# REPOSITORY: http://apparmor.test.opensuse.org/backend/api draglor 53
# Additional profiling based on work by Андрей Калинин, LP: #226624
 
# Extremely simple profile for Skype designed ONLY to remove its panel
# icon on Ubuntu 12.04 by disabling access to the sni-qt library
# THIS PROFILE DOES NOT PROVIDE ANY OTHER KIND OF SECURITY
 
#include <tunables/global>
 
/usr/bin/skype {
  #include <abstractions/X>
  #include <abstractions/audio>
  #include <abstractions/base>
  #include <abstractions/dbus-session>
  #include <abstractions/fonts>
  #include <abstractions/freedesktop.org>
  #include <abstractions/kde>
  #include <abstractions/nameservice>
  #include <abstractions/nvidia>
  #include <abstractions/user-tmp>
 
  # deny read access to the sni-qt libraries, thus removing the panel icon
  deny /usr/lib/i386-linux-gnu/qt4/plugins/systemtrayicon/libsni-qt.so r,
  deny /usr/lib/x86_64-linux-gnu/qt4/plugins/systemtrayicon/libsni-qt.so r,
 
  /** mrwkl,
}

Для быстрого добавления файла в систему выполните команду

sudo wget -O/etc/apparmor.d/usr.bin.skype http://pastebin.com/raw.php?i=2EYME5eF

После этого необходимо перезагрузить службу apparmor

sudo /etc/init.d/apparmor reload

Теперь после запуска Skype его значок не будет отображаться на панели.

Запрет чтения пользователю библиотеки libsni-qt.so (не желательно)

В целях сдерживания пользователей от выполнения данной инструкции не приведены команды для её выполнения, только описание.
Смысл данного способа заключается в изменении прав доступа к файлу libsni-qt.so. Необходимо удалить права на чтение файла.

Удаление пакета sni-qt (не рекомендуется)

Данный способ заключается в удалении пакета sni-qt из системы.

После удаления sni-qt другие приложения, использующие данную библиотеку так же перестанут работать!

Ссылки