LibSip_Templates.ttcn 196 KB
Newer Older
garciay's avatar
garciay committed
                    requestLine := {requestUri := p_requestUri},
                    msgHeader := {
                        callId := p_callId,
tepelmann's avatar
tepelmann committed
                        cSeq := m_cSeq(p_cSeq.seqNumber, "OPTIONS"),  // STF471
                                                                      // {fieldName:=CSEQ_E,
                                                                      // seqNumber:=
                                                                      // p_cSeq.seqNumber,
                                                                      // method:=
                                                                      // "OPTIONS"},
garciay's avatar
garciay committed
                        fromField := p_from,
                        toField := p_to,
                        via := p_via
                    }
                }

tepelmann's avatar
tepelmann committed
                template(value) PRACK_Request m_PRACK_Request_Base(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) RAck p_RAck
                ) modifies m_PRACK_Dummy := {
garciay's avatar
garciay committed
                    requestLine := {requestUri := p_requestUri},
                    msgHeader := {
                        callId := p_callId,
tepelmann's avatar
tepelmann committed
                        cSeq := m_cSeq(p_cSeq.seqNumber, "PRACK"),  // STF471
                                                                    // {fieldName:=CSEQ_E,
                                                                    // seqNumber:=
                                                                    // p_cSeq.seqNumber,
                                                                    // method:=
                                                                    // "PRACK"},
garciay's avatar
garciay committed
                        fromField := p_from,
                        rAck := p_RAck,
                        toField := p_to,
                        via := p_via
                    },
                    messageBody := omit
                }

tepelmann's avatar
tepelmann committed
                template(value) PUBLISH_Request m_PUBLISH_Request_Base(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Event p_event := omit,
                    template(omit) RAck p_RAck := omit,
tepelmann's avatar
tepelmann committed
                    template(value) MessageBody p_mb
                ) modifies m_PUBLISH_Dummy := {
garciay's avatar
garciay committed
                    requestLine := {requestUri := p_requestUri},
                    msgHeader := {
                        callId := p_callId,
tepelmann's avatar
tepelmann committed
                        contentLength := m_contentLength(f_MessageBodyLength(p_mb)),  // STF471
                                                                                      // {fieldName
                                                                                      // :=
                                                                                      // CONTENT_LENGTH_E,
                                                                                      // len:=
                                                                                      // f_MessageBodyLength(valueof(p_mb))},
                        contentType := m_contentType(c_plainText),  // STF471
                                                                    // {fieldName
                                                                    // :=
                                                                    // CONTENT_TYPE_E,
                                                                    // mTypeSubType
tepelmann's avatar
tepelmann committed
                                                                    // :=
                                                                    // c_plainText/*c_sdp*/},
                        cSeq := m_cSeq(p_cSeq.seqNumber, "PUBLISH"),  // STF471
                                                                      // {fieldName:=CSEQ_E,
                                                                      // seqNumber:=
                                                                      // p_cSeq.seqNumber,
                                                                      // method:=
                                                                      // "PUBLISH"},
garciay's avatar
garciay committed
                        event := p_event,
nikolajev's avatar
nikolajev committed
                        rAck := p_RAck,
garciay's avatar
garciay committed
                        fromField := p_from,
                        toField := p_to,
                        via := p_via
                    },
                    messageBody := p_mb
                }

tepelmann's avatar
tepelmann committed
                template(value) REFER_Request m_REFER_Request_Base(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
                    template(omit) Contact p_contact := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) ReferTo p_referTo := omit,
                    template(omit) ReferredBy p_referredBy := omit
tepelmann's avatar
tepelmann committed
                ) modifies m_REFER_Dummy := {
garciay's avatar
garciay committed
                    requestLine := {requestUri := p_requestUri},
                    msgHeader := {
                        callId := p_callId,
                        contact := p_contact,
tepelmann's avatar
tepelmann committed
                        cSeq := m_cSeq(p_cSeq.seqNumber, "REFER"),  // STF471
                                                                    // {fieldName:=CSEQ_E,
                                                                    // seqNumber:=
                                                                    // p_cSeq.seqNumber,
                                                                    // method:=
                                                                    // "REFER"},
garciay's avatar
garciay committed
                        fromField := p_from,
                        referTo := p_referTo,
                        referredBy := p_referredBy,
                        toField := p_to,
                        via := p_via
                    }
                }

