Como chamar um número da linha de comando com o Skype?

6

Eu vi vários links sugerindo que é possível fazer uma chamada a partir da linha de comando com o skype. As instruções sugerem algo nos moldes de:

skype --callto:+14445551234

No entanto, isso me traz uma mensagem de erro, "skype: opção não reconhecida '--callto: +14445551234".

Isso é possível?

Caso de uso:

Eu quero ligar para um número específico com frequência.

  • supondo que o cliente skype já esteja em execução e conectado.
  • Eu crio um atalho na minha área de trabalho, que executa skype --callto:+14445551234 ou algo semelhante.
  • Clique duas vezes no atalho.
  • janela do skype aparece, ligando imediatamente para este número

Isso pode ser feito?

Eu sei que existe uma API do Skype. Isso pode ser feito a partir de uma instalação normal do Skype no Ubuntu, sem instalar nenhuma ferramenta de desenvolvedor?

EDIT: Estou considerando que esta questão ainda esteja aberta , porque gostaria de saber se isso é possível a partir de uma instalação padrão do Skype sem qualquer funcionalidade adicional.

No entanto, a resposta abaixo sobre " Skype4Py " responde ao resultado desejado, embora com uma ferramenta adicional. Eu vou marcar isso como a resposta se outro não aparecer em algumas semanas.

    
por emf 06.10.2010 / 22:41

4 respostas

7

Muito simples:

$> 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>
    [...]

Testado. Funciona. Não apenas com apelidos. Também com números de telefone diretos:

$> skype --callto +494030001234

(isto significa que o erro principal do OP era um dois pontos em vez de um espaço ...)

    
por Frank Nocke 27.10.2016 / 11:46
5

Sim, se você usar o Skype4Py.

Eu criei um script callto.py simples baseado em examples / callfriend.py do Skype4Py. Leva um número de telefone ou um nome de amigo da lista do skype como um argumento. Está funcionando apenas se o Skype já estiver lançado.

O Skype perguntará se você deseja conceder permissão de API ao Skype4Py.

O código segue:

#!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
    
por jneves 10.10.2010 / 04:55
2

Você pode escrever um script bash sem usar nenhuma API. Seu uso está errado. A maneira correta é:

skype --callto +14445551234

Você pode ver mais opções digitando o seguinte comando no terminal

skype --help
    
por Prabhanshu 17.09.2014 / 18:22
0

Alguns anos atrás eu escrevi um pequeno script Python para fazer esse tipo de coisa.

Isso foi para a versão Linux do Skype. Então não posso ter certeza de que ainda funcionará.

#!/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")
    
por Buteman 01.03.2018 / 21:09