SIP_Templates: Allow passing 'Allow' field

Change-Id: I10dd36d8c0ef8dbcbb58016c9684d877a0455b03
diff --git a/library/SIP_Templates.ttcn b/library/SIP_Templates.ttcn
index d35813e..1eeccb9 100644
--- a/library/SIP_Templates.ttcn
+++ b/library/SIP_Templates.ttcn
@@ -66,6 +66,16 @@
 	}
 }
 
+// [20.5]
+template (present) Allow tr_Allow(template Method_List methods := *) := {
+	fieldName := ALLOW_E,
+	methods := methods
+}
+template (value) Allow ts_Allow(template (omit) Method_List methods := omit) := {
+	fieldName := ALLOW_E,
+	methods := methods
+}
+
 template (value) Credentials ts_Credentials_DigestResponse(template (value) CommaParam_List digestResponse) := {
 	digestResponse := digestResponse
 }
@@ -511,7 +521,7 @@
 		template (value) Via via,
 		template (omit) ContentType content_type := omit,
 		template (omit)Authorization authorization := omit,
-		template (value) Method_List allow_methods := c_SIP_defaultMethods,
+		template (omit) Allow allow := ts_Allow(c_SIP_defaultMethods),
 		template (omit) Expires expires := omit,
 		template (omit) Require require := omit,
 		template (omit) Security_client security_client := omit,
@@ -519,10 +529,7 @@
 		template (omit) Supported supported := omit,
 		template (omit) WwwAuthenticate wwwAuthenticate := omit
 	) modifies ts_SIP_msgHeader_empty := {
-	allow := {
-		fieldName := ALLOW_E,
-		methods := allow_methods
-	},
+	allow := allow,
 	authorization := authorization,
 	callId := {
 		fieldName := CALL_ID_E,
@@ -560,21 +567,6 @@
 	wwwAuthenticate := wwwAuthenticate
 }
 
-function tr_AllowMethods(template Method_List allow_methods) return template Allow {
-	if (istemplatekind(allow_methods, "omit")) {
-		return omit;
-	} else if (istemplatekind(allow_methods, "*")) {
-		return *;
-	} else if (istemplatekind(allow_methods, "?")) {
-		return ?;
-	}
-	var template (present) Allow ret := {
-		fieldName := ALLOW_E,
-		methods := allow_methods
-	}
-	return ret
-}
-
 template (present) MessageHeader
 tr_SIP_msgh_std(template CallidString call_id,
 		template SipAddr from_addr,
@@ -584,7 +576,7 @@
 		template charstring method,
 		template ContentType content_type := *,
 		template integer seq_nr := ?,
-		template Method_List allow_methods := *,
+		template Allow allow := *,
 		template Expires expires := *,
 		template Require require := *,
 		template Security_client security_client := *,
@@ -592,7 +584,7 @@
 		template Supported supported := *,
 		template WwwAuthenticate wwwAuthenticate := *
 		) modifies t_SIP_msgHeader_any := {
-	allow := tr_AllowMethods(allow_methods),
+	allow := allow,
 	callId := {
 		fieldName := CALL_ID_E,
 		callid := call_id