Package: skcmd
# skcmd.py0.0.6  - A command line interface to Skype##Introductionskcmd.py is a command line interface to Skype. It is implemented as aclient/server pair. It has no GUI components at all and is designedfor ease of use by the VI/blind. It offers a reduced set offunctionality, keeping the CLI simple and avoiding bloat.The server logs Skype status messages to stdout, and executes Skypecommands on behalf of the client. In particular it logs incomming calls, friend  status changes and authz requests.The client is a command line program that sends Skype requests to theserver for execution .  It is asynchronous and does not block onoutgoing/incoming/ calls etc.skcnd.py depends on a running Skype desktop, and the skype4pypackage. This in turn depends on the availability of the Skype DesktopAPI.  See the note below about the likely demise of this interface andthe apps that depend on it.## Installskcmd.py will only work with Python 2.x and will not work with Python3.  It has been tested on Vinux 4.0, but should work on any modernLinux distro. Orca and a TTS are not a requirement, but are of courseneeded if you're VI/blind.You may need to apt-get install some prerequisites:```sudo apt-get install python-devsudo apt-get install python-gobject```Install skcmd:The simplest way is to install from the Python Cheeseshop:sudo easy_install skcmdAlternatively install directly from the github repo:```git clone http://github.com:/lsmithso/skcmd.gitcd skcmdsudo python setup.py install```This should automatically install  Python package dependancies, including skype4py.## Run### StartingStart the Skype desktop program as normal and sign inOpen a terminal window and startt the skcmd server:skcmd.py sThe Skype desktop will prompt for an authorization of this program the first time it is run. I needed sighted help for this step.When the server starts, it logs who you are signed in as, then a listof all your contacts. It then blocks, waiting for client commands orSkype status changes.### Client CommandsAll client commands must be run from a separate terminal window.  Thenormal Skype desktop continues to run, so you will hear the usualringing and contact status change sounds.### Voice callsTo make a call, run the client call command, using the skype handle:s    kcmd.py call echo123All being well, This should initiate a call to the Skype call test service.  Look for Skype status messages in the server terminal window.Inbound calls are logged by the server. To answer  a call run:skcmd.py answer### ChattingTo send a chat message:skcmd.py chat handle [chat message to send]Sends its arguments as a chat message to the Skype user withhandle. If no message argument is given, then stdin is read and sentuntil an empty line or EOF is input. The later is useful for sendingspecial shell characters without quoting.### VoicemailsVoicemails can be listed, played and deleted. You must enable yourvoicemail inbox using the Skype GUI.To list the contents of your voicemail inbox:skcmd.py vmsThis lists each voicemail message as as an index number, the displayname/handle of the caller, call date/time/ duration. and voicemailstatus. The index is a small integer used to refer to the voicemail inother vm commands.Play a voicemail with:skcmd.py vmplay idxWhere idx the index number of the message displayed by the vms command.Stop the currently playing voicemail with:skcmd.py vmstopDelete a voicemail with:skcmd.py vmdelete idxThe voicemail list is re-indexed after each message is deleted.### Command ListThe complete list of client commands are:authz handle 0|1 - Authorize   the contact with handle.contacts - Prints a list of all your contacts in the format  handle/display name/full name/status.auto_answer 0|1 - Turns off/on autoanswer. Default is off.hangup - Finish the current call.exit - Terminate the  skcmd server.answer - Answer the current inbound call.call handle - Place an outbound call to the user with handle. Handleis the Skype id printed in the 1st column of the 'contacts' command.tone tones - send DTMF tones, ie for POTS conferencing.add_contact  - Sends an authz requests to handlesearch = Search for a Skype userchat - chat to to the user with handle.status  Set your status to DND, INVISIBLE  etcmood - set your mood messagevms - List all voicemails,.vmplay idx - Play the voicemail with index number idxvmstop - Stop the currently playing voicemailvmdelete idx - Delete the voicemail with id idxme  - print your skype id/screen name and your current balance.help - A breif help message.## Skype status changesThe server logs some Skype status messages to stdout, and  signals them on D-Bus.Status logged includes inbound/outbound call progress (in particularinbound call ringing), contact authorization requests, contact statuschanges (online, away etc) and chat messages.These are plain text messages so a TTS should be able to announce them.skcmd also signal D-Bus with these status messages. A simple skcmd.el is included that listens for this signal and announces it to emacspeak.## DisclaimerThis software comes with absolutely no warranty whatsoever, and comesAS-IS.  Do what you want with itt. I take no responsibility whatsoeverfor it.# The Demise of the Skype Desktop APIskcmd.py and all other Skype apps depend on the availability of theSkype Desktop API. This is a rich programming interface that makesjust about all Skype desktop functionality available to apps. Itallows inventive and powerful 3rd party telephony apps to be builtaround Skype for free. It is a mature and well documented part of theSkype ecosystem.In July 2013 Microsoft announced that they were killing off this APIin favour of a new SkypeURI interface.  This interface has vastlyreduced functionality, to the point where its almost useless.SkypeURI is unusable for skcmd, and I suspect for a lot of other appstoo.The announcement says that the Desktop API will begin to stop workingin September 2013, and that apps should start using SkypeURI rightaway.SkypeURI is not currently available for Linux, so if the Desktop APIdoes stop working, skcmd.py is sunk. Even when it does becomeavailable, it is of no use at all, so skcmd.py is still sunk.As of September 3 2013, skcmd.py was still fully functioning, so enjoyit while you can!# Significant Changes## 0.0.5Add tone command.Add  voicemail list, play, stop , delete commandsconcat call and tone args into spaceless string.Add multiline chat##  0.0.6Add 'me' command