J'ai vu plusieurs liens suggérant qu'il est possible de passer un appel en ligne de commande avec skype. Les instructions suggèrent quelque chose comme:
skype --callto:+14445551234
Cependant, cela me donne un message d'erreur, "skype: option non reconnue '--callto: +14445551234".
Est-ce possible?
Scénario d'utilisation:
Je veux appeler un numéro particulier fréquemment.
skype --callto:+14445551234
ou quelque chose de similaire.Cela peut-il être fait?
Je sais qu'il existe une API Skype. Cela peut-il être fait à partir d’une installation Skype normale sur Ubuntu, sans aucun outil de développement?
EDIT: Je considère que cette question est toujours ouverte , car j'aimerais savoir si cela est possible à partir d'une installation par défaut de skype sans aucune fonctionnalité supplémentaire. .
Cependant, la réponse ci-dessous concernant " Skype4Py " répond au résultat souhaité, bien qu'avec un outil supplémentaire. Je marquerai ceci comme la réponse si un autre n'est pas à venir dans quelques semaines.
Très simple:
$> 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>
[...]
Testé. Ça marche. Pas seulement avec des surnoms. Aussi avec numéros de téléphone directs:
$> skype --callto +494030001234
(Cela signifie: l'erreur principale des PO était un colon au lieu d'un espace ...)
Oui, si vous utilisez Skype4Py.
J'ai créé un simple script callto.py basé sur exemples/callfriend.py de Skype4Py. Un numéro de téléphone ou le nom d'un ami de la liste de skype doit être utilisé comme argument. Cela ne fonctionne que si skype est déjà lancé.
Skype vous demandera si vous souhaitez accorder une autorisation d'API à Skype4Py.
Le code suit:
#!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
Vous pouvez écrire un script bash sans utiliser d’API. Votre utilisation est mauvaise. La manière correcte est:
skype --callto +14445551234
Vous pouvez voir plus d'options en tapant la commande suivante dans le terminal
skype --help
Il y a quelques années, j'ai écrit un petit script Python pour faire ce genre de chose.
C'était pour la version Linux de Skype. Je ne peux donc pas être sûr que cela fonctionnera encore.
#!/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")