package uk.co.mmscomputing.device.capi.facility;
import uk.co.mmscomputing.device.capi.*;
import uk.co.mmscomputing.device.capi.parameter.FacilityPartyNumber;
public class CallForwardReq{
/*
0x0009: CF Activate
0x000A: CF Deactivate
0x000B: CF Interrogate parameters
0x000C: CF Interrogate numbers
0x0000: CFU (Call Forwarding Unconditional)
0x0001: CFB (Call Forwarding Busy)
0x0002: CFNR (Call Forwarding No Reply)
*/
static public class InterrogateParametersReq extends SupServiceReq{
public InterrogateParametersReq(
int appid, int lineid,int handle, String servedUserNumber
){
super(appid,lineid,CAPI_SERVICES_CF_INTERROGATEPARAMETERS,
getFacReqParam(handle,0x00,0x00,servedUserNumber)
);
}
public InterrogateParametersReq(
int appid, int lineid,
int handle, int type, int service,
String servedUserNumber
){
super(appid,lineid,CAPI_SERVICES_CF_INTERROGATEPARAMETERS,
getFacReqParam(handle,type,service,servedUserNumber)
);
}
static private StructOut getFacReqParam(
int handle,int type,int service,
String servedUserNumber
){
StructOut ssparam;
if(servedUserNumber.equals("")){
ssparam=new StructOut(9);
ssparam.writeDWord(handle);
ssparam.writeWord(type);
ssparam.writeWord(service);
ssparam.writeByte(0);
}else{
FacilityPartyNumber.Out fpn = new FacilityPartyNumber.Out(servedUserNumber);
ssparam=new StructOut(8+fpn.getLength());
ssparam.writeDWord(handle);
ssparam.writeWord(type);
ssparam.writeWord(service);
ssparam.writeStruct(fpn); // System.out.println(toString(ssparam.getBytes()));
}
return ssparam;
}
}
}