Author Topic: Skype Plugin for VoxCommando  (Read 11194 times)

0 Members and 1 Guest are viewing this topic.

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Skype Plugin for VoxCommando
« on: October 02, 2013, 02:21:30 PM »
Here is a tutorial to get you started using VoxCommando to interact with Skype.


jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Skype Plugin for VoxCommando
« Reply #1 on: October 02, 2013, 03:10:11 PM »
And here is the XML for the Skype group that I created in the video:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<commandGroup open="True" name="Skype" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="36" name="announce chat via tts" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>TTS.Speak</cmdType>
      <cmdString>{2} says, {4}</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <cmdString>{2} says, {4}</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>Skype.Chat.cmsReceived</event>
  </command>
  <command id="59" name="announce incoming call" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>TTS.Speak</cmdType>
      <cmdString>{1} is calling you on skype</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <event>Skype.clsRinging.cltIncomingP2P</event>
  </command>
  <command id="40" name="call contact {1}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Skype.CallContact</cmdType>
      <cmdString>{1}</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>VC.Standby</cmdType>
      <cmdString />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>call contact</phrase>
    <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\payloadSkype.xml</payloadFromXML>
  </command>
  <command id="60" name="accept incoming call" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Skype.Answer</cmdType>
      <cmdString />
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>accept incoming call</phrase>
  </command>
</commandGroup>

miniburk

  • Jr. Member
  • **
  • Posts: 4
  • Karma: 0
    • View Profile
Re: Skype Plugin for VoxCommando
« Reply #2 on: October 02, 2013, 05:07:49 PM »
thank you! got it to working directly after this information!

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: Skype Plugin for VoxCommando
« Reply #3 on: October 02, 2013, 05:17:42 PM »
As long as we're on the subject of creative uses of Skype ...

Various people have asked about controlling home automation remotely, when not at home. This is pretty easy to do if you have the Skype plugin activated.

Just as a basic example (extremely unsophisticated!), if you know your voice commands well you can use the following** to issue commands via Skype:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<command id="468" name="Do it" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <if ifBlockDisabled="False" ifNot="False">
    <ifType>(A)==(B)</ifType>
    <ifParams>{1}&amp;&amp;jitterjames</ifParams>
    <then>
      <action>
        <cmdType>VC.TellVox</cmdType>
        <cmdString>{4}</cmdString>
        <cmdRepeat>1</cmdRepeat>
      </action>
    </then>
    <else />
  </if>
  <event>Skype.Chat.cmsReceived</event>
</command>

** The above expects a Skype message from the contact "jitterjames". Obviously you'd want to change that to whatever is appropriate (unless, of course, you *want* James to haunt your home.  :biglaugh)
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Skype Plugin for VoxCommando
« Reply #4 on: October 03, 2013, 08:37:06 AM »
You could extend this to ask questions about what was going on at home.

Some kind of status report command that would send a Skype message back to you with info about your lights, motion sensors etc...

Could be a fun challenge!
« Last Edit: October 03, 2013, 08:49:36 AM by jitterjames »

SunDoWneR

  • Jr. Member
  • **
  • Posts: 15
  • Karma: 0
    • View Profile
    • www.en4ce.com
Re: Skype Plugin for VoxCommando
« Reply #5 on: October 14, 2013, 01:44:42 PM »
A "Who is online" and "X came online" / "X went offline" Event/Trigger would also be nice.

Cheers, Sunny

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Skype Plugin for VoxCommando
« Reply #6 on: October 14, 2013, 03:08:02 PM »
Given the following announcement, I'm not sure it is worth the effort...

http://gigaom.com/2013/07/13/skype-says-it-will-kill-desktop-api-by-end-of-2013/

SunDoWneR

  • Jr. Member
  • **
  • Posts: 15
  • Karma: 0
    • View Profile
    • www.en4ce.com
