Newer
Older
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
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}}
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}}
template(present) REFER_Request mw_REFER_Request(template CallId p_callId, template(value) SipUrl p_requestUri,
template(value) SipUrl p_referredBy) modifies mw_REFER_Request_Base := {
requestLine := {requestUri := p_requestUri},
msgHeader := {
referredBy := {
fieldName := REFERRED_BY_E,
nameAddr := mw_NameAddr(*, p_referredBy), // STF471
// {displayName
// :=
// *,
// addrSpec
// :=
// p_referredBy},
referredbyIdParams := *
}
}
}
template(present) INVITE_Request mw_INVITE_Request(template Require p_require, template(value) SipUrl p_referredBy)
modifies mw_INVITE_Request_Base := {
msgHeader := {
require := p_require,
referredBy := {
fieldName := REFERRED_BY_E,
nameAddr := mw_NameAddr(*, p_referredBy), // STF471
// {displayName
// :=
// *,
// addrSpec
// :=
// p_referredBy},
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}}
template(present) UPDATE_Request mw_UPDATE_Request_Base(template CallId p_callId) modifies mw_UPDATE_Dummy := {
msgHeader := {callId := p_callId}
}
group response_send {
template(value) Response m_Response_Base(template(value) StatusLine p_statusLine, template(omit) CallId p_callId, template(omit) CSeq p_cSeq,
template(value) From p_from, template(value) To p_to, template(value) Via p_via)
modifies m_Response_Dummy := {
statusLine := p_statusLine,
msgHeader := {callId := p_callId, cSeq := p_cSeq, fromField := p_from, maxForwards := omit, toField := p_to, via := p_via},
messageBody := omit,
payload := omit
}
template(present) Response mw_Response_Base(
template(present) StatusLine p_statusLine,
template CallId p_callId,
template CSeq p_cSeq
) modifies mw_Response_Dummy := {
msgHeader := {
callId := p_callId,
contentLength := *,
cSeq := p_cSeq,
fromField := ?,
maxForwards := *,
toField := ?,
via := ?
}
}
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
template(present) Response mw_Response_StatusCode_Base(
template(present) StatusLine.statusCode p_statusCode,
template CallId p_callId,
template CSeq p_cSeq
) modifies mw_Response_Dummy := {
statusLine := {
sipVersion := c_sipNameVersion,
statusCode := p_statusCode,
reasonPhrase := ?
},
msgHeader := {
callId := p_callId,
contentLength := *,
cSeq := p_cSeq,
fromField := ?,
maxForwards := *,
toField := ?,
via := ?
}
}
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
template(present) Response mw_Response_1xx_Base(
template CallId p_callId,
template CSeq p_cSeq
) modifies mw_Response_Dummy := {
statusLine := {
sipVersion := c_sipNameVersion,
statusCode := (100..199),
reasonPhrase := ?
},
msgHeader := {
callId := p_callId,
contentLength := *,
cSeq := p_cSeq,
fromField := ?,
maxForwards := *,
toField := ?,
via := ?
}
}
template(present) Response mw_Response_2xx_Base(
template CallId p_callId,
template CSeq p_cSeq
statusLine := {
sipVersion := c_sipNameVersion,
statusCode := (200..299),
reasonPhrase := ?
}
}
template(present) Response mw_Response_3xx_Base(
template CallId p_callId,
template CSeq p_cSeq
statusLine := {
sipVersion := c_sipNameVersion,
statusCode := (300..399),
reasonPhrase := ?
}
}
template(present) Response mw_Response_4xx_Base(
template CallId p_callId,
template CSeq p_cSeq
statusLine := {
sipVersion := c_sipNameVersion,
statusCode := (400..499),
reasonPhrase := ?
}
}
template(present) Response mw_Response_5xx_Base(
template CallId p_callId,
template CSeq p_cSeq
statusLine := {
sipVersion := c_sipNameVersion,
statusCode := (500..599),
reasonPhrase := ?
}
}
template(present) Response mw_Response_6xx_Base(
template CallId p_callId,
template CSeq p_cSeq
statusLine := {
sipVersion := c_sipNameVersion,
statusCode := (600..699),
reasonPhrase := ?
}
}
template(present) Response mw_Response_Algorithm (template(present) StatusLine p_statusLine,
template CallId p_callId,
template CSeq p_cSeq,
template CredentialsList p_credentialsList
) modifies mw_Response_Base:= {
statusLine := {
sipVersion := c_sipNameVersion,
statusCode := p_statusLine.statusCode,
reasonPhrase := ?
},
msgHeader := {
authorization:= {
fieldName := AUTHORIZATION_E,
body := p_credentialsList
}
}
group modified_templates {
group request_send {
template(value) ACK_Request m_ACK_Request_route(template(value) SipUrl p_requestUri, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, template(value) From p_from, template(value) To p_to,
template(value) Via p_via, template(omit) Route p_route) modifies m_ACK_Request_Base := {
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
msgHeader := {route := p_route}
}
template(value) ACK_Request m_ACK_Request_sdp(template(value) SipUrl p_requestUri, template(omit) CallId p_callId, template(omit) CSeq p_cSeq,
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 := {
msgHeader := {
contentLength := m_contentLength(f_MessageBodyLength(p_mb)), // STF471
// {fieldName
// :=
// CONTENT_LENGTH_E,
// len:=
// f_MessageBodyLength(valueof(p_mb))},
contentType := m_contentType(c_sdpApplication)
},
messageBody := p_mb
}
template(value) BYE_Request m_BYE_Request_cause(template(value) SipUrl p_requestUri, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, 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 := {
msgHeader := {reason := m_Reason(p_cause)}
}
template(value) INVITE_Request m_INVITE_Request_sdp(template(value) SipUrl p_requestUri, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, 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 := {
msgHeader := {
contentLength := m_contentLength(f_MessageBodyLength(p_mb)), // STF471
// {fieldName
// :=
// CONTENT_LENGTH_E,
// len:=
// f_MessageBodyLength(valueof(p_mb))},
contentType := m_contentType(c_sdpApplication)
},
messageBody := p_mb
}
template(value) INVITE_Request m_INVITE_Request_ResourceList(template(value) SipUrl p_requestUri, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, 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 := {
msgHeader := {
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,
// mediaType
// :=
// "application/resource-lists+xml"},
contentDisposition := {fieldName := CONTENT_DISPOSITION_E, dispositionType := "recipient-list", dispositionParams := omit},
require := {fieldName := REQUIRE_E, optionsTags := {"recipient-list-invite"}}
},
messageBody := p_mb
}
// TODO STF471 added - check occurence
template(value) REFER_Request m_REFER_Request_route(template(value) SipUrl p_requestUri, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, template(omit) Contact p_contact, 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 := {
msgHeader := {route := p_route}
}
template(value) REGISTER_Request m_REGISTER_Request_expires(template(value) SipUrl p_requestUri, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, template(value) From p_from, template(value) To p_to,
template(value) Via p_via, template(omit) Contact p_contact,
template(omit) Authorization p_authorization, template(value) charstring p_expires)
modifies m_REGISTER_Request_Base := {
msgHeader := {authorization := p_authorization, expires := m_Expires(p_expires)}
}
template(value) NOTIFY_Request m_NOTIFY_Request_contact(template(value) SipUrl p_requestUri, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, template(value) From p_from, template(value) To p_to,
template(value) Via p_via, template(omit) Contact p_contact)
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
modifies m_NOTIFY_Request_Base := {
msgHeader := {contact := p_contact, event := m_Event_reg, subscriptionState := m_SubscriptionState_active}
}
template(value) NOTIFY_Request m_NOTIFY_Request_sipfrag(template(value) SipUrl p_requestUri, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, 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 := {
requestLine := {
method := NOTIFY_E,
requestUri := {scheme := ?, components := {sip := {userInfo := *, hostPort := p_requestUri.components.sip.hostPort}}}
},
msgHeader := {
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,
// mediaType
// :=
// "message/sipfrag"},
subscriptionState := {fieldName := SUBSCRIPTION_STATE_E, subState := p_state, substateParams := omit},
event := m_Event_refer
},
messageBody := {sipfrag := p_sipfrag}
}
// TODO STF471 added - check occurence
template(value) UPDATE_Request m_UPDATE_Request_route(template(value) SipUrl p_requestUri, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, template(value) From p_from, template(value) To p_to,
template(value) Via p_via, template(omit) Contact p_contact,
template(value) MessageBody p_mb, template(value) Route p_route)
modifies m_UPDATE_Request_Base := {
msgHeader := {route := p_route}
}
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
group request_receive {
template(present) BYE_Request mw_BYE_Request_Reason(template CallId p_callId, template(value) charstring p_cause) modifies mw_BYE_Request_Base
:= {
msgHeader := {reason := mw_Reason(p_cause)}
}
template(present) BYE_Request mw_BYE_Request_ReasonSIP(template CallId p_callId, template(value) charstring p_cause)
modifies mw_BYE_Request_Base := {
msgHeader := {reason := mw_ReasonSIP(p_cause)}
}
template(present) BYE_Request mw_BYE_Request_headerfieldlist(template CallId p_callId, template SipUrl p_requestUri, template(present) To p_to,
template(present) From p_from, template CSeq p_cSeq, template Route p_route,
template RecordRoute p_recordRoute, template Reason p_reason)
modifies mw_BYE_Request_Base := {
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 := {
requestLine := {requestUri := p_sipUrl, sipVersion := c_sipNameVersion}
}
template(present) INFO_Request mw_INFO_Request_MB(template CallId p_callId, template MessageBody p_mb) modifies mw_INFO_Request_Base := {
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}
}
template(present) INVITE_Request mw_INVITE_Request_MB(template CallId p_callId, template MessageBody p_mb) modifies mw_INVITE_Request_callid :=
{
messageBody := p_mb
}
template(present) INVITE_Request mw_INVITE_Request_noPaccessNetworkInfo(template CallId p_callId) modifies mw_INVITE_Request_Base := {
msgHeader := {pAccessNetworkInfo := omit}
}
template(present) INVITE_Request mw_INVITE_Request_PaccessNetworkInfo(template CallId p_callId) modifies mw_INVITE_Request_Base := {
msgHeader := {pAccessNetworkInfo := ?}
}
template(present) INVITE_Request mw_INVITE_MSRP_Session(template(present) SDP_media_field p_media_MSRP) modifies mw_INVITE_Request_Base := {
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
"path:msrp://*" // FIXME
// Shall
// parse
// msrp
// and
// msrps
// for
// secured
// msrp
}
}
}
}
}
}
}
}
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}
}
template(present) UPDATE_Request mw_UPDATE_Request_SDP(template CallId p_callId, template MessageBody p_mb) modifies mw_UPDATE_Dummy := {
messageBody := p_mb
}
template(present) NOTIFY_Request mw_NOTIFY_Request_MB(template CallId p_callId, template MessageBody p_mb) modifies mw_NOTIFY_Request_Base := {
messageBody := p_mb
}
group response_send {
template(value) Response m_Response_AlertInfo(template(value) StatusLine p_statusLine, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, 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 := {
msgHeader := {alertInfo := p_alertInfo}
}
template(value) Response m_Response_Contact(template(value) StatusLine p_statusLine, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, template(value) From p_from, template(value) To p_to,
template(value) Via p_via, template(omit) Contact p_contact) modifies m_Response_Base := {
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
msgHeader := {contact := p_contact}
}
template(value) Response m_Response_ext(template(value) StatusLine p_statusLine, template(omit) CallId p_callId, template(omit) CSeq p_cSeq,
template(value) From p_from, template(value) To p_to, template(value) Via p_via,
template(omit) Route p_route, template(omit) RecordRoute p_recordroute) modifies m_Response_Base := {
msgHeader := {
route := p_route, // f_route(),
recordRoute :=
p_recordroute // f_recordroute()
}
}
template(value) Response m_Response_mbody(template(value) StatusLine p_statusLine, template(omit) CallId p_callId, template(omit) CSeq p_cSeq,
template(value) From p_from, template(value) To p_to, template(value) Via p_via,
template(omit) Route p_route, template(omit) RecordRoute p_recordroute,
template(value) MessageBody p_mb) modifies m_Response_ext := {
msgHeader := {
contentLength := m_contentLength(f_MessageBodyLength(p_mb)), // STF471
// {fieldName
// :=
// CONTENT_LENGTH_E,
// len:=
// f_MessageBodyLength(valueof(p_mb))},
contentType := m_contentType(c_sdpApplication)
},
messageBody := p_mb
}
template(value) Response m_Response_PAsserted_Privacy(template(value) StatusLine p_statusLine, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, 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}
}
template(present) Response mw_Response_PAsserted_Privacy_Supported(template(present) StatusLine p_statusLine, 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 := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {pAssertedID := p_pAssertedID, privacy := p_privacy, supported := p_supported}
}
template(value) Response m_Response_PAsserted_Privacy_mbody(template(value) StatusLine p_statusLine, template(omit) CallId p_callId,
template(omit) CSeq p_cSeq, 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 := {
msgHeader := {
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,
// mediaType
// :=
// c_sdpApplication
// },
pAssertedID := p_pAssertedID,
privacy := p_privacy
},
messageBody := p_mb
}
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
group response_receive {
template(present) Response mw_Response_Expires(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq,
template(present) DeltaSec p_deltaSec) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {expires := mw_Expires(p_deltaSec)}
}
template(present) Response mw_Response_PAsserted_Privacy(template(present) StatusLine p_statusLine, template CallId p_callId,
template CSeq p_cSeq, template PAssertedID p_pAssertedID, template Privacy p_privacy)
modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {pAssertedID := p_pAssertedID, privacy := p_privacy}
}
template(present) Response mw_Response_Reason(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq,
template(value) charstring p_cause) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {reason := mw_Reason(p_cause)}
}
template(present) Response mw_Response_RecordRoute(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq,
template RecordRoute p_recordRoute) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {recordRoute := p_recordRoute}
}
template(present) Response mw_Response_Via(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq,
template(present) Via p_via) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := {via := p_via}
}
template(present) Response mw_Response_Contact(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq,
template Contact p_contact) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {contact := p_contact}
}
template(present) Response mw_Response_AlertInfo(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq,
template AlertInfo p_alertInfo) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {alertInfo := p_alertInfo}
}
template(present) Response mw_Response_HistoryInfo(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq,
template HistoryInfo p_historyInfo) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {historyInfo := p_historyInfo}
}
template(present) Response mw_Response_messageBody(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq,
template Require p_require, template MessageBody p_mb) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {require := p_require},
messageBody := p_mb
}
template(present) Response mw_Response_Require(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq,
template Require p_require) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {require := p_require}
}
template(present) Response mw_Response_Require_ifpresent(template(present) StatusLine p_statusLine, template CallId p_callId,
template CSeq p_cSeq, template Require p_require) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {require := p_require ifpresent}
}
template(present) Response mw_Response_Supported(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq,
template Supported p_supported) modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?},
msgHeader := {supported := p_supported}
}
template(present) Response mw_Response_UserToUser(template(present) StatusLine p_statusLine, template CallId p_callId, template CSeq p_cSeq)
modifies mw_Response_Base := {
statusLine := {sipVersion := c_sipNameVersion, statusCode := p_statusLine.statusCode, reasonPhrase := ?}, msgHeader := {userToUser := ?}
}
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
group SDP_Templates {
group SDP_Messages {
group base_templates {
template(value) SDP_Message m_SDP(template(value) SDP_media_desc p_media, template(value) SipUserProfile p_userprofile) := {
protocol_version := 0, //* v=0
origin := {
user_name := PX_SIP_SDP_user_name,
session_id := PX_SIP_SDP_session_id,
session_version := "0",
net_type := c_in,
addr_type := c_ip4,
addr := p_userprofile.contactIpaddr
},
//* o=voicesession 12345 12345 IN IP4 172.27.1.219
session_name := "Voice Session", //* s=Voice Session
information := omit,
uri := omit,
emails := omit,
phone_numbers := omit,
connection := {net_type := c_in, addr_type := c_ip4, conn_addr := {addr := p_userprofile.bearerIpaddr, ttl := omit, num_of_addr := omit}}, //* c=IN
//* IP4
//* 172.27.1.219
bandwidth := omit,
times := {{time_field := {"0", "0"}, time_repeat := omit}}, //* t=0 0
timezone_adjustments := omit,
key := omit,
attributes := omit,
media_list := {p_media}
}
template(value) SDP_Message m_SDP_mediaList(template(value) SDP_media_desc_list p_media_list, template(value) SipUserProfile p_userprofile) := {
protocol_version := 0, //* v=0
origin := {
user_name := PX_SIP_SDP_user_name,
session_id := PX_SIP_SDP_session_id,
session_version := "0",
net_type := c_in,
addr_type := c_ip4,
addr := p_userprofile.contactIpaddr
},
//* o=voicesession 12345 12345 IN IP4 172.27.1.219
session_name := "Voice Session", //* s=Voice Session
information := omit,
uri := omit,
emails := omit,
phone_numbers := omit,
connection := {net_type := c_in, addr_type := c_ip4, conn_addr := {addr := p_userprofile.bearerIpaddr, ttl := omit, num_of_addr := omit}}, //* c=IN
//* IP4
//* 172.27.1.219
bandwidth := omit,
times := {{time_field := {"0", "0"}, time_repeat := omit}}, //* t=0 0
timezone_adjustments := omit,
key := omit,
attributes := omit,
media_list := p_media_list
}
template(value) SDP_Message m_SDP_media_attr_preconditions(template(value) SDP_media_desc p_media,
template(value) SipUserProfile p_userprofile,
template(value) SDP_attribute_list p_attribute_list) modifies m_SDP := {
media_list := {
{
media_field := {media := c_audio, ports := {port_number := 8500, num_of_ports := omit}, transport := c_rtpAvp, fmts := {"0"}}, //* m=audio
//* 8500
//* RTP/AVP
//* 0
information := omit,
connections := omit,
bandwidth := omit,
key := omit,
attributes := p_attribute_list
}
}
}
template(value) SDP_Message m_SDP_attribute(template(value) SDP_media_desc p_media, template(value) SipUserProfile p_userprofile,
template(value) SDP_attribute loc_attribute) modifies m_SDP := {
attributes := {loc_attribute}
}
template(present) SDP_Message mw_SDP := {
protocol_version := 0, //* v=0
origin := ?,
session_name := ?,
information := omit,
uri := omit,
emails := omit,
phone_numbers := omit,
connection := ?,
bandwidth := omit,
times := {{time_field := {"0", "0"}, time_repeat := omit}}, //* t=0 0
timezone_adjustments := omit,
key := omit,
attributes := omit,
media_list := ?
}
group modified_templates {
template(value) SDP_Message m_SDP_bandwidth(template(value) SDP_media_desc p_media, template(value) SipUserProfile p_userprofile) modifies m_SDP
:= {
bandwidth := {{PX_SIP_SDP_b_modifier, PX_SIP_SDP_b_bandwidth}}
}
template(value) SDP_Message m_SDP_unacceptable(template(value) SDP_media_desc p_media, template(value) SipUserProfile p_userprofile)
modifies m_SDP := {
protocol_version := 1, //* v=1 unacceptable version of
//* SDP
bandwidth := {{PX_SIP_SDP_b_modifier, PX_SIP_SDP_b_bandwidth}}
}
template(value) SDP_Message m_SDP_encrypted(template(value) SDP_media_desc p_media,
template(value) SipUserProfile p_userprofile
) modifies m_SDP := {
protocol_version := 0,
bandwidth := {
{ PX_SIP_SDP_b_modifier, PX_SIP_SDP_b_bandwidth }
},
key := {
method := "base64", //prompt
key := "blablabla"
}
group SDP_Fields {
template(value) SDP_media_desc m_media(template(value) SDP_media_field p_mf) := {
media_field := p_mf, information := omit, connections := omit, bandwidth := omit, key := omit, attributes := omit
}
template(value) SDP_media_desc m_mediaFieldBandwdthAttributes(template(value) SDP_media_field p_mf, template(omit) SDP_bandwidth_list p_bw_l,
template(omit) SDP_attribute_list p_attributes) := {
media_field := p_mf, information := omit, connections := omit, bandwidth := p_bw_l, key := omit, attributes := p_attributes
}
template(value) SDP_media_desc m_media_dynPT(template(value) charstring p_PT,
template(value) charstring p_encod,
template(omit) SDP_key p_sdpKey:= omit
) := {
media_field := {
media := c_audio, //* "audio",
ports := {
port_number := 8500,
num_of_ports := omit
},
}, //* m=audio 8500 RTP/AVP 8
information := omit,
connections := omit,
bandwidth := omit,
key := p_sdpKey,
attributes := {
{
rtpmap := {
attr_value := p_PT & " " & p_encod
}
}
} //* a=rtpmap:8 PCMA/8000
}
template(value) SDP_media_desc m_media_unsupported := {
media_field := {
media := PX_SIP_SDP_media_video,
ports := {
port_number := 11500,
num_of_ports := omit
},
}, //* m=audio 8500 RTP/AVP 0
information := omit,
connections := omit,
bandwidth := omit,
key := omit,
attributes := {
{
rtpmap := {
attr_value := PX_SIP_SDP_media_attribute_Exp
}
}
}
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
}
template(value) SDP_bandwidth m_bandwidth(template(value) charstring loc_m, template(value) integer loc_b) := {
modifier := loc_m, bandwidth := loc_b
}
template(value) SDP_bandwidth m_bandwidth_as_64 := {modifier := "AS", bandwidth := 64}
template(present) SDP_bandwidth mw_bandwidth_rs := {modifier := "RS", bandwidth := ?}
template(present) SDP_bandwidth mw_bandwidth_rr := {modifier := "RR", bandwidth := ?}
template(value) SDP_media_field m_media_field(template(value) charstring p_media, template(value) integer p_portNum,
template(value) charstring p_transport, template(value) charstring p_fmts) := {
media := p_media, ports := {port_number := p_portNum, num_of_ports := omit}, transport := p_transport, fmts := {p_fmts}
}
template(present) SDP_media_field mw_media_PCMU := {
media := c_audio, ports := {port_number := ?, num_of_ports := *}, transport := c_rtpAvp, fmts := {"0"}
}
template(present) SDP_media_field mw_media_PCMA := {
media := c_audio, ports := {port_number := 8500, num_of_ports := omit}, transport := c_rtpAvp, fmts := {"8"}
}
template(present) SDP_media_field mw_media_PCMA_U_DPT := {
media := c_audio, ports := {port_number := ?, num_of_ports := *}, transport := c_rtpAvp, fmts := {*}
}
template(present) SDP_media_field mw_media_T38 := {
media := c_image,
ports := {port_number := ?, num_of_ports := *},
transport := pattern "*ptl", //* udptl,tcptl
fmts := {"t38"}
}
template(present) SDP_media_field mw_media_G722 := {
media := c_audio, ports := {port_number := ?, num_of_ports := *}, transport := "RTP/AVP", fmts := {"9"}
}
template(present) SDP_media_field mw_media_AMR_DPT := {
media := c_audio, ports := {port_number := ?, num_of_ports := *}, transport := c_rtpAvp, fmts := {*}
}
template(present) SDP_media_field mw_media_MSRP := {
media := c_msrp, ports := {port_number := ?, num_of_ports := omit}, transport := c_msrpTcp, fmts := {*}
}
template(value) SDP_attribute m_attribute_sendonly := {sendonly := {}}
template(present) SDP_attribute mw_attribute_sendonly := {sendonly := {}}
// MRO
template(value) SDP_attribute m_attribute_recvonly := {recvonly := {}}
template(present) SDP_attribute mw_attribute_recvonly := {recvonly := {}}
// MRO
template(value) SDP_attribute m_attribute_sendrecv := {sendrecv := {}}
template(present) SDP_attribute mw_attribute_sendrecv := {sendrecv := {}}
// MRO
template(value) SDP_attribute m_attribute_inactive := {inactive := {}}
template(present) SDP_attribute mw_attribute_inactive := {inactive := {}}
// MRO
template(present) SDP_attribute mw_attribute_sendonly_inactive := (mw_attribute_sendonly, mw_attribute_inactive);
template SDP_attribute mw_attribute_sendrecv_recvonly_omit := (mw_attribute_sendrecv, mw_attribute_recvonly, omit);
template(value) SDP_attribute m_attribute_AMR_DPT := {rtpmap := {attr_value := PX_SIP_SDP_dyn & " " & PX_SIP_SDP_media_transport_AMR}}
template(value) SDP_attribute m_attribute_CLEARMODE_DPT := {rtpmap := {attr_value := PX_SIP_SDP_dyn & " " & PX_SIP_SDP_media_transport_Cle}}
template(value) SDP_attribute m_attribute_G722 := {rtpmap := {attr_value := PX_SIP_SDP_encoding_attribute_G222}}
template(value) SDP_attribute m_attribute_PCMU := {rtpmap := {attr_value := PX_SIP_SDP_encoding_attribute_PCMU}}
template(value) SDP_attribute m_attribute_PCMU_DPT := {rtpmap := {attr_value := PX_SIP_SDP_dyn & " " & PX_SIP_SDP_media_transport_PCMU}}
template(value) SDP_attribute m_attribute_PCMA := {rtpmap := {attr_value := PX_SIP_SDP_encoding_attribute_PCMA}}
template(value) SDP_attribute m_attribute_PCMA_DPT := {rtpmap := {attr_value := PX_SIP_SDP_dyn & " " & PX_SIP_SDP_media_transport_PCMA}}
// TODO: STF471 template name suggests that this is a send
// template, while it contains matching mechanisms
template(present) SDP_attribute mw_attribute_T38 := {unknown := {name := ?, attr_value := pattern "*t38*"}}
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
template(value) SDP_attribute m_attribute_curr(template(value) charstring p_preconditionType, template(value) charstring p_statusType,
template(value) charstring p_direction) := {
curr := {preconditionType := p_preconditionType, statusType := p_statusType, direction := p_direction}
}
template(present) SDP_attribute mw_attribute_curr := {curr := ?}
template(value) SDP_attribute m_attribute_des(template(value) charstring p_preconditionType, template(value) charstring p_strength,
template(value) charstring p_statusType, template(value) charstring p_direction) := {
des := {preconditionType := p_preconditionType, strength := p_strength, statusType := p_statusType, direction := p_direction}
}
template(present) SDP_attribute mw_attribute_des := {des := ?}
template(value) SDP_attribute m_attribute_conf(template(value) charstring p_preconditionType, template(value) charstring p_statusType,
template(value) charstring p_direction) := {
conf := {preconditionType := p_preconditionType, statusType := p_statusType, direction := p_direction}
}
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
group SimpleMsgSummary_Templates {
template(value) SimpleMsgSummary m_SMS(template(value) Msg_summary_line_list p_summaryLineList, template(value) charstring p_uri) := {
msg_status_line := m_msgStatusLine_yes, msg_account := m_msgAccount(p_uri), msg_summary_line_list := p_summaryLineList, opt_msg_headers := omit
}
template(present) SimpleMsgSummary mw_SMS := {msg_status_line := ?, msg_account := *, msg_summary_line_list := *, opt_msg_headers := *}
template(present) SimpleMsgSummary mw_SMS_yes := {
msg_status_line := mw_msgStatusLine_yes, msg_account := *, msg_summary_line_list := *, opt_msg_headers := *
}
template(present) SimpleMsgSummary mw_SMS_yesUri := {
msg_status_line := mw_msgStatusLine_yes, msg_account := mw_msgAccount, msg_summary_line_list := *, opt_msg_headers := *
}
template(present) SimpleMsgSummary mw_SMS_yesVoice := {
msg_status_line := mw_msgStatusLine_yes, msg_account := *, msg_summary_line_list := {mw_msgSummaryLine(c_voiceMessage)}, opt_msg_headers := *
}
template(present) SimpleMsgSummary mw_SMS_yesUriVoice := {
msg_status_line := mw_msgStatusLine_yes,
msg_account := mw_msgAccount,
msg_summary_line_list := {mw_msgSummaryLine(c_voiceMessage)},
opt_msg_headers := *
}
template(value) Msg_status_line m_msgStatusLine_yes := {msg_type := c_messageWaiting, msg_status := "yes"}
template(present) Msg_status_line mw_msgStatusLine_yes := {msg_type := c_messageWaiting, msg_status := "yes"}