conformance.docs 33.9 KB
Newer Older
Pekka Pessi's avatar
Pekka Pessi committed
1 2 3
/*  -*- html -*- */
/**

Pekka Pessi's avatar
Pekka Pessi committed
4
@page sofia_sip_conformance SIP and SDP Protocol Features in Sofia-SIP
Pekka Pessi's avatar
Pekka Pessi committed
5

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
This document describes how Sofia-SIP stack supports specifications listed
below.

<table border=0>
<tr valign="top">
<td>
<a href="#3261">RFC 3261</a> <br>
<a href="#2617">RFC 2617</a> <br>
<a href="#3262">RFC 3262</a> <br>
<a href="#3263">RFC 3263</a> <br>
<a href="#3265">RFC 3265</a> <br>
<a href="#2806">RFC 2806</a> <br>
<a href="#2976">RFC 2976</a> <br>
<a href="#3311">RFC 3311</a> <br>
<a href="#3313">RFC 3313</a> <br>
<a href="#3323">RFC 3323</a> <br>
<a href="#3326">RFC 3326</a> <br>
<a href="#3325">RFC 3325</a> <br>
<a href="#3327">RFC 3327</a> <br>
25
</td><td>
26 27 28 29 30 31
<a href="#3329">RFC 3329</a> <br>
<a href="#3361">RFC 3361</a> <br>
<a href="#3420">RFC 3420</a> <br>
<a href="#3428">RFC 3428</a> <br>
<a href="#3486">RFC 3486</a> <br>
<a href="#3515">RFC 3515</a> <br>
32
<a href="#3581">RFC 3581</a> <br>
33 34 35 36 37 38
<a href="#3608">RFC 3608</a> <br>
<a href="#3680">RFC 3680</a> <br>
<a href="#3824">RFC 3824</a> <br>
<a href="#3840">RFC 3840</a> <br>
<a href="#3841">RFC 3841</a> <br>
<a href="#3842">RFC 3842</a> <br>
39
</td><td>
40 41 42
<a href="#3856">RFC 3856</a> <br>
<a href="#3857">RFC 3857</a> <br>
<a href="#3858">RFC 3858</a> <br>
43 44
<a href="#3859">RFC 3859</a> <br>
<a href="#3860">RFC 3860</a> <br>
45 46 47 48
<a href="#3891">RFC 3891</a> <br>
<a href="#3892">RFC 3892</a> <br>
<a href="#3903">RFC 3903</a> <br>
<a href="#4028">RFC 4028</a> <br>
49
<a href="#4168">RFC 4168</a> <br>
50
<a href="#4320">RFC 4320</a> <br>
51
<a href="#4488">RFC 4488</a> <br>
52
<a href="#5057">RFC 5057</a> <br>
53
</td><td>
54
<a href="#4566">RFC 4566</a> <br>
55 56 57 58 59 60 61
<a href="#2327">RFC 2327</a> <br>
<a href="#3264">RFC 3264</a> <br>
<a href="#3266">RFC 3266</a> <br>
<a href="#3312">RFC 3312</a> <br>
<a href="#3388">RFC 3388</a> <br>
<a href="#3407">RFC 3407</a> <br>
<a href="#3524">RFC 3524</a> <br>
62
<a href="#3551">RFC 3551</a> <br>
63 64 65 66 67 68
<a href="#3556">RFC 3556</a> <br>
<a href="#3605">RFC 3605</a> <br>
<a href="#3890">RFC 3890</a> <br>
</td></tr>
</table>

Pekka Pessi's avatar
Pekka Pessi committed
69 70 71 72
<table border=1 cellpadding=4 cellspacing=0>
<tr>
   <th>Feature</th>
   <th>Supported</td>
Pekka Pessi's avatar
Pekka Pessi committed
73
   <th>Notes</td>
Pekka Pessi's avatar
Pekka Pessi committed
74 75
</tr>

76
<a name="3261"></a>
Pekka Pessi's avatar
Pekka Pessi committed
77 78 79 80 81 82
<tr valign=top>
    <th align="left">
	@RFC3261: Basic SIP Protocol
    </th>
    <td>
	The SIP registration and dialog level implementation enables the
Pekka Pessi's avatar
Pekka Pessi committed
83
	application to operate as a SIP UA, SIP proxy or a redirect server
Pekka Pessi's avatar
Pekka Pessi committed
84 85
	according to the @RFC3261.

86 87 88 89
	The @RFC3261 functionality is divided into five layers:
	-# <a href="sip/index.html">message syntax and encoding</a>
	-# <a href="tport/index.html">transport</a>
	-# <a href="nta/index.html">transaction</a>
Pekka Pessi's avatar
Pekka Pessi committed
90
	-# transaction user (UAS and UAC cores, proxy core)
91 92
	-# SIP elements: <a href="nua/index.html">user agent</a>
           client and server, proxies,
Pekka Pessi's avatar
Pekka Pessi committed
93 94 95
	   registrars
    </td>
    <td>
Pekka Pessi's avatar
Pekka Pessi committed
96
        &nbsp;
Pekka Pessi's avatar
Pekka Pessi committed
97 98 99
    </td>
</tr>

100
<a name="3261.19"></a> <a name="3261.20"></a>
Pekka Pessi's avatar
Pekka Pessi committed
101 102
<tr valign=top>
    <th align="left">
Pekka Pessi's avatar
Pekka Pessi committed
103
	@RFC3261 Sections&nbsp;19&nbsp;and&nbsp;20:<br>
Pekka Pessi's avatar
Pekka Pessi committed
104 105 106 107
	Syntax and encoding
    </td>
    <td>
	The supported @RFC3261 methods are: @b REGISTER, @b OPTIONS, @b
108
	INVITE, @b ACK, @b CANCEL, @b BYE, as well as extension methods
109 110 111 112 113 114 115 116 117 118 119 120 121
	<a href="#2976"><b>INFO</b></a>,
	<a href="#3262"><b>PRACK</b></a>,
        <a href="#3265"><b>SUBSCRIBE</b></a>,
        <a href="#3265"><b>NOTIFY</b></a>,
        <a href="#3311"><b>UPDATE</b></a>,
        <a href="#3428"><b>MESSAGE</b></a>,
        <a href="#3515"><b>REFER</b></a>,
	and
	<a href="#3903"><b>PUBLISH</b></a>.

	Sofia-SIP supports the following SIP headers as specified in
        @RFC3261 or its extensions (generating, parsing and syntax
        checking):
Pekka Pessi's avatar
Pekka Pessi committed
122 123 124 125

	@ref sip_accept "Accept",
	@ref sip_accept_encoding "Accept-Encoding",
	@ref sip_accept_language "Accept-Language",
126
	@ref sip_alert_info "Alert-Info" (extension in @VERSION_1_12_7),
Pekka Pessi's avatar
Pekka Pessi committed
127 128
	@ref sip_allow "Allow",
	@ref sip_authentication_info "Authentication-Info",
129
	@ref sip_authorization "Authorization",
130
	@ref sip_call_id "Call-ID" ("i"),
Pekka Pessi's avatar
Pekka Pessi committed
131
	@ref sip_call_info "Call-Info",
132
	@ref sip_contact "Contact" ("m"),
Pekka Pessi's avatar
Pekka Pessi committed
133
	@ref sip_content_disposition "Content-Disposition",
134
        @ref sip_content_encoding "Content-Encoding" ("e"),
Pekka Pessi's avatar
Pekka Pessi committed
135
	@ref sip_content_language "Content-Language",
136 137
	@ref sip_content_length "Content-Length" ("l"),
	@ref sip_content_type "Content-Type" ("c"),
Pekka Pessi's avatar
Pekka Pessi committed
138 139 140 141
	@ref sip_cseq "CSeq",
	@ref sip_date "Date",
	@ref sip_error_info "Error-Info",
	@ref sip_expires "Expires",
142
	@ref sip_from "From" ("f"),
Pekka Pessi's avatar
Pekka Pessi committed
143 144 145 146 147
	@ref sip_in_reply_to "In-Reply-To",
	@ref sip_max_forwards "Max-Forwards",
	@ref sip_min_expires "Min-Expires",
	@ref sip_mime_version "MIME-Version",
	@ref sip_organization "Organization",
148
	@ref sip_p_asserted_identity "P-Asserted-Identity"
149
        (extension in @VERSION_1_12_7),
150
	@ref sip_p_preferred_identity "P-Preferred-Identity"
151
        (extension in @VERSION_1_12_7),
Pekka Pessi's avatar
Pekka Pessi committed
152
	@ref sip_priority "Priority",
153 154
	@ref sip_proxy_authenticate "Proxy-Authenticate",
	@ref sip_proxy_authorization "Proxy-Authorization",
Pekka Pessi's avatar
Pekka Pessi committed
155 156
	@ref sip_proxy_require "Proxy-Require",
	@ref sip_record_route "Record-Route",
157 158 159
	@ref sip_refer_sub "Refer-Sub" (@VERSION_1_12_5),
	@ref sip_remote_party_id "Remote-Party-ID" (extension in @VERSION_1_12_7),
	@ref sip_reply_to "Reply-To" (extension in @VERSION_1_12_7),
Pekka Pessi's avatar
Pekka Pessi committed
160 161 162 163
	@ref sip_require "Require",
	@ref sip_retry_after "Retry-After",
	@ref sip_route "Route",
	@ref sip_server "Server",
164 165
	@ref sip_subject "Subject" ("s"),
	@ref sip_supported "Supported" ("k"),
Pekka Pessi's avatar
Pekka Pessi committed
166
	@ref sip_timestamp "Timestamp",
167
	@ref sip_to "To" ("t"),
Pekka Pessi's avatar
Pekka Pessi committed
168 169
	@ref sip_unsupported "Unsupported",
	@ref sip_user_agent "User-Agent",
170
	@ref sip_via "Via" ("v"),
Pekka Pessi's avatar
Pekka Pessi committed
171 172 173
	@ref sip_warning "Warning", and
	@ref sip_www_authenticate "WWW-Authenticate".

Pekka Pessi's avatar
Pekka Pessi committed
174 175
	Unknown headers (extension headers) are supported and can be passed
	to/received from application as name-value pairs.
Pekka Pessi's avatar
Pekka Pessi committed
176

Pekka Pessi's avatar
Pekka Pessi committed
177 178
	It is possible to extend SIP parser in run-time with header-specific
        parsers.
Pekka Pessi's avatar
Pekka Pessi committed
179 180
    </td>
    <td>
181 182
	- Automatic escaping of reserved characters has not been
	  implemented.
183
	- Using NUL (zero byte) in double-quoted strings has not been implemented
Pekka Pessi's avatar
Pekka Pessi committed
184 185 186
   </td>
</tr>

187
<a name="3261.18"></a>
Pekka Pessi's avatar
Pekka Pessi committed
188 189
<tr valign=top>
    <th align="left">
Pekka Pessi's avatar
Pekka Pessi committed
190 191
	@RFC3261 Section 18:<br>
	UDP and TCP transports
Pekka Pessi's avatar
Pekka Pessi committed
192 193
    </th>
    <td>
194 195 196 197 198 199
        UDP and TCP on both IP4 and IP6 are supported.

        The UDP size limit of 1300 bytes is enforced by default. If limit is
        exceeded, TCP is tried instead. If TCP connection is refused, UDP is
        tried if message size is less than 64 kilobytes. Limit is adjustable
        via parameter NTATAG_UDP_MTU().
Pekka Pessi's avatar
Pekka Pessi committed
200 201

	TCP connections are reused by client. However, server closes
202 203 204
	connections after idle time of 30 minutes (by default). The idle
	time limit is adjustable with TPTAG_IDLE() (given as argument to
	nta_agent_add_tport() or nta_agent_create()).
Pekka Pessi's avatar
Pekka Pessi committed
205

206 207
	Server tries to use same TCP connection to return response as the
	request was received.
Pekka Pessi's avatar
Pekka Pessi committed
208 209 210 211

	Only one SIP message is accepted per UDP message, as per @RFC3261.
    </td>
    <td>
212
	There is <a href="#4168">experimental support for SCTP</a>, too.
Pekka Pessi's avatar
Pekka Pessi committed
213 214 215
    </td>
</tr>

216
<a name="3261.17"></a>
Pekka Pessi's avatar
Pekka Pessi committed
217 218
<tr valign=top>
    <th align="left">
Pekka Pessi's avatar
Pekka Pessi committed
219
	@RFC3261 Section 17:<br> Transactions
Pekka Pessi's avatar
Pekka Pessi committed
220 221 222
    </th>
    <td>
        Transaction state engines function as specified in @RFC3261 section
223
	17. There is special handling of methods @b INVITE, @b ACK, and @b
Pekka Pessi's avatar
Pekka Pessi committed
224 225 226 227
	CANCEL. There are two modes for transaction state engines,
	User-Agent and Proxy modes.

	Default values for SIP timers are those specified by @RFC3261. The
228
	values for T1, T1x64, T2 and T4 can be changed via
229
        configuration tags defined in <sofia-sip/nta_tag.h>.
230 231 232 233

	The SIP timer C is implemented from @VERSION_1_12_7. Also, its value
	can be changed via configuration tag NTATAG_TIMER_C() defined in
	<sofia-sip/nta_tag.h>.
Pekka Pessi's avatar
Pekka Pessi committed
234 235
    </td>
    <td>
236
	&nbsp;
Pekka Pessi's avatar
Pekka Pessi committed
237 238 239 240
    </td>
</tr>


241
<a name="3261.26"></a>
Pekka Pessi's avatar
Pekka Pessi committed
242 243
<tr valign=top>
    <th align="left">
244
	@RFC3261 Section 26:<br> Security
Pekka Pessi's avatar
Pekka Pessi committed
245 246 247 248 249 250 251
    </th>
    <td>
        TLS and SIPS URIs has been implemented. Currently, TLS does not
	require certificate from client nor it does check it if one is
	provided.
    </td>
    <td>
Pekka Pessi's avatar
Pekka Pessi committed
252
	Missing:
253
	- Authorizing connections with TLS certificates
Pekka Pessi's avatar
Pekka Pessi committed
254 255 256 257
	- S/MIME
    </td>
</tr>

258
<a name="2617"></a>
Pekka Pessi's avatar
Pekka Pessi committed
259 260
<tr valign=top>
    <th align="left">
Pekka Pessi's avatar
Pekka Pessi committed
261
	@RFC2617: HTTP Digest Authentication
Pekka Pessi's avatar
Pekka Pessi committed
262 263
    </th>
    <td>
264 265
	Sofia-SIP includes authentication client and server modules
	implementing HTTP Digest authentication.
Pekka Pessi's avatar
Pekka Pessi committed
266 267

	HTTP Digest is a simple challenge-response authentication
Pekka Pessi's avatar
Pekka Pessi committed
268
	scheme defined in @RFC2617 based on the UA sending a checksum
Pekka Pessi's avatar
Pekka Pessi committed
269 270
	calculated over specific values in response to a challenge sent by
	the server (proxy or UA).
Pekka Pessi's avatar
Pekka Pessi committed
271

272 273 274 275 276
        Checksum calculation supports MD5 (@RFC1321). The algorithm for
        calculating MD5 digest hash can be MD5, MD5sess or be
        @RFC2069-compatible algorithm. The quality-of-protection (qop)
        parameters "auth", "auth-int" and none (missing) are supported. The
        "opaque" parameter is supported.
Pekka Pessi's avatar
Pekka Pessi committed
277 278

	The SIP authentication headers supported (generating, parsing and
279 280
	syntax checking) are:
	@ref sip_authorization "Authorization",
Pekka Pessi's avatar
Pekka Pessi committed
281
	@ref sip_authentication_info "Authentication-Info",
282
	@ref sip_proxy_authenticate "Proxy-Authenticate",
Pekka Pessi's avatar
Pekka Pessi committed
283 284 285
	@ref sip_proxy_authentication_info "Proxy-Authentication-Info",
	@ref sip_proxy_authorization "Proxy-Authorization", and
	@ref sip_www_authenticate "WWW-Authenticate".
Pekka Pessi's avatar
Pekka Pessi committed
286 287 288 289

	SIP interface to the modules is implemented as defined in @RFC3261
	(sections 8.1.3.5, 22.2, 22.3, 22.4).

290 291 292 293
	An @RFC2617 header
	@ref sip_proxy_authentication_info "Proxy-Authentication-Info"
        is not listed in @RFC3261 but it is nevertheless supported by
        Sofia-SIP.
Pekka Pessi's avatar
Pekka Pessi committed
294 295
    </td>
    <td>
Pekka Pessi's avatar
Pekka Pessi committed
296
	Missing:
297
        - Using nextnonce
Pekka Pessi's avatar
Pekka Pessi committed
298 299 300 301
	- Mutual authentication
    </td>
</tr>

302
<a name="3262"></a>
Pekka Pessi's avatar
Pekka Pessi committed
303 304
<tr valign=top>
    <th align="left">
305
	@RFC3262: PRACK and 100rel
Pekka Pessi's avatar
Pekka Pessi committed
306 307
    </th>
    <td>
308 309 310 311 312 313 314 315 316 317
	PRACK method is supported within dialog as defined in RFC3262.
        Semantics of reliable provisional responses are supported:
        - including 100rel Required header in provisional responses if
          request had 100rel
	- generation of PRACK based on 100rel option tag in Require header of
	  a provisional response, and
        - automatic re-transmission of provisional responses.

	The SIP headers supported (generating, parsing and syntax checking)
	are @ref sip_rseq "RSeq" and @ref sip_rack "RAck".
Pekka Pessi's avatar
Pekka Pessi committed
318 319
    </td>
    <td>
320
	&nbsp;
Pekka Pessi's avatar
Pekka Pessi committed
321 322 323
    </td>
</tr>

324
<a name="3263"></a>
Pekka Pessi's avatar
Pekka Pessi committed
325 326
<tr valign=top>
    <th align="left">
327
	@RFC3263: Locating SIP Servers
Pekka Pessi's avatar
Pekka Pessi committed
328 329
    </th>
    <td>
330 331
	Support for SIP server address resolution from SIP or SIPS URI using
	NAPTR, SRV, A or AAAA records in DNS as defined in @RFC3263.
Pekka Pessi's avatar
Pekka Pessi committed
332 333
    </td>
    <td>
334 335
	- Resolving any other types of URIs than SIP or SIPS URIs, e.g., IM:
	or PRES: URIs.
Pekka Pessi's avatar
Pekka Pessi committed
336 337 338
    </td>
</tr>

339
<a name="3265"></a>
Pekka Pessi's avatar
Pekka Pessi committed
340 341
<tr valign=top>
    <th align="left">
342
	@RFC3265: SIP Event Notifications
Pekka Pessi's avatar
Pekka Pessi committed
343 344
    </th>
    <td>
345 346
	SIP extensions for subscribing and processing asynchronous event
	notifications as defined in @RFC3265.
Pekka Pessi's avatar
Pekka Pessi committed
347

348 349 350 351 352
	Includes dialog level support for sending and refreshing SUBSCRIBE
	and receiving NOTIFY messages.

	The SIP headers explicitly supported (generating, parsing and
	syntax checking) are
353
        @ref sip_event "Event" ("o"),
354 355 356 357
	@ref sip_allow_events "Allow-Events", and
        @ref sip_subscription_state "Subscription-State"

	Note: currently there is no support for forked SUBSCRIBE requests.
Pekka Pessi's avatar
Pekka Pessi committed
358 359
    </td>
    <td>
360 361 362
	Application must take care of:
	- Subscribing, generating or processing specific event types
          and interpreting the content of event data is up to application
Pekka Pessi's avatar
Pekka Pessi committed
363 364 365
    </td>
</tr>

366
<a name="2806"></a>
Pekka Pessi's avatar
Pekka Pessi committed
367 368
<tr valign=top>
    <th align="left">
369
	@RFC2806: tel URI
Pekka Pessi's avatar
Pekka Pessi committed
370 371
    </th>
    <td>
372 373
	Sofia-SIP supports handling of any URI type. Sofia-SIP parses tel:
        URIs.
Pekka Pessi's avatar
Pekka Pessi committed
374 375
    </td>
    <td>
Pekka Pessi's avatar
Pekka Pessi committed
376
	Missing:
377
	- Resolving the tel: URIs
Pekka Pessi's avatar
Pekka Pessi committed
378 379 380
    </td>
</tr>

381
<a name="2976"></a>
Pekka Pessi's avatar
Pekka Pessi committed
382 383
<tr valign=top>
    <th align="left">
384
	@RFC2976: INFO
Pekka Pessi's avatar
Pekka Pessi committed
385 386
    </th>
    <td>
387
	INFO method is supported within a dialog natively.
Pekka Pessi's avatar
Pekka Pessi committed
388 389
    </td>
    <td>
390 391
	Not implemented:
	- Generating or processing contents of INFO requests
Pekka Pessi's avatar
Pekka Pessi committed
392 393 394
    </td>
</tr>

395

396
<a name="3311"></a>
Pekka Pessi's avatar
Pekka Pessi committed
397 398
<tr valign=top>
    <th align="left">
399
	@RFC3311: UPDATE
Pekka Pessi's avatar
Pekka Pessi committed
400 401
    </th>
    <td>
402 403 404
	UPDATE method as defined in RFC3311. UPDATE allows a client to
	update parameters of a session (such as the set of media streams and
	their codecs) even within early dialogs.
Pekka Pessi's avatar
Pekka Pessi committed
405

406
	Offer-Answer negotiation with UPDATE is implemented in nua.
Pekka Pessi's avatar
Pekka Pessi committed
407 408
    </td>
    <td>
409 410
	Application must take care of:
        - Initiating UPDATE requests
Pekka Pessi's avatar
Pekka Pessi committed
411 412 413
    </td>
</tr>

414

415
<a name="3313"></a>
Pekka Pessi's avatar
Pekka Pessi committed
416 417
<tr valign=top>
    <th align="left">
418
	@RFC3313: Media Authentication
Pekka Pessi's avatar
Pekka Pessi committed
419 420
    </th>
    <td>
421 422 423
	Sofia-SIP provides <a href="#3261.19">generic support</a> for
	extension headers and parameters. P-Media-Authorization header is
	supported as an @ref sip_unknown "extension header".
Pekka Pessi's avatar
Pekka Pessi committed
424 425
    </td>
    <td>
426 427
        Application must take care of:
	- Passing the authorization token to QoS reservation request
Pekka Pessi's avatar
Pekka Pessi committed
428 429 430
    </td>
</tr>

Pekka Pessi's avatar
Pekka Pessi committed
431

432
<a name="3323"></a>
Pekka Pessi's avatar
Pekka Pessi committed
433 434
<tr valign=top>
    <th align="left">
435
	@RFC3323: Privacy
Pekka Pessi's avatar
Pekka Pessi committed
436 437
    </th>
    <td>
438 439
	@ref sip_privacy "Privacy" header is supported (generating, parsing
        and syntax checking).
Pekka Pessi's avatar
Pekka Pessi committed
440

441 442 443 444
	Call-Id header is generated from cryptographically random id without
	host name or IP address. By default, @ref sip_contact "Contact" and
	@ref sip_via "Via" headers contain only IP address that can be
	dynamically allocated.
Pekka Pessi's avatar
Pekka Pessi committed
445

446 447
	Application can enter any SIP URI and display name to From header,
	e.g., @code Anonymous <sip:anonymous@example.org> @endcode.
Pekka Pessi's avatar
Pekka Pessi committed
448 449
    </td>
    <td>
450 451 452 453 454 455
        Application must take care of:
	- Properly populating the URIs and display names within SIP headers
	- Not including any optional headers that could reveal identity
	- Generating of Privacy header with appropriate values
	- Generating of Proxy-Require: privacy
	- Using anonymous callback URIs etc.
Pekka Pessi's avatar
Pekka Pessi committed
456 457 458
    </td>
</tr>

Pekka Pessi's avatar
Pekka Pessi committed
459

460
<a name="3326"></a>
Pekka Pessi's avatar
Pekka Pessi committed
461 462
<tr valign=top>
    <th align="left">
463
	@RFC3326: Reason
Pekka Pessi's avatar
Pekka Pessi committed
464 465
    </th>
    <td>
466 467
	Sofia-SIP supports @ref sip_reason "Reason" header (generating,
	parsing and syntax checking).
Pekka Pessi's avatar
Pekka Pessi committed
468 469
    </td>
    <td>
470 471
        Application must take care of:
	- Generating or processing Reason headers
Pekka Pessi's avatar
Pekka Pessi committed
472 473 474
    </td>
</tr>

475

476
<a name="3325"></a>
Pekka Pessi's avatar
Pekka Pessi committed
477
<tr valign=top>
Pekka Pessi's avatar
Pekka Pessi committed
478
    <th align="left">
479
	@RFC3325: Asserted Identity
Pekka Pessi's avatar
Pekka Pessi committed
480
    </th>
Pekka Pessi's avatar
Pekka Pessi committed
481
    <td>
482
	Sofia-SIP supports
483 484 485 486 487 488
	@ref sip_p_asserted_identity "P-Asserted-Identity" and
	@ref sip_p_preferred_identity "P-Preferred-Identity" headers
        (generating, parsing and syntax checking). Also the non-standard
        header @ref sip_remote_party_id "Remote-Party-ID" is supported.

        @NEW_1_12_7.
Pekka Pessi's avatar
Pekka Pessi committed
489 490
    </td>
    <td>
491 492 493 494
	Not implemented:
        - <a href="#3323">id privacy</a>
	- Recognizing trust domains and enforcing handling of headers
	  based on those
Pekka Pessi's avatar
Pekka Pessi committed
495 496 497
    </td>
</tr>

498
<a name="3327"></a>
Pekka Pessi's avatar
Pekka Pessi committed
499 500
<tr valign=top>
    <th align="left">
501
	@RFC3327: Path
Pekka Pessi's avatar
Pekka Pessi committed
502 503
    </th>
    <td>
504 505 506 507 508
	User-agent engine can add "path" option tag to Supported header of
	REGISTER requests.

	Sofia-SIP explicitly supports @ref sip_path "Path" header
	(generating, parsing and syntax checking).
Pekka Pessi's avatar
Pekka Pessi committed
509 510
    </td>
    <td>
511
	&nbsp;
Pekka Pessi's avatar
Pekka Pessi committed
512 513 514
    </td>
</tr>

515
<a name="3329"></a>
Pekka Pessi's avatar
Pekka Pessi committed
516
<tr valign=top>
517 518 519
    <th align="left">
	@RFC3329:
	Security Agreement
Pekka Pessi's avatar
Pekka Pessi committed
520 521
    </th>
    <td>
522 523 524
	Some support of the SIP Security Mechanism Agreement procedures. The
	client is able to insert Security-Client and Security-Verify header
	with fake @e d-ver value.
Pekka Pessi's avatar
Pekka Pessi committed
525

526 527 528 529 530
	Sofia-SIP explicitly supports (generating, parsing
	and syntax checking)
	@ref sip_security_client "Security-Client",
	@ref sip_security_server "Security-Server", and
	@ref sip_security_verify "Security-Verify" headers.
Pekka Pessi's avatar
Pekka Pessi committed
531

532
	Security-mechanism supported is "digest".
Pekka Pessi's avatar
Pekka Pessi committed
533 534
    </td>
    <td>
535
	Correct @e d-ver value is not calculated.
Pekka Pessi's avatar
Pekka Pessi committed
536 537 538
    </td>
</tr>

539
<a name="3361"></a>
Pekka Pessi's avatar
Pekka Pessi committed
540 541
<tr valign=top>
    <th align="left">
542
	@RFC3361: DHCPv4 option for locating SIP servers.
Pekka Pessi's avatar
Pekka Pessi committed
543 544
    </th>
    <td>
545
	Sofia-SIP supports outbound proxy.
Pekka Pessi's avatar
Pekka Pessi committed
546 547
    </td>
    <td>
548 549 550
	Application must take care of:
	- passing outbound proxy name or address from DHCP client
          to Sofia-SIP stack.
Pekka Pessi's avatar
Pekka Pessi committed
551 552 553
    </td>
</tr>

554
<a name="3420"></a>
Pekka Pessi's avatar
Pekka Pessi committed
555 556
<tr valign=top>
    <th align="left">
557
	@RFC3420: message/sipfrag
Pekka Pessi's avatar
Pekka Pessi committed
558 559
    </th>
    <td>
560 561
	Sofia-SIP passes the received SIP message headers to application
	which can create a message/sipfrag payload.
Pekka Pessi's avatar
Pekka Pessi committed
562 563
    </td>
    <td>
564 565
        Application must take care of:
	- processing the SIP message fragments
Pekka Pessi's avatar
Pekka Pessi committed
566 567 568
    </td>
</tr>

569
<a name="3428"></a>
Pekka Pessi's avatar
Pekka Pessi committed
570 571
<tr valign=top>
    <th align="left">
572
	@RFC3428: MESSAGE
Pekka Pessi's avatar
Pekka Pessi committed
573 574
    </th>
    <td>
575
	MESSAGE method is supported natively.
Pekka Pessi's avatar
Pekka Pessi committed
576 577
    </td>
    <td>
Pekka Pessi's avatar
Pekka Pessi committed
578
	&nbsp;
Pekka Pessi's avatar
Pekka Pessi committed
579 580 581
    </td>
</tr>

582
<a name="3486"></a>
Pekka Pessi's avatar
Pekka Pessi committed
583 584
<tr valign=top>
    <th align="left">
585
	@RFC3486: Compressing SIP
Pekka Pessi's avatar
Pekka Pessi committed
586 587
    </th>
    <td>
588 589 590
	Sofia-SIP provides support for using comp=sigcomp parameters in @ref
	sip_via "Via" header and @ref url_t "SIP URIs", indicating
	support for compression.
Pekka Pessi's avatar
Pekka Pessi committed
591 592
    </td>
    <td>
593
	SigComp itself is not supported.
Pekka Pessi's avatar
Pekka Pessi committed
594 595 596
    </td>
</tr>

597
<a name="3515"></a>
Pekka Pessi's avatar
Pekka Pessi committed
598 599
<tr valign=top>
    <th align="left">
600
	@RFC3515: REFER
Pekka Pessi's avatar
Pekka Pessi committed
601 602
    </th>
    <td>
603 604 605 606 607 608 609 610
	REFER method is supported natively. Sofia-SIP processes incoming
        REFER requests and generates NOTIFY with correct
	@ref sip_event "Event" header automatically.

	Further notifications can be automatically generated actions when
	nua_invite() is given referrer's nua handle in NUTAG_NOTIFY_REFER().

	Sofia-SIP explicitly supports (generating, parsing and syntax
611
	checking) @ref sip_refer_to "Refer-To" ("r") SIP header.
612 613 614 615

	See also support for
	<a href="#3891">RFC 3891</a> and
        <a href="#3892">RFC 3892</a>.
Pekka Pessi's avatar
Pekka Pessi committed
616 617
    </td>
    <td>
618
        &nbsp;
Pekka Pessi's avatar
Pekka Pessi committed
619 620 621
    </td>
</tr>

622
<a name="3608"></a>
Pekka Pessi's avatar
Pekka Pessi committed
623 624
<tr valign=top>
    <th align="left">
625
	@RFC3608: Service-Route
Pekka Pessi's avatar
Pekka Pessi committed
626 627
    </th>
    <td>
628 629 630 631 632 633 634
	Sofia-SIP supports @ref sip_service_route "Service-Route" that can
	be used to provide a mechanism by which a registrar may inform a
	registering UA of a service route. User-Agent will optionally use
	the route provided in @ref sip_service_route "Service-Route" header.

	The SIP header explicitly supported (generating, parsing and
	syntax checking) is @ref sip_service_route "Service-Route".
Pekka Pessi's avatar
Pekka Pessi committed
635 636
    </td>
    <td>
637
	&nbsp;
Pekka Pessi's avatar
Pekka Pessi committed
638 639 640
    </td>
</tr>

641
<a name="3680"></a>
Pekka Pessi's avatar
Pekka Pessi committed
642 643
<tr valign=top>
    <th align="left">
644
	@RFC3680: "reg" event
Pekka Pessi's avatar
Pekka Pessi committed
645 646
    </th>
    <td>
647 648 649 650 651 652 653 654 655
	Sofia-SIP supports <a href="#3265">generic SIP event support</a> for
	subscribing SIP event packages and receiving notifications for them.
	Subscriptions are refreshed before expiration when needed and
	subscriptions are terminated on request. Sofia-SIP takes care of
        notified subscription states.

	UA can SUBSCRIBE to a registration state event package after sending
	initial REGISTER to, e.g., 3GPP network and use it to follow its
        registration status.
Pekka Pessi's avatar
Pekka Pessi committed
656 657
    </td>
    <td>
658 659 660 661
	Application must take care of:
	- Generating subscriptions for "reg" event
	- Processing notifications for "reg" event
	  - Handling of XML document in notifications
Pekka Pessi's avatar
Pekka Pessi committed
662 663 664
    </td>
</tr>

665
<a name="3824"></a>
Pekka Pessi's avatar
Pekka Pessi committed
666 667
<tr valign=top>
    <th align="left">
668
	@RFC3824: ENUM
Pekka Pessi's avatar
Pekka Pessi committed
669 670
    </th>
    <td>
671 672 673
	Tel URIs are supported in any headers including URI parameters,
	e.g., To, From, Contact headers, and Request-URI of the outgoing SIP
	request provided that the next hop is given as SIP or SIPS URI.
Pekka Pessi's avatar
Pekka Pessi committed
674 675
    </td>
    <td>
676 677
	Stack can not resolve E.164 number to address of next
	hop. A proxy in the network must resolve E.164 numbers with ENUM.
Pekka Pessi's avatar
Pekka Pessi committed
678 679 680
    </td>
</tr>

681
<a name="3840"></a>
Pekka Pessi's avatar
Pekka Pessi committed
682 683
<tr valign=top>
    <th align="left">
684
	@RFC3840: Callee Capabilities
Pekka Pessi's avatar
Pekka Pessi committed
685 686
    </th>
    <td>
687 688 689 690 691 692 693 694
	Feature parameters can be added to SIP profiles and sent within
	Contact header of REGISTER request as header parameters.

	UAC can optionally generate media tags for Contact header using
	local media profile.

	Feature parameters can also be sent within any other SIP request as
	extension parameters of Contact header.
Pekka Pessi's avatar
Pekka Pessi committed
695 696
    </td>
    <td>
697 698
	Application must take care of:
        - Processing the feature parameters received in the Contact header
Pekka Pessi's avatar
Pekka Pessi committed
699 700 701
    </td>
</tr>

702

703
<a name="3841"></a>
Pekka Pessi's avatar
Pekka Pessi committed
704 705
<tr valign=top>
    <th align="left">
706
	@RFC3841: Caller Preferences
Pekka Pessi's avatar
Pekka Pessi committed
707 708
    </th>
    <td>
709 710 711 712 713 714 715 716 717 718 719 720 721 722 723
	Built-in support for user-agent behavior.

	UAC can optionally generate Accept-Contact header using local media
	profile.

	SIP parser parses the Accept-Contact and Reject-Contact headers.

        ACK and CANCEL request messages sent have same values
	for Accept-Contact/Reject-Contact or Request-Disposition
	headers as the original request had.

	There are functions for calculating score for contacts.

	The SIP headers explicitly supported (generating,
	parsing and syntax checking) are:
724 725 726
	@ref sip_request_disposition "Request-Disposition" ("d"),
	@ref sip_accept_contact "Accept-Contact" ("a"),
	@ref sip_reject_contact "Reject-Contact" ("j"),
Pekka Pessi's avatar
Pekka Pessi committed
727 728
    </td>
    <td>
729 730
	Application must take care of:
        - UAS processing incoming Accept-Contact or Reject-Contact headers
Pekka Pessi's avatar
Pekka Pessi committed
731 732 733
    </td>
</tr>

734
<a name="3842"></a>
Pekka Pessi's avatar
Pekka Pessi committed
735 736
<tr valign=top>
    <th align="left">
737
	@RFC3842: Message waiting event
Pekka Pessi's avatar
Pekka Pessi committed
738 739
    </th>
    <td>
740 741 742 743 744
	Sofia-SIP supports <a href="#3265">generic SIP event support</a> for
	subscribing SIP event packages and receiving notifications for them.
	Subscriptions are refreshed before expiration when needed and
	subscriptions are terminated on request. Sofia-SIP takes care of
        notified subscription states.
Pekka Pessi's avatar
Pekka Pessi committed
745 746
    </td>
    <td>
747 748 749 750 751 752
	Application must take care of:
	- Generating subscriptions for "message-summary" event
          - Including correct @ref sip_event "Event" and
            @ref sip_accept "Accept" headers in the request (if needed)
	- Processing notifications for "message-summary" event
	  - Handling of summary information in notifications
Pekka Pessi's avatar
Pekka Pessi committed
753 754 755
    </td>
</tr>

756
<a name="3856"></a><a name="3859"></a>
Pekka Pessi's avatar
Pekka Pessi committed
757 758
<tr valign=top>
    <th align="left">
759
	@RFC3856: Presence <br>
760
	@RFC3859: Common Profile for Presence
Pekka Pessi's avatar
Pekka Pessi committed
761 762
    </th>
    <td>
763 764 765 766 767 768 769 770 771
	Sofia-SIP supports <a href="#3265">generic SIP event support</a> for
	subscribing SIP event packages and receiving notifications for them.
	Subscriptions are refreshed before expiration when needed and
	subscriptions are terminated on request. Sofia-SIP takes care of
        notified subscription states.

	Note: Usage of pres: URI is supported only if the next hop URI to
	where to send SUBSCRIBE is a SIP URI (e.g. of outbound proxy).
	Resolving of pres: URIs by DNS is not supported.
Pekka Pessi's avatar
Pekka Pessi committed
772 773
    </td>
    <td>
774 775 776 777 778 779
	Application must take care of:
	- Generating subscriptions for "presence" event
          - Including correct @ref sip_event "Event" and
            @ref sip_accept "Accept" headers in the request (if needed)
	- Processing notifications for "presence" event
	  - Handling of presence information in notifications
Pekka Pessi's avatar
Pekka Pessi committed
780 781 782
    </td>
</tr>

783
<a name="3857"></a> <a name="3858"></a>
Pekka Pessi's avatar
Pekka Pessi committed
784 785
<tr valign=top>
    <th align="left">
786 787
	@RFC3857: "winfo" event template package<br>
	@RFC3858: winfo format
Pekka Pessi's avatar
Pekka Pessi committed
788 789
    </th>
    <td>
790 791
	Sofia-SIP supports <a href="#3265">generic SIP event support</a> for
	subscribing SIP event packages and receiving notifications for them.
Pekka Pessi's avatar
Pekka Pessi committed
792
	Subscriptions are refreshed before expiration when needed and
793 794
	subscriptions are terminated on request. Sofia-SIP takes care of
        notified subscription states.
Pekka Pessi's avatar
Pekka Pessi committed
795 796 797
    </td>
    <td>
        Application must take care of:
798 799 800 801
	- Generating subscriptions for winfo events
          - Including correct @ref sip_event "Event" and
            @ref sip_accept "Accept" headers in the request (if needed)
	- Processing notifications for winfo events:
802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817
	  - Processing watcherinfo XML documents
    </td>
</tr>

<a name="3860"></a>
<tr valign=top>
    <th align="left">
	@RFC3860: Common Profile for IM
    </th>
    <td>
	Sofia-SIP supports handling of any URI type. Sofia-SIP parses "im:"
        URIs.
    </td>
    <td>
        Application must take care of:
	- resolving the "im:" URI
Pekka Pessi's avatar
Pekka Pessi committed
818 819 820
    </td>
</tr>

821
<a name="3891"></a>
Pekka Pessi's avatar
Pekka Pessi committed
822 823
<tr valign=top>
    <th align="left">
824
	@RFC3891: Replaces
Pekka Pessi's avatar
Pekka Pessi committed
825 826
    </th>
    <td>
827 828
	@ref sip_replaces "Replaces" header is explicitly supported
	(generating, parsing and syntax checking).
Pekka Pessi's avatar
Pekka Pessi committed
829 830 831
    </td>
    <td>
        Application must take care of:
832 833
	- generating @ref sip_replaces "Replaces" header from a dialog and
          matching a dialog with a Replaces header received
Pekka Pessi's avatar
Pekka Pessi committed
834 835 836
    </td>
</tr>

837
<a name="3892"></a>
Pekka Pessi's avatar
Pekka Pessi committed
838 839 840 841 842
<tr valign=top>
    <th align="left">
	@RFC3892: Referred-By
    </th>
    <td>
Pekka Pessi's avatar
Pekka Pessi committed
843 844
	@ref sip_referred_by "Referred-By" header is explicitly supported
	(generating, parsing and syntax checking).
845

Pekka Pessi's avatar
Pekka Pessi committed
846 847 848 849
	Referred-by token can be sent and received in
	text-based SIP message body.
    </td>
    <td>
Pekka Pessi's avatar
Pekka Pessi committed
850 851
        Application must take care of:
	- Generating or processing @ref sip_referred_by "Referred-By" headers
Pekka Pessi's avatar
Pekka Pessi committed
852 853 854 855 856
	- Generating (and encrypting) or verifying (and decrypting) of
	  Referred-by tokens
    </td>
</tr>

857
<a name="3903"></a>
Pekka Pessi's avatar
Pekka Pessi committed
858 859
<tr valign=top>
    <th align="left">
860
	@RFC3903: PUBLISH
Pekka Pessi's avatar
Pekka Pessi committed
861 862
    </th>
    <td>
863 864 865
	PUBLISH method is supported natively. The SIP headers
	explicitly supported (generating, parsing and syntax checking) are
	@ref sip_etag "SIP-ETag" and @ref sip_if_match "SIP-If-Match".
Pekka Pessi's avatar
Pekka Pessi committed
866

867 868
	The <a href="nua/index.html">user-agent engine</a> keep published
	data refreshed until nua_unpublish() is called.
Pekka Pessi's avatar
Pekka Pessi committed
869 870
    </td>
    <td>
871 872
        Application must take care of:
        - Including correct @ref sip_event "Event" in the request
873
        - Permanently storing @SIPETag
Pekka Pessi's avatar
Pekka Pessi committed
874 875
    </td>
</tr>
Pekka Pessi's avatar
Pekka Pessi committed
876

877
<a name="4028"></a>
Pekka Pessi's avatar
Pekka Pessi committed
878 879
<tr valign=top>
    <th align="left">
880
	@RFC4028: Session Timers
Pekka Pessi's avatar
Pekka Pessi committed
881 882
    </th>
    <td>
883 884 885 886 887
	The SIP session-timer ("timer") extension is supported.

        The session-expires value and refreshing party is negotiated in
	<a href="nua/index.html">user-agent engine</a>. When user-agent
	engine is responsible for refreshes, it will initiate re-INVITE or
888 889 890 891 892
	UPDATE transaction at regular intervals.

	If there has been no SIP activity in session during the refresh
	period, it will try to automatically terminate the call by sending a
	@b BYE request.
893 894

        The SIP headers explicitly supported (generating, parsing and
895
	syntax checking) are @ref sip_session_expires "Session-Expires" ("x") and
896
	@ref sip_min_se "Min-SE".
Pekka Pessi's avatar
Pekka Pessi committed
897 898
    </td>
    <td>
Pekka Pessi's avatar
Pekka Pessi committed
899
	&nbsp;
Pekka Pessi's avatar
Pekka Pessi committed
900 901
    </td>
</tr>
902

903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922
<a name="4168"></a>
<tr valign=top>
    <th align="left">
	@RFC4168: SCTP as Transport for SIP
    </th>
    <td>
	The transport=sctp URI parameter is supported. The SCTP transport
	protocol is supported as experimental. It is enabled with
	configure script argument --enable-sctp.

	The framing of SIP messages over SCTP is not specified clearly in
	@RFC4168. It is possible to send SIP messages smaller than 64K over
	SCTP.
    </td>
    <td>
	&nbsp;
    </td>
</tr>


923
<a name="4320"></a>
924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944
<tr valign=top>
    <th align="left">
	@RFC4320: Actions Addressing Identified Issues with SIP's Non-INVITE Transaction
    </th>
    <td>
	The action 1 (make the best use of provisional responses) is
	supported when NTATAG_EXTRA_100(1) is used with nua_create() or
	nta_agent_create(). The 100 Trying provisional response is sent
	after T2 is expired or when a retransmission is received after T2/2
        after the initial request.

	The action 2 (remove the useless late-response storm) is supported
	by default. The 408 timeout response is not forwarded by default (it's
	forwarding can be enabled with NTATAG_PASS_408(1), however).
    </td>
    <td>
        Application must include NTATAG_EXTRA_100(1) with nua_create() or
	nta_agent_create() tags.
    </td>
</tr>

945 946 947 948 949 950 951 952 953 954
<a name="4488"></a>
<tr valign=top>
    <th align="left">
	@RFC4488: Suppression of REFER Implicit Subscription
    </th>
    <td>
	Sofia-SIP supports @ref sip_refer_sub "Refer-Sub" header
	(generating, parsing and syntax checking).

        The implicit subscription is suppressed by @nua, if the @ReferSub:
955
        true header is included in the REFER
956 957 958 959 960 961 962 963 964 965 966
	request (@ref nua_refer "on server side") or
	response (@ref nua_i_refer "on client side").

	@NEW_1_12_5
    </td>
    <td>
        The REFER client application must include SIPTAG_REFER_SUB_STR("true")
	in the nua_refer() tags.
    </td>
</tr>

967 968 969 970 971 972 973 974
<a name="5057"></a>
<tr valign=top>
    <th align="left">
	@RFC5057: Multiple Dialog Usages in SIP
    </th>
    <td>
	Sofia-SIP provides function sip_response_terminates_dialog() that
	can be used to determine the effect of error response with dialog.
975

976 977 978 979 980 981 982 983
	The nua UA engine uses sip_response_terminates_dialog().
    </td>
    <td>
        The client application must either use NUA or
        sip_response_terminates_dialog().
    </td>
</tr>

984 985 986 987 988 989 990 991
</table>

<table border=1 cellpadding=4 cellspacing=0>
<tr>
   <th>Feature</th>
   <th>Supported</td>
   <th>Notes</td>
</tr>
Pekka Pessi's avatar
Pekka Pessi committed
992

993 994 995
<a name="4566"></a>
<a name="2327"></a>
<a name="3266"></a>
Pekka Pessi's avatar
Pekka Pessi committed
996
<tr valign=top>
997
    <th align="left" align="left">
998
	@RFC4566: SDP: Session Description Protocol
Pekka Pessi's avatar
Pekka Pessi committed
999 1000
    </th>
    <td>
1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018
	Generic support (generating, parsing and syntax checking) for SDP.
	The SDP
        @ref sdp_version_t "v=",
        @ref sdp_origin_t "o=",
	@ref sdp_connection_t "c=",
	@ref sdp_bandwidth_t "b=",
	@ref sdp_time_t "t=",
	@ref sdp_repeat_t "r=",
	@ref sdp_zone_t "z=",
	@ref sdp_key_t "k=",
	@ref sdp_attribute_t "a=", and
	@ref sdp_media_t "m="
        lines are separated and parsed. The "e=", "p=", "s=", and "i=" lines
	are separated.

	The attributes "a=sendrecv", "a=sendonly", "a=recvonly",
	"a=inactive", @ref sdp_rtpmap_s "a=rtpmap", and "a=fmtp" are parsed.

1019
	The implementation partially implements @RFC4566. Note that
1020
	definition of 'token' was updated in @RFC4566 and the parser has not
1021
	been updated yet.
Pekka Pessi's avatar
Pekka Pessi committed
1022 1023
    </td>
    <td>
1024 1025 1026
      @RFC4566 obsoletes
      - @RFC2327: SDP (Session Description Protocol)
      - @RFC3266: IP6 in SDP
Pekka Pessi's avatar
Pekka Pessi committed
1027 1028 1029
    </td>
</tr>

1030
<a name="3264"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1031 1032
<tr valign=top>
    <th align="left">
1033
	@RFC3264: SDP Offer/Answer Negotiation
Pekka Pessi's avatar
Pekka Pessi committed
1034 1035
    </th>
    <td>
1036
	Generating and processing offers or answers.
Pekka Pessi's avatar
Pekka Pessi committed
1037 1038
    </td>
    <td>
1039 1040
	- "a=fmtp" parameters are not taken into account
          when generating or processing answer
Pekka Pessi's avatar
Pekka Pessi committed
1041 1042 1043
    </td>
</tr>

1044
<a name="3312"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1045 1046
<tr valign=top>
    <th align="left">
1047
	@RFC3312: Preconditions
Pekka Pessi's avatar
Pekka Pessi committed
1048 1049
    </th>
    <td>
1050 1051 1052 1053 1054 1055
	Sofia-SIP provides <a href="#2616">generic support</a> for attribute
	lines that conform to SDP syntax.

        Sofia-SIP supports handling SIP feature tags in
	@ref sip_proxy_require "Proxy-Require",
        @ref sip_require "Require",
1056
        @ref sip_supported "Supported" ("k"),
1057 1058
        and
        @ref sip_unsupported "Unsupported" header.
Pekka Pessi's avatar
Pekka Pessi committed
1059 1060
    </td>
    <td>
1061 1062 1063
	Application must take care of:
	- Semantics and handling of preconditions
	- Reservation of resources
Pekka Pessi's avatar
Pekka Pessi committed
1064 1065 1066
    </td>
</tr>

1067
<a name="3388"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1068 1069
<tr valign=top>
    <th align="left">
1070
	@RFC3388: Grouping of Media Lines
Pekka Pessi's avatar
Pekka Pessi committed
1071 1072
    </th>
    <td>
1073 1074 1075 1076
	Sofia-SIP provides <a href="#2616">generic support</a> for attribute
	lines that conform to SDP syntax.

	@RFC3388 defines mid, group, LS and FID are predefined strings to be
Pekka Pessi's avatar
Pekka Pessi committed
1077 1078 1079
	used within attribute line
    </td>
    <td>
1080
        Application must take care of:
Pekka Pessi's avatar
Pekka Pessi committed
1081 1082 1083 1084 1085 1086
	- Generating or processing the attribute lines
	- Grouping the media for transport accordingly
    </td>
</tr>


1087
<a name="3407"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1088 1089
<tr valign=top>
    <th align="left">
1090
	@RFC3407: Capability Declaration
Pekka Pessi's avatar
Pekka Pessi committed
1091 1092
    </th>
    <td>
1093 1094
	Sofia-SIP provides <a href="#2616">generic support</a> for attribute
	lines that conform to SDP syntax.
Pekka Pessi's avatar
Pekka Pessi committed
1095 1096
    </td>
    <td>
1097 1098 1099 1100
        Application must take care of:
	- Defining sqn, cdsc, cpar etc. strings needed in a= line
	- Generating or processing the attribute lines
	- Capability negotiation itself
Pekka Pessi's avatar
Pekka Pessi committed
1101 1102 1103 1104
    </td>
</tr>


1105
<a name="3524"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1106 1107
<tr valign=top>
    <th align="left">
1108
	@RFC3524: SRF
Pekka Pessi's avatar
Pekka Pessi committed
1109 1110
    </th>
    <td>
1111 1112
	Sofia-SIP provides <a href="#2616">generic support</a> for attribute
	lines that conform to SDP syntax.
Pekka Pessi's avatar
Pekka Pessi committed
1113 1114
    </td>
    <td>
1115 1116 1117
        Application must take care of:
	- Defining SRF string needed in a= line
	- Generating or processing the attribute lines
Pekka Pessi's avatar
Pekka Pessi committed
1118 1119 1120
    </td>
</tr>

1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133

<a name="3551"></a>
<tr valign=top>
    <th align="left">
	@RFC3551: RTP/AVP
    </th>
    <td>
	Sofia-SIP recognizes the RTP payload types for well-known audio and
	video codecs defined in @RFC3551.
    </td>
    <td>
        Application must take care of:
	- Audio or video processing
1134
        - Generating a=rtpmap or a=fmtp lines when needed
1135 1136 1137
    </td>
</tr>

1138
<a name="3556"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1139 1140
<tr valign=top>
    <th align="left">
1141
	@RFC3556: Bandwidth
Pekka Pessi's avatar
Pekka Pessi committed
1142 1143
    </th>
    <td>
1144 1145
	Sofia-SIP provides <a href="#2616">generic support</a> for attribute
	lines that conform to SDP syntax.
Pekka Pessi's avatar
Pekka Pessi committed
1146 1147
    </td>
    <td>
1148 1149 1150
        Application must take care of:
	- Generating or processing RS and RR bandwidth modifiers
	- Semantics of bandwidth allocation
Pekka Pessi's avatar
Pekka Pessi committed
1151 1152 1153
    </td>
</tr>

1154
<a name="3605"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1155 1156
<tr valign=top>
    <th align="left">
1157
	@RFC3605: RTCP attribute
Pekka Pessi's avatar
Pekka Pessi committed
1158 1159
    </th>
    <td>
1160 1161
	Sofia-SIP provides <a href="#2616">generic support</a> for attribute
	lines that conform to SDP syntax.
Pekka Pessi's avatar
Pekka Pessi committed
1162 1163
    </td>
    <td>
1164 1165 1166
        Application must take care of:
	- Discovering port numbers
	- Generating or processing the RTCP attribute lines
Pekka Pessi's avatar
Pekka Pessi committed
1167 1168 1169
    </td>
</tr>

1170
<a name="3890"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1171 1172
<tr valign=top>
    <th align="left">
1173
	@RFC3890: TIAS
Pekka Pessi's avatar
Pekka Pessi committed
1174 1175
    </th>
    <td>
1176 1177
	Sofia-SIP provides <a href="#2616">generic support</a> for attribute
	lines that conform to SDP syntax.
Pekka Pessi's avatar
Pekka Pessi committed
1178 1179
    </td>
    <td>
1180 1181 1182
        Application must take care of:
	- Generating or processing TIAS bandwidth modifiers
	- Generating or processing the maxprate attribute lines
Pekka Pessi's avatar
Pekka Pessi committed
1183 1184 1185
    </td>
</tr>

1186 1187 1188 1189 1190 1191 1192 1193
</table>


*/

