Problem in receiving streaminitialization(si) data in IQ packet using asmack android

In my chat application I use following function for send file information in si tag in IQ which is done successfully,but on get response I don’t get si tag in IQ packet instead of that client send me respond with si tag in IQ packet like follow and for that I used asamck-android-19-0.8.10.jar library,

http://jabber.org/protocol/bytestreamsA8905C1F-5217-4550-8BB2-92D28C8A2FD4</gl obalid>A8905C1F-5217-4550-8BB2-92D28C8A2FD4

// My IQ which I get in response

A8905C1F-5217-4550-8BB2-92D28C8A2FD4

//method which I used for file information send

public void sendfile(String filenm,String filereceiverid,int filesize,String myid)

{

String onlyfilenm = " ";

StreamInitiation si = new StreamInitiation();

String filename=filenm.substring(filenm.lastIndexOf("/")+1);

si.setMimeType(URLConnection.guessContentTypeFromName(filename));

StreamInitiation.File siFile = new StreamInitiation.File(filename,filesize);

si.setFile(siFile);

si.setFeatureNegotiationForm(createDefaultInitiationForm());

si.setFrom(connection.getUser());

si.setTo(filereceiverid + "@chat.bobl.us/" + filereceiverid);

si.setType(IQ.Type.SET);

UUID uuid = UUID.randomUUID();

String uuidInString = uuid.toString();

si.setSesssionID(uuidInString);

PacketCollector collector = connection

.createPacketCollector(new PacketIDFilter(si.getPacketID()));

connection.sendPacket(si);

//Here I get receiver response IQ

Packet siResponse = collector.nextResult(SmackConfiguration.getPacketReplyTimeout())

if (siResponse instanceof IQ) {

IQ iqResponse = (IQ) siResponse;

if (iqResponse.getType().equals(IQ.Type.RESULT)) {

StreamInitiation response = (StreamInitiation) siResponse;

System.out.println(“response result” + iqResponse.toXML());

try {

getOutgoingNegotiator(getStreamMethodField(response

.getFeatureNegotiationForm()));

} catch (XMPPException e) {

// TODO Auto-generated catch block

e.printStackTrace();

System.out.println(“catch clause call of xmpp senfile method”);

}

}

else if (iqResponse.getType().equals(IQ.Type.ERROR)) {

throw new XMPPException(iqResponse.getError());

}

else {

throw new XMPPException(“File transfer response unreadable”);

}

}

}

How I solve this problem , can anyone help me?

A8905C1F-5217-4550-8BB2-92D28C8A2FD4
That’s not a valid SI response.

1 Like

I also add ServiceDiscoveryManager.getInstanceFor(connection).addFeature(“jabber.org/proto col/si”) after xmpp connection but still si stream not get using asmack,

than how can I solve this problem?