Re: Skype Plugin for VoxCommando
« Reply #7 on: October 14, 2013, 05:52:37 PM »
Yeah, i've red that to.
What about the Skype URI's? http://developer.skype.com/skype-uris
Could this be used instead?

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: Skype Plugin for VoxCommando
« Reply #8 on: October 14, 2013, 05:58:47 PM »
So far it doesn't look like their URIs will support anything to do with tracking who's online or offline:

Quote
Currently supported Skype URIs include:
- switching focus to the Skype client.
- initiating audio calls to other Skype users, phones, or mobiles—both one-to-one dialogs and multi-party conferences.
- initiating video calls to another Skype user.
- sending instant messages to an individual or establishing a group multi-chat.
« Last Edit: October 14, 2013, 06:02:17 PM by nime5ter »
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Skype Plugin for VoxCommando
« Reply #9 on: October 14, 2013, 06:03:37 PM »
I think Microsoft is trying to force us to use their crappy windows 8 "app" version of skype so are pulling the plug on all the good stuff we can do in the desktop version.

I think that the plugin will continue to work as long as you don't "upgrade" *cough* skype past the current version.

Eventually they will probably make it so that you can't even connect with an older version but until then we will probably be OK.

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Skype Plugin for VoxCommando
« Reply #10 on: October 21, 2013, 05:47:17 PM »
For what it's worth, I have updated the Skype plugin in version 1.1.6.6

http://voxcommando.com/forum/index.php?topic=1228.0

Your new events are there and I added some new actions to get a list of users (all, or just those that are online etc) and also to query for user information.

Remember, after updating VC, you'll need to tell Skype again to allow access from VC.

Hopefully this will continue to work as long as you keep your current version of Skype.  Personally, I don't think they have done anything to "improve" Skype in the last couple of years anyway and I doubt they will do anything in the near future other than find new ways to increase profit while consuming more of your system resources and making it even harder to close.  :bonk

