summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc7195.txt
blob: a4084d8f4a2748b77c521e5259c468e83ae78297 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
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
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
Internet Engineering Task Force (IETF)                  M. Garcia-Martin
Request for Comments: 7195                                      Ericsson
Category: Standards Track                                S. Veikkolainen
ISSN: 2070-1721                                                    Nokia
                                                                May 2014


            Session Description Protocol (SDP) Extension for
 Setting Audio and Video Media Streams over Circuit-Switched Bearers in
              the Public Switched Telephone Network (PSTN)

Abstract

   This memo describes use cases, requirements, and protocol extensions
   for using the Session Description Protocol (SDP) offer/answer model
   for establishing audio and video media streams over circuit-switched
   bearers in the Public Switched Telephone Network (PSTN).

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 5741.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   http://www.rfc-editor.org/info/rfc7195.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.





Garcia-Martin & Veikkolainen Standards Track                    [Page 1]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


Table of Contents

   1. Introduction ....................................................3
   2. Conventions Used in This Document ...............................4
   3. Requirements ....................................................5
   4. Overview of Operation ...........................................5
      4.1. Example Call Flow ..........................................6
   5. Protocol Description ............................................7
      5.1. Level of Compliance ........................................7
      5.2. Extensions to SDP ..........................................7
           5.2.1. Connection Data .....................................7
           5.2.2. Media Descriptions ..................................9
           5.2.3. Correlating the PSTN Circuit-Switched
                  Bearer with SDP ....................................10
                  5.2.3.1. The "cs-correlation" Attribute ............11
                  5.2.3.2. Caller ID Correlation Mechanism ...........12
                  5.2.3.3. User-User Information Element
                           Correlation Mechanism .....................13
                  5.2.3.4. DTMF Correlation Mechanism ................14
                  5.2.3.5. External Correlation Mechanism ............15
                  5.2.3.6. Extensions to Correlation Mechanisms ......16
      5.3. Negotiating the Correlation Mechanisms ....................17
           5.3.1. Determining the Direction of the
                  Circuit-Switched Bearer Setup ......................17
           5.3.2. Populating the "cs-correlation" Attribute ..........18
           5.3.3. Considerations for Correlations ....................18
      5.4. Considerations for Usage of Existing SDP ..................19
           5.4.1. Originator of the Session ..........................19
           5.4.2. Contact Information ................................20
      5.5. Considerations for Usage of Third Party Call
           Control (3PCC) ............................................20
      5.6. Offer/Answer Mode Extensions ..............................20
           5.6.1. Generating the Initial Offer .......................21
           5.6.2. Generating the Answer ..............................23
           5.6.3. Offerer Processing the Answer ......................26
           5.6.4. Modifying the Session ..............................27
      5.7. Formal Syntax .............................................28
   6. Examples .......................................................30
      6.1. Single PSTN Audio Stream ..................................30
      6.2. Advanced SDP Example: Circuit-Switched Audio and
           Video Streams .............................................32
   7. Security Considerations ........................................33
   8. IANA Considerations ............................................35
      8.1. Registration of the New "cs-correlation" SDP Attribute ....35
      8.2. Registration of a New "nettype" Value .....................36
      8.3. Registration of a New "addrtype" Value ....................36
      8.4. Registration of a New "proto" Value .......................36
   9. Acknowledgments ................................................37



Garcia-Martin & Veikkolainen Standards Track                    [Page 2]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   10. References ....................................................37
      10.1. Normative References .....................................37
      10.2. Informative References ...................................38

1.  Introduction

   The Session Description Protocol (SDP) [RFC4566] is intended for
   describing multimedia sessions for the purposes of session
   announcement, session invitation, and other forms of multimedia
   session initiation.  SDP is most commonly used for describing media
   streams that are transported over the Real-Time Transport Protocol
   (RTP) [RFC3550], using the profiles for audio and video media defined
   in "RTP Profile for Audio and Video Conferences with Minimal Control"
   [RFC3551].

   However, SDP can be used to describe media transport protocols other
   than RTP.  Previous work includes SDP conventions for describing ATM
   bearer connections [RFC3108] and the Message Session Relay Protocol
   [RFC4975].

   SDP is commonly carried in Session Initiation Protocol (SIP)
   [RFC3261] messages in order to agree on a common media description
   among the endpoints.  "An Offer/Answer Model with the Session
   Description Protocol (SDP)" [RFC3264] defines a framework by which
   two endpoints can exchange SDP media descriptions and come to an
   agreement as to which media streams should be used, along with the
   media-related parameters.

   In some scenarios, it might be desirable to establish the media
   stream over a circuit-switched bearer connection even if the
   signaling for the session is carried over an IP bearer.  An example
   of such a scenario is illustrated with two mobile devices capable of
   both circuit-switched and packet-switched communication over a low-
   bandwidth radio bearer.  The radio bearer may not be suitable for
   carrying real-time audio or video media, and using a circuit-switched
   bearer would offer a better perceived quality of service.  So,
   according to this scenario, SDP and its higher-layer session control
   protocol (e.g., the Session Initiation Protocol (SIP) [RFC3261]) are
   used over regular IP connectivity, while the audio or video is
   received through the classical circuit-switched bearer.

   This document addresses only the use of circuit-switched bearers in
   the PSTN, not a generic circuit-switched network.  The mechanisms
   presented below require a call signaling protocol of the PSTN to be
   used (such as ITU-T Q.931 [ITU.Q931.1998] or 3GPP TS 24.008
   [TS.24.008]).





Garcia-Martin & Veikkolainen Standards Track                    [Page 3]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   Setting up a signaling relationship in the IP domain instead of just
   setting up a circuit-switched call also offers the possibility of
   negotiating, in the same session, other IP-based media that is not
   sensitive to jitter and delay, for example, text messaging or
   presence information.

   At a later point in time, the mobile device might move to an area
   where a high-bandwidth packet-switched bearer, for example, a
   Wireless Local Area Network (WLAN) connection, is available.  At this
   point, the mobile device may perform a handover and move the audio or
   video media streams over to the high-speed bearer.  This implies a
   new exchange of SDP offer/answer that leads to a renegotiation of the
   media streams.

   Other use cases exist.  For example, an endpoint might have at its
   disposal circuit-switched and packet-switched connectivity, but the
   same audio or video codecs are not feasible for both access networks.
   For example, the circuit-switched audio or video stream supports
   narrow-bandwidth codecs, while the packet-switched access allows any
   other audio or video codec implemented in the endpoint.  In this
   case, it might be beneficial for the endpoint to describe different
   codecs for each access type and get an agreement on the bearer
   together with the remote endpoint.

   There are additional use cases related to third party call control
   where the session setup time is improved when the circuit-switched
   bearer in the PSTN is described together with one or more codecs.

   The rest of the document is structured as follows: Section 2 provides
   the document conventions, Section 3 introduces the requirements,
   Section 4 presents an overview of the proposed solutions, and
   Section 5 contains the protocol description.  Section 6 provides
   examples of circuit-switched audio or video streams in SDP.  Sections
   7 and 8 contain the Security and IANA considerations, respectively.

2.  Conventions Used in This Document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14, RFC 2119 [RFC2119] and indicate requirement levels for compliant
   implementations.









Garcia-Martin & Veikkolainen Standards Track                    [Page 4]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


3.  Requirements

   This section presents the general requirements that are specific for
   the audio or video media streams over circuit-switched bearers.

   REQ-1:  A mechanism for endpoints to negotiate and agree on an audio
           or video media stream established over a circuit-switched
           bearer MUST be available.

   REQ-2:  The mechanism MUST allow the endpoints to combine circuit-
           switched audio or video media streams with other
           complementary media streams, for example, text messaging.

   REQ-3:  The mechanism MUST allow the endpoint to negotiate the
           direction of the circuit-switched bearer, i.e., which
           endpoint is active when initiating the circuit-switched
           bearer.

   REQ-4:  The mechanism MUST be independent of the type of the circuit-
           switched access (e.g., Integrated Services Digital Network
           (ISDN), Global System for Mobile Communication (GSM), etc.)

   REQ-5:  There MUST be a mechanism that helps an endpoint to correlate
           an incoming circuit-switched bearer with the one negotiated
           in SDP, as opposed to another incoming call that is not
           related to that.  In case correlation by programmatic means
           is not possible, correlation may also be performed by the
           human user.

   REQ-6:  It MUST be possible for endpoints to advertise different
           lists of audio or video codecs in the circuit-switched audio
           or video stream from those used in a packet-switched audio or
           video stream.

   REQ-7:  It MUST be possible for endpoints to not advertise the list
           of available codecs for circuit-switched audio or video
           streams.

4.  Overview of Operation

   The mechanism defined in this memo extends SDP [RFC4566] and allows
   describing an audio or video media stream established over a circuit-
   switched bearer.  A new network type ("PSTN") and a new protocol type
   ("PSTN") are defined for the "c=" and "m=" lines to be able to
   describe a media stream over a circuit-switched bearer.  These SDP
   extensions are described in Section 5.2.  Since circuit-switched
   bearers are connection-oriented media streams, the mechanism reuses




Garcia-Martin & Veikkolainen Standards Track                    [Page 5]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   the connection-oriented extensions defined in RFC 4145 [RFC4145] to
   negotiate the active and passive sides of a connection setup.  This
   is further described in Section 5.3.1.