tepelmann's avatar
tepelmann committed
                template(value) REFER_Request m_REFER_Request_replaces(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
                    template(omit) Contact p_contact := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) ReferTo p_referTo,
                    template(value) ReferredBy p_referredBy,
                    template(value) Replaces p_replaces,
                    template(omit) Require p_require := omit
tepelmann's avatar
tepelmann committed
                ) modifies m_REFER_Request_Base := {
                    msgHeader := {
                        replaces := p_replaces,
                        require := p_require
                    }
garciay's avatar
garciay committed
                template(value) REGISTER_Request m_REGISTER_Request_Base(
tepelmann's avatar
tepelmann committed
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Contact p_contact := omit,
                    template(omit) Authorization p_authorization := omit
garciay's avatar
garciay committed
                ) modifies m_REGISTER_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := {requestUri := p_requestUri},
garciay's avatar
garciay committed
                    msgHeader := {
                        authorization := p_authorization,
                        callId := p_callId,
                        contact := p_contact,
                        cSeq := p_cSeq,
                        fromField := p_from,
                        toField := p_to,
garciay's avatar
garciay committed
                        supported := {
tepelmann's avatar
tepelmann committed
                            fieldName := SUPPORTED_E,
                            optionsTags := {"path"}
garciay's avatar
garciay committed
                        },
garciay's avatar
garciay committed
                template(value) SUBSCRIBE_Request m_SUBSCRIBE_Request_Base(
tepelmann's avatar
tepelmann committed
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via
garciay's avatar
garciay committed
                ) modifies m_SUBSCRIBE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := {requestUri := p_requestUri},
garciay's avatar
garciay committed
                    msgHeader := {
                        callId := p_callId,
tepelmann's avatar
tepelmann committed
                        cSeq := m_cSeq(p_cSeq.seqNumber, "SUBSCRIBE"),  // STF471
                                                                        // {fieldName:=CSEQ_E,
                                                                        // seqNumber:=
                                                                        // p_cSeq.seqNumber,
                                                                        // method:=
                                                                        // "SUBSCRIBE"},
garciay's avatar
garciay committed
                        fromField := p_from,
                        toField := p_to,
                        via := p_via
                    }
                }

garciay's avatar
garciay committed
                template(value) UPDATE_Request m_UPDATE_Request_Base(
tepelmann's avatar
tepelmann committed
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Contact p_contact := omit,
tepelmann's avatar
tepelmann committed
                    template(value) MessageBody p_mb
garciay's avatar
garciay committed
                ) modifies m_UPDATE_Dummy := {
garciay's avatar
garciay committed
                    requestLine := {requestUri := p_requestUri},
                    msgHeader := {
                        callId := p_callId,
                        contact := p_contact,
tepelmann's avatar
tepelmann committed
                        contentLength := m_contentLength(f_MessageBodyLength(p_mb)),  // STF471
                                                                                      // {fieldName
                                                                                      // :=
                                                                                      // CONTENT_LENGTH_E,
                                                                                      // len:=
                                                                                      // f_MessageBodyLength(valueof(p_mb))},
                        contentType := m_contentType(c_sdpApplication),  // STF471
                                                                         // {fieldName
                                                                         // :=
                                                                         // CONTENT_TYPE_E,
                                                                         // mTypeSubtype
tepelmann's avatar
tepelmann committed
                                                                         // :=
                                                                         // c_sdp},
                        cSeq := m_cSeq(p_cSeq.seqNumber, "UPDATE"),  // STF471
                                                                     // {fieldName:=CSEQ_E,
                                                                     // seqNumber:=
                                                                     // p_cSeq.seqNumber,
                                                                     // method:=
                                                                     // "UPDATE"},
garciay's avatar
garciay committed
                        fromField := p_from,
                        toField := p_to,
                        via := p_via
                    },
                    messageBody := p_mb
                }


tepelmann's avatar
tepelmann committed
            } //*     end of group message_send