/* Overflow:

<a name="4566"></a>
1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205
<tr valign=top>
    <th align="left">
	@RFC4566: SDP: Session Description Protocol
    </th>
    <td>
    Obsoletes RFC2327 and RFC3266.
    </td>
    <td>
	&nbsp;
    </td>
</tr>

1206

1207
<a name="3320"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1208 1209
<tr valign=top>
    <th align="left">
1210
	@RFC3320: SigComp
Pekka Pessi's avatar
Pekka Pessi committed
1211 1212
    </th>
    <td>
1213 1214 1215
    	Support for using SigComp for compression and
	decompression of SIP/SDP messages. By default, dynamic
	compression is used.
Pekka Pessi's avatar
Pekka Pessi committed
1216

1217
	Decompression using UDVM
Pekka Pessi's avatar
Pekka Pessi committed
1218 1219
    </td>
    <td>
Pekka Pessi's avatar
Pekka Pessi committed
1220
	&nbsp;
Pekka Pessi's avatar
Pekka Pessi committed
1221 1222 1223
    </td>
</tr>

1224
<a name="3321"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1225 1226
<tr valign=top>
    <th align="left">
1227
	@RFC3321: SigComp Extended operations
Pekka Pessi's avatar
Pekka Pessi committed
1228 1229
    </th>
    <td>
1230
	Support for SigComp extended operations.
Pekka Pessi's avatar
Pekka Pessi committed
1231 1232
    </td>
    <td>
1233 1234 1235 1236
	- Explicit Acknowledgment Scheme
	- Shared Compression
	- Checkpoint State
	- Implicit Deletion for Dictionary Update
Pekka Pessi's avatar
Pekka Pessi committed
1237 1238
    </td>
</tr>
Pekka Pessi's avatar
Pekka Pessi committed
1239

1240
<a name="3325"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1241 1242
<tr valign=top>
    <th align="left">
1243
	@RFC3325: Asserted Identity
Pekka Pessi's avatar
Pekka Pessi committed
1244 1245
    </th>
    <td>
1246 1247
	Explicit support (generating, parsing and syntax checking) for the
	following SIP headers: P-Asserted-Identity, P-Preferred-Identity
Pekka Pessi's avatar
Pekka Pessi committed
1248 1249
    </td>
    <td>
1250 1251
	- Recognizing trust domains and enforcing handling of headers
	  based on those
Pekka Pessi's avatar
Pekka Pessi committed
1252 1253 1254
    </td>
</tr>

1255
<a name="3485"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1256 1257
<tr valign=top>
    <th align="left">
1258
	@RFC3485: SIP/SDP Dictionary
Pekka Pessi's avatar
Pekka Pessi committed
1259 1260
    </th>
    <td>
1261 1262
	Support for SigComp static compression using SIP/SDP
	dictionary.
Pekka Pessi's avatar
Pekka Pessi committed
1263 1264
    </td>
    <td>
1265
	&nbsp;
Pekka Pessi's avatar
Pekka Pessi committed
1266 1267 1268
    </td>
</tr>

1269 1270 1271 1272 1273



	- Implicitly registered user identities

1274
<a name="3959"></a>
Pekka Pessi's avatar
Pekka Pessi committed
1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289
<tr valign=top>
    <th align="left">
	@RFC3959: early-session
    </th>
    <td>
	Early-session value can be used within Content-Disposition,
	Supported and Require headers.
    </td>
    <td>
	- Generating of Content-Disposition, Supported and Require
	- Handling of multipart bodies with early and session SDP
    </td>
</tr>

*/