Я видел несколько ссылок, указывающих на возможность звонка из командной строки с помощью Skype. Инструкции предлагают что-то вроде:
skype --callto:+14445551234
Однако, это приводит меня к сообщению об ошибке «skype: unrecognized option» --callto: +14445551234 ».
Возможно ли это?
Сценарий использования:
Я хочу часто звонить на определенный номер.
skype --callto:+14445551234
или что-то подобное. Можно ли это сделать?
Я знаю, что есть Skype API. Можно ли это сделать из обычной установки Skype в Ubuntu, без установки каких-либо инструментов разработчика?
РЕДАКТИРОВАТЬ: я рассматриваю этот вопрос все еще открытым , потому что я хотел бы знать, если это возможно из установки Skype по умолчанию без каких-либо дополнительных функций.
Однако, ответ ниже относительно « Skype4Py » действительно дает желаемый результат, хотя и с дополнительным инструментом. Я отмечу это как ответ, если другой не появится через несколько недель.
Очень простой:
$> 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
(это означает: операция в секунду основная ошибка была двоеточием вместо пространства...),
Вы можете написать bash-скрипт без использования API. Ваше использование неверно. Правильный путь:
skype --callto +14445551234
Вы можете просмотреть дополнительные параметры, набрав следующую команду в терминале
skype --help
Да, если Вы используете 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
Несколько лет назад я написал небольшой скрипт на 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")