garciay's avatar
garciay committed

            group request_receive {

                template(present) ACK_Request mw_ACK_Request_Base(
                    template CallId p_callId := ?
                ) modifies mw_ACK_Dummy := {
                    msgHeader := {callId := p_callId}
                }
                template(present) BYE_Request mw_BYE_Request_Base(
                    template CallId p_callId := ?
                ) modifies mw_BYE_Dummy := {
                    msgHeader := {callId := p_callId}
                }
                template(present) CANCEL_Request mw_CANCEL_Request_Base(
                    template CallId p_callId := ?
                ) modifies mw_CANCEL_Dummy := {
                    msgHeader := {callId := p_callId}
                }
                template(present) INFO_Request mw_INFO_Request_Base(
                    template CallId p_callId := ?
                ) modifies mw_INFO_Dummy := {
                    msgHeader := {callId := p_callId}
                }
garciay's avatar
garciay committed

                template(present) INVITE_Request mw_INVITE_Request_Base modifies mw_INVITE_Dummy := {requestLine := {method := INVITE_E}}

                template(present) MESSAGE_Request mw_MESSAGE_Request_Base modifies mw_MESSAGE_Dummy := {msgHeader := {contact := *}}

                template(present) NOTIFY_Request mw_NOTIFY_Request_Base(
                    template CallId p_callId := ?
                ) modifies mw_NOTIFY_Dummy := {
                    msgHeader := {callId := p_callId}
                }
                template(present) OPTIONS_Request mw_OPTIONS_Request_Base(
                    template CallId p_callId := ?
                ) modifies mw_OPTIONS_Dummy := {
                    msgHeader := {callId := p_callId}
                }
                template(present) PRACK_Request mw_PRACK_Request_Base(
                    template CallId p_callId := ?
                ) modifies mw_PRACK_Dummy := {
                    msgHeader := {callId := p_callId}
                }
                template(present) PUBLISH_Request mw_PUBLISH_Request_Base(
                    template CallId p_callId := ?
                ) modifies mw_PUBLISH_Dummy := {
                    msgHeader := {callId := p_callId}
                }
                template(present) REFER_Request mw_REFER_Request_Base(
                    template CallId p_callId := ?
                ) modifies mw_REFER_Dummy := {
                    msgHeader := {callId := p_callId}
                }
tepelmann's avatar
tepelmann committed
                template(present) REFER_Request mw_REFER_Request(
                    template CallId p_callId := ?,
tepelmann's avatar
tepelmann committed
                    template(value) SipUrl p_requestUri,
                    template(value) SipUrl p_referredBy
                ) modifies mw_REFER_Request_Base := {
garciay's avatar
garciay committed
                    requestLine := {requestUri := p_requestUri},
                    msgHeader := {
                        referredBy := {
                            fieldName := REFERRED_BY_E,
tepelmann's avatar
tepelmann committed
                            nameAddr := mw_NameAddr(*, p_referredBy),  // STF471
                                                                       // {displayName
                                                                       // :=
                                                                       // *,
                                                                       // addrSpec
                                                                       // :=
                                                                       // p_referredBy},
garciay's avatar
garciay committed
                            referredbyIdParams := *
                        }
                    }
                }

tepelmann's avatar
tepelmann committed
                template(present) INVITE_Request mw_INVITE_Request(
                    template Require p_require,
                    template(value) SipUrl p_referredBy
                ) modifies mw_INVITE_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {
                        require := p_require,
                        referredBy := {
                            fieldName := REFERRED_BY_E,
tepelmann's avatar
tepelmann committed
                            nameAddr := mw_NameAddr(*, p_referredBy),  // STF471
                                                                       // {displayName
                                                                       // :=
                                                                       // *,
                                                                       // addrSpec
                                                                       // :=
                                                                       // p_referredBy},
garciay's avatar
garciay committed
                            referredbyIdParams := *
                        }
                    }
                }

                template(present) REGISTER_Request mw_REGISTER_Request_Base modifies mw_REGISTER_Dummy := {requestLine := {method := REGISTER_E}}

                template(present) SUBSCRIBE_Request mw_SUBSCRIBE_Request_Base modifies mw_SUBSCRIBE_Dummy := {requestLine := {method := SUBSCRIBE_E}}

tepelmann's avatar
tepelmann committed
                template(present) UPDATE_Request mw_UPDATE_Request_Base(template CallId p_callId) modifies mw_UPDATE_Dummy := {msgHeader := {callId := p_callId}}

tepelmann's avatar
tepelmann committed
            } //*     end group request_receive
