Skypeを使用してコマンドラインから電話をかけることが可能であることを示唆するリンクをいくつか見てきました。指示は以下のラインに沿って何かを提案します:
skype --callto:+14445551234
ただし、これにより、「skype:unrecognized option '--callto:+14445551234」というエラーメッセージが表示されます。
これは可能ですか?
ユースケースシナリオ:
特定の番号に頻繁に電話をかけたい。
skype --callto:+14445551234
などを実行します。これはできますか?
Skype APIがあることは知っています。これは、開発者ツールをインストールせずに、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
(つまり、OPの主な間違いはスペースではなくコロンでした...)
はい、Skype4Pyを使用している場合。
Skype4Pyのexamples/callfriend.pyに基づいて簡単なcallto.pyスクリプトを作成しました。引数としてスカイプ名簿から電話番号または友人名を取ります。スカイプがすでに起動している場合にのみ機能します。
Skypeは、Skype4PyにAPI許可を与えるかどうかを尋ねます。
コードは次のとおりです。
#!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
APIを使用せずにbashスクリプトを作成できます。使い方が間違っています。正しい方法は次のとおりです。
skype --callto +14445551234
ターミナルで次のコマンドを入力すると、より多くのオプションを表示できます
skype --help
数年前、私はこのようなことを行う小さな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")