package uk.co.mmscomputing.sms; import java.io.*; public class SMSSubmitAckReport extends SMSTransportProtocolDataUnit{ public SMSSubmitAckReport(){ } public SMSSubmitAckReport(InputStream in)throws IOException{ readFrom(in); } public void readFrom(InputStream in)throws IOException{ int flags = read(in); put("TP-MTI",new Integer(flags&0x03)); // bit 0,1 TP-Message-Type-Indicator (TP-MTI) put("TP-UDHI",new Boolean(((flags >> 6)&0x01)!=0)); // bit 6 TP-User-Data-Header-Indicator (TP-UDHI) int pi=readOctet(in); put("TP-PI",new Integer(pi)); // TP-Parameter-Indicator (TP-PI) put("TP-SCTS",new SMSTimeStamp(in)); // TP-Service-Centre-Time-Stamp (TP-SCTS) if((pi&0x0001)!=0){ // if bit 0 is set put("TP-PID",new Integer(readOctet(in))); // TP-Protocol-Identifier (TP-PID) } if((pi&0x0002)!=0){ // if bit 1 is set put("TP-DCS",new SMSDataCodingScheme(readOctet(in))); // TP-Data-Coding-Scheme (TP-DCS) } if((pi&0x0004)!=0){ // if bit 2 is set readUserDataFrom(in); } } public void writeTo(OutputStream out)throws IOException{ out.write(SMS_DLL_ACK); out.write(0x01); // bit 0,1 TP-Message-Type-Indicator (TP-MTI) // bit 6 TP-User-Data-Header-Indicator (TP-UDHI) // = 0 : no user data headers out.write(0x00); // TP-Parameter-Indicator (TP-PI) // = 0 : no additional parameters put("TP-SCTS",new SMSTimeStamp()); // TP-Service-Centre-Time-Stamp (TP-SCTS) ((SMSTimeStamp)get("TP-SCTS")).writeTo(out); // TP-Service-Centre-Time-Stamp (TP-SCTS) out.flush(); } } // [1] ETSI TS 123 040 (2004-09)