garciay's avatar
garciay committed

            group response_send {

tepelmann's avatar
tepelmann committed
                template(value) Response m_Response_Base(
                    template(value) StatusLine p_statusLine,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via
                ) modifies m_Response_Dummy := {
garciay's avatar
garciay committed
                    statusLine := p_statusLine,
tepelmann's avatar
tepelmann committed
                    msgHeader := {
                        callId := p_callId,
                        cSeq := p_cSeq,
                        fromField := p_from,
                        maxForwards := omit,
                        toField := p_to,
                        via := p_via
                    },
garciay's avatar
garciay committed
                    messageBody := omit,
                    payload := omit
                }


tepelmann's avatar
tepelmann committed
            } //*     end group response_send
garciay's avatar
garciay committed

            group response_receive {

garciay's avatar
garciay committed
                template(present) Response mw_Response_Base(
                    template(present) StatusLine p_statusLine := ?,
                    template CallId p_callId := *,
                    template CSeq p_cSeq := *
garciay's avatar
garciay committed
                ) modifies mw_Response_Dummy := {
garciay's avatar
garciay committed
                    statusLine := p_statusLine,
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        callId := p_callId,
                        contentLength := *,
                        cSeq := p_cSeq,
                        fromField := ?,
                        maxForwards := *,
                        toField := ?,
                template(present) Response mw_Response_StatusCode_Base(
                    template(present) StatusLine.statusCode p_statusCode := ?,
tepelmann's avatar
tepelmann committed
                    template CallId p_callId,
                    template CSeq p_cSeq
                ) modifies mw_Response_Dummy := {
                    statusLine := mw_statusLine(p_statusCode, ?),
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        callId := p_callId,
                        contentLength := *,
                        cSeq := p_cSeq,
                        fromField := ?,
                        maxForwards := *,
                        toField := ?,
                template(present) Response mw_Response_1xx_Base(
tepelmann's avatar
tepelmann committed
                    template CallId p_callId,
                    template CSeq p_cSeq
                ) modifies mw_Response_Dummy := {
                    statusLine := mw_statusLine1xx,
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        callId := p_callId,
                        contentLength := *,
                        cSeq := p_cSeq,
                        fromField := ?,
                        maxForwards := *,
                        toField := ?,
Bostjan Pintar's avatar
Bostjan Pintar committed
                template (present) Response mw_Response_2xx_Base(
                    template (present) CallId p_callId := ?,
                    template (present) CSeq p_cSeq := ?
tepelmann's avatar
tepelmann committed
                ) modifies mw_Response_1xx_Base := {
                    statusLine := mw_statusLine2xx
                }

                template(present) Response mw_Response_3xx_Base(
tepelmann's avatar
tepelmann committed
                    template CallId p_callId,
                    template CSeq p_cSeq
tepelmann's avatar
tepelmann committed
                ) modifies mw_Response_1xx_Base := {
                    statusLine := mw_statusLine3xx
                }

                template(present) Response mw_Response_4xx_Base(
tepelmann's avatar
tepelmann committed
                    template CallId p_callId,
                    template CSeq p_cSeq
tepelmann's avatar
tepelmann committed
                ) modifies mw_Response_1xx_Base := {
                    statusLine := mw_statusLine4xx
                }

                template(present) Response mw_Response_5xx_Base(
tepelmann's avatar
tepelmann committed
                    template CallId p_callId,
                    template CSeq p_cSeq
tepelmann's avatar
tepelmann committed
                ) modifies mw_Response_1xx_Base := {
                    statusLine := mw_statusLine5xx
                }

                template(present) Response mw_Response_6xx_Base(
tepelmann's avatar
tepelmann committed
                    template CallId p_callId,
                    template CSeq p_cSeq
tepelmann's avatar
tepelmann committed
                ) modifies mw_Response_1xx_Base := {
                    statusLine := mw_statusLine6xx
tepelmann's avatar
tepelmann committed
                template(present) Response mw_Response_Algorithm(
                    template(present) StatusLine p_statusLine := ?,
tepelmann's avatar
tepelmann committed
                    template CallId p_callId,
                    template CSeq p_cSeq,
                    template(present) CredentialsList p_credentialsList
tepelmann's avatar
tepelmann committed
                ) modifies mw_Response_Base := {
                    statusLine := mw_statusLine(p_statusLine.statusCode, ?),
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        authorization := {
                            fieldName := AUTHORIZATION_E,
                            body := p_credentialsList
garciay's avatar
garciay committed
                        }
                    }
tepelmann's avatar
tepelmann committed

            } //*     end group message_receive
tepelmann's avatar
tepelmann committed

tepelmann's avatar
tepelmann committed
        } //*     end group full_templates
garciay's avatar
garciay committed

        group modified_templates {

            group request_send {

tepelmann's avatar
tepelmann committed
                template(value) ACK_Request m_ACK_Request_route(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Route p_route := omit
tepelmann's avatar
tepelmann committed
                ) modifies m_ACK_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {route := p_route}
                }

tepelmann's avatar
tepelmann committed
                template(value) ACK_Request m_ACK_Request_sdp(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) MessageBody p_mb
                ) modifies m_ACK_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        contentLength := m_contentLength(f_MessageBodyLength(p_mb)),  // STF471
                                                                                      // {fieldName
                                                                                      // :=
                                                                                      // CONTENT_LENGTH_E,
                                                                                      // len:=
                                                                                      // f_MessageBodyLength(valueof(p_mb))},
garciay's avatar
garciay committed
                        contentType := m_contentType(c_sdpApplication)
                    },
                    messageBody := p_mb
                }

tepelmann's avatar
tepelmann committed
                template(value) BYE_Request m_BYE_Request_cause(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) integer p_cause
                ) modifies m_BYE_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {reason := m_Reason(p_cause)}
                }

