package uk.co.mmscomputing.device.capi.q931;
import uk.co.mmscomputing.device.capi.*;
public class CalledPartyNumber extends Q931{
// ITU Recommendation Q.931 (03/93) p.76 4.5.8.
// uk.co.mmscomputing.device.capi.plc.ConnectInd
private int typeOfNumber=0; // 0x01=international, 0x02=national, 0x04=subscriber
private int numberingPlanIdentification=0; // 0x01=ISDN
private String digits=""; // IA5
public CalledPartyNumber(Rider r){
r.setLength();
try{
int o=r.read();
typeOfNumber=getBits(o,7,5); // Octet 3
numberingPlanIdentification=getBits(o,4,1);
digits=r.readString(); // Octet 4
}catch(IndexOutOfBoundsException ioobe){
// ioobe.printStackTrace();
}finally{
r.skip();
}
}
public CalledPartyNumber(byte[] data){ // decode
this(new Rider(data));
}
public String getNumber(){return digits;}
public String toString(){
String s="Called Party Number - \n";
s+="Type Of Number = "+TypeOfNumberStrs[typeOfNumber]+"\n";
s+="Numbering Plan = "+NumberingPlanStrs[numberingPlanIdentification]+"\n";
s+="Digits = "+digits+"\n";
return s;
}
static public class Out extends StructOut{
public Out(String digits){
super(1+digits.length());
writeByte(0x80); // don't know type of number or numbering plan use default
writeData(digits.getBytes(),0,digits.length());
}
}
}