4.1.  Example Call Flow

   Consider the example presented in Figure 1.  In this example,
   Endpoint A is located in an environment where it has access to both
   IP and circuit-switched bearers for communicating with other
   endpoints.  Endpoint A decides that the circuit-switched bearer
   offers a better perceived quality of service for voice and issues an
   SDP offer containing the description of an audio media stream over a
   circuit-switched bearer.

    Endpoint A                        Endpoint B
      | (1) SDP offer (PSTN audio)         |
      |----------------------------------->|
      |                                    |
      | (2) SDP answer (PSTN audio)        |
      |<-----------------------------------|
      |                                    |
      |   PSTN call setup                  |
      |<-----------------------------------|
      |                                    |
      |                                    |
      |<===== media over PSTN bearer =====>|
      |                                    |

               Figure 1: Example Flow

   Endpoint B receives the SDP offer and determines that it is located
   in an environment where the IP-based bearer is not suitable for real-
   time audio media.  However, Endpoint B also has a PSTN circuit-
   switched bearer available for audio.  Endpoint B generates an SDP
   answer containing a description of the audio media stream over a
   circuit-switched bearer.

   During the offer/answer exchange, Endpoints A and B also agree upon
   the direction in which the circuit-switched bearer should be
   established.  In this example, Endpoint B becomes the active party;
   in other words, it establishes the circuit-switched call to the other
   endpoint.  The offer/answer exchange contains identifiers or
   references that can be used on the circuit-switched network for
   addressing the other endpoint, as well as information that is used to
   determine that the incoming circuit-switched bearer establishment is
   related to the ongoing session between the two endpoints.





Garcia-Martin & Veikkolainen Standards Track                    [Page 6]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   Endpoint B establishes a circuit-switched bearer towards Endpoint A
   using whatever mechanisms are defined for the network type in
   question.  When receiving the incoming circuit-switched connection
   attempt, Endpoint A is able to determine that the attempt is related
   to the session it is just establishing with B.

   Endpoint A accepts the circuit-switched connection; the circuit-
   switched bearer setup is completed.  The two endpoints can now use
   the circuit-switched connection for two-way audio media.

   If, for some reason, Endpoint B would like to reject the offered
   stream, it would set the port number of the specific stream to zero,
   as specified in RFC 3264 [RFC3264].  Also, if B does not understand
   some of the SDP attributes specified in this document, it would
   ignore them, as specified in RFC 4566 [RFC4566].

5.  Protocol Description

5.1.  Level of Compliance

   Implementations that are compliant with this specification MUST
   implement the SDP extensions described in Section 5.2 and MUST
   implement the considerations discussed in Sections 5.3, 5.4, and 5.6.

5.2.  Extensions to SDP

   This section provides the syntax and semantics of the extensions
   required for providing a description of audio or video media streams
   over circuit-switched bearers in SDP.

5.2.1.  Connection Data

   According to SDP [RFC4566], the connection data line in SDP has the
   following syntax:

      c=<nettype> <addrtype> <connection-address>

   where <nettype> indicates the network type, <addrtype> indicates the
   address type, and <connection-address> is the connection address,
   which is dependent on the address type.

   At the moment, the only network type defined is "IN", which indicates
   Internet network type.  The address types "IP4" and "IP6" indicate
   the type of IP addresses.

   This memo defines a new network type for describing a circuit-
   switched bearer network type in the PSTN.  The mnemonic "PSTN" is
   used for this network type.



Garcia-Martin & Veikkolainen Standards Track                    [Page 7]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   For the address type, we initially considered the possibility of
   describing E.164 telephone numbers.  We define a new "E164" address
   type to be used within the context of a "PSTN" network type.  The
   "E164" address type indicates that the connection address contains an
   E.164 number represented according to the ITU-T E.164 [ITU.E164.2010]
   recommendation.

   It is a common convention that an international E.164 number contains
   a leading '+' sign.  For consistency's sake, we also require the
   E.164 telephone is prepended with a '+', even if that is not
   necessary for routing of the call in the PSTN network.

   There are cases, though, when the endpoint is merely aware of a
   circuit-switched bearer, without having further information about the
   E.164 number allocated to it.  In these cases, a dash ("-") is used
   to indicate an unknown connection address.  This makes the connection
   data line consistent with SDP syntax.

   Please note that the "E164" address type defined in this memo is
   exclusively defined to be used in conjunction with the "PSTN" network
   type in accordance with regular offer/answer procedures [RFC4566].

      Note: RFC 3108 [RFC3108] also defines address type "E.164".  This
      definition is distinct from the one defined by this memo and shall
      not be used with <nettype> "PSTN".

   This memo exclusively uses the international representation of E.164
   numbers, i.e., those including a country code and, as described
   above, prepended with a '+' sign.  Implementations conforming to this
   specification and using the "E164" address type together with the
   "PSTN" network type MUST use the 'global-number-digits' construction
   specified in RFC 3966 [RFC3966] for representing international E.164
   numbers.  This representation requires the presence of the '+' sign
   and additionally allows for the presence of one or more 'visual-
   separator' constructions for easier human readability (see
   Section 5.7).

   Note that <connection-address> MUST NOT be omitted when unknown since
   this would violate basic syntax of SDP [RFC4566].  In such cases, it
   MUST be set to a "-".

   The following are examples of the extension to the connection data
   line:

      c=PSTN E164 +441134960123

      c=PSTN E164 -




Garcia-Martin & Veikkolainen Standards Track                    [Page 8]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   When the <addrtype> is E164, the connection address is defined as
   follows:

   o  an international E.164 number (prepended with a '+' sign)

   o  the value "-", signifying that the address is unknown

   o  any other value resulting from the production rule of connection-
      address in RFC 4566 [RFC4566], but in all cases any value
      encountered will be ignored.

5.2.2.  Media Descriptions

   According to SDP [RFC4566], the media description line in SDP has the
   following syntax:

      m=<media> <port> <proto> <fmt> ...

   The <media> subfield carries the media type.  For establishing an
   audio bearer, the existing "audio" media type is used.  For
   establishing a video bearer, the existing "video" media type is used.

   The <port> subfield is the transport port to which the media stream
   is sent.  Circuit-switched access lacks the concept of a port number;
   therefore, the <port> subfield does not carry any meaningful value.
   In order to be compliant with SDP syntax, implementations SHOULD set
   the <port> subfield to the discard port value "9" and MUST ignore it
   on reception.

   According to RFC 3264 [RFC3264], a port number of zero in the offer
   of a unicast stream indicates that the stream is offered but must not
   be used.  If a port number of zero is present in the answer of a
   unicast stream, it indicates that the stream is rejected.  These
   rules are still valid when the media line in SDP represents a
   circuit-switched bearer.

   The <proto> subfield is the transport protocol.  The circuit-switched
   bearer uses whatever transport protocol it has available.  This
   subfield SHOULD be set to the mnemonic "PSTN" to be syntactically
   correct with SDP [RFC4566] and to indicate the usage of circuit-
   switched protocols in the PSTN.

   The <fmt> subfield is the media format description.  In the classical
   usage of SDP to describe RTP-based media streams, when the <proto>
   subfield is set to "RTP/AVP" or "RTP/SAVP", the <fmt> subfield
   contains the payload types as defined in the RTP audio profile
   [RFC3551].




Garcia-Martin & Veikkolainen Standards Track                    [Page 9]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   When "RTP/AVP" is used in the <proto> field, the <fmt> subfield
   contains the RTP payload type numbers.  We use the <fmt> subfield to
   indicate the list of available codecs over the circuit-switched
   bearer, by reusing the conventions and payload type numbers defined
   for RTP / AVP.  The RTP audio and video media types, when applied to
   PSTN circuit-switched bearers, represent merely an audio or video
   codec.  If the endpoint is able to determine the list of available
   codecs for circuit-switched media streams, it MUST use the
   corresponding payload type numbers in the <fmt> subfield.

   In some cases, the endpoint is not able to determine the list of
   available codecs for circuit-switched media streams.  In this case,
   in order to be syntactically compliant with SDP [RFC4566], the
   endpoint MUST include a single dash ("-") in the <fmt> subfield.

   As per RFC 4566 [RFC4566], the media format descriptions are listed
   in priority order.

   Examples of media descriptions for circuit-switched audio streams
   are:

      m=audio 9 PSTN 3 0 8

      m=audio 9 PSTN -

   Similarly, an example of a media description for circuit-switched
   video stream is:

      m=video 9 PSTN 34

      m=video 9 PSTN -

5.2.3.  Correlating the PSTN Circuit-Switched Bearer with SDP

   The endpoints should be able to correlate the circuit-switched bearer
   with the session negotiated with SDP in order to avoid ringing for an
   incoming circuit-switched bearer that is related to the session
   controlled with SDP (and SIP).

   Several alternatives exist for performing this correlation.  This
   memo provides three mutually non-exclusive correlation mechanisms.
   Additionally, we define a fourth mechanism where correlation may be
   performed by external means, typically by the human user, in case
   using other correlation mechanisms is not possible or does not
   succeed.  Other correlation mechanisms may exist, and their usage
   will be specified when need arises.





