Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [ecf-dev] Troubles with Datashare over XMPP

Pavel,

I got the error message below using two gmail accounts (is this what you are seeing also)?. It seems to indicate that gmail is refusing to send the message.

However, when I added the contacts to each other's contact list/roster, the messages were delivered (see below), and I did not see the error message. It could be that gmail has a policy of limiting delivery of certain messages (e.g. those that are just message properties?) when the sender/receiver are not on each other's roster.

Also, it may be necessary to use the fully qualified XMPPID (i.e. that includes the resource). Would you please try the ChannelTest again after adding having your two gmail accounts add each other to their rosters?

Thanks,

Scott

Here's the error response I get

<message id="T7ATS-23" to="scottslewis@xxxxxxxxx/ecf.paluIbE9F19E8B" type="error" from="rcraftlewis@xxxxxxxxx/ecf.WzWjMhmXtt6dtH2pGPwz7pCq+sU="><thread>TR03n0</thread><properties xmlns="http://www.jivesoftware.com/xmlns/xmpp/properties";><property><name>org.eclipse.ecf.internal.provider.xmpp.smack.ECFConnection.object</name><value type="java-object"> rO0ABXVyAAJbQqzzF/gGCFTgAgAAeHAAAAWurO0ABXNyADFvcmcuZWNsaXBzZS5lY2YucHJvdmlkZXIuZ2VuZXJpYy5Db250YWluZXJNZXNzYWdlLTM5MzA2OTECAARKAAhzZXF1ZW5jZUwABGRhdGF0ABZMamF2YS9pby9TZXJpYWxpemFibGU7TAAPZnJvbUNvbnRhaW5lcklEdAAiTG9yZy9lY2xpcHNlL2VjZi9jb3JlL2lkZW50aXR5L0lEO0wADXRvQ29udGFpbmVySURxAH4AAnhwAAAAAAAAAABzcgBFb3JnLmVjbGlwc2UuZWNmLnByb3ZpZGVyLmdlbmVyaWMuQ29udGFpbmVyTWVzc2FnZSRTaGFyZWRPYmplY3RNZXNzYWdlLTQwODk2NzECAAJMAARkYXRhcQB+AAFMABJmcm9tU2hhcmVkT2JqZWN0SURxAH4AAnhwdXIAAltCrPMX+AYIVOACAAB4cAAAAJOs7QAFc3IAOW9yZy5lY2xpcHNlLmVjZi5wcm92aWRlci5kYXRhc2hhcmUuQmFzZUNoYW5uZWwkQ2hhbm5lbE1zZ33On1Dn0agYAgABWwALY2hhbm5lbERhdGF0AAJbQncJAAdjaGFubmVseHB1cgACW0Ks8xf4BghU4AIAAHcJAAdjaGFubmVseHAAAAAFaGVsbG9zcgAmb3JnLmVjbGlwc2UuZWNmLmNvcmUuaWRlbnRpdHkuU3RyaW5nSUQtMTA3MDE5NAIAAUwABXZhbHVldAASTGphdmEvbGFuZy9TdHJpbmc7eHIAJG9yZy5lY2xpcHNlLmVjZi5jb3JlLmlkZW50aXR5LkJhc2VJRKld1Okwd/cuAgABTAAJbmFtZXNwYWNldAApTG9yZy9lY2xpcHNlL2VjZi9jb3JlL2lkZW50aXR5L05hbWVzcGFjZTt4cHNyADhvcmcuZWNsaXBzZS5lY2YuY29yZS5pZGVudGl0eS5TdHJpbmdJRCRTdHJpbmdJRE5hbWVzcGFjZW34srBuP3sLAgAAeHIAJ29yZy5lY2xpcHNlLmVjZi5jb3JlLmlkZW50aXR5Lk5hbWVzcGFjZTcwODUyMjE4AgAESQAIaGFzaENvZGVaAA1pc0luaXRpYWxpemVkTAALZGVzY3JpcHRpb25xAH4ACUwABG5hbWVxAH4ACXhwzOzgJAF0ABJTdHJpbmdJRCBOYW1lc3BhY2V0ACZvcmcuZWNsaXBzZS5lY2YuY29yZS5pZGVudGl0eS5TdHJpbmdJRHQAB2NoYW5uZWxzcgAib3JnLmVjbGlwc2UuZWNmLmNvcmUuaWRlbnRpdHkuR1VJRDE1MTE1NTg3AgAAeHEAfgAIc3IAMG9yZy5lY2xpcHNlLmVjZi5jb3JlLmlkZW50aXR5LkdVSUQkR1VJRE5hbWVzcGFjZYlkfOMz6zLOAgAAeHEAfgAOLQutoQF0AA5HVUlEIE5hbWVzcGFjZXQAIm9yZy5lY2xpcHNlLmVjZi5jb3JlLmlkZW50aXR5LkdVSUR0ABxwYWx1SWI1WUFNdVF1eTlrQ3ZBOU5LMW1CL0k9c3IALW9yZy5lY2xpcHNlLmVjZi5wcm92aWRlci54bXBwLmlkZW50aXR5LlhNUFBJRC00NzcyOTE0AgAESQAEcG9ydEwACGhvc3RuYW1lcQB+AAlMAAxyZXNvdXJjZW5hbWVxAH4ACUwACHVzZXJuYW1lcQB+AAl4cQB+AApzcgA0b3JnLmVjbGlwc2UuZWNmLnByb3ZpZGVyLnhtcHAuaWRlbnRpdHkuWE1QUE5hbWVzcGFjZS01NjMzOTc2AgAAeHEAfgAOIa5aWwF0AA5YTVBQIE5hbWVzcGFjZXQACGVjZi54bXBw/////3QACWdtYWlsLmNvbXQAIGVjZi5XeldqTWhtWHR0NmR0SDJwR1B3ejdwQ3Erc1U9dAALcmNyYWZ0bGV3aXM=</value></property></properties><nos:x value="disabled" xmlns:nos="google:nosave"/><arc:record otr="false" xmlns:arc="http://jabber.org/protocol/archive"/><error code="503" type="cancel"><service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></message>

