You are on page 1of 2

type record DnsMsg_Answer // simplified message structure!

charstring answer
}

type record DnsMsg_Question // simplified message structure!


{

charstring question
}

template DnsMsg_Question m_dnsQuestion( charstring p_question )


{

question := p_question

}
template DnsMsg_Answer w_dnsAnswer( charstring p_answer )
{

answer := p_answer
}
type port DnsPort_Qes message
{
in DnsMsg_Question
}

type port DnsPort_Ans message


{
out DnsMsg_Answer
}

type component DnsClient #{


port DnsPort serverPort
}

function callerBehavior() runs on PTCType {


log("running caller");

sipPort.send(caller_SIP_Invite_Request);

alt {
[] sipPort.receive(SIP_100_Trying_Response) {
alt {
[] sipPort.receive(SIP_180_Ringing_Response) {
alt {
[] sipPort.receive(SIP_200_OK_Response) {
sipPort.send(caller_SIP_Ack_Request);

alt {
[]
sipPort.send(caller_SIP_Bye_Request) {

sipPort.receive(SIP_200_OK_Response)
setverdict(pass)
}
[] failures() {
setverdict(fail)
}
}
}
[] failures() {
setverdict(fail)
}
}
}
[] failures(){
setverdict(fail)
}
}
}
[] failures() {
setverdict(fail)
}
}
}

You might also like