tepelmann's avatar
tepelmann committed
                template(value) INVITE_Request m_INVITE_Request_sdp(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) Contact p_contact,
                    template(value) MessageBody p_mb
                ) modifies m_INVITE_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        contentLength := m_contentLength(f_MessageBodyLength(p_mb)),  // STF471
                                                                                      // {fieldName
                                                                                      // :=
                                                                                      // CONTENT_LENGTH_E,
                                                                                      // len:=
                                                                                      // f_MessageBodyLength(valueof(p_mb))},
garciay's avatar
garciay committed
                        contentType := m_contentType(c_sdpApplication)
                    },
                    messageBody := p_mb
                }

tepelmann's avatar
tepelmann committed
                template(value) INVITE_Request m_INVITE_Request_ResourceList(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) Contact p_contact,
                    template(value) MessageBody p_mb
                ) modifies m_INVITE_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        contentLength := m_contentLength(f_MessageBodyLength(p_mb)),  // STF471
                                                                                      // {fieldName
                                                                                      // :=
                                                                                      // CONTENT_LENGTH_E,
                                                                                      // len:=
                                                                                      // f_MessageBodyLength(p_mb)},
                        contentType := m_contentType(c_xmlresourcelistApplication),  // STF471
                                                                                     // {fieldName
                                                                                     // :=
                                                                                     // CONTENT_TYPE_E,
                                                                                     // mTypeSubtype
tepelmann's avatar
tepelmann committed
                                                                                     // :=
                                                                                     // "application/resource-lists+xml"},
                        contentDisposition := {
                            fieldName := CONTENT_DISPOSITION_E,
                            dispositionType := "recipient-list",
                            dispositionParams := omit
                        },
                        require := {
                            fieldName := REQUIRE_E,
                            optionsTags := {"recipient-list-invite"}
                        }
garciay's avatar
garciay committed
                    },
                    messageBody := p_mb
                }

tepelmann's avatar
tepelmann committed
                template(value) REFER_Request m_REFER_Request_route(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
                    template(omit) Contact p_contact := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) ReferTo p_referTo,
                    template(value) ReferredBy p_referredBy,
                    template(value) Route p_route
                ) modifies m_REFER_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {route := p_route}
                }