console output with additions to contacts/roster

receivercontainerid=GUID[IKjPtojKTzqOGFvAUaBbVbZXkXc=]; fromcontainerid=GUID[P0oT5XS22sgea3v9328oHCzJIqM=]; channelid=StringID[channel] event=ChannelMessageEvent[channelid=StringID[channel];fromid=GUID[P0oT5XS22sgea3v9328oHCzJIqM=];data=[B@5a5622]
  message=hello



Samolisov Pavel wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello Scott.

I have tried Channel Test on my gmail accounts, but it does not work
correctly.

I got in the OSGi console:

receivercontainerid=GUID[LFJWsv2VjBREyKuZONkNTMENAXo=];
fromcontainerid=GUID[LFJWsv2VjBREyKuZONkNTMENAXo=];
channelid=StringID[channel]

event=ChannelMessageEvent[channelid=StringID[channel];fromid=GUID[LFJWsv2VjBREyKuZONkNTMENAXo=];data=[B@1cc2f42]
   message=hello

receivercontainerid=GUID[1miXQC+k9p01gzrzh+IpJurt+cc=];
fromcontainerid=GUID[1miXQC+k9p01gzrzh+IpJurt+cc=];
channelid=StringID[channel]

event=ChannelMessageEvent[channelid=StringID[channel];fromid=GUID[1miXQC+k9p01gzrzh+IpJurt+cc=];data=[B@22d5b5]
   message=hello

i.e. receivercontainerid == fromcontainerid

In debug window same error than I sent before. To my regret, Error
message isn't included in XMPP message, only error code.




Scott Lewis пишет:
Hi Pavel,

I think I may have this sorted out.

So, first I created and released a new xmpp test:

org.eclipse.ecf.tests.provider.xmpp.datashare.ChannelTest

This test works properly with my two gmail accounts specified as system
properties (e.g.)

-Dusername0=user0@xxxxxxxxx -Dpassword0=pw0
-Dusername1=user1@xxxxxxxxx -Dpassword1=pw1
-Dsmack.debugEnabled=true

I would appreciated it if you would try this test with your initial
accounts.

In looking at your code, I think the problem is with this line:

_container = ContainerFactory.getDefault().createContainer(XMPP_CONTAINER,
               System.getProperty(XMPP_ACCOUNT_ID));

It should rather be:

_container = ContainerFactory.getDefault().createContainer(XMPP_CONTAINER);


The reason for this is that the containerID (that's created for the
container via this factory method) is *not* intended to be the same as
the account that is connected to (i.e. the 'targetID' passed into
container.connect(targetID, context)).

In your createContainer call above, you specify the XMPP_ACCOUNT_ID for
the containerID...and so that String is used for both the containerID
*and* for the targetID...i.e. what targetID the container connects
*to*.  These should never be the same, actually...as the containerID
should be unique relative to the server that it is connecting to
(represented by the connect targetID).  So in your case the containerID
*is* the same as the connect targetID, and the message just gets
delivered *back* to the originator (and not sent onto the target).

So, in short, if you change the createContainer call above to create a
new ID for your client container, I suspect things will most probably
work for you.

Please do let all know if this does/doesn't settle things for you.  If
not and I'm wrong...then we'll try again.

Thanks,

Scott


Samolisov Pavel wrote:

Scott, I create container by following code:

_container =
ContainerFactory.getDefault().createContainer(XMPP_CONTAINER,
                System.getProperty(XMPP_ACCOUNT_ID));

but container hasn't readable ID.

The message to="pavel.samolisov@xxxxxxxxx/"...is the message that I
sended.

The message
<message id="9Q3m5-4" to="samolisov@xxxxxxxxx/ecf.samoliF3FE20D2"
from="pavel.samolisov@xxxxxxxxx/" type="error">

is error message that I received and ChannelListener in my bundle reacts
on this message.

samolisov@xxxxxxxxx sends message to pavel.samolisov@xxxxxxxxx
samolisov@xxxxxxxxx receives message from pavel.samolisov@xxxxxxxxx
(error message but this message include sended data).
pavel.samolisov@xxxxxxxxx does not receive message that sended by
samolisov@xxxxxxxxx

I do not send any others messages.


Scott Lewis ?8H5B:
Hi Pavel,

Thanks for sticking with this...we'll track down the issue one way or
another.

Samolisov Pavel wrote:
Thanks for your help, Scott!

I try it on gmail.com only.

I send data from samolisov@xxxxxxxxx to pavel.samolisov@xxxxxxxxx and
add -Dsmack.debugEnabled=true to my run configuration.

But it does not work correct :-(

I send data (over DataSharing API Channel) from samolisov@xxxxxxxxx to
pavel.samolisov@xxxxxxxxx

In Smack Debug Window I can see:

<message id="9Q3m5-4" to="pavel.samolisov@xxxxxxxxx/" type="chat">
  <thread>N4E940</thread>
  <properties
xmlns="http://www.jivesoftware.com/xmlns/xmpp/properties";>
    <property>
<name>org.eclipse.ecf.internal.provider.xmpp.smack.ECFConnection.object</name>


      <value
type="java-object">rO0ABXVyAAJbQqzzF/gGCFTgAgAAeHAAAAT1rO0ABXNyADFvcmcuZWNsaXBzZS5lY2YucHJvdmlkZXIuZ2VuZXJpYy5Db250YWluZXJNZXNzYWdlLTM5MzA2OTECAARKAAhzZXF1ZW5jZUwABGRhdGF0ABZMamF2YS9pby9TZXJpYWxpemFibGU7TAAPZnJvbUNvbnRhaW5lcklEdAAiTG9yZy9lY2xpcHNlL2VjZi9jb3JlL2lkZW50aXR5L0lEO0wADXRvQ29udGFpbmVySURxAH4AAnhwAAAAAAAAAABzcgBFb3JnLmVjbGlwc2UuZWNmLnByb3ZpZGVyLmdlbmVyaWMuQ29udGFpbmVyTWVzc2FnZSRTaGFyZWRPYmplY3RNZXNzYWdlLTQwODk2NzECAAJMAARkYXRhcQB+AAFMABJmcm9tU2hhcmVkT2JqZWN0SURxAH4AAnhwdXIAAltCrPMX+AYIVOACAAB4cAAAAK2s7QAFc3IAOW9yZy5lY2xpcHNlLmVjZi5wcm92aWRlci5kYXRhc2hhcmUuQmFzZUNoYW5uZWwkQ2hhbm5lbE1zZ33On1Dn0agYAgABWwALY2hhbm5lbERhdGF0AAJbQncJAAdjaGFubmVseHB1cgACW0Ks8xf4BghU4AIAAHcJAAdjaGFubmVseHAAAAAfSGVsbG8gZnJvbSBzYW1vbGlzb3ZAZ21haWwuY29tIXNyACZvcmcuZWNsaXBzZS5lY2YuY29yZS5pZGVudGl0eS5TdHJpbmdJRC0xMDcwMTk0AgABTAAFdmFsdWV0ABJMamF2YS9sYW5nL1N0cmluZzt4cgAkb3JnLmVjbGlwc2UuZWNmLmNvcmUuaWRlbnRpdHkuQmFzZUlEqV3U6TB39y4CAAFMAAluYW1lc3BhY2V0AClMb3JnL2VjbGlwc2UvZWNmL2NvcmUvaWRlbnRpdHkvT
mFt
ZXN
wYWNlO3hwc3IAOG9yZy5lY2xpcHNlLmVjZi5jb3JlLmlkZW50aXR5LlN0cmluZ0lEJFN0cmluZ0lETmFtZXNwYWNlbfiysG4/ewsCAAB4cgAnb3JnLmVjbGlwc2UuZWNmLmNvcmUuaWRlbnRpdHkuTmFtZXNwYWNlNzA4NTIyMTgCAARJAAhoYXNoQ29kZVoADWlzSW5pdGlhbGl6ZWRMAAtkZXNjcmlwdGlvbnEAfgAJTAAEbmFtZXEAfgAJeHDM7OAkAXQAElN0cmluZ0lEIE5hbWVzcGFjZXQAJm9yZy5lY2xpcHNlLmVjZi5jb3JlLmlkZW50aXR5LlN0cmluZ0lEdAAHY2hhbm5lbHNxAH4ACHEAfgAPdAATc2Ftb2xpc292QGdtYWlsLmNvbXNyAC1vcmcuZWNsaXBzZS5lY2YucHJvdmlkZXIueG1wcC5pZGVudGl0eS5YTVBQSUQtNDc3MjkxNAIABEkABHBvcnRMAAhob3N0bmFtZXEAfgAJTAAMcmVzb3VyY2VuYW1lcQB+AAlMAAh1c2VybmFtZXEAfgAJeHEAfgAKc3IANG9yZy5lY2xpcHNlLmVjZi5wcm92aWRlci54bXBwLmlkZW50aXR5LlhNUFBOYW1lc3BhY2UtNTYzMzk3NgIAAHhxAH4ADiGuWlsBdAAOWE1QUCBOYW1lc3BhY2V0AAhlY2YueG1wcP////90AAlnbWFpbC5jb21wdAAPcGF2ZWwuc2Ftb2xpc292</value>


    </property>
  </properties>
</message>

And not long after:

<message id="9Q3m5-4" to="samolisov@xxxxxxxxx/ecf.samoliF3FE20D2"
from="pavel.samolisov@xxxxxxxxx/" type="error">
  <thread>N4E940</thread>
  <error code="400"/>
  <properties
xmlns="http://www.jivesoftware.com/xmlns/xmpp/properties";>
    <property>

<name>org.eclipse.ecf.internal.provider.xmpp.smack.ECFConnection.object</name>


      <value
type="java-object">rO0ABXVyAAJbQqzzF/gGCFTgAgAAeHAAAAT1rO0ABXNyADFvcmcuZWNsaXBzZS5lY2YucHJvdmlkZXIuZ2VuZXJpYy5Db250YWluZXJNZXNzYWdlLTM5MzA2OTECAARKAAhzZXF1ZW5jZUwABGRhdGF0ABZMamF2YS9pby9TZXJpYWxpemFibGU7TAAPZnJvbUNvbnRhaW5lcklEdAAiTG9yZy9lY2xpcHNlL2VjZi9jb3JlL2lkZW50aXR5L0lEO0wADXRvQ29udGFpbmVySURxAH4AAnhwAAAAAAAAAABzcgBFb3JnLmVjbGlwc2UuZWNmLnByb3ZpZGVyLmdlbmVyaWMuQ29udGFpbmVyTWVzc2FnZSRTaGFyZWRPYmplY3RNZXNzYWdlLTQwODk2NzECAAJMAARkYXRhcQB+AAFMABJmcm9tU2hhcmVkT2JqZWN0SURxAH4AAnhwdXIAAltCrPMX+AYIVOACAAB4cAAAAK2s7QAFc3IAOW9yZy5lY2xpcHNlLmVjZi5wcm92aWRlci5kYXRhc2hhcmUuQmFzZUNoYW5uZWwkQ2hhbm5lbE1zZ33On1Dn0agYAgABWwALY2hhbm5lbERhdGF0AAJbQncJAAdjaGFubmVseHB1cgACW0Ks8xf4BghU4AIAAHcJAAdjaGFubmVseHAAAAAfSGVsbG8gZnJvbSBzYW1vbGlzb3ZAZ21haWwuY29tIXNyACZvcmcuZWNsaXBzZS5lY2YuY29yZS5pZGVudGl0eS5TdHJpbmdJRC0xMDcwMTk0AgABTAAFdmFsdWV0ABJMamF2YS9sYW5nL1N0cmluZzt4cgAkb3JnLmVjbGlwc2UuZWNmLmNvcmUuaWRlbnRpdHkuQmFzZUlEqV3U6TB39y4CAAFMAAluYW1lc3BhY2V0AClMb3JnL2VjbGlwc2UvZWNmL2NvcmUvaWRlbnRpdHkvT
mFt
ZXN
wYWNlO3hwc3IAOG9yZy5lY2xpcHNlLmVjZi5jb3JlLmlkZW50aXR5LlN0cmluZ0lEJFN0cmluZ0lETmFtZXNwYWNlbfiysG4/ewsCAAB4cgAnb3JnLmVjbGlwc2UuZWNmLmNvcmUuaWRlbnRpdHkuTmFtZXNwYWNlNzA4NTIyMTgCAARJAAhoYXNoQ29kZVoADWlzSW5pdGlhbGl6ZWRMAAtkZXNjcmlwdGlvbnEAfgAJTAAEbmFtZXEAfgAJeHDM7OAkAXQAElN0cmluZ0lEIE5hbWVzcGFjZXQAJm9yZy5lY2xpcHNlLmVjZi5jb3JlLmlkZW50aXR5LlN0cmluZ0lEdAAHY2hhbm5lbHNxAH4ACHEAfgAPdAATc2Ftb2xpc292QGdtYWlsLmNvbXNyAC1vcmcuZWNsaXBzZS5lY2YucHJvdmlkZXIueG1wcC5pZGVudGl0eS5YTVBQSUQtNDc3MjkxNAIABEkABHBvcnRMAAhob3N0bmFtZXEAfgAJTAAMcmVzb3VyY2VuYW1lcQB+AAlMAAh1c2VybmFtZXEAfgAJeHEAfgAKc3IANG9yZy5lY2xpcHNlLmVjZi5wcm92aWRlci54bXBwLmlkZW50aXR5LlhNUFBOYW1lc3BhY2UtNTYzMzk3NgIAAHhxAH4ADiGuWlsBdAAOWE1QUCBOYW1lc3BhY2V0AAhlY2YueG1wcP////90AAlnbWFpbC5jb21wdAAPcGF2ZWwuc2Ftb2xpc292</value>


    </property>
  </properties>
</message>
I just want to clarify...which containers (and their associated
connections) are sending/receiving the above?

It looks like the message sent is to="pavel.samolisov@xxxxxxxxx/"...is
the following message (with

to="samolisov@xxxxxxxxx/ecf.samoliF3FE20D2") the *result/received
message* or is it another message being sent?

If you could label the above with the sender container id and the
receiver container id it would/will help.

In the mean time, I will take your code and try to run it with my own
gmail accounts to see if I can determine what's happening.

Also, today I'm creating a datashare test case for the xmpp provider,
which we can use to test this (and other behavior) with two arbitrary
xmpp accounts.

Thanks,

Scott



I do not understand what is this error?

I have attached my code to the letter. Could you watch it?

Thanks.


Scott Lewis ?8H5B:
Hi Pavel,

I cannot currently duplicate this, so we're going to have to figure
out
a way for me to collect enough information to debug.

One initial thought...could you run both clients with Smack
debugging on
(i.e. system property:  -Dsmack.debugEnabled=true) and capture the
sent
and received packets for both clients?  Please edit out the
passwords in
the xml data.

Also, what is the XMPP server at samolisov@xxxxx (i.e. what server
software)?  And who configures it?

Finally, if you wish you can run the tests in
org.eclipse.ecf.tests.provider.xmpp with these two accounts.  The
tests
require system properties to specify the account/pw information...i.e.
here's an example

-Dusername0=user0@xxxxxxxxx
-Dpassword0=user0pw
-Dusername1=user1@xxxxxxxxx
-Dpassword1=user1pw
-Dchat.room.name=ecf
-Dsmack.debugEnabled=true

You will need to change the username?/password? info appropriately for
the two accounts.  The test that you should probably run is
org.eclipse.ecf.tests.provider.xmpp.remoteservice.RemoteServiceTest...many


of the other tests in that project test the chat room access (and
gmail
has no chat room capability), so those tests aren't relevant.

Finally, another option is that if you have access to creating an
account on the ya.ru system for me (e.g. a guest or test account), I
will try out the tests against my gmail/gtalk account.  So if you are
able to create an account on ya.ru xmpp server for me (or let me know
about accessing an existing account) please do so and I'll give it
a try
when I can.

Thanks,

Scott


Samolisov Pavel wrote:
I'm sorry for my English, Scott.

Yes, you are right. The sender is receiving the message but not the
intended receiver.

Are these XMPP servers able to communicate/federate?
Yes, they are.

Scott Lewis ?8H5B:
Hi Pavel,

Samolisov Pavel wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hello, folks!

I'm playing with Datashare API over XMPP-container and have some
problems.

I create ecf.xmpp.smack container, connect to my jabber account
"samolisov@xxxxx" (connect fine, I watch myself online), create
channel
with name "channel"

IChannelContainerAdapter channelContainer =
(IChannelContainerAdapter)
_container.getAdapter(IChannelContainerAdapter.class);
channelContainer.createChannel(getNewID(CHANNEL_NAME),
getChannelListener(), null);

Bundle keep run.

Late, I start this bundle with another config: I create
ecf.xmpp.smack
container, connect to my jabber account "samolisov@xxxxxxxxx"
(connect
fine, I watch myself online) and create channel with name
"channel".

And send message over channel to my another account:

IChannel sender = getChannel();
System.out.println("to = " + System.getProperty(XMPP_TO_ID));
sender.sendMessage(IDFactory.getDefault().createID(IDFactory.getDefault().getNamespaceByName(XMPP_NAMESPACE),"samolisov@ya,ru")




,"Hello!".getBytes());

Now are running two bundles with two containers.

But! This data has sended to my container (i.e. container that send
this
data: "samolisov@xxxxxxxxx") and do not received by container
that I
send this message ("samolisov@xxxxx").
Your phrasing in the description above is a little unclear to me
so I
want to check:  are you saying that the "Hello" message is
received by
the container that's doing the sending (samolisov@xxxxxxxxx), rather
than the target account/container? (i.e. samolisov@ya,ru  ...I'm not
sure if the comma is a typo, but I assume it is).  So the sender is
receiving the message but not the intended receiver?

And I can see that the two accounts are on different XMPP servers
(gmail.com and ya.ru).  Are these XMPP servers able to
communicate/federate?

Thanks,

Scott


- --
Pavel Samolisov

Meet me at:
Vkontakte.ru: http://vkontakte.ru/id3178981
Blog: http://samolisov.blogspot.com
Twitter: http://twitter.com/samolisov
XMPP/Jabber: samolisov@xxxxxxxxx
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.11 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkrpIVcACgkQ20T0Vos3rqA/8ACeIdlLru+YJ5mg6Ec3PlJQU7uU
fSAAnjuGTwaXSYVc1Wt3Hrd+eEmvHRgv
=+anL
-----END PGP SIGNATURE-----




Back to the top