सवाल स्काइप के साथ कमांड लाइन से नंबर कैसे कॉल करें?


मैंने कई लिंक देखे हैं जो स्काइप के साथ कमांड लाइन से कॉल करना संभव है। निर्देशों के साथ कुछ सुझाव देते हैं:

skype --callto:+14445551234

हालांकि, यह मुझे एक त्रुटि संदेश मिलता है, "स्काइप: अपरिचित विकल्प '- कैल्टो: +14445551234"।

क्या यह संभव है?

केस परिदृश्य का प्रयोग करें:

मैं अक्सर एक विशेष संख्या कॉल करना चाहता हूँ।

  • मानते हैं कि स्काइप क्लाइंट पहले ही चल रहा है और लॉग इन है।
  • मैं अपने डेस्कटॉप पर एक शॉर्टकट बनाता हूं, जो चलता है skype --callto:+14445551234 या कुछ समान है।
  • शॉर्टकट पर डबल-क्लिक करें।
  • स्काइप विंडो पॉप अप, तुरंत इस नंबर को बुलाओ

क्या यह किया जा सकता है?

मुझे पता है कि एक स्काइप एपीआई है। क्या यह किसी भी डेवलपर टूल को इंस्टॉल किए बिना उबंटू पर सामान्य स्काइप इंस्टॉलेशन से किया जा सकता है?

संपादित करें: मैं इस सवाल पर अभी भी खुला होने पर विचार कर रहा हूं, क्योंकि मैं जानना चाहता हूं कि स्काइप की डिफ़ॉल्ट स्थापना से यह अतिरिक्त कार्यक्षमता के बिना संभव है या नहीं।

हालांकि, नीचे दिए गए उत्तर "Skype4Py"वांछित परिणाम का जवाब देता है, यद्यपि एक अतिरिक्त उपकरण के साथ। अगर मैं कुछ हफ्तों में नहीं आ रहा हूं तो मैं इसे उत्तर के रूप में चिह्नित करूंगा।


6
2017-10-06 20:41


मूल




जवाब:


बहुत आसान:

$> 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
2017-10-27 09:46





हां, अगर आप Skype4Py का उपयोग करते हैं।

मैंने Skype4Py से उदाहरण / callfriend.py के आधार पर एक सरल callto.py स्क्रिप्ट बनाई है। यह एक तर्क के रूप में स्काइप रोस्टर से एक फोन नंबर या एक दोस्त का नाम लेता है। यह केवल तभी काम कर रहा है जब स्काइप पहले ही लॉन्च हो।

स्काइप आपको पूछेगा कि क्या आप 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
2017-10-10 02:55



अरे। यह आशाजनक लग रहा है। स्काइप 4py इंस्टॉल करने और इसे जांचने के लिए प्रारंभिक, क्या आप मुझे मूल रूप से बता सकते हैं कि यह स्क्रिप्ट क्या करेगी? यानी, मैं किस परिणाम को प्राप्त करने के लिए आदेश देता हूं? - emf
इसे एक फाइल में रखो callto.py और आप इसे साथ चला सकते हैं python callto.py <phone-number>। यदि आपका स्काइप ऑनलाइन है, तो यह <phone-number> पर कॉल शुरू करेगा। - jneves
ठंडा। यह वांछित परिणाम का जवाब देता है, लेकिन मैं इस प्रश्न को खुला होने के लिए छोड़ रहा हूं क्योंकि मैं यह सुनना चाहता हूं कि सामान्य स्काइप क्षमताओं के माध्यम से यह संभव है, तो Google परिणाम ऐसा इंगित करते थे। हालांकि, उत्तर के लिए धन्यवाद। - emf
सौभाग्य। मेरी अपनी खोजों ने मुझे विश्वास दिलाया कि यह विंडोज क्लाइंट के लिए विशिष्ट है, लेकिन मुझे अन्यथा पता लगाना अच्छा लगेगा। - jneves
मुझे नहीं लगता कि आप स्काइप का उपयोग करके कमांड लाइन से फोन नंबर पर कॉल कर सकते हैं। हर बार जब आप कमांड लाइन से स्काइप को कॉल करते हैं, तो यह एक नया स्काइप उदाहरण शुरू करेगा। आप --piped-login का उपयोग करके केवल उपयोगकर्ता नाम और पासवर्ड पाइप कर सकते हैं - Adi Roiban


आप किसी एपीआई का उपयोग किए बिना एक बैश स्क्रिप्ट लिख सकते हैं। आपका उपयोग गलत है। सही तरीका है:

skype --callto +14445551234

टर्मिनल में निम्न आदेश टाइप करके आप अधिक विकल्प देख सकते हैं

skype --help

2
2017-09-17 16:22





कुछ साल पहले मैंने थोड़ा पाइथन लिपि लिखा था इस तरह की चीज करते हैं।

यह स्काइप के लिनक्स संस्करण के लिए था। तो मुझे यकीन नहीं है कि यह अभी भी काम करेगा।

#!/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
2018-03-01 20:09