InputStream negotiateIncomingStream(Packet streamInitiation) throws XMPPException { Open openRequest = (Open) streamInitiation; if (openRequest.getType().equals(IQ.Type.ERROR)) { throw new XMPPException(openRequest.getError()); } PacketFilter dataFilter = new IBBMessageSidFilter(openRequest.getFrom(), openRequest.getSessionID()); PacketFilter closeFilter = new AndFilter(new PacketTypeFilter( IBBExtensions.Close.class), new FromMatchesFilter(openRequest .getFrom())); InputStream stream = new IBBInputStream(openRequest.getSessionID(), dataFilter, closeFilter); initInBandTransfer(openRequest); return stream; }