Quantcast
Channel: Ignite Realtime : Unanswered Discussions - Support
Viewing all articles
Browse latest Browse all 4979

onReceiptReceived not been handled for delivery receipts

$
0
0

Openfire 3.10.3

smack 4.1.6

I am trying to use DeliveryReceipts so that I know that the message has been sent. However, onReceiptReceived is never called.

I have done the following:

DeliveryReceiptManager deliveryReceiptManager = DeliveryReceiptManager.getInstanceFor(mClientConnection);
deliveryReceiptManager.autoAddDeliveryReceiptRequests();

 

Sending the message

ChatManager chatManager = ChatManager.getInstanceFor(mClientConnection);
Message msg = new Message(username, Message.Type.chat);
msg.setBody(message);
final String msgReceipt = DeliveryReceiptRequest.addTo(msg);
log.log(Level.INFO, "msgReceiptRequest: " + msgReceipt);       
Chat chat = chatManager.createChat(username, mChatMessageListener);
chat.sendMessage(message);

 

Sent message from the client

SENT (0): <message to='97.steve@xmpp1.call-genie.com' id='6xS4w-43' type='chat'><body>hello</body><thread>32091ad3-8da9-4758-9656-c06eb72532a2</thread><request xmlns='urn:xmpp:receipts'/></message>

 

On the receiving end of the client

<message to='97.steve@xmpp1.call-genie.com' id='6xS4w-43' type='chat'><body>hello</body><thread>32091ad3-8da9-4758-9656-c06eb72532a2</thread><request xmlns='urn:xmpp:receipts'/></message>

 

This code never gets called   

deliveryReceiptManager.addReceiptReceivedListener(new ReceiptReceivedListener() {    @Override    public void onReceiptReceived(String fromJid, String toJid, String receiptId, Stanza receipt) {            log.log(Level.INFO, "OnReceiptReceived fromJid: " + fromJid + " toJid: " + toJid + " receiptId: " + receiptId);        }    });
}

 

I have tried to do something like this when the client receives the message which I was thinking to send back which might trigger the onReceiptReceived event

chat.addMessageListener(new ChatMessageListener() {    @Override    public void processMessage(Chat chat, Message msg) {        if(!msg.getBody().isEmpty()) {            Message ms = new Message();            ms.addBody("EN", "delivered");            ms.setTo(msg.getFrom());            ms.setStanzaId(msg.getStanzaId());            DeliveryReceiptRequest.addTo(ms);            mClientConnection.sendStanza(ms);        }        log.log(Level.INFO, "receiveChatMessages Received prompted message: " + msg.getBody());                                   }
}

 

Many thanks for any suggestions,


Viewing all articles
Browse latest Browse all 4979

Trending Articles