public void sendMessage(ByteBuffer bytes) throws IOException { if (logger.isDebugEnabled()) { logger.debug("About to send a byte buffer of size [{}] over the SCTP", bytes.array().length); } PayloadData payloadData = new PayloadData(bytes.array().length, bytes.array(), true, false, payloadProtocolId, streamNumber); try { this.remoteClientAssociation.send(payloadData); } catch (Exception e) { logger.error("Failed sending byte buffer over SCTP", e); } if (logger.isDebugEnabled()) { logger.debug("Sent a byte buffer of size [{}] over SCTP", bytes.array().length); } }
public void sendMessage(ByteBuffer bytes) throws IOException { if (logger.isDebugEnabled()) { logger.debug("About to send a byte buffer of size [{}] over the SCTP", bytes.array().length); } PayloadData payloadData = new PayloadData(bytes.array().length, bytes.array(), true, false, payloadProtocolId, streamNumber); try { this.clientAssociation.send(payloadData); } catch (Exception e) { logger.error("Failed sending byte buffer over SCTP", e); } if (logger.isDebugEnabled()) { logger.debug("Sent a byte buffer of size [{}] over SCTP", bytes.array().length); } }
private PayloadData doReadTcp() throws IOException { rxBuffer.clear(); int len = this.socketChannelTcp.read(rxBuffer); if (len == -1) { logger.warn(String.format("Rx -1 while trying to read from underlying socket for Association=%s ", this.name)); this.close(); this.scheduleConnect(); return null; } rxBuffer.flip(); byte[] data = new byte[len]; rxBuffer.get(data); rxBuffer.clear(); PayloadData payload = new PayloadData(len, data, true, false, 0, 0); return payload; }
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) { // try { PayloadData payload; if (this.association.getIpChannelType() == IpChannelType.SCTP) { SctpMessage sctpMessage = (SctpMessage) msg; ByteBuf byteBuf = sctpMessage.content(); payload = new PayloadData(byteBuf.readableBytes(), byteBuf, sctpMessage.isComplete(), sctpMessage.isUnordered(), sctpMessage.protocolIdentifier(), sctpMessage.streamIdentifier()); } else { ByteBuf byteBuf = (ByteBuf) msg; payload = new PayloadData(byteBuf.readableBytes(), byteBuf, true, false, 0, 0); } if (logger.isDebugEnabled()) { logger.debug(String.format("Rx : Ass=%s %s", this.association.getName(), payload)); } this.association.read(payload); // } finally { // ReferenceCountUtil.release(msg); // } }
private PayloadData doReadSctp() throws IOException { rxBuffer.clear(); MessageInfo messageInfo = this.socketChannelSctp.receive(rxBuffer, this, this.associationHandler); if (messageInfo == null) { if (logger.isDebugEnabled()) { logger.debug(String.format(" messageInfo is null for Association=%s", this.name)); } return null; } int len = messageInfo.bytes(); if (len == -1) { logger.error(String.format("Rx -1 while trying to read from underlying socket for Association=%s ", this.name)); this.close(); this.scheduleConnect(); return null; } rxBuffer.flip(); byte[] data = new byte[len]; rxBuffer.get(data); rxBuffer.clear(); PayloadData payload = new PayloadData(len, data, messageInfo.isComplete(), messageInfo.isUnordered(), messageInfo.payloadProtocolID(), messageInfo.streamNumber()); return payload; }
case MessageClass.MANAGEMENT: case MessageClass.ROUTING_KEY_MANAGEMENT: payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), byteBuf, true, true, SCTP_PAYLOAD_PROT_ID_M3UA, 0); break; PayloadData payload = (PayloadData) message; int seqControl = payload.getData().getSLS(); payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), byteBuf, true, false, SCTP_PAYLOAD_PROT_ID_M3UA, this.slsTable[seqControl]); break; default: payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), byteBuf, true, true, SCTP_PAYLOAD_PROT_ID_M3UA, 0); break; case MessageClass.MANAGEMENT: case MessageClass.ROUTING_KEY_MANAGEMENT: payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), bf, true, true, SCTP_PAYLOAD_PROT_ID_M3UA, 0); break; PayloadData payload = (PayloadData) message; int seqControl = payload.getData().getSLS(); payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), bf, true, false, SCTP_PAYLOAD_PROT_ID_M3UA, this.slsTable[seqControl]); break; default: payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), bf, true, true,
case MessageClass.MANAGEMENT: case MessageClass.ROUTING_KEY_MANAGEMENT: payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), byteBuf, true, true, SCTP_PAYLOAD_PROT_ID_M3UA, 0); break; PayloadData payload = (PayloadData) message; int seqControl = payload.getData().getSLS(); payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), byteBuf, true, false, SCTP_PAYLOAD_PROT_ID_M3UA, this.slsTable[seqControl]); break; default: payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), byteBuf, true, true, SCTP_PAYLOAD_PROT_ID_M3UA, 0); break; case MessageClass.MANAGEMENT: case MessageClass.ROUTING_KEY_MANAGEMENT: payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), bf, true, true, SCTP_PAYLOAD_PROT_ID_M3UA, 0); break; PayloadData payload = (PayloadData) message; int seqControl = payload.getData().getSLS(); payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), bf, true, false, SCTP_PAYLOAD_PROT_ID_M3UA, this.slsTable[seqControl]); break; default: payloadData = new org.mobicents.protocols.api.PayloadData(byteBuf.readableBytes(), bf, true, true,