tepelmann's avatar
tepelmann committed
                template(value) REGISTER_Request m_REGISTER_Request_expires(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Contact p_contact := omit,
                    template(omit) Authorization p_authorization := omit,
tepelmann's avatar
tepelmann committed
                    template(value) charstring p_expires
                ) modifies m_REGISTER_Request_Base := {
                    msgHeader := {
                        authorization := p_authorization,
                        expires := m_Expires(p_expires)
                    }
tepelmann's avatar
tepelmann committed
                template(value) NOTIFY_Request m_NOTIFY_Request_contact(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Contact p_contact := omit
tepelmann's avatar
tepelmann committed
                ) modifies m_NOTIFY_Request_Base := {
                    msgHeader := {
                        contact := p_contact,
                        event := m_Event_reg,
                        subscriptionState := m_SubscriptionState_active
                    }
tepelmann's avatar
tepelmann committed
                template(value) NOTIFY_Request m_NOTIFY_Request_sipfrag(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) charstring p_state,
                    template(value) charstring p_sipfrag
                ) modifies m_NOTIFY_Request_Base := {
garciay's avatar
garciay committed
                    requestLine := {
                        method := NOTIFY_E,
tepelmann's avatar
tepelmann committed
                        requestUri := {
                            scheme := ?,
                            components := {
                                sip := {
                                    userInfo := *,
                                    hostPort := p_requestUri.components.sip.hostPort
                                }
                            }
                        }
garciay's avatar
garciay committed
                    },
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        contentLength := m_contentLength(lengthof(p_sipfrag)),  // STF471
                                                                                // {fieldName
                                                                                // :=
                                                                                // CONTENT_LENGTH_E,
                                                                                // len:=
                                                                                // lengthof(p_sipfrag)},
                        contentType := m_contentType(c_sipfragMessage),  // STF471
                                                                         // {fieldName
                                                                         // :=
                                                                         // CONTENT_TYPE_E,
                                                                         // mTypeSubtype
tepelmann's avatar
tepelmann committed
                                                                         // :=
                                                                         // "message/sipfrag"},
                        subscriptionState := {
                            fieldName := SUBSCRIPTION_STATE_E,
                            subState := p_state,
                            substateParams := omit
                        },
garciay's avatar
garciay committed
                        event := m_Event_refer
                    },
                    messageBody := {sipfrag := p_sipfrag}
                }

tepelmann's avatar
tepelmann committed
                template(value) UPDATE_Request m_UPDATE_Request_route(
                    template(value) SipUrl p_requestUri,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Contact p_contact := omit,
tepelmann's avatar
tepelmann committed
                    template(value) MessageBody p_mb,
                    template(value) Route p_route
                ) modifies m_UPDATE_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {route := p_route}
                }


tepelmann's avatar
tepelmann committed
            } //*     end group request_send
garciay's avatar
garciay committed


            group request_receive {

tepelmann's avatar
tepelmann committed
                template(present) BYE_Request mw_BYE_Request_Reason(
                    template CallId p_callId,
                    template(value) GenValue p_cause
tepelmann's avatar
tepelmann committed
                ) modifies mw_BYE_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {reason := mw_Reason(p_cause)}
                }

tepelmann's avatar
tepelmann committed
                template(present) BYE_Request mw_BYE_Request_ReasonSIP(
                    template CallId p_callId,
                    template(value) GenValue p_cause
tepelmann's avatar
tepelmann committed
                ) modifies mw_BYE_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {reason := mw_ReasonSIP(p_cause)}
                }

tepelmann's avatar
tepelmann committed
                template(present) BYE_Request mw_BYE_Request_headerfieldlist(
                    template CallId p_callId,
                    template(present) SipUrl p_requestUri,
                    template(present) To p_to := ?,
                    template(present) From p_from := ?,
tepelmann's avatar
tepelmann committed
                    template CSeq p_cSeq,
                    template Route p_route,
                    template RecordRoute p_recordRoute,
                    template Reason p_reason
                ) modifies mw_BYE_Request_Base := {
garciay's avatar
garciay committed
                    requestLine := {requestUri := p_requestUri},
                    msgHeader := {
                        callId := p_callId,
                        toField := p_to,
                        fromField := p_from,
                        cSeq := p_cSeq,
                        route := p_route,
                        recordRoute := p_recordRoute,
                        reason := p_reason
                    }
                }

                template(present) BYE_Request mw_BYE_Request_UserToUser(
                    template CallId p_callId
                ) modifies mw_BYE_Request_Base := {
                    msgHeader := {userToUser := ?}
                }
                template(present) INVITE_Request mw_INVITE_Request_RequestURI(
                    template(present) SipUrl p_sipUrl := ?
                ) modifies mw_INVITE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := {
                        requestUri := p_sipUrl,
                        sipVersion := c_sipNameVersion
                    }