Garcia-Martin & Veikkolainen Standards Track                   [Page 10]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   All mechanisms share the same principle: some unique information is
   sent in the SDP and in the circuit-switched signaling protocol.  If
   these pieces of information match, then the circuit-switched bearer
   is part of the session described in the SDP exchange.  Otherwise,
   there is no guarantee that the circuit-switched bearer is related to
   such session.

   The first mechanism is based on the exchange of PSTN Caller ID
   between the endpoints.  The Caller ID is also available as the
   Calling Party Number in the circuit-switched signaling.

   The second mechanism is based on the inclusion in SDP of a value that
   is also sent in the User-User Information Element that is part of the
   bearer setup signaling in the PSTN.

   The third mechanism is based on sending in SDP a string that
   represents Dual-Tone Multi-Frequency (DTMF) digits that will be later
   sent right after the circuit-switched bearer is established.

   The fourth correlation mechanism declares support for cases where
   correlation is done by external means.  Typically, this means that
   the decision is left to the human user.  This is how some current
   conferencing systems operate: after logging on to the conference, the
   system calls back to the user's phone number to establish audio
   communications, and it is up to the human user to accept or reject
   the incoming call.  By declaring explicit support for this mechanism,
   endpoints can use it only when such a possibility exists.

   Endpoints may opt to implement any combination of the correlation
   mechanisms specified in Sections 5.2.3.2, 5.2.3.3, 5.2.3.4, and
   5.2.3.5, including the option to implement none at all.

5.2.3.1.  The "cs-correlation" Attribute

   In order to provide support for the correlation mechanisms, we define
   a new media-level SDP attribute called "cs-correlation".  There MUST
   be at most one "cs-correlation" attribute per media description.

   This "cs-correlation" attribute MAY contain zero or more subfields --
   "callerid", "uuie", "dtmf", or "external" to specify additional
   information required by the Caller ID, User-User Information Element,
   DTMF, or external correlation mechanisms, respectively.  The list of
   correlation mechanisms may be extended by other specifications; see
   Section 5.2.3.6 for more details.

   The following sections provide more detailed information about these
   subfields.




Garcia-Martin & Veikkolainen Standards Track                   [Page 11]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   The values "callerid", "uuie", "dtmf", and "external" refer to the
   correlation mechanisms defined in Sections 5.2.3.2, 5.2.3.3, 5.2.3.4,
   and 5.2.3.5, respectively.  The formal Augmented Backus-Naur Format
   (ABNF) syntax of the "cs-correlation" attribute is presented in
   Section 5.7.

5.2.3.2.  Caller ID Correlation Mechanism

   The Caller ID correlation mechanism consists of an exchange of the
   Calling Party Number as an international E.164 number in SDP,
   followed by the availability of the Calling Party Number Information
   Element in the call setup signaling of the circuit-switched
   connection.  If both pieces of information match, the circuit-
   switched bearer is correlated to the session described in SDP.

   An example of inclusion of an international E.164 number in the
   "cs-correlation" attribute is:

      a=cs-correlation:callerid:+441134960123

   The presence of the "callerid" subfield indicates that the endpoint
   supports use of the Calling Party Number as a means of correlating a
   PSTN call with the session being negotiated.  The "callerid" subfield
   MAY be accompanied by the international E.164 number of the party
   inserting the parameter.

      Note that there are no guarantees that this correlation mechanism
      works or is even available, due a number of problems:

      *  The endpoint might not be aware of its own E.164 number, in
         which case it cannot populate the SDP appropriately.

      *  The Calling Party Number Information Element in the circuit-
         switched signaling might not be available, e.g., due to policy
         restrictions of the network operator or caller restriction due
         to privacy.

      *  The Calling Party Number Information Element in the circuit-
         switched signaling might be available, but the digit
         representation of the E.164 number might differ from the one
         expressed in the SDP, due to, e.g., lack of country code.  To
         mitigate this problem, implementations should consider only
         some of the rightmost digits from the E.164 number for
         correlation.  For example, the numbers +44-113-496-0123 and
         0113-496-0123 could be considered as the same number.  This is
         also the behavior of some cellular phones, which correlate the
         incoming calling party with a number stored in the phone book,




Garcia-Martin & Veikkolainen Standards Track                   [Page 12]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


         for the purpose of displaying the caller's name.  Please refer
         to ITU-T E.164 recommendation [ITU.E164.2010] for consideration
         of the relevant number of digits to consider.

5.2.3.3.  User-User Information Element Correlation Mechanism

   A second correlation mechanism is based on including in SDP a string
   that represents the User-User Information Element that is part of the
   call setup signaling of the circuit-switched bearer.  The User-User
   Information Element is specified in ITU-T Q.931 [ITU.Q931.1998] and
   3GPP TS 24.008 [TS.24.008], among others.  The User-User Information
   Element has a maximum size of 35 or 131 octets, depending on the
   actual message of the PSTN protocol where it is included and the
   network settings.

   The mechanism works as follows.  An endpoint creates a User-User
   Information Element, according to the requirements of the call setup
   signaling protocol.  The same value is included in the SDP offer or
   SDP answer, in the "uuie" subfield of the "cs-correlation" attribute.
   When the SDP offer/answer exchange is completed, each endpoint has
   become aware of the value that will be used in the User-User
   Information Element of the call setup message of the PSTN protocol.
   The endpoint that initiates the call setup attempt includes this
   value in the User-User Information Element.  The recipient of the
   call setup attempt can extract the User-User Information Element and
   correlate it with the value previously received in the SDP.  If both
   values match, then the call setup attempt corresponds to that
   indicated in the SDP.

   According to ITU-T Q.931 [ITU.Q931.1998], the User-User Information
   Element (UUIE) identifier is composed of a first octet identifying
   this as a User-User Information Element, a second octet containing
   the length of the user-user contents, a third octet containing a
   Protocol Discriminator, and a value of up to 32 or 128 octets
   (depending on network settings) containing the actual User
   Information (see Figure 4-36 in [ITU.Q931.1998]).  The first two
   octets of the UUIE MUST NOT be used for correlation; only the octets
   carrying the Protocol Discriminator and the User Information value
   are input to the creation of the value of the "uuie" subfield in the
   "cs-correlation" attribute.  Therefore, the value of the "uuie"
   subfield in the "cs-correlation" attribute MUST start with the
   Protocol Discriminator octet, followed by the User Information
   octets.  The value of the Protocol Discriminator octet is not
   specified in this document; it is expected that organizations using
   this technology will allocate a suitable value for the Protocol
   Discriminator.





Garcia-Martin & Veikkolainen Standards Track                   [Page 13]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   Once the binary value of the "uuie" subfield in the "cs-correlation"
   attribute is created, it MUST be base 16 (also known as "hex")
   encoded before it is inserted in SDP.  Please refer to RFC 4648
   [RFC4648] for a detailed description of base 16 encoding.  The
   resulting encoded value needs to have an even number of hexadecimal
   digits and MUST be considered invalid if it has an odd number.

      Note: The encoding of the "uuie" subfield of the "cs-correlation"
      attribute is largely inspired by the encoding of the same value in
      the User-to-User header field in SIP, according to "A Mechanism
      for Transporting User to User Call Control Information in SIP"
      [SIP-UUI].

   As an example, an endpoint willing to send a UUIE containing a
   Protocol Discriminator with the hexadecimal value of %x56 and an
   hexadecimal User Information value of %xA390F3D2B7310023 would
   include an "a=cs-correlation" attribute line as follows:

      a=cs-correlation:uuie:56A390F3D2B7310023

   Note that the value of the User-User Information Element is
   considered as an opaque string and only used for correlation
   purposes.  Typically, call signaling protocols impose requirements on
   the creation of a User-User Information Element for end-user protocol
   exchange.  The details regarding the generation of the User-User
   Information Element are outside the scope of this specification.

   Please note that there are no guarantees that this correlation
   mechanism works.  On one side, policy restrictions might not make the
   User-User information available end to end in the PSTN.  On the other
   hand, the generation of the User-User Information Element is
   controlled by the PSTN circuit-switched call protocol, which might
   not offer enough freedom for generating different values from one
   endpoint to another one or from one call to another in the same
   endpoint.  This might result in the same value of the User-User
   Information Element for all calls.

5.2.3.4.  DTMF Correlation Mechanism

   We introduce a third mechanism for correlating the circuit-switched
   bearer with the session described with SDP.  This is based on
   agreeing on a sequence of digits that are negotiated in the SDP
   offer/answer exchange and sent as DTMF tones as described in ITU-T
   Recommendation Q.23 [ITU.Q23.1988] over the circuit-switched bearer
   once this bearer is established.  If the DTMF digit sequence received
   through the circuit-switched bearer matches the digit string
   negotiated in the SDP, the circuit-switched bearer is correlated with




