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

Я видел несколько ссылок, указывающих на возможность звонка из командной строки с помощью Skype. Инструкции предлагают что-то вроде:

skype --callto:+14445551234

Однако, это приводит меня к сообщению об ошибке «skype: unrecognized option» --callto: +14445551234 ».

Возможно ли это?

Сценарий использования:

Я хочу часто звонить на определенный номер.

  • при условии, что клиент Skype уже работает и вошел в систему.
  • Я создаю ярлык на рабочем столе, который запускает skype --callto:+14445551234 или что-то подобное.
  • Дважды щелкните ярлык.
  • Появляется окно Skype, немедленно вызывая этот номер

Можно ли это сделать?

Я знаю, что есть Skype API. Можно ли это сделать из обычной установки Skype в Ubuntu, без установки каких-либо инструментов разработчика?

РЕДАКТИРОВАТЬ: я рассматриваю этот вопрос все еще открытым , потому что я хотел бы знать, если это возможно из установки Skype по умолчанию без каких-либо дополнительных функций.

Однако, ответ ниже относительно « Skype4Py » действительно дает желаемый результат, хотя и с дополнительным инструментом. Я отмечу это как ответ, если другой не появится через несколько недель.

6
задан 14 October 2010 в 00:04

4 ответа

Очень простой:

$> skype --help

Skype 4.3.0.37

Usage: skype [options]
Options:
  --dbpath=<path>       Specify an alternative path to store Skype data files.
                        Default: ~/.Skype
  --resources=<path>    Specify a path where Skype can find its resource files.
                        Default: /usr/share/skype
  --secondary           Start a secondary instance of Skype.
  --disable-api         Disable Skype Public API.
  --callto <nick>
  skype:<nick>?<action>
    [...]

Протестированный.Работает. Не только с псевдонимами. Также с прямыми номерами:

$> skype --callto +494030001234

(это означает: операция в секунду основная ошибка была двоеточием вместо пространства...),

7
ответ дан 14 October 2010 в 00:04

Вы можете написать bash-скрипт без использования API. Ваше использование неверно. Правильный путь:

skype --callto +14445551234

Вы можете просмотреть дополнительные параметры, набрав следующую команду в терминале

skype --help
0
ответ дан 14 October 2010 в 00:04

Да, если Вы используете Skype4Py.

Я создал простой callto.py сценарий на основе examples/callfriend.py от Skype4Py. Это берет номеру телефона или другу имя от списка в скайпе как аргумент. Это только работает, если скайп уже запускается.

Skype спросит Вас, если Вы захотите дать разрешение API Skype4Py.

Код следует:

#!python
# ---------------------------------------------------------------------------------------------
#  Python / Skype4Py example that takes a skypename or number from the commandline
# and calls it.
#

import sys
import Skype4Py

# This variable will get its actual value in OnCall handler
CallStatus = 0

# Here we define a set of call statuses that indicate a call has been either aborted or finished
CallIsFinished = set ([Skype4Py.clsFailed, Skype4Py.clsFinished, Skype4Py.clsMissed, Skype4Py.clsRefused, Skype4Py.clsBusy, Skype4Py.clsCancelled]);

def AttachmentStatusText(status):
   return skype.Convert.AttachmentStatusToText(status)

def CallStatusText(status):
    return skype.Convert.CallStatusToText(status)

# This handler is fired when status of Call object has changed
def OnCall(call, status):
    global CallStatus
    CallStatus = status
    print 'Call status: ' + CallStatusText(status)

# This handler is fired when Skype attatchment status changes
def OnAttach(status): 
    print 'API attachment status: ' + AttachmentStatusText(status)
    if status == Skype4Py.apiAttachAvailable:
        skype.Attach()

# Let's see if we were started with a command line parameter..
try:
    CmdLine = sys.argv[1]
except:
    print 'Missing command line parameter'
    sys.exit()

# Creating Skype object and assigning event handlers..
skype = Skype4Py.Skype()
skype.OnAttachmentStatus = OnAttach
skype.OnCallStatus = OnCall

# Starting Skype if it's not running already..
if not skype.Client.IsRunning:
    print 'Starting Skype..'
    skype.Client.Start()

# Attatching to Skype..
print 'Connecting to Skype..'
skype.Attach()

# Make the call
print 'Calling ' + CmdLine + '..'
skype.PlaceCall(CmdLine)

# Loop until CallStatus gets one of "call terminated" values in OnCall handler
while not CallStatus in CallIsFinished:
    pass
5
ответ дан 14 October 2010 в 00:04

Несколько лет назад я написал небольшой скрипт на Python, делающий подобные вещи.

Это было для версии Skype для Linux. Поэтому я не могу быть уверен, что это все еще будет работать.

#!/usr/bin/python
import Skype4Py
import os

os.system("/usr/bin/skype")
# Create an instance of the Skype class.
skype = Skype4Py.Skype()

# Connect the Skype object to the Skype client.
skype.Attach()

# Obtain some information from the client and print it out.
print 'Your full name:', skype.CurrentUser.FullName

print 'Your contacts:'

for user in skype.Friends:

    print '    ', user.FullName

skype.PlaceCall("+44123456789")
0
ответ дан 14 October 2010 в 00:04

Другие вопросы по тегам:

Похожие вопросы: