LibSip_Templates.ttcn 196 KB
Newer Older
tepelmann's avatar
tepelmann committed
                            userInfo := omit,
garciay's avatar
garciay committed
                            hostPort := {
tepelmann's avatar
tepelmann committed
                                host := p_userprofile.homeDomain,
garciay's avatar
garciay committed
                                portField := p_userprofile.currPort
                            }
                        }
                    },
garciay's avatar
garciay committed
                    urlParameters := omit,
                    headers := omit
                }
            },
            rrParam := omit
        }

        template(value) ReferredBy m_ReferredBy_SipUrl(
            template(value) SipUrl p_sipUrl
        ) := {
garciay's avatar
garciay committed
            fieldName := REFERRED_BY_E,
tepelmann's avatar
tepelmann committed
            nameAddr :=
                m_NameAddr(
                    // STF471 {displayName
                    omit,
                    // := omit,
                    p_sipUrl // addrSpec:=p_sipUrl}
                ),
garciay's avatar
garciay committed
            referredbyIdParams := omit
        }

tepelmann's avatar
tepelmann committed
        template(value) ReferTo m_ReferTo_SipUrl(
            template(value) SipUrl p_sipUrl,
            template(value) GenValue p_method
tepelmann's avatar
tepelmann committed
        ) := {
garciay's avatar
garciay committed
            fieldName := REFER_TO_E,
tepelmann's avatar
tepelmann committed
            nameAddr :=
                m_NameAddr(
                    // STF471 {displayName
                    omit,
                    // := omit,
                    p_sipUrl // addrSpec:=p_sipUrl}
                ),
garciay's avatar
garciay committed
            referToParams := {
tepelmann's avatar
tepelmann committed
                {
                    id := "method",
                    paramValue := p_method
                }
garciay's avatar
garciay committed
            }
        template(value) ReferSub m_ReferSub(
            template(value) boolean p_value
        ) := {
tepelmann's avatar
tepelmann committed
            fieldName := REFER_SUB_E,
            referSubValue := p_value,
garciay's avatar
garciay committed
            referSubParams := omit
        }
tepelmann's avatar
tepelmann committed
        template(value) Replaces m_Replaces(
            template(value) charstring p_callId,
            template(value) GenValue p_toTag,
            template(value) GenValue p_fromTag
tepelmann's avatar
tepelmann committed
        ) := {
garciay's avatar
garciay committed
            fieldName := REPLACES_E,
garciay's avatar
garciay committed
            replacesParams := {
tepelmann's avatar
tepelmann committed
                {
                    id := "to-tag",
                    paramValue := p_toTag
                },
                {
                    id := "from-tag",
                    paramValue := p_fromTag
                }
garciay's avatar
garciay committed
            }
garciay's avatar
garciay committed
        template(value) Require m_Require_empty := {
tepelmann's avatar
tepelmann committed
            fieldName := REQUIRE_E,
            optionsTags := {""}
garciay's avatar
garciay committed
        }
tepelmann's avatar
tepelmann committed
        template(value) Require m_Require_replaces modifies m_Require_empty := {optionsTags := {c_replaces}}
tepelmann's avatar
tepelmann committed
        template(value) Require m_Require_100rel modifies m_Require_empty := {optionsTags := {c_tag100rel}}
tepelmann's avatar
tepelmann committed
        template(value) Require m_Require_prec modifies m_Require_empty := {optionsTags := {c_tagPrecond}}
garciay's avatar
garciay committed

        template(value) SubscriptionState m_SubscriptionState_active := {
tepelmann's avatar
tepelmann committed
            fieldName := SUBSCRIPTION_STATE_E,
            subState := "active",
garciay's avatar
garciay committed
            substateParams := {
tepelmann's avatar
tepelmann committed
                {
                    id := "expires",
                    paramValue := {tokenOrHost := "60000"}
tepelmann's avatar
tepelmann committed
                }
garciay's avatar
garciay committed
            }
garciay's avatar
garciay committed
        template(value) Supported m_Supported_empty := {
tepelmann's avatar
tepelmann committed
            fieldName := SUPPORTED_E,
            optionsTags := {""}
garciay's avatar
garciay committed
        }
tepelmann's avatar
tepelmann committed
        template(value) Supported m_Supported_fromChange modifies m_Supported_empty := {optionsTags := {c_tagFromChange}}
tepelmann's avatar
tepelmann committed
        template(value) Supported m_Supported_prec modifies m_Supported_empty := {optionsTags := {c_tagPrecond}}
tepelmann's avatar
tepelmann committed
        template(value) Supported m_Supported_100rel modifies m_Supported_empty := {optionsTags := {c_tag100rel}}
tepelmann's avatar
tepelmann committed
        template(value) Supported m_Supported_100rel_prec modifies m_Supported_empty := {optionsTags := {c_tag100rel, c_tagPrecond}}
        template(value) GenericParam m_Text(
            template(value) GenValue p_text
tepelmann's avatar
tepelmann committed
            id := "text",
garciay's avatar
garciay committed
            paramValue := p_text
        }
        template(present) GenericParam mw_Text(
            template GenValue p_text
tepelmann's avatar
tepelmann committed
            id := "text",
garciay's avatar
garciay committed
            paramValue := p_text
        }
garciay's avatar
garciay committed
        template(value) GenericParam m_UserPhone := {
tepelmann's avatar
tepelmann committed
            id := "user",
            paramValue := { quotedString := "phone" }
garciay's avatar
garciay committed
        }
garciay's avatar
garciay committed
        template(value) GenericParam m_UserToUserEncodingHex := {
tepelmann's avatar
tepelmann committed
            id := "encoding",
            paramValue := { quotedString := "hex" }
garciay's avatar
garciay committed
        }
        template(value) UserToUser m_UserToUserData(
            template(value) UserToUser.uuiData p_U2UData
        ) := {
tepelmann's avatar
tepelmann committed
            fieldName := USER_TO_USER_E,
            uuiData := p_U2UData,
garciay's avatar
garciay committed
            uuiParam := m_UserToUserEncodingHex
        template(value) To m_To(
            template(value) SipUrl p_sipUrl
        ) := {
garciay's avatar
garciay committed
            fieldName := TO_E,
            addressField := {
tepelmann's avatar
tepelmann committed
                nameAddr :=
                    m_NameAddr(
                        {token:="ETSI Tester"},
tepelmann's avatar
tepelmann committed
                        //*     optional charstring
                        p_sipUrl //*     SipUrl
                    )
            },  //*     end addressField
garciay's avatar
garciay committed
            toParams := omit
        }

        template(value) To m_To_SipUrl(
            template(value) SipUrl p_sipUrl
        ) modifies m_To := {
garciay's avatar
garciay committed
            addressField := {
                nameAddr := {
                    displayName :=
                        omit //*     optional charstring
                }
tepelmann's avatar
tepelmann committed
            } //*     end addressField
tepelmann's avatar
tepelmann committed
        template(present) To mw_To_NameAddr_SipUrl(
            template DisplayName p_dn,
            template(present) charstring p_user := ?,
            template charstring p_host := ?
tepelmann's avatar
tepelmann committed
        ) := {
            fieldName := TO_E,
            addressField := (mw_AddrUnion_Nameaddr(p_dn, p_user, p_host), mw_AddrUnion_SipUrl(p_user, p_host)),
garciay's avatar
garciay committed
            toParams := *
        template(present) To mw_To(
            template(present) SipUrl p_sipUrl := ?
        ) := {
tepelmann's avatar
tepelmann committed
            fieldName := TO_E,
            addressField := {nameAddr := mw_NameAddr(*, p_sipUrl)},
garciay's avatar
garciay committed
            toParams := *
        template(present) From mw_From(
            template(present) SipUrl p_sipUrl := ?
        ) := {
tepelmann's avatar
tepelmann committed
            fieldName := FROM_E,
            addressField := {nameAddr := mw_NameAddr(*, p_sipUrl)},
garciay's avatar
garciay committed
            fromParams := *
tepelmann's avatar
tepelmann committed
        template(present) From mw_From_NameAddr_SipUrl(
            template DisplayName p_dn,
            template(present) charstring p_user := ?,
tepelmann's avatar
tepelmann committed
            template charstring p_host
        ) := {
            fieldName := FROM_E,
            addressField := (mw_AddrUnion_Nameaddr(p_dn, p_user, p_host), mw_AddrUnion_SipUrl(p_user, p_host)),
garciay's avatar
garciay committed
            fromParams := *
tepelmann's avatar
tepelmann committed
        template(value) ViaBody m_ViaBody_currIpaddr(
            template(value) charstring p_branch_val,
tepelmann's avatar
tepelmann committed
            template(value) SipUserProfile p_userprofile
        ) := {
garciay's avatar
garciay committed
            sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
tepelmann's avatar
tepelmann committed
            sentBy := {
                host := p_userprofile.currIpaddr,
                portField := p_userprofile.currPort
            },
            viaParams := {
                {
                    id := c_branchId,
                    paramValue := {
                        tokenOrHost := p_branch_val
                    }
tepelmann's avatar
tepelmann committed
                }
            }
        template(present) ViaBody mw_ViaBody_interface(
            template(present) HostPort p_hostport := ?
        ) := {
tepelmann's avatar
tepelmann committed
            sentProtocol := m_SentProtocol(PX_SIP_TRANSPORT),
garciay's avatar
garciay committed
            sentBy := {
tepelmann's avatar
tepelmann committed
                host := p_hostport.host,
garciay's avatar
garciay committed
                portField := p_hostport.portField
tepelmann's avatar
tepelmann committed
            },
garciay's avatar
garciay committed
            viaParams := *
        template(present) Via mw_Via(
            template(present) ViaBody p_viabody := ?
        ) := {
garciay's avatar
garciay committed
            fieldName := VIA_E,
tepelmann's avatar
tepelmann committed
            viaBody := {*, p_viabody, *} // superset(p_viabody)
garciay's avatar
garciay committed
        template(present) CallId mw_CallId_any := {
tepelmann's avatar
tepelmann committed
            fieldName := CALL_ID_E,
garciay's avatar
garciay committed
            callid := ?
        }
garciay's avatar
garciay committed
        template(present) Require mw_Require_Base := {
tepelmann's avatar
tepelmann committed
            fieldName := REQUIRE_E,
            optionsTags := {}
garciay's avatar
garciay committed
        }
tepelmann's avatar
tepelmann committed
        template(present) Require mw_Require_not_100rel modifies mw_Require_Base := {optionsTags := superset(complement(c_tag100rel))}

        template(present) Require mw_require_100rel modifies mw_Require_Base := {optionsTags := superset(c_tag100rel)}
        template(present) RecordRoute mw_recordroute(
            template(present) RouteBody p_routeBody := ?
        ) := {
garciay's avatar
garciay committed
            fieldName := RECORD_ROUTE_E,
tepelmann's avatar
tepelmann committed
            routeBody := {*, p_routeBody, *} // superset(p_routeBody)
        template(present) Route mw_route(
            template(present) RouteBody_List p_routeBody := ?
        ) := {
tepelmann's avatar
tepelmann committed
            fieldName := ROUTE_E,
garciay's avatar
garciay committed
            routeBody := p_routeBody
garciay's avatar
garciay committed
        template(present) Supported mw_Supported_Base := {
tepelmann's avatar
tepelmann committed
            fieldName := SUPPORTED_E,
            optionsTags := {}
garciay's avatar
garciay committed
        }
tepelmann's avatar
tepelmann committed
        template(present) Supported mw_Supported_100rel_prec modifies mw_Supported_Base := {optionsTags := superset(c_tag100rel, c_tagPrecond)}
tepelmann's avatar
tepelmann committed
        template(present) Supported mw_Supported_100rel modifies mw_Supported_Base := {optionsTags := superset(c_tag100rel)}
tepelmann's avatar
tepelmann committed
        template(present) Supported mw_Supported_fromChange modifies mw_Supported_Base := {optionsTags := superset(c_tagFromChange)}
        template(present) UserToUser mw_UserToUserData(
            template(present) UserToUser.uuiData p_U2UData := ? 
        ) := {
tepelmann's avatar
tepelmann committed
            fieldName := USER_TO_USER_E,
            uuiData := p_U2UData,
garciay's avatar
garciay committed
            uuiParam := ?
garciay's avatar
garciay committed
        }

        template(present) Contact mw_Contact_conference := {
            fieldName := CONTACT_E,
            contactBody := {
                contactAddresses := {
                    {
                        addressField := {
garciay's avatar
garciay committed
                            nameAddr := {
tepelmann's avatar
tepelmann committed
                                displayName := *,
garciay's avatar
garciay committed
                                addrSpec := {
tepelmann's avatar
tepelmann committed
                                    scheme := ?,
                                    components := ?,
garciay's avatar
garciay committed
                                    urlParameters := {
                                        {
tepelmann's avatar
tepelmann committed
                                            "isfocus",
garciay's avatar
garciay committed
                                            *
tepelmann's avatar
tepelmann committed
                                        },
garciay's avatar
garciay committed
                                        *
tepelmann's avatar
tepelmann committed
                                    },
garciay's avatar
garciay committed
                                    headers := *
tepelmann's avatar
tepelmann committed
                                }
garciay's avatar
garciay committed
                            }
garciay's avatar
garciay committed
                        },
tepelmann's avatar
tepelmann committed
                        contactParams := *
garciay's avatar
garciay committed
        template(value) AlertInfo m_AlertInfo_Base := {
tepelmann's avatar
tepelmann committed
            fieldName := ALERT_INFO_E,
            alertInfoBody := {}
garciay's avatar
garciay committed
        }
        template(value) AlertInfo m_AlertInfo(
            template(value) charstring p_urn
        ) modifies m_AlertInfo_Base := {
garciay's avatar
garciay committed
            alertInfoBody := {
tepelmann's avatar
tepelmann committed
                {
                    p_urn,
                    omit
                }
garciay's avatar
garciay committed
            }
        }
        template(present) AlertInfo mw_AlertInfo(
            template(present) charstring p_urn := ?
        ) modifies m_AlertInfo_Base := {
tepelmann's avatar
tepelmann committed
            alertInfoBody :=
                superset(
                    {
                        p_urn,
                        omit
                    }
                )
garciay's avatar
garciay committed
        }
tepelmann's avatar
tepelmann committed
    } //*     end of group HeaderFieldTemplates
garciay's avatar
garciay committed


    group MessageTemplates {
tepelmann's avatar
tepelmann committed

garciay's avatar
garciay committed
        group dummy_templates {
tepelmann's avatar
tepelmann committed

garciay's avatar
garciay committed
            group dummy_parameter_send {

                template(value) RequestLine m_requestLine_dummy(
                    template(value) Method p_method
                ) := {
tepelmann's avatar
tepelmann committed
                    method := p_method,
                    requestUri := c_unavailableUri,
garciay's avatar
garciay committed
                    sipVersion := c_sipNameVersion
garciay's avatar
garciay committed
                }

                template(value) MessageHeader m_msgHeader_dummy := {
                    accept := omit,
                    acceptContact := omit,
                    acceptEncoding := omit,
                    acceptLanguage := omit,
                    alertInfo := omit,
                    allow := omit,
                    allowEvents := omit,  //*     RFC3265
                    authenticationInfo := omit,
                    authorization := omit,
                    callId := c_empty_CallId,
                    callInfo := omit,
                    contact := omit,
                    contentDisposition := omit,
                    contentEncoding := omit,
                    contentLanguage := omit,
garciay's avatar
garciay committed
                    contentLength := {
tepelmann's avatar
tepelmann committed
                        fieldName := CONTENT_LENGTH_E,
garciay's avatar
garciay committed
                        len := 0
                    },
garciay's avatar
garciay committed
                    contentType := omit,  //*     if message body present m,
tepelmann's avatar
tepelmann committed
                                          //*     else not present
garciay's avatar
garciay committed
                    cSeq := c_empty_cSeq,
                    date := omit,
                    errorInfo := omit,
                    event := omit,  //*     RFC3265
                    expires := omit,
                    featureCaps := omit,
garciay's avatar
garciay committed
                    fromField := c_empty_From,
                    geolocation := omit,
                    geolocationRouting := omit,
                    historyInfo := omit,  //*     RFC4244
Rennoch's avatar
Rennoch committed
					infoPackage := omit,
garciay's avatar
garciay committed
                    inReplyTo := omit,
                    maxForwards := c_maxForwards70,
                    mimeVersion := omit,
                    minExpires := omit,
                    minSE := omit,  //*     RFC4028
                    organization := omit,
                    pAccessNetworkInfo := omit,  //*     RFC3455
                    pAssertedID := omit,
                    pAssertedService := omit,
                    pAssociatedURI := omit,
                    path := omit,  //*     RFC3327
                    pCalledPartyID := omit,  //*     RFC3455
                    pChargingFunctionAddresses := omit,  //*     RFC3455
                    pChargingVector := omit,  //*     RFC3455
                    pEarlyMedia := omit,  //*     RFC5009
                    pMediaAuthorization := omit,  //*     RFC3313
                    pPreferredID := omit,
                    pPreferredService := omit,
                    priority := omit,
                    privacy := omit,
                    proxyAuthenticate := omit,
                    proxyAuthorization := omit,
                    proxyRequire := omit,
                    pVisitedNetworkID := omit,  //*     RFC3455
                    rAck := omit,
                    rSeq := omit,
                    reason := omit,
                    recordRoute := omit,
Rennoch's avatar
Rennoch committed
					recvInfo := omit,
garciay's avatar
garciay committed
                    requestDisposition := omit,
                    referredBy := omit,  //*     RFC3892 - REFER method
                    referTo := omit,  //*     RFC3515 - REFER method
                    referSub := omit,  //*     RFC4488 - REFER method
                    replaces := omit,  //*     RFC3891
                    replyTo := omit,
                    require := omit,
                    retryAfter := omit,
                    route := omit,
                    securityClient := omit,  //*     RFC3329
                    securityServer := omit,  //*     RFC3329
                    securityVerify := omit,  //*     RFC3329
                    server := omit,
                    serviceRoute := omit,  //*     RFC3608
                    sessionExpires := omit,  //*     RFC4028
                    sessionId := omit,
                    sipETag := omit,
                    sipIfMatch := omit,
                    subject := omit,
                    subscriptionState := omit,  //*     RFC3265
                    supported := omit,
                    timestamp := omit,
                    toField := c_empty_To,
                    unsupported := omit,
                    userToUser := omit,
                    userAgent := omit,
                    via := c_empty_Via,
                    warning := omit,
                    wwwAuthenticate := omit,
Rennoch's avatar
Rennoch committed
					resourcePriority := omit,
					answerMode := omit,
					privAnswerMode := omit,
					targetDialog := omit,
					pAnswerState := omit,
					undefinedHeader_List := omit
garciay's avatar
garciay committed
                }


            } //*     group dummy_parameter_send

            group dummy_parameter_receive {

                template(present) RequestLine mw_requestLine_dummy(
                    Method p_method
                ) := {
tepelmann's avatar
tepelmann committed
                    method := p_method,
                    requestUri := ?,
garciay's avatar
garciay committed
                    sipVersion := c_sipNameVersion
                }
garciay's avatar
garciay committed

                template(present) MessageHeader mw_msgHeader_dummy := {
                    accept := *,
                    acceptContact := *,
                    acceptEncoding := *,
                    acceptLanguage := *,
                    alertInfo := *,
                    allow := *,
                    allowEvents := *,  //*     RFC3265
                    authenticationInfo := *,
                    authorization := *,
                    callId := ?,
                    callInfo := *,
                    contact := *,
                    contentDisposition := *,
                    contentEncoding := *,
                    contentLanguage := *,
                    contentLength := ?,
                    contentType := *,
                    cSeq := ?,
                    date := *,
                    errorInfo := *,
                    event := *,  //*     RFC3265
                    expires := *,
                    featureCaps := *,
garciay's avatar
garciay committed
                    fromField := ?,
                    geolocation := *,
                    geolocationRouting := *,
                    historyInfo := *,  //*     RFC4244
Rennoch's avatar
Rennoch committed
					infoPackage := *,
garciay's avatar
garciay committed
                    inReplyTo := *,
                    maxForwards := *,
                    mimeVersion := *,
                    minExpires := *,
                    minSE := *,  //*     RFC4028
                    organization := *,
                    pAccessNetworkInfo := *,  //*     RFC3455
                    pAssertedID := *,
                    pAssertedService := *,
                    pAssociatedURI := *,
                    path := *,  //*     RFC3327
                    pCalledPartyID := *,  //*     RFC3455
                    pChargingFunctionAddresses := *,  //*     RFC3455
                    pChargingVector := *,  //*     RFC3455
                    pEarlyMedia := *,  //*     RFC5009
                    pMediaAuthorization := *,  //*     RFC3313
                    pPreferredID := *,
                    pPreferredService := *,
                    priority := *,
                    privacy := *,
                    proxyAuthenticate := *,
                    proxyAuthorization := *,
                    proxyRequire := *,
                    pVisitedNetworkID := *,  //*     RFC3455
                    rAck := *,
                    rSeq := *,
                    reason := *,
                    recordRoute := *,
Rennoch's avatar
Rennoch committed
					recvInfo := *,
garciay's avatar
garciay committed
                    requestDisposition := *,
                    referredBy := *,  //*     RFC3892 - REFER method
                    referTo := *,  //*     RFC3515 - REFER method
                    referSub := *,  //*     RFC4488 - REFER method
                    replaces := *,  //*     RFC 3891
                    replyTo := *,
                    require := *,
                    retryAfter := *,
                    route := *,
                    securityClient := *,  //*     RFC3329
                    securityServer := *,  //*     RFC3329
                    securityVerify := *,  //*     RFC3329
                    server := *,
                    serviceRoute := *,  //*     RFC3608
                    sessionExpires := *,  //*     RFC4028
                    sessionId := *,
                    sipETag := *,
                    sipIfMatch := *,
                    subject := *,
                    subscriptionState := *,  //*     RFC3265
                    supported := *,
                    timestamp := *,
                    toField := ?,
                    unsupported := *,
                    userToUser := *,
                    userAgent := *,
                    via := ?,
                    warning := *,
                    wwwAuthenticate := *,
Rennoch's avatar
Rennoch committed
					resourcePriority := *,
					answerMode := *,
					privAnswerMode := *,
					targetDialog := *,
					pAnswerState := *,
garciay's avatar
garciay committed
                    undefinedHeader_List := *
                }


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

            group dummy_request_templates_send {

                template(value) ACK_Request m_ACK_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(ACK_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) BYE_Request m_BYE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(BYE_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) CANCEL_Request m_CANCEL_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(CANCEL_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) INFO_Request m_INFO_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(INFO_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) INVITE_Request m_INVITE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(INVITE_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) MESSAGE_Request m_MESSAGE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(MESSAGE_E),
garciay's avatar
garciay committed
                    msgHeader := m_msgHeader_dummy,
tepelmann's avatar
tepelmann committed
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) NOTIFY_Request m_NOTIFY_Dummy := {
garciay's avatar
garciay committed
                    requestLine := m_requestLine_dummy(NOTIFY_E),
tepelmann's avatar
tepelmann committed
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) OPTIONS_Request m_OPTIONS_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(OPTIONS_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) PRACK_Request m_PRACK_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(PRACK_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) PUBLISH_Request m_PUBLISH_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(PUBLISH_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) REGISTER_Request m_REGISTER_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(REGISTER_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) REFER_Request m_REFER_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(REFER_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) SUBSCRIBE_Request m_SUBSCRIBE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(SUBSCRIBE_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }

                template(value) UPDATE_Request m_UPDATE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := m_requestLine_dummy(UPDATE_E),
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
tepelmann's avatar
tepelmann committed
            } //*     end group dummy_request_templates_send
garciay's avatar
garciay committed
            group dummy_request_templates_receive {

                template(present) ACK_Request mw_ACK_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(ACK_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) BYE_Request mw_BYE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(BYE_E),
garciay's avatar
garciay committed
                    msgHeader := mw_msgHeader_dummy,
tepelmann's avatar
tepelmann committed
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) CANCEL_Request mw_CANCEL_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(CANCEL_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) INFO_Request mw_INFO_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(INFO_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) INVITE_Request mw_INVITE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(INVITE_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) MESSAGE_Request mw_MESSAGE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(MESSAGE_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) OPTIONS_Request mw_OPTIONS_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(OPTIONS_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) NOTIFY_Request mw_NOTIFY_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(NOTIFY_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) PRACK_Request mw_PRACK_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(PRACK_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) PUBLISH_Request mw_PUBLISH_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(PUBLISH_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) REFER_Request mw_REFER_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(REFER_E),
garciay's avatar
garciay committed
                    msgHeader := mw_msgHeader_dummy,
tepelmann's avatar
tepelmann committed
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) REGISTER_Request mw_REGISTER_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(REGISTER_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) SUBSCRIBE_Request mw_SUBSCRIBE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(SUBSCRIBE_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
garciay's avatar
garciay committed
                }

                template(present) UPDATE_Request mw_UPDATE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := mw_requestLine_dummy(UPDATE_E),
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
tepelmann's avatar
tepelmann committed
            } //*     end group dummy_request_templates_receive
garciay's avatar
garciay committed

            group dummy_response_templates_send {

                template(value) Response m_Response_Dummy := {
tepelmann's avatar
tepelmann committed
                    statusLine := c_statusLine100,
                    msgHeader := m_msgHeader_dummy,
                    messageBody := omit,
garciay's avatar
garciay committed
                    payload := omit
garciay's avatar
garciay committed
                }


            } //*     group dummy_response_templates_send

            group dummy_response_templates_receive {
tepelmann's avatar
tepelmann committed

garciay's avatar
garciay committed
                template(present) Response mw_Response_Dummy := {
tepelmann's avatar
tepelmann committed
                    statusLine := ?,
                    msgHeader := mw_msgHeader_dummy,
                    messageBody := *,
garciay's avatar
garciay committed
                    payload := *
                }
tepelmann's avatar
tepelmann committed

garciay's avatar
garciay committed
            } //*     group dummy_response_templates_receive
        }

        group base_templates {

tepelmann's avatar
tepelmann committed
            template(value) CSeq m_cSeq(
                template(value) integer p_seqNumber,
                template(value) charstring p_method
            ) := {
                fieldName := CSEQ_E,
                seqNumber := p_seqNumber,
garciay's avatar
garciay committed
                method := p_method
            template(value) ContentLength m_contentLength(
                template(value) integer p_len
            ) := {
tepelmann's avatar
tepelmann committed
                fieldName := CONTENT_LENGTH_E,
garciay's avatar
garciay committed
                len := p_len
            }
            template(value) ContentType m_contentType(
Rennoch's avatar
Rennoch committed
                template(value) charstring p_mTypeSubtype,
                template(omit) SemicolonParam_List p_mParams := omit
tepelmann's avatar
tepelmann committed
                fieldName := CONTENT_TYPE_E,
Rennoch's avatar
Rennoch committed
                mTypeSubtype := p_mTypeSubtype,
				mParams := p_mParams
garciay's avatar
garciay committed
            }
            template(present) ContentType mw_contentType(
Rennoch's avatar
Rennoch committed
                in template(present) charstring p_mTypeSubtype := ?,
                in template SemicolonParam_List p_mParams := *
tepelmann's avatar
tepelmann committed
                fieldName := CONTENT_TYPE_E,
Rennoch's avatar
Rennoch committed
                mTypeSubtype := p_mTypeSubtype,
                mParams := p_mParams
garciay's avatar
garciay committed
            }
garciay's avatar
garciay committed

            group request_send {

garciay's avatar
garciay committed
                template(value) ACK_Request m_ACK_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_ACK_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, "ACK"),  // STF471
                                                                  // {fieldName:=CSEQ_E,
                                                                  // seqNumber:=
                                                                  // p_cSeq.seqNumber,
                                                                  // method:=
                                                                  // "ACK"},
garciay's avatar
garciay committed
                        fromField := p_from,
                        toField := p_to,
                        via := p_via
                    }
                }

garciay's avatar
garciay committed
                template(value) ACK_Request m_ACK_Request_withRecordRoute(
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(value) Route p_route
garciay's avatar
garciay committed
                ) modifies m_ACK_Request_Base := {
garciay's avatar
garciay committed
                    msgHeader := {
                        route := p_route,
                        contentLength := m_contentLength(0)
                    }
                }

tepelmann's avatar
tepelmann committed
                template(value) BYE_Request m_BYE_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
garciay's avatar
garciay committed
                ) modifies m_BYE_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := {requestUri := p_requestUri},
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        callId := p_callId,
                        cSeq := p_cSeq,
                        fromField := p_from,
                        toField := p_to,
garciay's avatar
garciay committed
                        via := p_via
                    }
garciay's avatar
garciay committed
                template(value) CANCEL_Request m_CANCEL_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_CANCEL_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := {requestUri := p_requestUri},
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        callId := p_callId,
                        cSeq := p_cSeq,
                        fromField := p_from,
                        toField := p_to,
garciay's avatar
garciay committed
                        via := p_via
                    }
garciay's avatar
garciay committed
                template(value) INFO_Request m_INFO_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_INFO_Dummy := {
tepelmann's avatar
tepelmann committed
                    requestLine := {requestUri := p_requestUri},
garciay's avatar
garciay committed
                    msgHeader := {
tepelmann's avatar
tepelmann committed
                        callId := p_callId,
                        cSeq := p_cSeq,
                        fromField := p_from,
                        toField := p_to,
garciay's avatar
garciay committed
                        via := p_via
                    }
tepelmann's avatar
tepelmann committed
                template(value) INVITE_Request m_INVITE_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) Contact p_contact
                ) modifies m_INVITE_Dummy := {
garciay's avatar
garciay committed
                    requestLine := {requestUri := p_requestUri},
tepelmann's avatar
tepelmann committed
                    msgHeader := {
                        callId := p_callId,
                        contact := p_contact,
                        cSeq := p_cSeq,
                        fromField := p_from,
                        toField := p_to,
                        via := p_via
                    }
tepelmann's avatar
tepelmann committed
                template(value) MESSAGE_Request m_MESSAGE_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
                ) modifies m_MESSAGE_Dummy := {
garciay's avatar
garciay committed
                    requestLine := {requestUri := p_requestUri},
tepelmann's avatar
tepelmann committed
                    msgHeader := {
                        callId := p_callId,
                        cSeq := p_cSeq,
                        fromField := p_from,
                        toField := p_to,
                        via := p_via
                    }
tepelmann's avatar
tepelmann committed
                template(value) NOTIFY_Request m_NOTIFY_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
                ) modifies m_NOTIFY_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, "NOTIFY"),  // STF471
                                                                     // {fieldName:=CSEQ_E,
                                                                     // seqNumber:=
                                                                     // p_cSeq.seqNumber,
                                                                     // method:=
                                                                     // "NOTIFY"},
garciay's avatar
garciay committed
                        fromField := p_from,
                        toField := p_to,
                        via := p_via
                    }
                }

tepelmann's avatar
tepelmann committed
                template(value) OPTIONS_Request m_OPTIONS_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
                ) modifies m_OPTIONS_Dummy := {