Garcia-Martin & Veikkolainen Standards Track                   [Page 14]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   the session described in the SDP.  The mechanism is similar to many
   voice conferencing systems that require the user to enter a PIN code
   using DTMF tones in order to be accepted in a voice conference.

   The mechanism works as follows.  An endpoint selects a DTMF digit
   sequence.  The same sequence is included in the SDP offer or SDP
   answer, in a "dtmf" subfield of the "cs-correlation" attribute.  When
   the SDP offer/answer exchange is completed, each endpoint has become
   aware of the DTMF sequence that will be sent right after the circuit-
   switched bearer is set up.  The endpoint that initiates the call
   setup attempt sends the DTMF digits according to the procedures
   defined for the circuit-switched bearer technology used.  The
   recipient (passive side of the bearer setup) of the call setup
   attempt collects the digits and compares them with the value
   previously received in the SDP.  If the digits match, then the call
   setup attempt corresponds to that indicated in the SDP.

      Note: Implementations are advised to select a number of DTMF
      digits that provide enough assurance that the call is related but
      do not prolong the bearer setup time unnecessarily.  A number of 5
      to 10 digits is a good compromise.

   As an example, an endpoint willing to send DTMF tone sequence "14D*3"
   would include an "a=cs-correlation" attribute line as follows:

      a=cs-correlation:dtmf:14D*3

   If the endpoints successfully agree on the usage of the DTMF digit
   correlation mechanism but the passive side does not receive any DTMF
   digits after successful circuit-switched bearer setup or receives a
   set of DTMF digits that do not match the value of the "dtmf"
   attribute (including receiving too many digits), the passive side
   SHOULD consider that this DTMF mechanism has failed to correlate the
   incoming call.

5.2.3.5.  External Correlation Mechanism

   The fourth correlation mechanism relies on external means for
   correlating the incoming call to the session.  Since endpoints can
   select which correlation mechanisms they support, it may happen that
   no other common correlation mechanism is found or that the selected
   correlation mechanism does not succeed due to the required feature
   not being supported by the underlying PSTN network.  In these cases,
   the human user can make the decision to accept or reject the incoming
   call, thus "correlating" the call with the session.  Since not all
   endpoints are operated by a human user and since there may be no





Garcia-Martin & Veikkolainen Standards Track                   [Page 15]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   other external means implemented by the endpoint for the correlation
   function, we explicitly define support for such an external
   correlation mechanism.

   Endpoints wishing to use this external correlation mechanism would
   use the "external" subfield in the "cs-correlation" attribute.
   Unlike the other three correlation mechanisms, the "external"
   subfield does not accept a value.  The following is an example of an
   "a=cs-correlation" attribute line:

      a=cs-correlation:external

   Endpoints that are willing to only use the three explicit correlation
   mechanisms defined in this document ("callerid", "uuie", and/or
   "dtmf") would not include the "external" mechanism in the
   offer/answer exchange.

   The external correlation mechanism typically relies on the human user
   to make the decision on whether or not the call is related to the
   ongoing session.  After the user accepts the call, that bearer is
   considered as related to the session.  There is a small chance that
   the user receives at the same time another circuit-switched call that
   is not related to the ongoing session.  The user may reject this call
   if he is able to determine (e.g., based on the calling line
   identification) that the call is not related to the session and
   continue waiting for another call attempt.  If the user accepts the
   incoming circuit-switched call, but it turns out to be not related to
   the session, the endpoints need to rely on the human user to take
   appropriate action (typically, the user would hang up).

5.2.3.6.  Extensions to Correlation Mechanisms

   New values for the "cs-correlation" attribute may be specified.  The
   registration policy for new values is "Specification Required"; see
   Section 8.  Any such specification MUST include a description of how
   the SDP offer/answer mechanism is used to negotiate the use of the
   new values, taking into account how endpoints determine which side
   will become active or passive (see Section 5.3 for more details).

   If, during the offer/answer negotiation, either endpoint encounters
   an unknown value in the "cs-correlation" attribute, it MUST consider
   that mechanism as unsupported and MUST NOT include that value in
   subsequent offer/answer negotiation.








Garcia-Martin & Veikkolainen Standards Track                   [Page 16]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


5.3.  Negotiating the Correlation Mechanisms

   The four correlation mechanisms presented above (based on Called
   Party Number, User-User Information Element, DTMF digit sending, and
   external) are non-exclusive and can be used independently of each
   other.  In order to know how to populate the "cs-correlation"
   attribute, the endpoints need to agree which endpoint will become the
   active party, i.e., the one that will set up the circuit-switched
   bearer.

5.3.1.  Determining the Direction of the Circuit-Switched Bearer Setup

   In order to avoid a situation where both endpoints attempt to
   initiate a connection simultaneously, the direction in which the
   circuit-switched bearer is set up MUST be negotiated during the
   offer/answer exchange.

   The framework defined in RFC 4145 [RFC4145] allows the endpoints to
   agree which endpoint acts as the active endpoint when initiating a
   TCP connection.  While RFC 4145 [RFC4145] was originally designed for
   establishing TCP connections, it can be easily extrapolated to the
   connection establishment of circuit-switched bearers.  This
   specification uses the concepts specified in RFC 4145 [RFC4145] for
   agreeing on the direction of establishment of a circuit-switched
   bearer.

   RFC 4145 [RFC4145] defines two new attributes in SDP: "setup" and
   "connection".  The "setup" attribute indicates which of the endpoints
   should initiate the connection establishment of the PSTN circuit-
   switched bearer.  Four values are defined in Section 4 of RFC 4145
   [RFC4145]: "active", "passive", "actpass", and "holdconn".  Please
   refer to Section 4 of RFC 4145 [RFC4145] for a detailed description
   of this attribute.

   The "connection" attribute indicates whether a new connection is
   needed or an existing connection is reused.  The attribute can take
   the values "new" or "existing".  Please refer to Section 5 of RFC
   4145 [RFC4145] for a detailed description of this attribute.

   Implementations that are compliant with this specification MUST
   support the "setup" and "connection" attributes specified in RFC 4145
   [RFC4145], but applied to circuit-switched bearers in the PSTN.

   We define the active party as the one that initiates the circuit-
   switched bearer after the offer/answer exchange.  The passive party
   is the one receiving the circuit-switched bearer.  Either party may
   indicate its desire to become the active or passive party during the
   offer/answer exchange using the procedures described in Section 5.6.



Garcia-Martin & Veikkolainen Standards Track                   [Page 17]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


5.3.2.  Populating the "cs-correlation" Attribute

   By defining values for the subfields in the "cs-correlation"
   attribute, the endpoint indicates that it is willing to become the
   active party and that it can use those values in the Calling Party
   Number, in the User-User Information Element, or as DTMF tones during
   the circuit-switched bearer setup.

   Thus, the following rules apply:

   o  An endpoint that can only become the active party in the circuit-
      switched bearer setup MUST include all correlation mechanisms it
      supports in the "cs-correlation" attribute and MUST also specify
      values for the "callerid", "uuie", and "dtmf" subfields.  Notice
      that the "external" subfield does not accept a value.

   o  An endpoint that can only become the passive party in the circuit-
      switched bearer setup MUST include all correlation mechanisms it
      supports in the "cs-correlation" attribute but MUST NOT specify
      values for the subfields.

   o  An endpoint that is willing to become either the active or passive
      party (by including the "a=setup:actpass" attribute in the offer)
      MUST include all correlation mechanisms it supports in the
      "cs-correlation" attribute and MUST also specify values for the
      "callerid", "uuie", and "dtmf" subfields.  Notice that the
      "external" subfield does not accept a value.

5.3.3.  Considerations for Correlations

   Passive endpoints should expect an incoming circuit-switched (CS)
   call for setting up the audio bearer.  Passive endpoints MAY suppress
   the incoming CS alert during certain time periods.  Additional
   restrictions can be applied, such as the passive endpoint not
   alerting incoming calls originated from the number that was observed
   during the offer/answer negotiation.

   There may be cases when an endpoint is not willing to include one or
   more correlation mechanisms in the "a=cs-correlation" attribute line
   even if it supports it.  For example, some correlation mechanisms can
   be omitted if the endpoint is certain that the PSTN network does not
   support carrying the correlation identifier.  Also, since using the
   DTMF-based correlation mechanism requires the call to be accepted
   before DTMF tones can be sent, some endpoints may enforce a policy
   restricting this due to, for example, cost associated with received
   calls, making the DTMF-based mechanism unusable.





Garcia-Martin & Veikkolainen Standards Track                   [Page 18]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   Note that it cannot be guaranteed that the correlation mechanisms
   relying on caller identification, User-User Information Element, and
   DTMF sending will succeed even if the usage of those was agreed
   beforehand.  This is due to the fact that correlation mechanisms
   require support from the circuit-switched bearer technology used.

   Therefore, even a single positive indication using any of these
   mechanisms SHOULD be interpreted by the passive endpoint so that the
   circuit-switched bearer establishment is related to the ongoing
   session, even if the other correlation mechanisms fail.

   If, after successfully negotiating any of the "callerid", "uuie", or
   "dtmf" correlation mechanisms in the SDP offer/answer exchange, an
   endpoint receives an incoming establishment of a circuit-switched
   bearer with no correlation information present, the endpoint first
   checks whether or not the offer/answer exchange was also used to
   successfully negotiate the "external" correlation mechanism.  If it
   was, the endpoint should let the decision be made by external means,
   typically the human user.  If the "external" correlation mechanism
   was not successfully negotiated, the endpoint should treat the call
   as unrelated to the ongoing session in the IP domain.

5.4.  Considerations for Usage of Existing SDP

5.4.1.  Originator of the Session

   According to SDP [RFC4566], the origin line in SDP has the following
   syntax:

      o=<username> <sess-id> <sess-version> <nettype> <addrtype>
      <unicast-address>

   Of interest here are the <nettype> and <addrtype> fields, which
   indicate the type of network and type of address, respectively.
   Typically, this field carries the IP address of the originator of the
   session.  Even if the SDP was used to negotiate an audio or video
   media stream transported over a circuit-switched bearer, the
   originator is using SDP over an IP bearer.  Therefore, <nettype> and
   <addrtype> fields in the "o=" line should be populated with the IP
   address identifying the source of the signaling.











