I'm building a chat service that supports connectivity over the web as well as XMPP. Assume we have two users, Alice and Bob, chatting with each other over the web interface. Alice is simultaneously logged via web and XMPP. If Bob sends a message to Alice, she sees the message in both clients, but if she replies via the web, the XMPP client ends up with a one-sided conversation: Alice's messages won't be part of the chat history, but Bob's messages will continue to arrive.
Is there any way in XMPP to inform a sender that a different client sent a message on the sender's behalf, to keep the conversations synchronized?