package uk.co.mmscomputing.device.capi.ctrl;
import uk.co.mmscomputing.device.capi.*;
import uk.co.mmscomputing.device.capi.parameter.*;
import uk.co.mmscomputing.device.capi.protocol.*;
import uk.co.mmscomputing.device.capi.q931.*;
public class ConnectReq extends MsgOut{
private String calledPartyNumber;
private String callingPartyNumber;
public ConnectReq(
int appid,
int ctrl,
int cip,
StructOut called,
StructOut calling,
StructOut calledSub,
StructOut callingSub,
StructOut bprotocol,
StructOut bc,
StructOut llc,
StructOut hlc,
StructOut addInfo
){
super(
2
+called.getLength()
+calling.getLength()
+calledSub.getLength()
+callingSub.getLength()
+bprotocol.getLength()
+bc.getLength()
+llc.getLength()
+hlc.getLength()
+addInfo.getLength(),
appid,CAPI_CONNECT,CAPI_REQ,ctrl
);
writeWord(cip); // compatibility Information Profile (CIP Value)
writeStruct(called);
writeStruct(calling);
writeStruct(calledSub);
writeStruct(callingSub);
writeStruct(bprotocol); // B protocol to be used
writeStruct(bc); // Bearer Capability
writeStruct(llc); // Low Layer Compatibility
writeStruct(hlc); // High Layer Compatibility
writeStruct(addInfo); // additional info
}
public ConnectReq(
int appid,
int ctrl,
int cip,
String called,
String calling,
String calledSub,
String callingSub,
StructOut bprotocol,
StructOut bc,
StructOut llc,
StructOut hlc,
StructOut addInfo
){
this(
appid,
ctrl,
cip,
(called.equals(""))?StructOut.empty:new CalledPartyNumber.Out(called),
(calling.equals(""))?StructOut.empty:new CallingPartyNumber.Out(calling),
(calledSub.equals(""))?StructOut.empty:new CalledPartySubAddress.Out(calledSub),
(callingSub.equals(""))?StructOut.empty:new CallingPartySubAddress.Out(callingSub),
bprotocol,
bc,
llc,
hlc,
addInfo
);
calledPartyNumber=called;
callingPartyNumber=calling;
}
public ConnectReq(
int appid,
int ctrl,
int cip,
String called,
String calling,
String calledSub,
String callingSub,
StructOut bprotocol
){
this(
appid,
ctrl,
cip,
called,
calling,
calledSub,
callingSub,
bprotocol,
StructOut.empty,
StructOut.empty,
StructOut.empty,
StructOut.empty
);
}
public String getLocalNo(){ return callingPartyNumber;}
public String getRemoteNo(){ return calledPartyNumber;}
public String toString(){
String s=super.toString()+"\n";
s+="called = "+calledPartyNumber+"\n";
s+="calling = "+callingPartyNumber+"\n";
return s;
}
}