Garcia-Martin & Veikkolainen Standards Track                   [Page 19]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


5.4.2.  Contact Information

   SDP [RFC4566] defines the "p=" line, which may include the phone
   number of the person responsible for the conference.  Even though
   this line can carry a phone number, it is not suited for the purpose
   of defining a connection address for the media.  Therefore, we have
   selected to define the PSTN-specific connection addresses in the "c="
   line.

5.5.  Considerations for Usage of Third Party Call Control (3PCC)

   "Best Current Practices for Third Party Call Control (3PCC) in the
   Session Initiation Protocol (SIP)" [RFC3725] outlines several flows
   that are possible in third party call control scenarios and
   recommends some flows for specific situations.

   One of the assumptions in [RFC3725] is that an SDP offer may include
   a "black hole" connection address, which has the property that
   packets sent to it will never leave the host that sent them.  For
   IPv4, this "black hole" connection address is 0.0.0.0 or a domain
   name within the .invalid DNS top level domain.

   When using an E.164 address scheme in the context of third party call
   control, when the User Agent needs to indicate an unknown phone
   number, it MUST populate the <addrtype> of the SDP "c=" line with a
   "-" string.

      Note: This may result in the recipient of the initial offer
      rejecting such offer if the recipient of the offer was not aware
      of its own E.164 number.  Consequently, it will not be possible to
      establish a circuit-switched bearer, since neither party is aware
      of its E.164 number.

5.6.  Offer/Answer Mode Extensions

   In this section, we define extensions to the offer/answer model
   defined in "An Offer/Answer Model with the Session Description
   Protocol (SDP)" [RFC3264] to allow for PSTN addresses to be used with
   the offer/answer model.












Garcia-Martin & Veikkolainen Standards Track                   [Page 20]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


5.6.1.  Generating the Initial Offer

   The offerer, wishing to use PSTN audio or video stream, MUST populate
   the "c=" and "m=" lines as follows.

   The endpoint MUST set the <nettype> in the "c=" line to "PSTN" and
   the <addrtype> to "E164".  Furthermore, the endpoint SHOULD set the
   <connection-address> field to its own international E.164 number
   (with a leading "+").  If the endpoint is not aware of its own E.164
   number, it MUST set the <connection-address> to "-".

   In the "m=" line, the endpoint MUST set the <media> subfield to
   "audio" or "video", depending on the media type, and the <proto>
   subfield to "PSTN".  The <port> subfield SHOULD be set to "9" (the
   discard port).  The values "audio" or "video" in the <media> subfield
   MUST NOT be set by the endpoint unless it has knowledge that these
   bearer types are available on the circuit-switched network.

   The <fmt> subfield carries the payload type number(s) the endpoint is
   wishing to use.  Payload type numbers in this case refer to the
   codecs that the endpoint wishes to use on the PSTN media stream.  For
   example, if the endpoint wishes to use the GSM codec, it would add
   payload type number 3 in the list of codecs.  The list of payload
   types MUST only contain those codecs the endpoint is able to use on
   the PSTN bearer.  In case the endpoint is not aware of the codecs
   available for the circuit-switched media streams, it MUST include a
   dash ("-") in the <fmt> subfield.

   The mapping table of static payload types numbers to payload types is
   initially specified in [RFC3551] and maintained by IANA.  For dynamic
   payload types, the endpoint MUST define the set of valid encoding
   names and related parameters using the "a=rtpmap" attribute line.
   See Section 6 of RFC 4566 [RFC4566] for details.

   When generating the offer, the offerer MUST include an
   "a=cs-correlation" attribute line in the SDP offer.  The offerer MUST
   NOT include more than one "cs-correlation" attribute per media
   description.  The "a=cs-correlation" line SHOULD contain an
   enumeration of all the correlation mechanisms supported by the
   offerer, in the format of subfields.  See Section 5.3.3 for more
   information on usage of the correlation mechanisms.

   The current list of subfields include "callerid", "uuie", "dtmf", and
   "external", and they refer to the correlation mechanisms defined in
   Sections 5.2.3.2, 5.2.3.3, 5.2.3.4, and 5.2.3.5, respectively.






Garcia-Martin & Veikkolainen Standards Track                   [Page 21]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   If the offerer supports any of the correlation mechanisms defined in
   this memo and is willing to become the active party, the offerer MUST
   add the "callerid", "uuie", "dtmf", and/or "external" subfields and
   MUST specify values for them as follows:

   o  The international E.164 number as the value in the "callerid"
      subfield.

   o  The contents of the User-User Information Element as the value of
      the "uuie" subfield.

   o  The DTMF tone string as the value of the "dtmf" subfield.

   o  The endpoint MUST NOT specify any value for the "external"
      subfield.

   If the offerer is only able to become the passive party in the
   circuit-switched bearer setup, it MUST add at least one of the
   possible correlation mechanisms but MUST NOT specify values for those
   subfields.

   For example, if the offerer is willing to use the User-User
   Information Element and DTMF digit-sending mechanisms but can only
   become the passive party, and is also able to let the human user
   decide whether the correlation should be done or not, it includes the
   following lines in the SDP:

      a=cs-correlation:uuie dtmf external

      a=setup:passive

   If, on the other hand, the offerer is willing to use the User-User
   Information Element and the DTMF correlation mechanisms and is able
   to become the active or passive side, and is also able to let the
   human user decide whether the correlation should be done or not, it
   includes the following lines in the SDP:

      a=cs-correlation:uuie:56A390F3D2B7310023 dtmf:14D*3 external

      a=setup:actpass

   The negotiation of the value of the "setup" attribute takes place as
   defined in Section 4.1 of RFC 4145 [RFC4145].

   The offerer states which role or roles it is willing to perform; the
   answerer, taking the offerer's willingness into consideration,
   chooses which roles both endpoints will actually perform during the
   circuit-switched bearer setup.



Garcia-Martin & Veikkolainen Standards Track                   [Page 22]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   By "active" endpoint, we refer to an endpoint that will establish the
   circuit-switched bearer; by "passive" endpoint, we refer to an
   endpoint that will receive a circuit-switched bearer.

   If an offerer does not know its international E.164 number, it MUST
   set the "setup" attribute to the value "active".  If the offerer
   knows its international E.164 number, it SHOULD set the value to
   either "actpass" or "passive".

   Also "holdconn" is a permissible value in the "setup" attribute.  It
   indicates that the connection should not be established for the time
   being.

   The offerer uses the "connection" attribute to decide whether a new
   circuit-switched bearer is to be established or not.  For the initial
   offer, the offerer MUST use value "new".

5.6.2.  Generating the Answer

   If the offer contained a circuit-switched audio or video stream, the
   answerer first determines whether it is able to accept and use such
   streams on the circuit-switched network.  If the answerer does not
   support or is not willing to use circuit-switched media for the
   session, it MUST construct an answer where the port number for such
   media stream(s) is set to zero, according to Section 6 of [RFC3264].
   If the answerer is willing to use circuit-switched media for the
   session, it MUST ignore the received port number (unless the port
   number is set to zero).

   If the offer included a "-" as the payload type number, it indicates
   that the offerer is not willing or able to define any specific
   payload type.  Most often, a "-" is expected to be used instead of
   the payload type when the endpoint is not aware of or not willing to
   define the codecs that will eventually be used on the circuit-
   switched bearer.  The circuit-switched signaling protocols have their
   own means of negotiating or indicating the codecs; therefore, an
   answerer SHOULD accept such offers and SHOULD set the payload type to
   "-" in the answer.

   If the answerer explicitly wants to specify a codec for the circuit-
   switched media, it MAY set the respective payload numbers in the
   <fmt> subfield in the answer.  This behavior, however, is NOT
   RECOMMENDED.

   When receiving the offer, the answerer MUST determine whether it
   becomes the active or passive party.





Garcia-Martin & Veikkolainen Standards Track                   [Page 23]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   If the SDP in the offer indicates that the offerer is only able to
   become the active party, the answerer needs to determine whether it
   is able to become the passive party.  If this is not possible, e.g.,
   due to the answerer not knowing its international E.164 number, the
   answerer MUST reject the circuit-switched media by setting the port
   number to zero on the answer.  If the answerer is aware of its
   international E.164 number, it MUST include the "setup" attribute in
   the answer and set it to value "passive" or "holdconn".  The answerer
   MUST also include its E.164 number in the "c=" line.

   If the SDP in the offer indicates that the offerer is only able to
   become the passive party, the answerer MUST verify that the offerer's
   E.164 number is included in the "c=" line of the offer.  If the
   number is included, the answerer MUST include the "setup" attribute
   in the answer and set it to value "active" or "holdconn".  If the
   number is not included, the recipient of the offer is not willing to
   establish a connection the E.164 based on a priori knowledge of cost,
   or other reasons, call establishment is not possible, and the
   answerer MUST reject the circuit-switched media by setting the port
   number to zero in the answer.

   If the SDP in the offer indicates that the offerer is able to become
   either the active or passive party, the answerer determines which
   role it will take.  If the offer includes an international E.164
   number in the "c=" line, the answerer SHOULD become the active party.
   If the answerer does not become the active party and if the answerer
   is aware of its E.164 number, it MUST become the passive party.  If
   the answerer does not become the active or the passive party, it MUST
   reject the circuit-switched media by setting the port number to zero
   in the answer.

   For each media description where the offer includes a
   "cs-correlation" attribute, the answerer MUST select from the offer
   those correlation mechanisms it supports and include in the answer
   one "a=cs-correlation" attribute line containing those mechanisms it
   is willing to use.  The answerer MUST only add one "cs-correlation"
   attribute in those media descriptions where also the offer included a
   "cs-correlation" attribute.  The answerer MUST NOT add any mechanisms
   that were not included in the offer.  If there is more than one
   "cs-correlation" attribute per media description in the offer, the
   answerer MUST discard all but the first for any media description.
   Also, the answerer MUST discard all unknown "cs-correlation"
   attribute values.

   If the answerer becomes the active party, it MUST add a value to any
   of the possible subfields.





