/** * Get the first line encoded. * * @return a string containing the encoded request line. */ public String getFirstLine() { if (requestLine == null) return null; else return this.requestLine.encode(); }
/** Encode the request line as a String. * * @return requestLine encoded as a string. */ public String encode() { return encode(new StringBuilder()).toString(); }
/** * Get the message as a linked list of strings. Use this if you want to iterate through the * message. * * @return a linked list containing the request line and headers encoded as strings. */ public LinkedList getMessageAsEncodedStrings() { LinkedList retval = super.getMessageAsEncodedStrings(); if (requestLine != null) { this.setRequestLineDefaults(); retval.addFirst(requestLine.encode()); } return retval; }
public static void main(String args[]) throws ParseException { String requestLines[] = { "REGISTER sip:192.168.0.68 SIP/2.0\n", "REGISTER sip:company.com SIP/2.0\n", "INVITE sip:3660@166.35.231.140 SIP/2.0\n", "INVITE sip:user@company.com SIP/2.0\n", "REGISTER sip:[2001::1]:5060;transport=tcp SIP/2.0\n", // Added by Daniel J. Martinez Manzano <dani@dif.um.es> "REGISTER sip:[2002:800:700:600:30:4:6:1]:5060;transport=udp SIP/2.0\n", // Added by Daniel J. Martinez Manzano <dani@dif.um.es> "REGISTER sip:[3ffe:800:700::30:4:6:1]:5060;transport=tls SIP/2.0\n", // Added by Daniel J. Martinez Manzano <dani@dif.um.es> "REGISTER sip:[2001:720:1710:0:201:29ff:fe21:f403]:5060;transport=udp SIP/2.0\n", "OPTIONS sip:135.180.130.133 SIP/2.0\n" }; for (int i = 0; i < requestLines.length; i++ ) { RequestLineParser rlp = new RequestLineParser(requestLines[i].toCharArray()); RequestLine rl = rlp.parse(); System.out.println("encoded = " + rl.encode()); } }
public static void main(String args[]) throws ParseException { String requestLines[] = { "REGISTER sip:192.168.0.68 SIP/2.0\n", "REGISTER sip:company.com SIP/2.0\n", "INVITE sip:3660@166.35.231.140 SIP/2.0\n", "INVITE sip:user@company.com SIP/2.0\n", "REGISTER sip:[2001::1]:5060;transport=tcp SIP/2.0\n", // Added by Daniel J. Martinez Manzano <dani@dif.um.es> "REGISTER sip:[2002:800:700:600:30:4:6:1]:5060;transport=udp SIP/2.0\n", // Added by Daniel J. Martinez Manzano <dani@dif.um.es> "REGISTER sip:[3ffe:800:700::30:4:6:1]:5060;transport=tls SIP/2.0\n", // Added by Daniel J. Martinez Manzano <dani@dif.um.es> "REGISTER sip:[2001:720:1710:0:201:29ff:fe21:f403]:5060;transport=udp SIP/2.0\n", "OPTIONS sip:135.180.130.133 SIP/2.0\n" }; for (int i = 0; i < requestLines.length; i++ ) { RequestLineParser rlp = new RequestLineParser(requestLines[i]); RequestLine rl = rlp.parse(); System.out.println("encoded = " + rl.encode()); } }
@Override public byte[] encodeAsBytes(String transport) { if (this.isNullRequest()) { // Encoding a null message for keepalive. return "\r\n\r\n".getBytes(); } else if ( this.requestLine == null ) { return new byte[0]; } byte[] rlbytes = null; if (requestLine != null) { try { rlbytes = requestLine.encode().getBytes("UTF-8"); } catch (UnsupportedEncodingException ex) { InternalErrorHandler.handleException(ex); } } byte[] superbytes = encodeAsBytesSelective(transport); byte[] retval = new byte[rlbytes.length + superbytes.length]; System.arraycopy(rlbytes, 0, retval, 0, rlbytes.length); System.arraycopy(superbytes, 0, retval, rlbytes.length, superbytes.length); return retval; }
@Override public StringBuilder encodeMessage(StringBuilder retval) { if (requestLine != null) { this.setRequestLineDefaults(); requestLine.encode(retval); encodeSIPHeaders(retval); } else if (this.isNullRequest()) { retval.append("\r\n\r\n"); } else retval = encodeSIPHeaders(retval); return retval; }
/** * Encode this into a byte array. This is used when the body has been set as a binary array * and you want to encode the body as a byte array for transmission. * * @return a byte array containing the SIPRequest encoded as a byte array. */ public byte[] encodeAsBytes(String transport) { if (this.isNullRequest()) { // Encoding a null message for keepalive. return "\r\n\r\n".getBytes(); } else if ( this.requestLine == null ) { return new byte[0]; } byte[] rlbytes = null; if (requestLine != null) { try { rlbytes = requestLine.encode().getBytes("UTF-8"); } catch (UnsupportedEncodingException ex) { InternalErrorHandler.handleException(ex); } } byte[] superbytes = super.encodeAsBytes(transport); byte[] retval = new byte[rlbytes.length + superbytes.length]; System.arraycopy(rlbytes, 0, retval, 0, rlbytes.length); System.arraycopy(superbytes, 0, retval, rlbytes.length, superbytes.length); return retval; }
/** * Encode only the headers and not the content. */ public StringBuilder encodeMessage(StringBuilder retval) { if (requestLine != null) { this.setRequestLineDefaults(); requestLine.encode(retval); encodeSIPHeaders(retval); } else if (this.isNullRequest()) { retval.append("\r\n\r\n"); } else retval = encodeSIPHeaders(retval); return retval; }
@Override public String encode() { String retval; if (requestLine != null) { this.setRequestLineDefaults(); retval = requestLine.encode() + encodeSelective(); } else if (this.isNullRequest()) { retval = "\r\n\r\n"; } else { retval = encodeSelective(); } return retval; }
/** * Encode the SIP Request as a string. * * @return an encoded String containing the encoded SIP Message. */ public String encode() { String retval; if (requestLine != null) { this.setRequestLineDefaults(); retval = requestLine.encode() + super.encode(); } else if (this.isNullRequest()) { retval = "\r\n\r\n"; } else { retval = super.encode(); } return retval; }