tepelmann's avatar
tepelmann committed
                template(present) INFO_Request mw_INFO_Request_MB(
                    template CallId p_callId,
                    template MessageBody p_mb
                ) modifies mw_INFO_Request_Base := {
garciay's avatar
garciay committed
                    messageBody := p_mb
                }

                template(present) INVITE_Request mw_INVITE_Request_expires modifies mw_INVITE_Request_Base := {msgHeader := {expires := ?}}

                template(present) INVITE_Request mw_INVITE_Request_callid(
                    template CallId p_callId
                ) modifies mw_INVITE_Request_Base := {
                    msgHeader := {callId := p_callId}
                }
tepelmann's avatar
tepelmann committed
                template(present) INVITE_Request mw_INVITE_Request_MB(
                    template CallId p_callId,
                    template MessageBody p_mb
                ) modifies mw_INVITE_Request_callid := {
garciay's avatar
garciay committed
                    messageBody := p_mb
                }

                template(present) INVITE_Request mw_INVITE_Request_noPaccessNetworkInfo(
                    template CallId p_callId
                ) modifies mw_INVITE_Request_callid := {
                    msgHeader := {pAccessNetworkInfo := omit}
                }
                template(present) INVITE_Request mw_INVITE_Request_PaccessNetworkInfo(
                    template CallId p_callId
                ) modifies mw_INVITE_Request_callid := {
                    msgHeader := {pAccessNetworkInfo := ?}
                }
                template(present) INVITE_Request mw_INVITE_MSRP_Session(
                    template(present) SDP_media_field p_media_MSRP := ?
                ) modifies mw_INVITE_Request_Base := {
garciay's avatar
garciay committed
                    messageBody := {
                        sdpMessageBody := {
                            protocol_version := ?,
                            origin := ?,
                            session_name := ?,
                            information := *,
                            uri := *,
                            emails := *,
                            phone_numbers := *,
                            connection := *,
                            bandwidth := *,
                            times := ?,
                            timezone_adjustments := *,
                            key := *,
                            attributes := *,
                            media_list := {
                                {
                                    media_field := p_media_MSRP,
                                    information := *,
                                    connections := *,
                                    bandwidth := *,
                                    key := *,
                                    attributes := {
                                        {
                                            msrp := {
                                                attr_value :=
                                                    pattern
rennoch's avatar
rennoch committed
                                                        "path:msrp://*"
tepelmann's avatar
tepelmann committed
                template(present) REGISTER_Request mw_REGISTER_Request_ISC(
                    template PAccessNetworkInfo p_access,
                    template PVisitedNetworkID p_visited
                ) modifies mw_REGISTER_Request_Base := {
                    msgHeader := {
                        pAccessNetworkInfo := p_access,
                        pVisitedNetworkID := p_visited
                    }
tepelmann's avatar
tepelmann committed
                template(present) UPDATE_Request mw_UPDATE_Request_SDP(
                    template CallId p_callId,
                    template MessageBody p_mb
                ) modifies mw_UPDATE_Request_Base := {
garciay's avatar
garciay committed
                    messageBody := p_mb
                }

tepelmann's avatar
tepelmann committed
                template(present) NOTIFY_Request mw_NOTIFY_Request_MB(
                    template CallId p_callId,
                    template MessageBody p_mb
                ) modifies mw_NOTIFY_Request_Base := {
garciay's avatar
garciay committed
                    messageBody := p_mb
                }

tepelmann's avatar
tepelmann committed
            } //*     end group request_receive
garciay's avatar
garciay committed

            group response_send {

tepelmann's avatar
tepelmann committed
                template(value) Response m_Response_AlertInfo(
                    template(value) StatusLine p_statusLine,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) Contact p_contact,
                    template(value) AlertInfo p_alertInfo
                ) modifies m_Response_Contact := {
garciay's avatar
garciay committed
                    msgHeader := {alertInfo := p_alertInfo}
                }

tepelmann's avatar
tepelmann committed
                template(value) Response m_Response_Contact(
                    template(value) StatusLine p_statusLine,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Contact p_contact := omit
tepelmann's avatar
tepelmann committed
                ) modifies m_Response_Base := {
garciay's avatar
garciay committed
                    msgHeader := {contact := p_contact}
                }

tepelmann's avatar
tepelmann committed
                template(value) Response m_Response_ext(
                    template(value) StatusLine p_statusLine,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Route p_route := omit,
                    template(omit) RecordRoute p_recordroute := omit
tepelmann's avatar
tepelmann committed
                ) modifies m_Response_Base := {
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        route := p_route,  // f_route(),
garciay's avatar
garciay committed
                        recordRoute :=
tepelmann's avatar
tepelmann committed
                            p_recordroute // f_recordroute()
tepelmann's avatar
tepelmann committed
                template(value) Response m_Response_mbody(
                    template(value) StatusLine p_statusLine,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Route p_route := omit,
                    template(omit) RecordRoute p_recordroute := omit,
tepelmann's avatar
tepelmann committed
                    template(value) MessageBody p_mb
                ) modifies m_Response_ext := {
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        contentLength := m_contentLength(f_MessageBodyLength(p_mb)),  // STF471
                                                                                      // {fieldName
                                                                                      // :=
                                                                                      // CONTENT_LENGTH_E,
                                                                                      // len:=
                                                                                      // f_MessageBodyLength(valueof(p_mb))},
garciay's avatar
garciay committed
                        contentType := m_contentType(c_sdpApplication)
                    },
                    messageBody := p_mb
                }

                template(value) Response m_Response_mbody_contact (
                    template(value) StatusLine p_statusLine,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(omit) Route p_route := omit,
                    template(omit) RecordRoute p_recordroute := omit,
                    template(value) MessageBody p_mb,
                    template(value) Contact p_contact
                ) modifies m_Response_mbody := {
                    msgHeader := {
                        contact := p_contact
                    }
                }


tepelmann's avatar
tepelmann committed
                template(value) Response m_Response_PAsserted_Privacy(
                    template(value) StatusLine p_statusLine,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) Route p_route,
                    template(value) RecordRoute p_recordroute,
                    template(value) PAssertedID p_pAssertedID,
                    template(value) Privacy p_privacy
                ) modifies m_Response_ext := {
                    msgHeader := {
                        pAssertedID := p_pAssertedID,
                        privacy := p_privacy
                    }
tepelmann's avatar
tepelmann committed
                template(present) Response mw_Response_PAsserted_Privacy_Supported(
                    template(present) StatusLine p_statusLine := ?,
tepelmann's avatar
tepelmann committed
                    template CallId p_callId,
                    template CSeq p_cSeq,
                    template PAssertedID p_pAssertedID,
                    template Privacy p_privacy,
                    template Supported p_supported
                ) modifies mw_Response_Base := {
                    statusLine := mw_statusLine(p_statusLine.statusCode, ?),
tepelmann's avatar
tepelmann committed
                    msgHeader := {
                        pAssertedID := p_pAssertedID,
                        privacy := p_privacy,
                        supported := p_supported
                    }
tepelmann's avatar
tepelmann committed
                template(value) Response m_Response_PAsserted_Privacy_mbody(
                    template(value) StatusLine p_statusLine,
                    template(omit) CallId p_callId := omit,
                    template(omit) CSeq p_cSeq := omit,
tepelmann's avatar
tepelmann committed
                    template(value) From p_from,
                    template(value) To p_to,
                    template(value) Via p_via,
                    template(value) Route p_route,
                    template(value) RecordRoute p_recordroute,
                    template(value) PAssertedID p_pAssertedID,
                    template(value) Privacy p_privacy,
                    template(value) MessageBody p_mb
                ) modifies m_Response_ext := {
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        contentLength := m_contentLength(f_MessageBodyLength(p_mb)),  // STF471
                                                                                      // {fieldName
                                                                                      // :=
                                                                                      // CONTENT_LENGTH_E,
                                                                                      // len:=
                                                                                      // f_MessageBodyLength(valueof(p_mb))},
                        contentType := m_contentType(c_sdpApplication),  // STF471
                                                                         // {fieldName
                                                                         // :=
                                                                         // CONTENT_TYPE_E,
                                                                         // mTypeSubtype
tepelmann's avatar
tepelmann committed
                                                                         // :=
                                                                         // c_sdpApplication
                                                                         // },
garciay's avatar
garciay committed
                        pAssertedID := p_pAssertedID,
                        privacy := p_privacy
                    },
                    messageBody := p_mb
                }

tepelmann's avatar
tepelmann committed
            } //*     end group response_send
garciay's avatar
garciay committed


            group response_receive {