Garcia-Martin & Veikkolainen Standards Track                   [Page 24]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   If the answerer becomes the passive party, it MUST NOT add any values
   to the subfields in the "cs-correlation" attribute.

   After generating and sending the answer, if the answerer became the
   active party, it

   o  MUST extract the E.164 number from the "c=" line of the offer and
      MUST establish a circuit-switched bearer to that address.

   o  if the SDP answer contained a value for the "callerid" subfield,
      MUST set the Calling Party Number Information Element to that
      number.

   o  if the SDP answer contained a value for the "uuie" subfield, MUST
      send the User-User Information Element according to the rules
      defined for the circuit-switched technology used and set the value
      of the Information Element to that received in the SDP offer.

   o  if the SDP answer contained a value for the "dtmf" subfield, MUST
      send those DTMF digits according to the circuit-switched
      technology used.

   If, on the other hand, the answerer became the passive party, it

   o  MUST be prepared to receive a circuit-switched bearer,

   o  if the offer contained a value for the "callerid" subfield, MUST
      compare that value to the Calling Party Number Information Element
      of the circuit-switched bearer.  If the received Calling Party
      Number Information Element matches the value of the "callerid"
      subfield, the call SHOULD be treated as correlated to the ongoing
      session.

   o  if the offer contained a value for the "dtmf" subfield, MUST be
      prepared to receive and collect DTMF digits once the circuit-
      switched bearer is set up.  The answerer MUST compare the received
      DTMF digits to the value of the "dtmf" subfield.  If the received
      DTMF digits match the value of the "dtmf" subfield in the
      "cs-correlation" attribute, the call SHOULD be treated as
      correlated to the ongoing session.

   o  if the offer contained a value for the "uuie" subfield, MUST be
      prepared to receive a User-User Information Element once the
      circuit-switched bearer is set up.  The answerer MUST compare the
      received UUIE to the value of the "uuie" subfield.  If the value
      of the received UUIE matches the value of the "uuie" subfield, the
      call SHOULD be treated as correlated to the ongoing session.




Garcia-Martin & Veikkolainen Standards Track                   [Page 25]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   o  if the offer contained an "external" subfield, MUST be prepared to
      receive a circuit-switched call and use the external means
      (typically, the human user) for accepting or rejecting the call.

   If the answerer becomes the active party, generates an SDP answer,
   and then it finds out that the circuit-switched call cannot be
   established, then the answerer MUST create a new SDP offer where the
   circuit-switched stream is removed from the session (actually, by
   setting the corresponding port in the "m=" line to zero) and send it
   to its counterpart.  This is to synchronize both parties (and
   potential intermediaries) on the state of the session.

5.6.3.  Offerer Processing the Answer

   When receiving the answer, if the SDP does not contain an
   "a=cs-correlation" attribute line, the offerer should take that as an
   indication that the other party does not support or is not willing to
   use the procedures defined in the document for this session and MUST
   revert to normal processing of SDP.

   When receiving the answer, the offerer MUST first determine whether
   it becomes the active or passive party, as described in
   Section 5.3.1.

   If the offerer becomes the active party, it

   o  MUST extract the E.164 number from the "c=" line and MUST
      establish a circuit-switched bearer to that address.

   o  if the SDP answer contained a value for the "uuie" subfield, MUST
      send the User-User Information Element according to the rules
      defined for the circuit-switched technology used and set the value
      of the Information Element to that received in the SDP answer.

   o  if the SDP answer contained a value for the "dtmf" subfield, MUST
      send those DTMF digits according to the circuit-switched
      technology used.

   If the offerer becomes the passive party:

   o  It MUST be prepared to receive a circuit-switched bearer.

   o  Note that if delivery of the answer is delayed for some reason,
      the circuit-switched call attempt may arrive at the offerer before
      the answer has been processed.  In this case, since the
      correlation mechanisms are negotiated as part of the offer/answer
      exchange, the answerer cannot know whether or not the incoming




Garcia-Martin & Veikkolainen Standards Track                   [Page 26]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


      circuit-switched call attempt is correlated with the session being
      negotiated; thus, the offerer SHOULD answer the circuit-switched
      call attempt only after it has received and processed the answer.

   o  If the answer contained a value for the "dtmf" subfield, the
      offerer MUST be prepared to receive and collect DTMF digits once
      the circuit-switched bearer is set up.  The offerer SHOULD compare
      the received DTMF digits to the value of the "dtmf" subfield.  If
      the received DTMF digits match the value of the "dtmf" subfield in
      the "cs-correlation" attribute, the call SHOULD be treated as
      correlated to the ongoing session.

   o  If the answer contained a value for the "uuie" subfield, the
      offerer MUST be prepared to receive a User-User Information
      Element once the circuit-switched bearer is set up.  The offerer
      SHOULD compare the received UUIE to the value of the "uuie"
      subfield.  If the value of the received UUIE matches the value of
      the "uuie" subfield, the call SHOULD be treated as correlated to
      the ongoing session.

   o  If the answer contained an "external" subfield, the offerer MUST
      be prepared to receive a circuit-switched call and use the
      external means (typically, the human user) for accepting or
      rejecting the call.

   According the "An Offer/Answer Model with the Session Description
   Protocol (SDP)" [RFC3264], the offerer needs to be ready to receive
   media as soon as the offer has been sent.  It may happen that the
   answerer, if it became the active party, will initiate a circuit-
   switched bearer setup that will arrive at the offerer before the
   answer has arrived.  However, the offerer needs to receive the answer
   and examine the information about the correlation mechanisms in order
   to successfully perform correlation of the circuit-switched call to
   the session.  Therefore, if the offerer receives an incoming circuit-
   switched call, it MUST NOT accept the call before the answer has been
   received.  If no answer is received during an implementation-specific
   time, the offerer MUST either modify the session according to
   [RFC3264] or terminate it according to the session signaling
   procedures in question (for terminating a SIP session, see Section 15
   of [RFC3261]).

5.6.4.  Modifying the Session

   If, at a later time, one of the parties wishes to modify the session,
   e.g., by adding a new media stream or by changing properties used on
   an existing stream, it may do so via the mechanisms defined in "An
   Offer/Answer Model with the Session Description Protocol (SDP)"
   [RFC3264].



Garcia-Martin & Veikkolainen Standards Track                   [Page 27]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   If there is an existing circuit-switched bearer between the endpoints
   and the offerer wants to reuse that, the offerer MUST set the value
   of the "connection" attribute to "existing".

   If either party removes the circuit-switched media from the session
   (by setting the port number to zero), it MUST terminate the circuit-
   switched bearer using whatever mechanism is appropriate for the
   technology in question.

   If either party wishes to drop and reestablish an existing call, that
   party MUST first remove the circuit-switched media from the session
   by setting the port number to zero and then use another offer/answer
   exchange where it MUST set the "connection" attribute to "new".  If
   the media types are different (for example, a different codec will be
   used for the circuit-switched bearer), the media descriptions for
   terminating the existing bearer and the new bearer can be in the same
   offer.

   If either party would like to remove existing RTP-based media from
   the session and replace that with a circuit-switched bearer, it would
   create a new offer to add the circuit-switched media as described in
   Section 5.6.1 above, replacing the RTP-based media description with
   the circuit-switched media description, as specified in RFC 3264
   [RFC3264].

   Once the offer/answer exchange is done, but the circuit-switched
   bearer is not yet established, there may be a period of time when no
   media is available.  Also, it may happen that correlating the
   circuit-switched call fails for reasons discussed in Section 5.3.3.
   In this case, even if the offer/answer exchange was successful,
   endpoints are not able to receive or send media.  It is up to the
   implementation to decide the behavior in this case; if nothing else
   is done, the user most likely hangs up after a while if there is no
   other media in the session.  Note that this may also happen when
   switching from one RTP media to another RTP media (for example, when
   firewall blocks the new media stream).

   If either party would like to remove existing circuit-switched media
   from the session and replace that with RTP-based media, it would
   modify the media description as per the procedures defined in RFC
   3264 [RFC3264].  The endpoint MUST then terminate the circuit-
   switched bearer using whatever mechanism is appropriate for the
   technology in question.

5.7.  Formal Syntax

   The following is the formal Augmented Backus-Naur Form (ABNF)
   [RFC5234] syntax that supports the extensions defined in this



