Hi camels,

I tried to implement a simple XMPP bot, but reading and responding
from/to the same XMPP chat seems to fail: The bot seems to send the
messages to itself.

I configured an endpoint using:


String
userA = "bot",
userB = "human",
server = "SERVER",
port = "5222",
passwordA = "secret";

final String chatEndpoint =
      String.format("xmpp://%s@%s:%s/%s@%s?password=%s",
              userA, server, port,
              userB, server, passwordA);



which produces an endpoint such as
xmpp://bot@SERVER:5222/human@SERVER?password=secret
so the bot authenticates with SERVER and it will talk to human@SERVER.

The bot is indeed able to read from XMPP and dump the messages to std::out:


from(chatEndpoint)
.to("stream:out");


And the bot is able to send XMPP messages:


from("timer://foo?fixedRate=true&period=1000")
.setBody(constant("test"))
.to(chatEndpoint);


So far, I'm really impressed! :)

However, simply responding to the human's message fails:


from(chatEndpoint)
.to(chatEndpoint);



My XMPP server (prosody) shows me, that the bot sends the messages to
itself:


debug   Received[c2s]: <message id='g0x1L-5' type='chat' to='bot@SERVER'
from='bot@SERVER/Camel'>


But I have no idea why.. Am I doing something wrong?
I tried adding &participant=human@SERVER to the chatEndpoint which
doesn't solve the issue. I also tried to create two separate chat
endpoints with different resource names, but that didn't work either.

Any help is very much appreciated.

Best wishes,
Martin

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to