Here is are some sample commands using the new actions:
Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<commandGroup open="True" name="skype test" enabled="True" prefix="" priority="0" requiredProcess="" description="">
  <command id="1135" name="getusers" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Skype.GetUsers</cmdType>
      <cmdString>Online</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.SetFontSize</cmdType>
      <cmdString>14</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Results.MatchConcat</cmdType>
      <cmdString>{CR}</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <cmdString>{#M} Users are online:{CR}{LastResult}</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>get skype users</phrase>
  </command>
  <command id="1137" name="getuser info" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
    <action>
      <cmdType>Skype.GetUsers</cmdType>
      <cmdString>Online</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>Skype.GetUserInfo</cmdType>
      <cmdString>{Match.Rnd}&amp;&amp;fullname</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <action>
      <cmdType>OSD.ShowText</cmdType>
      <cmdString>{LastResult}</cmdString>
      <cmdRepeat>1</cmdRepeat>
    </action>
    <phrase>test get user info</phrase>
  </command>
</commandGroup>

jb5349

  • Jr. Member
  • **
  • Posts: 46
  • Karma: 2
    • View Profile
Re: Skype Plugin for VoxCommando
« Reply #11 on: November 18, 2013, 01:47:55 PM »
Just wondering if the Skype plugin is going to work after December 2013? I noticed that Skype informed me today that it will no longer work or some parts of it will no longer work. Is there any plan to work around this change to the Skype API so that it can still be used with VC? I know it should still work with Virtual Audio Cable but I like the fact it can interact with messages and respond to incoming calls.

Thanks!

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Skype Plugin for VoxCommando
« Reply #12 on: November 18, 2013, 02:26:15 PM »
The solution to this problem may be as simple as "don't update skype", but otherwise, no, they are removing support for most of the functionality and not providing alternatives.  There will be some limited support for simple things like "placing a call" and maybe for answering etc. You can check out their website youself to see what will be possible.

http://developer.skype.com/skype-uris

Indy

  • $upporter
  • Jr. Member
  • *****
  • Posts: 23
  • Karma: 1
    • View Profile
Re: Skype Plugin for VoxCommando
« Reply #13 on: March 01, 2014, 08:43:37 PM »
Just wanted to report that it appears to still work with the latest version 6.14.0.104.  The only thing I see missing from the plugin is to be able to initiate a video call.  I understand I can make a normal call and then click video with my mouse, but I would love to be able to initiate a video call all with voice.  I use this completely in my family room on my TV so ideally everything is either done with my remote control or via voice.  Is that something that could be added assuming the Skype API allows it.

I also noticed that when I gave vox access to skype my camera light stays on as long as Vox is open.  If I close Vox, my webcam light also finally goes off.  Has the big brother affect which I don't like.  Is this expected behavior and if so is it possible to modify it?

Edit

Also while testing noticed the call answer was without video as well which again required me to find my mouse to enable it.  Would love to have both options available if possible.
« Last Edit: March 01, 2014, 09:06:08 PM by Indy »

nime5ter

  • Administrator
  • Hero Member
  • *****
  • Posts: 2012
  • Karma: 61
    • View Profile
    • Getting Started with VoxCommando
Re: Skype Plugin for VoxCommando
« Reply #14 on: March 02, 2014, 08:20:14 AM »
That's freaky about the big brother camera. I haven't been able to duplicate that here and we have no real thoughts about root causes I'm afraid.

With regard to placing a video call, if you don't mind enabling the RoboBrowser plugin (or have it enabled already), you can try the following command:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<command id="267" name="place a video call to {1}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>RoboB.Select</cmdType>
    <cmdString>skype</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Navigate</cmdType>
    <cmdString>skype:{1}?call&amp;video=true</cmdString>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Dispose</cmdType>
    <cmdString />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>place a, skype</phrase>
  <phrase>video call, vid call</phrase>
  <phrase>to</phrase>
  <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloadSkype.xml</payloadFromXML>
</command>

If you've already created an end call command (i.e. with the Skype.EndCall action), that willl work to end your video call as well.

Also, if you see the camera light is on when it shouldn't be, perhaps try issuing your "end call" command to see if the camera turns off, and let us know either way. thx.
« Last Edit: March 02, 2014, 08:25:13 AM by nime5ter »
TIPS: POST VC VERSION #. Explain what you want VC to do. Say what you've tried & what happened, or post a video demo. Attach VC log. Link to instructions followed.  Post your command (xml)

Indy

  • $upporter
  • Jr. Member
  • *****
  • Posts: 23
  • Karma: 1
    • View Profile
Re: Skype Plugin for VoxCommando
« Reply #15 on: March 03, 2014, 12:06:03 AM »
Thanks nime5ter, that works great.  Can you please explain to me where I can get more information on the possible syntax that is allowed from the skype: command

skype:{1}?call&amp;video=true

Also for the camera thing, I'm not sure.  As long as I have vox off or completely closed, the camera light goes off.  If I'm in listen or standby, the camera light is on like it is being actively used.  It's freaky and makes me paranoid so I have to figure out what is causing it.


EDIT

Ya, its not a plugin, I just reinstalled Vox into a different folder, selected XBMC Frodo as the configuration and started it for the first time.  The camera light comes on immediately.  Really dislike that and was hoping it was a borked plugin in my other install.
« Last Edit: March 03, 2014, 12:11:22 AM by Indy »

jitterjames

  • Administrator
  • Hero Member
  • *****
  • Posts: 7715
  • Karma: 116
    • View Profile
    • VoxCommando
Re: Skype Plugin for VoxCommando
« Reply #16 on: March 03, 2014, 08:16:31 AM »
Thanks nime5ter, that works great.  Can you please explain to me where I can get more information on the possible syntax that is allowed from the skype: command

skype:{1}?call&amp;video=true

That is called a skype uri.  Here is more info on it:
http://developer.skype.com/skype-uris

The {1} will be replaced by payload 1, which should be the contact name.

Also for the camera thing, I'm not sure.  As long as I have vox off or completely closed, the camera light goes off.  If I'm in listen or standby, the camera light is on like it is being actively used.  It's freaky and makes me paranoid so I have to figure out what is causing it.

EDIT

Ya, its not a plugin, I just reinstalled Vox into a different folder, selected XBMC Frodo as the configuration and started it for the first time.  The camera light comes on immediately.  Really dislike that and was hoping it was a borked plugin in my other install.

From what you are describing I am quite certain that you are using your webcam microphone for VC and this particular device turns a light on whenever the microphone is active.  So you should use a different microphone if it bothers you, or look into your camera settings to see if you can change how the light works.  It may also be possible that it uses a different colour to represent "mic on" vs. "video on".

Indy

  • $upporter
  • Jr. Member
  • *****
  • Posts: 23
  • Karma: 1
    • View Profile
Re: Skype Plugin for VoxCommando
« Reply #17 on: March 03, 2014, 09:10:30 AM »
That is called a skype uri.  Here is more info on it:
http://developer.skype.com/skype-uris

The {1} will be replaced by payload 1, which should be the contact name.

Thanks, glad to know.

From what you are describing I am quite certain that you are using your webcam microphone for VC and this particular device turns a light on whenever the microphone is active.  So you should use a different microphone if it bothers you, or look into your camera settings to see if you can change how the light works.  It may also be possible that it uses a different colour to represent "mic on" vs. "video on".

I actually don't, I use a Yeti mic that does quite a good job of picking me up in the room.  But I think you may be onto the problem, if it is somehow being enumerated and initialized by Vox.  Or maybe my default mic changed in Windows and I didn't notice.  I'm going to see if I can disable the mic completely in Windows and see if the problem goes away.  Great suggestion thanks, didn't think about the mic in the webcam being the issue but does make sense.  I will report back once I've tested it.

Indy

  • $upporter
  • Jr. Member
  • *****
  • Posts: 23
  • Karma: 1
    • View Profile
Re: Skype Plugin for VoxCommando
« Reply #18 on: March 03, 2014, 08:38:20 PM »
Disabling the mic in Windows turns the light off!  Thanks for the suggestions James, it was right on!

DieterClaeys

  • Jr. Member
  • **
  • Posts: 10
  • Karma: 1
    • View Profile
Re: Skype Plugin for VoxCommando
« Reply #19 on: January 01, 2017, 07:07:36 PM »
Just want to give a small heads up on the Plugin behavior with the latest version of Skype (Version 7.30.0.105)

1) Generating Payloads --> works
2) Announcing Incoming Calls --> works
3) Announcing Chat Messages --> does not work on my setup.
Although here I am not sure if this should generate a message when you are receive a chat or an sms
4) Accept Incoming Calls --> works
5) Checking who's online/offline --> works
6) Making a call --> does not work, but can be functional when using below code:

Code: [Select]
<?xml version="1.0" encoding="utf-16"?>
<!--VoxCommando 2.2.2.9-->
<command id="280" name="Skype To {1}" enabled="true" alwaysOn="False" confirm="False" requiredConfidence="0" loop="False" loopDelay="0" loopMax="0" description="">
  <action>
    <cmdType>RoboB.Select</cmdType>
    <params>
      <param>skype</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Navigate</cmdType>
    <params>
      <param>skype:{1}?call</param>
    </params>
    <cmdRepeat>1</cmdRepeat>
  </action>
  <action>
    <cmdType>RoboB.Dispose</cmdType>
    <params />
    <cmdRepeat>1</cmdRepeat>
  </action>
  <phrase>Skype</phrase>
  <phrase optional="true">To</phrase>
  <payloadFromXML phraseOnly="False" use2partPhrase="False" phraseConnector="by" Phrase2wildcard="anyone" optional="False">payloads\payloadSkype.xml</payloadFromXML>
</command>

As my main focus was to get the "calling part" of Skype to work, the Plugin, together with some workarounds, still does the trick.

Its just a pity that Skype removed their support for the Skype Desktop API.
« Last Edit: January 01, 2017, 07:19:33 PM by DieterClaeys »