Garcia-Martin & Veikkolainen Standards Track                   [Page 28]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   specification.  The syntax is built above the SDP [RFC4566] and the
   tel URI [RFC3966] grammars.  Implementations that are compliant with
   this specification MUST be compliant with this syntax.

   Figure 2 shows the formal syntax of the extensions defined in this
   memo.

           ; extension to the connection field originally specified
           ; in RFC 4566

           connection-field   =  [%x63 "=" nettype SP addrtype SP
           connection-address CRLF]
           ; CRLF defined in RFC 5234

           ;nettype and addrtype are defined in RFC 4566

           connection-address =/  global-number-digits / "-"
           ; global-number-digits specified in RFC 3966

           ;subrules for correlation attribute
           attribute          =/ cs-correlation-attr
           ; attribute defined in RFC 4566
           cs-correlation-attr = "cs-correlation:" corr-mechanisms
           corr-mechanisms    = corr-mech *(SP corr-mech)
           corr-mech          = caller-id-mech / uuie-mech /
                                dtmf-mech / external-mech /
                                ext-mech
           caller-id-mech     = "callerid" [":" caller-id-value]
           caller-id-value    = "+" 1*15DIGIT
           ; DIGIT defined in RFC 5234
           uuie-mech          = "uuie" [":" uuie-value]
           uuie-value         = 1*65(HEXDIG HEXDIG)
                                ;This represents up to 130 HEXDIG
                                ; (65 octets)
                                ;HEXDIG defined in RFC 5234
                                ;HEXDIG defined as 0-9, A-F
           dtmf-mech          = "dtmf" [":" dtmf-value]
           dtmf-value         = 1*32(DIGIT / %x41-44 / %x23 / %x2A )
                                ;0-9, A-D, '#' and '*'
           external-mech      = "external"
           ext-mech           = ext-mech-name [":" ext-mech-value]
           ext-mech-name      = token
           ext-mech-value     = token
           ; token is specified in RFC 4566

                  Figure 2: Syntax of the SDP Extensions





Garcia-Martin & Veikkolainen Standards Track                   [Page 29]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


6.  Examples

   In the examples below, where an SDP line is too long to be displayed
   as a single line, a breaking character "\" indicates continuation in
   the following line.  Note that this character is included for display
   purposes only.  Implementations MUST write a single line without
   breaks.

6.1.  Single PSTN Audio Stream

            Endpoint A                        Endpoint B
              |                                  |
              | (1) SDP offer (PSTN audio)       |
              |--------------------------------->|
              |                                  |
              | (2) SDP answer (PSTN audio)      |
              |<---------------------------------|
              |                                  |
              |   PSTN call setup                |
              |<---------------------------------|
              |                                  |
              |<==== media over PSTN bearer ====>|
              |                                  |

                           Figure 3: Basic Flow

   Figure 3 shows a basic example that describes a single audio media
   stream over a circuit-switched bearer.  Endpoint A generates an SDP
   offer, which is shown in Figure 4.  The offer describes a PSTN
   circuit-switched bearer in the "m=" and "c=" line where it also
   indicates its international E.164 number format.  Additionally,
   Endpoint A expresses that it can initiate the circuit-switched bearer
   or be the recipient of it in the "a=setup" attribute line.  The SDP
   offer also includes correlation identifiers that this endpoint will
   insert in the Calling Party Number and/or User-User Information
   Element of the PSTN call setup if eventually this endpoint initiates
   the PSTN call.  Endpoint A also includes "external" as one
   correlation mechanism, indicating that it can use the human user to
   perform correlation in case other mechanisms fail.












Garcia-Martin & Veikkolainen Standards Track                   [Page 30]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


           v=0
           o=alice 2890844526 2890842807 IN IP4 192.0.2.5
           s=
           t=0 0
           m=audio 9 PSTN -
           c=PSTN E164 +441134960123
           a=setup:actpass
           a=connection:new
           a=cs-correlation:callerid:+441134960123 \
             uuie:56A390F3D2B7310023 external

                          Figure 4: SDP Offer (1)

   Endpoint B generates an SDP answer (Figure 5), describing a PSTN
   audio media on port 9 without information on the media subtype on the
   "m=" line.  The "c=" line contains B's international E.164 number.
   In the "a=setup" line, Endpoint B indicates that it is willing to
   become the active endpoint when establishing the PSTN call, and it
   also includes the "a=cs-correlation" attribute line containing the
   values it is going to include in the Calling Party Number and User-
   User Information Element of the PSTN call establishment.  Endpoint B
   is also able to perform correlation by external means, in case other
   correlation mechanisms fail.

         v=0
         o=- 2890973824 2890987289 IN IP4 192.0.2.7
         s=
         t=0 0
         m=audio 9 PSTN -
         c=PSTN E164 +441134960124
         a=setup:active
         a=connection:new
         a=cs-correlation:callerid:+441134960124 \
           uuie:74B9027A869D7966A2 external

             Figure 5: SDP Answer with Circuit-Switched Media

   When Endpoint A receives the answer, it examines that B is willing to
   become the active endpoint when setting up the PSTN call.  Endpoint A
   temporarily stores B's E.164 number and the User-User IE value of the
   "cs-correlation" attribute and waits for a circuit-switched bearer
   establishment.

   Endpoint B initiates a circuit-switched bearer using whatever
   circuit-switched technology is available for it.  The Called Party
   Number is set to A's number, and the Calling Party Number is set to
   B's own number.  Endpoint B also sets the User-User Information
   Element value to the one contained in the SDP answer.



Garcia-Martin & Veikkolainen Standards Track                   [Page 31]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   When Endpoint A receives the circuit-switched bearer establishment,
   it examines the UUIE and the Calling Party Number and, by comparing
   those received during the offer/answer exchange, determines that the
   call is related to the SDP session.

   It may also be that neither the UUIE nor the Calling Party Number is
   received by the called party, or the format of the Calling Party
   Number is changed by the PSTN.  Implementations may still accept such
   call establishment attempts as being related to the session that was
   established in the IP network.  As it cannot be guaranteed that the
   values used for correlation are always passed intact through the
   network, they should be treated as additional hints that the circuit-
   switched bearer is actually related to the session.

6.2.  Advanced SDP Example: Circuit-Switched Audio and Video Streams

    Endpoint A                                Endpoint B
      |                                            |
      | (1) SDP offer (PSTN audio and video)       |
      |------------------------------------------->|
      |                                            |
      | (2) SDP answer (PSTN audio)                |
      |<-------------------------------------------|
      |                                            |
      |   PSTN call setup                          |
      |<-------------------------------------------|
      |                                            |
      |<======== media over PSTN bearer ==========>|
      |                                            |

            Figure 6: Circuit-Switched Audio and Video Streams

   Figure 6 shows an example of negotiating audio and video media
   streams over circuit-switched bearers.

















Garcia-Martin & Veikkolainen Standards Track                   [Page 32]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


         v=0
         o=alice 2890844526 2890842807 IN IP4 192.0.2.5
         s=
         t=0 0
         a=setup:actpass
         a=connection:new
         c=PSTN E164 +441134960123
         m=audio 9 PSTN -
         a=cs-correlation:dtmf:1234536
         m=video 9 PSTN 34
         a=rtpmap:34 H263/90000
         a=cs-correlation:callerid:+441134960123

       Figure 7: SDP Offer with Circuit-Switched Audio and Video (1)

   Upon receiving the SDP offer described in Figure 7, Endpoint B
   rejects the video stream as the device does not currently support
   video, but it accepts the circuit-switched audio stream.  As Endpoint
   A indicated that it is able to become either the active or passive
   party, Endpoint B gets to select which role it would like to take.
   Since the offer contained the international E.164 number of Endpoint
   A, Endpoint B decides that it becomes the active party in setting up
   the circuit-switched bearer.  B includes a new value in the "dtmf"
   subfield of the "cs-correlation" attribute, which it is going to send
   as DTMF tones once the bearer setup is complete.  The answer is
   described in Figure 8.

         v=0
         o=- 2890973824 2890987289 IN IP4 192.0.2.7
         s=
         t=0 0
         a=setup:active
         a=connection:new
         c=PSTN E164 +441134960124
         m=audio 9 PSTN -
         a=cs-correlation:dtmf:654321
         m=video 0 PSTN 34
         a=cs-correlation:callerid:+441134960124

      Figure 8: SDP Answer with Circuit-Switched Audio and Video (2)

7.  Security Considerations

   This document provides an extension to RFC 4566 [RFC4566] and RFC
   3264 [RFC3264].  As such, the security considerations of those
   documents apply.





