boamaod / skype2irc

IRC ⟷ Skype Gateway Bot for Connecting Skype Chats to IRC Channels
Other
44 stars 22 forks source link

skype2irc trunk throws [Errno 611] CHAT: Unable to create chat error #7

Open surangak opened 9 years ago

surangak commented 9 years ago

My name is Suranga, and I’m a community member of openmrs.org, an open source medical record system thats widely used across underdeveloped settings. We're trying to install skype2irc for our irc channel, #openmrs

To install it, I did the following,

Setup ubuntu 14.04 LTS Installed python v 2.7.6 Executed the python script from master at https://github.com/boamaod/skype2irc In the code, I made the following changes. I edited servers as follows,

servers = [ ("irc.freenode.net", 6667) ]

When executed, the script should link to our IRC channel (#openmrs), which I defined under,

mirrors = { '#openmrs': 'TvEpk5JnVr7nTHEwKYFiCECTkw7sN0h5L1slw7J-EjaYNwmuKD3FVkfogb3jRZE20vSM2Q6HnbNL0Q'}

The blob given above was obtained by executing /get uri on an existing skype group chat. I found an existing group chat, and obtained the blob, and specified it (as shown above).

However, this fails on execution, and I get,

Running IRC ⟷ Skype Gateway Bot 0.3 Skype process found! Skype API initialised. Traceback (most recent call last): File "skype_4.py", line 493, in chat = skype.CreateChatUsingBlob(mirrors[pair]) File "build/bdist.linux-x86_64/egg/Skype4Py/skype.py", line 553, in CreateChatUsingBlob

File "build/bdist.linux-x86_64/egg/Skype4Py/skype.py", line 281, in _DoCommand while not self.connection.is_connected(): Skype4Py.errors.SkypeError: [Errno 611] CHAT: CREATEUSINGBLOB: Unable to create chat, invalid blob

Any advise as to why this is not working ?

boamaod commented 9 years ago

On Ubuntu 14.04 I'm using:

python-irclib 0.4.8-1.1 Skype4Py 1.0.36 skype 4.3.0.37-1

I don't have this problem using this combination. About your blob, are the flags for Skype channel configured so that anyone can join? Sometimes there is also problem joining if the creator of Skype channel is not logged on.

surangak commented 9 years ago

Thank you @boamaod ! let me re-check in case i'm doing something silly. But just to confirm, by skype channel you mean any basic skype group chat, right ? or has it specifically got to be skype connect only ?

boamaod commented 9 years ago

Yes, I mean basic Skype group chat as defined here:

Although I'm not sure about the differences between P2P and cloud implementations. However, I also tryed your blob and got the same error. My own channels/group chats functioned correctly. I didn't try to create a new chat for testing.

midorikun commented 9 years ago

I also encountered the same problem and have solved it finally.

CreateChatUsingBlob doesn't accept cloud-based group chats that the document above described. That also suggests /createmoderatedchat command to create a P2P-based group chat. It helps us out seemingly. However, this command will implicitly append a strange MODERATED option to the new group chat. Even if you'd remove this option, the group chat seems to work as a moderated chat. I didn't expect that.

To create a P2P-based open group chat to run skype2irc, using CreateChatWith with more than two parameters instead of CreateChatUsingBlob only once.

Like this:

chat = skype.CreateChatUsingBlob(mirrors[pair])

chat = skype.CreateChatWith("dummy1", "dummy2")

Then CreateChatWith would create a new group chat automatically. Revert your script as it was, and get the blob of the generated group chat. This time CreateChatUsingBlob should work successfully with this.

surangak commented 9 years ago

@midorikun , thank you! this is great news! I think I understood you correctly.. what you suggest is that Ido the following-

1) Use chat = skype.CreateChatWith("dummy1", "dummy2"), and execute skype2irc so that it creates a skype group chat for you automatically 2) Execute /get uri on this skype chat, get the URL, and add that to the skype2irc.py code 3) Comment out chat = skype.CreateChatWith("dummy1", "dummy2") and uncomment chat = skype.CreateChatUsingBlob(mirrors[pair])

  1. Now, re-execute the script, and it should work?

To use skype.CreateChatWith("dummy1", "dummy2"), do I really use the text 'dummy1' and 'dummy2' ?

surangak commented 9 years ago

For anyone who stumbles onto this thread, I want to report that the steps I described above worked just fine. It created a new skype group chat with two users, dummy 1 and dummy 2. I was able to remove them, and add actual skype users into it! Thank you for helping us get this working, @midorikun :-) :-) :-)

boamaod commented 9 years ago

Isn't it enough to first create a group chat from GUI with /createmoderatedchat, then get a blob for this chat and use the blob in Skype2IRC? If this works, modifying source code seems a bit too much hassle.

But yes, if there is no working solution for creating P2P chat from GUI, then it might be useful to write a special script for creating group chats. This is something Skype2IRC itself wasn't originally meant to do anyway.

Also, do these dummy users need to be dummy? Can't I use real existing users so I don't have to remove them after creating a chat? And what about the "creator not logged on" problem, I hinted above, does this still occur?

henrikp commented 9 years ago

@boamaod Sadly it doesn't seem to work so easily. I managed to create a new channel (2x shorter blob) with the instructions above and it works like the old thing with skype2irc. But it doesn't seem to be fully compatible with the channels created with /fork - Web Skype finally sees those but skype2irc doesn't like and gives the error mentioned above. Oh well, can't have everything :)

boamaod commented 7 years ago

Created a prototype to bridge a cloud based Skype chat: