Jump to content

Skype UDF v1.2 (Sep 15, 2013)


FireFox
 Share

Recommended Posts

Dude you are amazing. This is so going in my downloads folder.

ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search

Link to comment
Share on other sites

  • 1 year later...

Hi Firefox, great job... I will start to test very soon.

DO you know a place/documentation where I can know what each function does? Maybe at skype homepage?

THANKS

Jose

You've got a description for each function in the UDF.

I don't think that the manual available will help you, link here

Br, FireFox.

Edited by FireFox
Link to comment
Share on other sites

  • 8 months later...
Link to comment
Share on other sites

  • 4 weeks later...

Hi there,

I just ran across this by accident and it reminded me of a problem I tried to solve a few months ago, but wasn't able to:

I can send messages to every single member of my Skype list, but we have a "group" that I tried to inform about a set of values at regular intervals (about once every 4 hours).

The problem is that this step works, if I create a group and adress it, but for some unknown reason, our existing "group" (I'm writing it in parentheses, because Skype seems to treat it as something other than a group - and sadly, I did not create it) is not treated as such and DOES NOT show in the list of participants when I run your "Skype in AutoIT.au3".

In my actual Skype contact's list, it shows with a logo similar to the "Online" symbol, but with a circle of 6 white points around the center.

If I remember right, the lines

$ichat = $oSkype.get_Chat("#xyz.dev/$febc24a082b613eb")
For $aChat In $ichat.Chats
If $aChat.Timestamp >= "20120907000149" Then
$msgstring = $msgstring & @CR & $aChat.Timestamp & " | Groupname:" & $aChat.GroupName & " | Name:" & $aChat.Name & "| FriendlyName:" & $aChat.FriendlyName
ConsoleWrite("-> " & @ScriptLineNumber & " " & $msgstring & @CRLF)
EndIf
Next
worked correctly on all other groups, but not this one.

$oSkype.RecentChats reports all chats of that group with the name ("#xyz.dev/$febc24a082b613eb"), but all attempts at sending them a message with either $oSkype.SendMessage(...) or $oSkype.Client.OpenUserInfoDialog("#xyz.dev/$febc24a082b613eb") and similar fail.

Your function displayChatProperties($aChat) reports

(Label: some group of people - sensible easygoing chat.. (sun)

Created at: 20120603013930

Last activity at: 20121028162704

Id: #xyz.dev/$febc24a082b613eb

Blob: 9Ec90D8ftJYM4SvdywDZqXIzfMdkVvWkDU ... vlCwtU3h5QmoQEZJuCeZDYVA

Description:

Guidelines:

My role: Master

My status: Subscribed

Type: Multichat

Members:

member1

member 2

memberxyz

memberetc.

Is anybody aware of a special command to send a message to a multichat (I couldn't fond any in the Skype docs either)?

Link to comment
Share on other sites

This is the solution for our friend :

#include "Skype.au3"

Global $aChat = _Skype_ChatGetActive(), $oChat

For $iChat = 0 To UBound($aChat) -1
 $oChat = $aChat[$iChat]
 If _Skype_ChatGetName($oChat) = "#abc.def/$febc24a082b613eb" Then ExitLoop ;we've found the chat name
Next

_Skype_ChatSendMessage($oChat, "test") ;send test to the chat

Be reminded that you must store the object in a variable before using it ! (it won't work if you use it directly with the array)

@everybody

New version available ! (see first post for update)

Link to comment
Share on other sites

  • 4 weeks later...

I have just tested it and it won't work as you expected.

First, you have to make a simple call and when this one is in progress start the video.

Note that your contact will have to click on the webcam button to activate it on his side.

#include "Skype.au3"

_Skype_OnEventCallStatus("CallStatusEvent_InProgress", $cClsInProgress)

;~ _Skype_UserGetIsVideoCapable ;you can use it to check if the video call is possible

Global $oCall = _Skype_CallCreate("useridhere")

While 1
    Sleep(1000)
WEnd

Func CallStatusEvent_InProgress($oCall)
    _Skype_CallStartVideoSend($oCall)
    _Skype_CallStartVideoReceive($oCall)
EndFunc

Br, FireFox.

Edited by FireFox
Link to comment
Share on other sites

Thank you.

Another useful thing could be to determine which webcam to use/switch from the pc.

I am searching another thing: I would like to receive on my phone a call with more information just near the user name.

I have a prog that makes a call to phone from the pc and I want to recognize which action took place.

The only thing I got is make the call, answer it, then send a message during the call and open it to know the reason.

It could be a lot better if i could put the text near the user caller so I don't need to answer.

It needs the call because sending only the message doesn't make the cell ring loud and for some time.

Edited by frank10
Link to comment
Share on other sites

Another useful thing could be to determine which webcam to use/switch from the pc.

Well, I don't think it's possible. You can get and set the video devices with the _Skype_[set/Get]VideoIn functions.

I suggest you to list your video devices by switching them manually from Skype and then getting them with the _Skype_GetVideoIn func.

I think that Skype will return an error if you try to set a video device not connected.

In case it's not working you will have to use an external application to check the video device.

I am searching another thing: I would like to receive on my phone a call with more information just near the user name.

I have a prog that makes a call to phone from the pc and I want to recognize which action took place.

The only thing I got is make the call, answer it, then send a message during the call and open it to know the reason.

It could be a lot better if i could put the text near the user caller so I don't need to answer.

It needs the call because sending only the message doesn't make the cell ring loud and for some time.

I don't understand what you mean by "more information" and "recognize which action".

Br, FireFox.

Link to comment
Share on other sites

SetVideoIn works well to select the correct webcam before starting the call, but it doesn't change the webcam during the call, like this:

_Skype_SetVideoIn('HP Webcam HD-4110')

_Skype_OnEventCallStatus("CallStatusEvent_InProgress", $cClsInProgress)
Global $oCall = _Skype_CallCreate("Francesem10")

While 1
    Sleep(30000)
    _Skype_SetVideoIn('Philips SPC 900NC PC Camera')
    _Skype_CallStartVideoSend($oCall)


WEnd

It blacks the pic for some seconds but then it continues with the first webcam.

While if I make these steps manually, it works also during a call:

Make call, options-> Video Settings ->select new webcam-> save webcam

then video->start video

the Videocall changes the webcam video.

I was thinking if there is something similar in skype4com, maybe it lacks the "start video" command to reinitialize the new webcam.

For the other problem, I mean: if I get action1 in the pc I will send a text like "action1 occurred", for action2 I will send "action2" and so on.

At this time i send this text in the instant message comunication after I answer the call.

I'm asking if it's possible to incorporate some text message directly near the user caller when the phone rings.

BTW:

there is a typo in the description of this func:

Func _Skype_CallStopVideoReceive($oCall)

it's called startVideo

Link to comment
Share on other sites

SetVideoIn works well to select the correct webcam before starting the call, but it doesn't change the webcam during the call

It blacks the pic for some seconds but then it continues with the first webcam.

It's maybe an API issue.

Try this (not tested) :

...
_Skype_OnEventCallVideoStatusChanged("CallVideoStatusEvent")

;your script with video call
$oCall = ...

Func CallVideoStatusEvent($oCall, $TCallVideoStatus)
    If $TCallVideoStatus = $cCvsBothEnabled Then
;~      _Skype_CallStopVideoSend($oCall) ;uncomment this in case the script does not work
;~      _Skype_CallStopVideoReceive($oCall) ;same

        _Skype_SetVideoIn(...)

        _Skype_CallStartVideoSend($oCall)
        _Skype_CallStartVideoReceive($oCall)
    EndIf
EndFunc

For the other problem, I mean: if I get action1 in the pc I will send a text like "action1 occurred", for action2 I will send "action2" and so on.

At this time i send this text in the instant message comunication after I answer the call.

I'm asking if it's possible to incorporate some text message directly near the user caller when the phone rings.

Hm... try _Skype_ProfileGet/SetMoodText, but I don't see the problem of sending a message (notifications?)

BTW:

there is a typo in the description of this func:

Func _Skype_CallStopVideoReceive($oCall)

it's called startVideo

Right, when you make a thousand of functions you just stop checking what you have done :)

@everyone

New version available !

Br, FireFox.

Edited by FireFox
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...