Asmack File Sending Error 503 Type = Cancel With Openfire
Solution 1:
I had same problem, I investigated the stanza and solved it this way.
Many people use "/Smack" or "/Resource" as resource part in jid, but it can be configured also the another way.
Resource path is changing with every presence changed of user. Lets say we want to send image to this user: "user1@mydomain"
You must add "/Resource" part to this jid and it become this: user1@mydomain/Resource
But /Resource path is changing with presence so you must follow every presence change to update resource path. Best way is to get user presence is in roster listener and in presencheChanged() method you get last user resource part like this:
Roster roster=getRoster();
roster.addRosterListener(newRosterListener() {
@OverridepublicvoidentriesAdded(Collection<Jid> addresses) {
Log.d("entriesAdded", "ug");
context.sendBroadcast(newIntent("ENTRIES_ADDED"));
}
@OverridepublicvoidentriesUpdated(Collection<Jid> addresses) {
Log.d("entriesUpdated", "ug");
}
@OverridepublicvoidentriesDeleted(Collection<Jid> addresses) {
Log.d("entriesDeleted", "ug");
}
@OverridepublicvoidpresenceChanged(Presence presence) {
Log.d("presenceChanged", "ug");
//Resource from presenceString resource = presence.getFrom().getResourceOrEmpty().toString();
//Update resource part for user in DB or preferences//...
}
});
}
Resource string will be some generated string like "6u1613j3kv" and jid will become:
user1@mydomain/6u1613j3kv
That means that you must create your outgoing transfer like this:
EntityFullJidjid= JidCreate.entityFullFrom("user1@mydomain/6u1613j3kv");
OutgoingFileTransfertransfer= manager.createOutgoingFileTransfer(jid)
transfer.sendFile(newFile("DirectoryPath"), "Description");
And that is how i have solved my problem with file transfer on smack and Openfire.
In your case form in sendFile(String sentTo)
function sentTo
must be formed like my jid with resource path that is changing with every rpesence change.
Also to mention you must add following properties in your Openfire server:
xmpp.proxy.enabled-truexmpp.proxy.externalip-MY_IP_ADDRESSxmpp.proxy.port-7777
Just to mention, I am using Openfire 4.0.2 and Smack 4.2.2.
Also this can be configured the easy way, just set the resource on
XMPPTCPConnectionConfiguration.Builder .
like
XMPPTCPConnectionConfiguration.BuilderconfigurationBuilder=
XMPPTCPConnectionConfiguration.builder();
configurationBuilder.setResource("yourResourceName");
Post a Comment for "Asmack File Sending Error 503 Type = Cancel With Openfire"