Garcia-Martin & Veikkolainen Standards Track                   [Page 33]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   This memo provides mechanisms to agree on a correlation identifier or
   identifiers that are used to evaluate whether an incoming circuit-
   switched bearer is related to an ongoing session in the IP domain.
   If an attacker replicates the correlation identifier and establishes
   a call within the time window the receiving endpoint is expecting a
   call, the attacker may be able to hijack the circuit-switched bearer.
   These types of attacks are not specific to the mechanisms presented
   in this memo.  For example, Caller ID spoofing is a well-known attack
   in the PSTN.  Users are advised to use the same caution before
   revealing sensitive information as they would on any other phone
   call.  Furthermore, users are advised that mechanisms that may be in
   use in the IP domain for securing the media, like Secure RTP (SRTP)
   [RFC3711], are not available in the CS domain.

   For the purposes of establishing a circuit-switched bearer, the
   active endpoint needs to know the passive endpoint's phone number.
   Phone numbers are sensitive information, and some people may choose
   not to reveal their phone numbers when calling using supplementary
   services like Calling Line Identification Restriction (CLIR) in GSM.
   Implementations should take the caller's preferences regarding
   calling line identification into account if possible, by restricting
   the inclusion of the phone number in the SDP "c=" line if the caller
   has chosen to use CLIR.  If this is not possible, implementations may
   present a prompt informing the user that their phone number may be
   transmitted to the other party.

   As with IP addresses, if there is a desire to protect the SDP
   containing phone numbers carried in SIP, implementers are advised to
   follow the security mechanisms defined in [RFC3261].

   It is possible that an attacker creates a circuit-switched session
   whereby the attacked endpoint should dial a circuit-switched number,
   perhaps even a premium-rate telephone number.  To mitigate the
   consequences of this attack, endpoints MUST authenticate and trust
   remote endpoints users who try to remain passive in the circuit-
   switched connection establishment.  It is RECOMMENDED that endpoints
   have local policies precluding the active establishment of circuit-
   switched connections to certain numbers (e.g., international,
   premium, and long distance).  Additionally, it is strongly
   RECOMMENDED that the end user is asked for consent prior to the
   endpoint initiating a circuit-switched connection.










Garcia-Martin & Veikkolainen Standards Track                   [Page 34]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


8.  IANA Considerations

   IANA has registered a number of SDP tokens according to the following
   data.

8.1.  Registration of the New "cs-correlation" SDP Attribute

      Contact: Miguel Garcia <miguel.a.garcia@ericsson.com>

      Attribute name: cs-correlation

      Long-form attribute name: PSTN Correlation Identifier

      Type of attribute: media level only

      Subject to charset: No

      Description: This attribute provides the Correlation Identifier
      used in PSTN signaling

      Appropriate values: see Section 5.2.3.1

      Specification: RFC 7195

   The IANA has created a subregistry for the "cs-correlation" attribute
   under the "Session Description Protocol (SDP) Parameters" registry.
   The initial values for the subregistry are presented in the
   following; IANA has registered these values accordingly:

   Value of "cs-correlation" attribute Reference Description
   ----------------------------------- --------- -------------------
   callerid                            RFC 7195  Caller ID
   uuie                                RFC 7195  User-User
                                                 Information Element
   dtmf                                RFC 7195  Dual-Tone
                                                 Multi-Frequency
   external                            RFC 7195  External

   As per the terminology in [RFC5226], the registration policy for new
   values of the "cs-correlation" attribute is "Specification Required".











Garcia-Martin & Veikkolainen Standards Track                   [Page 35]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


8.2.  Registration of a New "nettype" Value

   IANA has registered a new "nettype" in the "Session Description
   Protocol (SDP) Parameters" registry [IANA].  The registration data,
   according to RFC 4566 [RFC4566], is as follows.

   Type             SDP Name             Reference
   --------------   ------------------   ---------
   nettype          PSTN                 RFC 7195

8.3.  Registration of a New "addrtype" Value

   IANA has registered a new "addrtype" in the "Session Description
   Protocol (SDP) Parameters" registry [IANA].  The registration data,
   according to RFC 4566 [RFC4566], is as follows.

   Type             SDP Name             Reference
   --------------   ------------------   ---------
   addrtype         E164                 RFC 7195

   Note: This document defines the "E164" addrtype in the context of the
   "PSTN" nettype only.  RFC 3108 [RFC3108] also defines address type
   "E.164".  This definition is distinct from the one defined by this
   memo and shall not be used with <nettype> "PSTN".

8.4.  Registration of a New "proto" Value

   IANA has registered a new "proto" in the "Session Description
   Protocol (SDP) Parameters" registry [IANA].  The registration data,
   according to RFC 4566 [RFC4566], is as follows.

   Type             SDP Name             Reference
   --------------   ------------------   ---------
   proto            PSTN                 RFC 7195

   The related "fmt" namespace reuses the conventions and payload type
   number defined for RTP/AVP.  In this document, the RTP audio and
   video media types, when applied to PSTN circuit-switched bearers,
   represent merely an audio or video codec in its native format
   directly on top of a single PSTN bearer.

   In some cases, the endpoint is not able to determine the list of
   available codecs for circuit-switched media streams.  In this case,
   in order to be syntactically compliant with SDP [RFC4566], the
   endpoint MUST include a single dash ("-") in the <fmt> subfield.






Garcia-Martin & Veikkolainen Standards Track                   [Page 36]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


9.  Acknowledgments

   The authors want to thank Paul Kyzivat, Flemming Andreasen, Thomas
   Belling, John Elwell, Jari Mutikainen, Miikka Poikselka, Jonathan
   Rosenberg, Ingemar Johansson, Christer Holmberg, Alf Heidermark, Tom
   Taylor, Thomas Belling, Keith Drage, and Andrew Allen for providing
   their insight and comments on this document.

10.  References

10.1.  Normative References

   [ITU.Q931.1998]
               International Telecommunications Union, "Digital
               Subscriber Signalling System No. 1 - ISDN User-Network
               Interface Layer 3 Specification for Basic Call Control",
               ITU-T Recommendation Q931, May 1998.

   [RFC2119]   Bradner, S., "Key words for use in RFCs to Indicate
               Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3264]   Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
               with Session Description Protocol (SDP)", RFC 3264, June
               2002.

   [RFC3966]   Schulzrinne, H., "The tel URI for Telephone Numbers", RFC
               3966, December 2004.

   [RFC4145]   Yon, D. and G. Camarillo, "TCP-Based Media Transport in
               the Session Description Protocol (SDP)", RFC 4145,
               September 2005.

   [RFC4566]   Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
               Description Protocol", RFC 4566, July 2006.

   [RFC4648]   Josefsson, S., "The Base16, Base32, and Base64 Data
               Encodings", RFC 4648, October 2006.

   [RFC5226]   Narten, T. and H. Alvestrand, "Guidelines for Writing an
               IANA Considerations Section in RFCs", BCP 26, RFC 5226,
               May 2008.

   [RFC5234]   Crocker, D. and P. Overell, "Augmented BNF for Syntax
               Specifications: ABNF", STD 68, RFC 5234, January 2008.







Garcia-Martin & Veikkolainen Standards Track                   [Page 37]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


10.2.  Informative References

   [IANA]      IANA, "Session Description Protocol (SDP) Parameters
               Registry", <http://www.iana.org/assignments/
               sdp-parameters>.

   [ITU.E164.2010]
               International Telecommunications Union, "The
               International Public Telecommunication Numbering Plan",
               ITU-T Recommendation E.164, 2010.

   [ITU.Q23.1988]
               International Telecommunications Union, "Technical
               features of push-button telephone sets", ITU-T Technical
               Recommendation Q.23, 1988.

   [RFC3108]   Kumar, R. and M. Mostafa, "Conventions for the use of the
               Session Description Protocol (SDP) for ATM Bearer
               Connections", RFC 3108, May 2001.

   [RFC3261]   Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
               A., Peterson, J., Sparks, R., Handley, M., and E.
               Schooler, "SIP: Session Initiation Protocol", RFC 3261,
               June 2002.

   [RFC3550]   Schulzrinne, H., Casner, S., Frederick, R., and V.
               Jacobson, "RTP: A Transport Protocol for Real-Time
               Applications", STD 64, RFC 3550, July 2003.

   [RFC3551]   Schulzrinne, H. and S. Casner, "RTP Profile for Audio and
               Video Conferences with Minimal Control", STD 65, RFC
               3551, July 2003.

   [RFC3711]   Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
               Norrman, "The Secure Real-time Transport Protocol
               (SRTP)", RFC 3711, March 2004.

   [RFC3725]   Rosenberg, J., Peterson, J., Schulzrinne, H., and G.
               Camarillo, "Best Current Practices for Third Party Call
               Control (3pcc) in the Session Initiation Protocol (SIP)",
               BCP 85, RFC 3725, April 2004.

   [RFC4975]   Campbell, B., Mahy, R., and C. Jennings, "The Message
               Session Relay Protocol (MSRP)", RFC 4975, September 2007.

   [SIP-UUI]   Johnston, A. and J. Rafferty, "A Mechanism for
               Transporting User to User Call Control Information in
               SIP", Work in Progress, April 2014.



Garcia-Martin & Veikkolainen Standards Track                   [Page 38]
^L
RFC 7195          PSTN Circuit-Switched Bearers in SDP          May 2014


   [TS.24.008] 3GPP, "Mobile radio interface Layer 3 specification; Core
               network protocols; Stage 3", 3GPP TS 24.008 3.20.0,
               December 2005.

Authors' Addresses

   Miguel A. Garcia-Martin
   Ericsson
   Calle Via de los Poblados 13
   Madrid, ES  28033
   Spain

   EMail: miguel.a.garcia@ericsson.com


   Simo Veikkolainen
   Nokia
   P.O. Box 226
   NOKIA GROUP, FI  00045
   Finland

   Phone: +358 50 486 4463
   EMail: simo.veikkolainen@nokia.com




























Garcia-Martin & Veikkolainen Standards Track                   [Page 39]
^L