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
|
Internet Engineering Task Force (IETF) B. Rosen
Request for Comments: 9248 June 2022
Category: Standards Track
ISSN: 2070-1721
Interoperability Profile for Relay User Equipment
Abstract
Video Relay Service (VRS) is a term used to describe a method by
which a hearing person can communicate with a sign language speaker
who is deaf, deafblind, or hard of hearing (HoH) or has a speech
disability using an interpreter (i.e., a Communications Assistant
(CA)) connected via a videophone to the sign language speaker and an
audio telephone call to the hearing user. The CA interprets using
sign language on the videophone link and voice on the telephone link.
Often the interpreters may be employed by a company or agency, termed
a "provider" in this document. The provider also provides a video
service that allows users to connect video devices to their service
and subsequently to CAs and other sign language speakers. It is
desirable that the videophones used by the sign language speaker
conform to a standard so that any device may be used with any
provider and that direct video calls between sign language speakers
work. This document describes the interface between a videophone and
a provider.
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 7841.
Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9248.
Copyright Notice
Copyright (c) 2022 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
(https://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 Revised BSD License text as described in Section 4.e of the
Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
Table of Contents
1. Introduction
2. Terminology
3. Requirements Language
4. General Requirements
5. SIP Signaling
5.1. Registration
5.2. Session Establishment
5.2.1. Normal Call Origination
5.2.2. Dial-Around Origination
5.2.3. RUE Contact Information
5.2.4. Incoming Calls
5.2.5. Emergency Calls
5.3. Mid-Call Signaling
5.4. URI Representation of Phone Numbers
5.5. Transport
6. Media
6.1. SRTP and SRTCP
6.2. Text-Based Communication
6.3. Video
6.4. Audio
6.5. DTMF Digits
6.6. Session Description Protocol
6.7. Privacy
6.8. Negative Acknowledgement, Picture Loss Indicator, and Full
Intraframe Request Features
7. Contacts
7.1. CardDAV Login and Synchronization
7.2. Contacts Import/Export Service
8. Video Mail
9. Provisioning and Provider Selection
9.1. RUE Provider Selection
9.2. RUE Configuration Service
9.2.1. Provider Configuration
9.2.2. RUE Configuration
9.2.3. Versions
9.2.4. Examples
9.2.5. Using the Provider Selection and RUE Configuration
Services Together
9.3. OpenAPI Interface Descriptions
9.3.1. Provider List
9.3.2. Configuration
10. IANA Considerations
10.1. RUE Provider List Registry
10.2. Registration of Rue-Owner Value of the Purpose Parameter
11. Security Considerations
12. Normative References
13. Informative References
Acknowledgements
Author's Address
1. Introduction
Video Relay Service (VRS) is a form of Telecommunications Relay
Service (TRS) that enables people with hearing disabilities who use
sign language, such as American Sign Language (ASL), to communicate
with voice telephone users through video equipment. These services
also enable communication between such individuals directly in
suitable modalities, including any combination of sign language via
video, real-time text, and speech.
This interoperability profile for Relay User Equipment (RUE) is a
profile of the Session Initiation Protocol (SIP) and related media
protocols that enables end-user equipment registration and calling
for VRS calls. It specifies the minimal set of call flows and IETF
and ITU-T standards that must be supported, provides guidance where
the standards leave multiple implementation options, and specifies
minimal and extended capabilities for RUE calls.
Both subscriber-to-provider (interpreted) and direct subscriber-to-
subscriber calls are supported on this interface. While there are
some accommodations in this document to maximize backwards
compatibility with other devices and services that are used to
provide VRS service, backwards compatibility is not a requirement,
and some interwork may be required to allow direct video calls to
older devices. This document only describes the interface between
the device and the provider, not any other interface the provider may
have.
The following illustrates a typical relay call. The RUE device and
the communications assistant (sign language interpreter) have
videophones. The hearing user has a telephone (mobile or fixed).
||== RUE Interface (this document)
||
\/
+------+ +------+ - +--------+ - +-------+
|User | |RUE | ( ) |Provider| ( ) |User |
|who is| |Device|<-(Internet)->| | |who is |
|Deaf |<->| | | |<-( PSTN )->|Hearing|
+------+ +------+ -------- +--------+ ------ +-------+
^
|
+--------------+
|Communications|
|Assistant |
+--------------+
2. Terminology
Communications Assistant (CA):
A sign-language interpreter working for a VRS provider, providing
functionally equivalent phone service.
Communication modality (modality):
A specific form of communication that may be employed by two
users, e.g., English voice, Spanish voice, American Sign Language,
English lipreading, or French real-time text. Here, one
communication modality is assumed to encompass both the language
and the way that language is exchanged. For example, English
voice and French voice are two different communication modalities.
Default video relay service:
The video relay service operated by a subscriber's default VRS
provider.
Default video relay service provider (default provider):
The VRS provider that registers and assigns a telephone number to
a specific subscriber and, by default, provides the VRS for
incoming voice calls to the user. The default provider, also by
default, provides the VRS for outgoing relay calls. The user can
have more than one telephone number, and each has a default
provider.
Outbound dial-around call:
A relay call where the subscriber specifies the use of a VRS
provider other than the default VRS provider. This can be
accomplished by the user dialing a "front-door" number for a VRS
provider and signing or texting a phone number to call ("two-
stage"). Alternatively, this can be accomplished by the user's
RUE software instructing the server of its default VRS provider to
automatically route the call through the alternate provider to the
desired Public Switched Telephone Network (PSTN) directory number
("one-stage"). Dial-around is per call; for any call, a user can
use the default VRS provider or any dial-around VRS provider.
Full Intra Request (FIR):
A request to a video media sender, requiring that media sender to
send a decoder refresh point at the earliest opportunity. FIR is
sometimes known as "instantaneous decoder refresh request", "video
fast update request", or "fast update request".
Point-to-Point Call (P2P Call):
A call between two RUEs, without including a CA.
Relay call:
A call that allows people with hearing or speech disabilities to
use a RUE to talk to users of conventional voice services with the
aid of a CA to relay the communication.
Relay service (RS):
A service that allows a registered subscriber to use a RUE to make
and receive relay calls, point-to-point calls, and relay-to-relay
calls. The functions provided by the relay service include the
provision of media links supporting the communication modalities
used by the caller and callee, user registration and validation,
authentication, authorization, automatic call distributor (ACD)
platform functions, routing (including emergency call routing),
call setup, mapping, call features (such as call forwarding and
video mail), and assignment of CAs to relay calls.
Relay service provider (provider):
An organization that operates a relay service. A subscriber
selects a relay service provider to assign and register a
telephone number for their use, to register with for receipt of
incoming calls, and to provide the default service for outgoing
calls.
Relay user:
Please refer to "subscriber".
Relay user E.164 Number (user E.164):
The telephone number (in ITU-T E.164 format) assigned to the user.
Relay User Equipment (RUE):
A SIP user agent (UA) enhanced with extra features to support a
subscriber in requesting, receiving, and using relay calls. A RUE
may take many forms, including a stand-alone device; an
application running on a general-purpose computing device, such as
a laptop, tablet, or smartphone; or proprietary equipment
connected to a server that provides the RUE interface.
RUE interface:
The interfaces described in this document between a RUE and a VRS
provider who supports it.
Sign language:
A language that uses hand gestures and body language to convey
meaning, including, but not limited to, American Sign Language
(ASL).
Subscriber:
An individual who has registered with a provider and who obtains
service by using a RUE. This is the conventional telecom term for
an end-user customer, which in this case is a relay user. A user
may be a subscriber to more than one VRS provider.
Video Relay Service (VRS):
A relay service for people with hearing or speech disabilities who
use sign language to communicate using video equipment (video RUE)
with other people in real time. The video link allows the CA to
view and interpret the subscriber's signed conversation and relay
the conversation back and forth with the other party.
3. Requirements Language
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 [RFC2119] [RFC8174] when, and only when, they appear in all
capitals, as shown here. Lower- or mixed-case uses of these key
words are not to be interpreted as carrying special significance.
4. General Requirements
All HTTP/HTTPS [RFC9110] [RFC9112] connections specified throughout
this document MUST use HTTPS. Both HTTPS and all SIP connections
MUST use TLS conforming to at least [RFC7525] and MUST support
[RFC8446].
All text data payloads not otherwise constrained by a specification
in another standards document MUST be encoded as Unicode UTF-8.
Implementations MUST support IPv4 and IPv6. Dual-stack support is
NOT required, and provider implementations MAY support separate
interfaces for IPv4 and IPv6 by having more than one server in the
appropriate SRV record where there is either an A or AAAA record in
each server DNS record but not both. The same version of IP MUST be
used for both signaling and media of a call unless Interactive
Connectivity Establishment (ICE) [RFC8445] is used; in which case,
candidates may explicitly offer IPv4, IPv6, or both for any media
stream.
5. SIP Signaling
Implementations of the RUE interface MUST conform to the following
core SIP standards:
* [RFC3261] (Base SIP)
* [RFC3263] (Locating SIP Servers)
* [RFC3264] (Offer/Answer)
* [RFC3840] (User Agent Capabilities)
* [RFC5626] (Outbound)
* [RFC8866] (Session Description Protocol)
* [RFC3323] (Privacy)
* [RFC3605] (RTCP Attribute in SDP)
* [RFC3311] (UPDATE Method)
* [RFC5393] (Loop-Fix)
* [RFC5658] (Record-Route Fix)
* [RFC5954] (ABNF Fix)
* [RFC3960] (Early Media)
* [RFC6442] (Geolocation Header Field)
In the above documents, the RUE device conforms to the requirements
of a SIP user agent, and the provider conforms to the requirements of
the registrar and proxy server where the document specifies different
behavior for different roles. For providers offering a video mail
service, [RFC6665] (SIP Events) MUST be implemented to support the
Message-Waiting Indicator (MWI) (see Section 8).
In addition, implementations MUST conform to:
* [RFC3327] (Path Header Field)
* [RFC8445] and [RFC8839] (ICE)
* [RFC3326] (Reason Header Field)
* [RFC3515] (REFER Method)
* [RFC3891] (Replaces Header Field)
* [RFC3892] (Referred-By Header Field)
Implementations MUST implement full ICE, although they MAY interwork
with user agents that implement ICE-lite.
Implementations MUST include a "User-Agent" header field uniquely
identifying the RUE application, platform, and version in all SIP
requests and MUST include a "Server" header field with the same
content in SIP responses.
Implementations intended to support mobile platforms MUST support
[RFC8599] and MUST use it as at least one way to support waking up
the client from the background state.
The SIP signaling for registration and placing/receiving calls
depends on the configuration of various values into the RUE device.
Section 9.2 describes the configuration mechanism that provides
values that are used in the signaling. When the device starts, the
configuration mechanism is run, which retrieves the configuration
data; then, SIP registration occurs using the values from the
configuration. After registration, calls may be sent or received by
the RUE device.
5.1. Registration
The RUE MUST register with a SIP registrar, following [RFC3261] and
[RFC5626], at a provider it has an account with. If the
configuration (see Section 9.2) contains multiple "outbound-proxies"
in "RueConfigurationData", then the RUE MUST use them as specified in
[RFC5626] to establish multiple flows.
The Request-URI for the REGISTER request MUST contain the "provider-
domain" from the configuration. The To URI and From URI MUST be
identical URIs and formatted as follows:
* if "user-name" is provided: "username@provider-domain"
* if "user-name" is not provided: as specified in Section 5.4, use
"phone-number" and "provider-domain" from the configuration
The RUE determines the URI to resolve by initially determining if one
or more "outbound-proxies" are configured. If they are configured,
the URI will be that of one of the "outbound-proxies". If no
"outbound-proxies" are configured, the URI will be the Request-URI
from the REGISTER request. The RUE extracts the domain from that URI
and consults the DNS record for that domain. The DNS entry MUST
contain NAPTR records conforming to [RFC3263]. One of those NAPTR
records MUST specify TLS as the preferred transport for SIP. For
example, a DNS NAPTR query for "sip: p1.red.example.net" could
return:
IN NAPTR 50 50 "s" "SIPS+D2T" "" _sips._tcp.p1.red.example.net
IN NAPTR 90 50 "s" "SIP+D2T" "" _sip._tcp.p1.red.example.net
If the RUE receives a 439 (First Hop Lacks Outbound Support) response
to a REGISTER request, it MUST reattempt registration without using
the outbound mechanism.
The registrar MAY authenticate the RUE using SIP digest
authentication. The credentials to be used MUST come from the
configuration in Section 9.2: "user-name" if provided or "phone-
number" if user-name is not provided, and "sip-password". This
"user-name"/"sip-password" combination SHOULD NOT be the same as that
used for other purposes, except as expressly described below, such as
retrieving the RUE configuration or logging into the provider's
customer service portal. [RFC8760] MUST be supported by all
implementations, and SHA-512 digest algorithms MUST be supported.
If the registration request fails with an indication that credentials
from the configuration are invalid, then the RUE MUST retrieve a
fresh version of the configuration. If credentials from a freshly
retrieved configuration are found to be invalid, then the RUE MUST
cease attempts to register and inform the RUE user of the problem.
Support for multiple simultaneous registrations with multiple
providers by the RUE is OPTIONAL for the RUE (and providers do not
need any support for this option).
Multiple simultaneous RUE SIP registrations from different RUE
devices with the same SIP URI SHOULD be permitted by the provider.
The provider MAY limit the total number of simultaneous
registrations. When a new registration request is received that
results in exceeding the limit on simultaneous registrations, the
provider MAY then prematurely terminate another registration;
however, it SHOULD NOT do this if it would disconnect an active call.
If a provider prematurely terminates a registration to reduce the
total number of concurrent registrations with the same URI, it SHOULD
take some action to prevent the affected RUE from automatically re-
registering and re-triggering the condition.
5.2. Session Establishment
5.2.1. Normal Call Origination
After initial SIP registration, the RUE adheres to SIP [RFC3261]
basic call flows, as documented in [RFC3665].
A RUE device MUST route all outbound calls through an outbound proxy
if configured.
The SIP URIs in the To field and the Request-URI MUST be formatted as
specified in Section 5.4 using the destination phone number or as SIP
URIs as provided in the configuration (Section 9.2). The domain
field of the URIs SHOULD be the "provider-domain" from the
configuration (e.g., sip:+15551234567@red.example.com;user=phone),
except that an anonymous call would not use the provider domain.
Anonymous calls MUST be supported by all implementations. An
anonymous call is signaled per [RFC3323].
The From URI MUST be formatted as specified in Section 5.4, using the
"phone-number" and "provider-domain" from the configuration. It
SHOULD also contain the display-name from the configuration when
present. (Please refer to Section 9.2.)
Negotiated media MUST follow the requirements specified in Section 6
of this document.
To allow time for an unanswered call to time out and direct it to a
videomail server, the User Agent Client MUST NOT impose a time limit
less than the default SIP INVITE transaction timeout of 3 minutes.
5.2.2. Dial-Around Origination
Providers and RUE devices MUST support both one-stage and two-stage
dial-around.
Outbound dial-around calls allow a RUE user to select any provider to
provide interpreting services for any call. "Two-stage" dial-around
calls involve the RUE calling a telephone number that reaches the
dial-around provider and using signing or dual-tone multi-frequency
(DTMF) to provide the called party's telephone number. In two-stage
dial-around, the To URI is the "front-door" URI (see Section 9.2) in
"ProviderConfigurationData" of the dial-around provider. The RUE
Provider Selection service (Section 9.1) can be used by the RUE to
obtain a list of providers; then, the provider configuration
(Section 9.2.1) can be used to find the front-door URI for each of
these providers.
One-stage dial-around is a method where the called party's telephone
number is provided in the To URI and the Request-URI, using the
domain of the dial-around provider.
For one-stage dial-around, the RUE MUST follow the procedures in
Section 5.2.1 with the following exception: the domain part of the
SIP URIs in the To field and the Request-URI MUST be the domain of
the dial-around provider discovered as described in Section 9.1.
The following is a partial example of a one-stage dial-around call
from VRS user +1-555-222-0001 hosted by red.example.com to a hearing
user +1-555-123-4567 using dial-around to green.example.com for the
relay service. Only important details of the messages are shown, and
many header fields have been omitted:
,-+-. ,----+----. ,-----+-----.
|RUE| |Default | |Dial-Around|
| | |Provider | | Provider |
`-+-' `----+----' `-----+-----'
| | |
| [1] INVITE | |
|-------------->| [2] INVITE |
| |-------------->|
Message Details:
[1] INVITE Rue -> Default Provider
INVITE sip:+15551234567@green.example.net;user=phone SIP/2.0
To: <sip:+15551234567@green.example.net;user=phone>
From: "Bob Smith" <sip:+15552220001@red.example.net;user=phone>
[2] INVITE Default Provider -> Dial-Around Provider
INVITE sip:+15551234567@green.example.net;user=phone SIP/2.0
To: <sip:+15551234567@green.example.net;user=phone>
From: "Bob Smith" sip:+15552220001@red.example.net;user=phone
P-Asserted-Identity: sip:+15552220001@red.example.net
Figure 1: One-Stage Dial-Around
5.2.3. RUE Contact Information
To identify the owner of a RUE, the initial INVITE for a call from a
RUE, or the 200 OK the RUE uses to accept a call, identifies the
owner by sending a Call-Info header field with a purpose parameter of
"rue-owner". The URI MAY be an HTTPS URI or Content-ID URL. The
latter is defined by [RFC2392] to locate message body parts. This
URI type is present in a SIP message to convey the RUE ownership
information as a MIME body. The form of the RUE ownership
information is an xCard [RFC6351]. Please refer to [RFC6442] for an
example of using content indirection URLs in SIP messages. Note that
use of the content indirection URL usually implies multiple message
bodies ("mime/multipart"). The RUE owner is the entity that has
local control over the device that is not necessarily the legal owner
of the equipment. It often is the user, but that is not necessarily
true. While no minimum fields in the xCard are specified, the name,
address, phone number, and email address of the RUE owner are
expected to be supplied.
5.2.4. Incoming Calls
The RUE MUST only accept inbound calls sent to it by a proxy
mentioned in the configuration.
If multiple simultaneous RUE SIP registrations from different RUE
devices with the same SIP URI exist, the provider MUST parallel fork
the call to all registered RUEs so that they ring at the same time.
The first RUE to reply with a 200 OK answers the call, and the
provider MUST cancel other call branches using a CANCEL request.
5.2.5. Emergency Calls
Implementations MUST conform to [RFC6881] for handling of emergency
calls, except that if the device is unable to determine its own
location, it MAY send the emergency call without a Geolocation header
field and without a Route header field (since it would be unable to
query the Location-to-Service Translation (LoST) server for a route,
per [RFC6881]). If an emergency call arrives at the provider without
a Geolocation header field, the provider MUST supply location by
adding the Geolocation header field and MUST supply the route by
querying the LoST server with that location.
If the emergency call is to be handled using existing country-
specific procedures, the provider is responsible for modifying the
INVITE to conform to the country-specific requirements. In this
case, the location MAY be extracted from the [RFC6881] conformant
INVITE and used to propagate it to the appropriate country-specific
entities. If the configuration specifies it, an implementation of a
RUE device MAY send a Geolocation header field containing its
location in the REGISTER request. If implemented, users MUST be
offered an opt-out. Country-specific procedures might require the
location to be preloaded in some entity prior to placing an emergency
call; however, the RUE may have a more accurate and timely device
location than the manual, preloaded entry. That information MAY be
used to populate the location to appropriate country-specific
entities. Re-registration SHOULD be used to update the location, so
long as the rate of re-registration is limited if the device is
moving.
Implementations MUST implement additional data [RFC7852]. RUE
devices MUST implement data provider information, device information,
and owner/subscriber information blocks.
5.3. Mid-Call Signaling
Implementations MUST support re-INVITE to renegotiate media session
parameters (among other uses). Per Section 6.8, implementations MUST
be able to support an INFO message for full frame refresh for devices
that do not support SRTCP (please refer to Section 6.1).
Implementations MUST support an in-dialog REFER (as described in
[RFC3515] and updated by [RFC7647], and including support for
norefersub per [RFC4488]) with the Replaces header field [RFC3891] to
enable call transfer.
5.4. URI Representation of Phone Numbers
SIP URIs constructed from non-URI sources (dial strings) and sent to
SIP proxies by the RUE MUST be represented as follows, depending on
whether they can be represented as an E.164 number. In this section,
"expressed as an E.164 number" includes numbers, such as toll-free
numbers that are not actually E.164 numbers but have the same format.
A dial string that can be expressed as an E.164 phone number MUST be
represented as a SIP URI with a URI ";user=phone" tag. The user part
of the URI MUST be in conformance with "global-number", as defined in
[RFC3966]. The user part MUST NOT contain any "visual-separator"
characters, as defined in [RFC3966].
Dial strings that cannot be expressed as E.164 numbers MUST be
represented as dialstring URIs, as specified by [RFC4967], e.g.,
sip:411@red.example.net;user=dialstring.
The domain part of relay service URIs and User Address of Records
(AoR) MUST resolve (per [RFC3263]) to globally routable IPv4 and/or
IPv6 addresses.
5.5. Transport
Implementations MUST conform to [RFC8835], except for its guidance on
the WebRTC data channel, which this specification does not use. See
Section 6.2 for how RUE supports real-time text without the data
channel.
Implementations MUST support SIP outbound [RFC5626] (please also
refer to Section 5.1).
6. Media
This specification adopts the media specifications for WebRTC
[RFC8825]. Where WebRTC defines how interactive media communications
may be established using a browser as a client, this specification
assumes a normal SIP call. Various RTPs, RTCPs, SDPs, and specific
media requirements specified for WebRTC are adopted for this
document. Explicit requirements from the WebRTC suite of documents
are described below .
To use WebRTC with this document, a gateway that presents a WebRTC
server interface towards a browser and a RUE client interface towards
a provider is assumed. The gateway would interwork signaling and, as
noted below, interwork at least any real-time text media in order to
allow a standard browser-based WebRTC client to be a VRS client. The
combination of the browser client and the gateway would be a RUE
user. This document does not specify the gateway.
The following sections specify the WebRTC documents to which
conformance is required. "Mandatory to Implement" means a conforming
implementation MUST implement the specified capability. It does not
mean that the capability must be used in every session. For example,
Opus is a Mandatory-to-Implement audio codec, and all conforming
implementations must support Opus. However, an implementation
presenting a call across the RUE interface (where the call originates
in the PSTN or an older, non-RUE-compatible device, which only offers
G.711 audio) does not need to include the Opus codec in the offer,
since it cannot be used with that call. Conformance to this document
allows end-to-end RTCP and media congestion control for audio and
video.
6.1. SRTP and SRTCP
Implementations MUST support [RFC8834], except that MediaStreamTracks
are not used. Implementations MUST conform to Section 6.4 of
[RFC8827].
6.2. Text-Based Communication
Implementations MUST support real-time text [RFC4102] [RFC4103] via
T.140 media. One original and two redundant generations MUST be
transmitted and supported with a 300 ms transmission interval.
Implementations MUST support [RFC9071], especially for emergency
calls. Note that [RFC4103] is not how real-time text is transmitted
in WebRTC, and some form of transcoder would be required to interwork
real-time text in the data channel of WebRTC to [RFC4103] real-time
text.
Transport of T.140 real-time text in WebRTC is specified in
[RFC8865], using the WebRTC data channel. [RFC8865] also has some
advice on how gateways between [RFC4103] and [RFC8865] should
operate. It is RECOMMENDED that [RFC8865], including multiparty
support, be used for communication with browser-based WebRTC
implementations. Implementations MUST support [RFC9071].
6.3. Video
Implementations MUST conform to [RFC7742] with the following
exceptions: only H.264, as specified in [RFC7742], is Mandatory to
Implement, and VP8 support is OPTIONAL at both the device and
providers. This is because backwards compatibility is desirable, and
older devices do not support VP8.
6.4. Audio
Implementations MUST conform to [RFC7874].
6.5. DTMF Digits
Implementations MUST support the "audio/telephone-event" [RFC4733]
media type. They MUST support conveying event codes 0 through 11
(DTMF digits "0"-"9", "*","#") defined in Table 7 of [RFC4733].
Handling of other tones is OPTIONAL.
6.6. Session Description Protocol
The SDP offers and answers MUST conform to the SDP rules in [RFC8829]
except that the RUE interface uses SIP transport for SDP. The SDP
for real-time text MUST specify the T.140 payload type [RFC4103].
6.7. Privacy
The RUE MUST provide for user privacy by implementing a local one-way
mute, without signaling, for both audio and video. However, RUE MUST
maintain any states in the network (e.g., NAT bindings) by
periodically sending media packets on all active media sessions
containing silence, comfort noise, blank screen, etc., per [RFC6263].
6.8. Negative Acknowledgement, Picture Loss Indicator, and Full
Intraframe Request Features
The NACK, FIR, and Picture Loss Indicator (PLI) features, as
described in [RFC4585] and [RFC5104], MUST be implemented.
Availability of these features MUST be announced with the "ccm"
feedback value. NACK should be used when negotiated and conditions
warrant its use and the other end supports it. Signaling picture
losses as a PLI should be preferred. FIR should be used only in
situations where not sending a decoder refresh point would render the
video unusable for the users, as per Section 4.3.1.2 of [RFC5104].
For backwards compatibility with calling devices that do not support
the foregoing methods, implementations MUST implement SIP INFO
messages to send and receive XML-encoded Picture Fast Update messages
according to [RFC5168].
7. Contacts
7.1. CardDAV Login and Synchronization
Support of vCard Extensions to WebDAV (CardDAV) by providers is
OPTIONAL.
The RUE MUST and providers MAY be able to synchronize the user's
contact directory between the RUE endpoint and one maintained by the
user's VRS provider using CardDAV [RFC6352] [RFC6764].
The configuration (see Section 9.2) RueConfigurationData MAY supply a
"carddav-username" and "carddav-domain" identifying a CardDAV server
and address book for this account, plus an optional "carddav-
password".
To access the CardDAV server and address book, the RUE MUST follow
Section 6 of [RFC6764], using the configured carddav-username and
carddav-domain in place of an email address. If the request triggers
a challenge for digest authentication credentials, the RUE MUST
continue using matching carddav-username and carddav-password from
the configuration. If no carddav-username and carddav-password are
configured, the RUE MUST use the SIP user-name and sip-password from
the configuration. If the SIP credentials fail, the RUE MUST query
the user.
Synchronization using CardDAV MUST be a two-way synchronization
service, with proper handling of asynchronous adds, changes, and
deletes at either end of the transport channel.
The RUE MAY support other CardDAV services.
7.2. Contacts Import/Export Service
Implementations MUST be able to export/import the list of contacts in
xCard [RFC6351] XML format.
The RUE accesses this service via the "contacts-uri" in the
configuration. The URL MUST resolve to identify a web server
resource that imports/exports contact lists for authorized users.
The RUE stores/retrieves the contact list (address book) by issuing
an HTTPS POST or GET request. If the request triggers a challenge
for digest authentication credentials, the RUE MUST attempt to
continue using the "contacts-username" and "contacts-password" from
the configuration. If no contacts-username is configured, the SIP
user-name from the configuration is used; if the SIP user-name is not
configured, the phone-number is used. If user-name or phone-number
is used, the sip-password is used to authenticate to the contact list
server.
8. Video Mail
Support for video mail includes a retrieval mechanism and a Message-
Waiting Indicator (MWI). Message storage is not specified by this
document. RUE devices MUST support message retrieval using a SIP
call to a specified SIP URI using DTMF to manage the mailbox, as well
as a browser-based interface reached at a specified HTTPS URI. If a
provider supports video mail, at least one of these mechanisms MUST
be supported. RUE devices MUST support both. See Section 9.2 for
how the URI to reach the retrieval interface is obtained.
Implementations MUST support subscriptions to "message-summary"
events [RFC3842] to the URI specified in the configuration.
Providers MUST support MWI if they support video mail. RUE devices
MUST support MWI.
The "videomail" and "mwi" properties in the configuration (see
RueConfigurationData in Section 9.2.2) give the URIs for message
retrieval and "message-summary" subscription.
In notification bodies, if detailed message summaries are available,
messages with video MUST be reported using "message-context-class
multimedia-message", as defined in [RFC3458] .
9. Provisioning and Provider Selection
To simplify how users interact with RUE devices, the RUE interface
separates provisioning into two parts. One provides a directory of
providers so that a user interface can allow easy provider selection
either for registering or for dial-around. The other provides
configuration data for the device for each provider.
9.1. RUE Provider Selection
To allow the user to select a relay service, the RUE MAY at any time
obtain (typically on startup) a list of providers that provide
service in a country. IANA has established a registry that contains
a two-letter country code and a list entry point string (see
Section 10.1). The entry point, when used with the following OpenAPI
interface, returns a list of provider names for a country code
suitable for display, with a corresponding entry point to obtain
information about that provider. No mechanism to determine the
country where the RUE is located is specified in this document.
Typically, the country is the home country of the user but may be a
local country while traveling. Some countries allow support from
their home country when traveling abroad. Regardless, the RUE device
will need to allow the user to choose the country.
Each country that supports VRS using this specification MAY support
the provider list. This document does not specify who maintains the
list. Some possibilities are a regulator or an entity designated by
a regulator, an agreement among providers to provide the list, or a
user group.
The interface to obtain the list of providers is described by an
OpenAPI [OpenAPI] interface description. In that interface
description, the "servers" component includes an occurrence of
"localhost". The value from the registry of the "list entry point"
string for the desired country is substituted for "localhost" in the
"servers" component to obtain the server URI prefix of the interface
to be used to obtain the list of providers for that country. The
"Providers" path then specifies the rest of the URI used to obtain
the list. For example, if the list entryPoint is "example.com/api",
the provider list would be obtained from
https://example.com/api/rum/v1/Providers.
The V1.0 "ProviderList" is a JSON object consisting of an array where
each entry describes one provider. Each entry consists of the
following items:
* name: This parameter contains the text label identifying the
provider and is meant to be displayed to the human VRS user.
* providerEntryPoint: A string used for configuration purposes by
the RUE (as discussed in Section 9.2). The string MUST start with
a domain but MAY include other URI path elements after the domain.
The VRS user interacts with the RUE to select from the provider list
one or more providers with whom the user has already established an
account, wishes to establish an account, or wishes to use the
provider for a one-stage dial-around.
{
"providers": [
{
"name": "Red",
"entryPoint": "red.example.net"
},
{
"name": "Green",
"entryPoint": "green.example.net"
},
{
"name": "Blue",
"entryPoint": "blue.example.net"
}
]
}
Figure 2: Example of a ProviderList JSON Object
9.2. RUE Configuration Service
A RUE device may retrieve a provider configuration using a simple
HTTPs web service. There are two entry points. One is used without
user credentials, and the response includes configuration data for
new user signup and dial-around. The other uses a locally stored
username and password that results from a new user signup to
authenticate to the interface and returns configuration data for the
RUE.
The interface to obtain configuration data is described by an OpenAPI
[OpenAPI] interface description. In that interface description, the
"servers" component string includes an occurrence of "localhost".
The entry point string obtained from the provider list (Section 9.1)
is substituted for "localhost" to obtain the server prefix of the
interface. The path then specifies the rest of the URI used to
obtain the list. For example, if the entryPoint from the provider
list is "red.example.net", the provider configuration would be
obtained from https://red.example.net/rum/V1/ProviderConfig and the
RUE configuration would be obtained from
https://red.example.net/rum/V1/RueConfig.
In both the queries, an optional parameter may be provided to the
interface, which is an API Key (apiKey). The implementation MAY have
an apiKey obtained from the provider and specific to the
implementation. The method used to obtain the apiKey is not
specified in this document. The provider MAY refuse to provide
service to an implementation presenting an apiKey it does not
recognize.
Also in both queries, the RUE device provides a client-provided,
required parameter, which contains an instance identifier
(instanceId). This parameter MUST be the same value each time this
instance (same implementation on same device) queries the interface.
This MAY be used by the provider, for example, to associate a
location with the instance for emergency calls. This should be
globally unique. A Universally Unique Identifier (UUID) is
suggested.
For example, a query for the RUE configuration could be
https://red.example.net/rum/V1/RueConfig?apiKey="t65667Ajjss90uuuDisK
t8999"&instanceId="5595b5a3-0687-4b8e-9913-a7f2a04fb7bd"
The data returned is a JSON object consisting of key/value
configuration parameters to be used by the RUE.
The configuration data payload includes the following data items.
Items not noted as (OPTIONAL) are REQUIRED. If other unexpected
items are found, they MUST be ignored.
9.2.1. Provider Configuration
* signup: (OPTIONAL) an array of JSON objects consisting of:
- language: entry from the IANA "Language Subtag Registry"
(https://www.iana.org/assignments/language-subtag-registry).
Normally, this would be a written language tag.
- uri: a URI to the website for creating a new account in the
supported language. The new user signup URI may only initiate
creation of a new account. Various vetting, approval, and
other processes may be needed, which could take time, before
the account is established. The result of creating a new
account would be account credentials (e.g., username and
password), which would be manually entered into the RUE device
that forms the authentication parameters for the RUE
configuration service described below in Section 9.2.2.
* dial-around: an array of JSON objects consisting of:
- language: entry from the IANA "Language Subtag Registry".
Normally, this would be a sign language tag.
- front-door: a URI to a queue of interpreters supporting the
specified language for a two-stage dial-around.
- oneStage: a URI that can be used with a one-stage dial-around
(Section 5.2.2) using an interpreter supporting the specified
language.
* helpDesk: (OPTIONAL) an array of JSON objects consisting of:
- language: entry from the IANA "Language Subtag Registry".
Normally, this would be a sign language tag; although, it could
be a written language tag if the help desk only supports a chat
interface.
- uri: a URI that reaches a help desk for callers supporting the
specified language. The URI MAY be a SIP URI for help provided
with a SIP call or MAY be an HTTPS URI for help provided with a
browser interface.
A list is specified so that the provider can offer multiple
choices to users for language and interface styles.
9.2.2. RUE Configuration
* lifetime: (OPTIONAL) specifies how long (in seconds) the RUE MAY
cache the configuration values. Values may not be valid when
lifetime expires. If the RUE caches configuration values, it MUST
cryptographically protect them against unauthorized disclosure
(e.g., by other applications on the platform the RUE is built on).
The RUE SHOULD retrieve a fresh copy of the configuration before
the lifetime expires or as soon as possible after it expires. The
lifetime is not guaranteed, i.e., the configuration may change
before the lifetime value expires. In that case, the provider MAY
indicate this by generating authorization challenges to requests
and/or prematurely terminating a registration. Emergency calls
MUST continue to work. If not specified, the RUE MUST fetch new
configuration data every time it starts.
* sip-password: (OPTIONAL) a password used for SIP, STUN, and TURN
authentication. The RUE device retains this data, which it MUST
cryptographically protect against unauthorized disclosure (e.g.,
by other applications on the platform the RUE is built on). If it
is not supplied but was supplied on a prior invocation of this
interface, the most recently supplied password MUST be used. If
it was never supplied, the password used to authenticate to the
configuration service is used for SIP, as well as STUN and TURN
servers mentioned in this configuration.
* phone-number: (REQUIRED) the telephone number (in E.164 format)
assigned to this subscriber. This becomes the user portion of the
SIP URI identifying the subscriber.
* user-name: (OPTIONAL) a username used for authenticating to the
provider. If not provided, phone-number is used.
* display-name: (OPTIONAL) a human-readable display name for the
subscriber.
* provider-domain: (REQUIRED) the domain for the provider. This
becomes the server portion of the SIP URI identifying the
subscriber.
* outbound-proxies: (OPTIONAL) an array of URIs of SIP proxies to be
used when sending requests to the provider.
* mwi: (OPTIONAL) a URI identifying a SIP event server that
generates "message-summary" events for this subscriber.
* videomail: (OPTIONAL) a SIP or HTTPS URI that can be used to
retrieve video mail messages.
* contacts: (OPTIONAL) an HTTPS URI ("contacts-uri"), (OPTIONAL)
"contacts-username", and "contacts-password" that may be used to
export (retrieve) the subscriber's complete contact list managed
by the provider. At least the URI MUST be provided if the
subscriber has contacts. If contact-username and contacts-
password are not supplied, the sip credentials are used. If the
contacts-username is provided, contacts-password MUST be provided.
If contacts-password is provided, contacts-username MUST be
provided.
* carddav: (OPTIONAL) an address ("carddav-domain"), (OPTIONAL)
"carddav-username", and "carddav-password" identifying a "CardDAV"
server and account that can be used to synchronize the RUE's
contact list with the contact list managed by the provider. If
carddav-username and carddav-password are not supplied, the sip
credentials are used. If the carddav-username is provided,
carddav-password MUST be provided. If carddav-password is
provided, carddav-username MUST be provided.
* sendLocationWithRegistration: (OPTIONAL) true if the RUE should
send a Geolocation header field with REGISTER; false if it should
not. Defaults to false if not present.
* ice-servers: (OPTIONAL) an array of server types and URLs
identifying STUN and TURN servers available for use by the RUE for
establishing media streams in calls via the provider. If the same
URL provides both STUN and TURN services, it MUST be listed twice,
each with different server types.
9.2.3. Versions
Both web services also have a simple version mechanism that returns a
list of versions of the web service it supports. This document
describes version 1.0. Versions are displayed as a major version,
followed by a period ".", followed by a minor version, where the
major and minor versions are integers. A backwards compatible change
within a major version MAY increment only the minor version number.
A non-backwards, compatible change MUST increment the major version
number. Backwards compatibility applies to both the server and the
client. Either may have any higher or lower minor revision and
interoperate with its counterpart with the same major version. To
achieve backwards compatibility, implementations MUST ignore any
object members they do not implement. Minor version definitions
SHALL only add objects, optional members of existing objects, and
non-mandatory-to-use functions and SHALL NOT delete or change any
objects, members of objects, or functions. This means an
implementation of a specific major version and minor version is
backwards compatible with all minor versions of the major version.
The version mechanism returns an array of supported versions, one for
each major version supported, with the minor version listed being the
highest-supported minor version.
Unless the per-country provider list service is operated by a
provider at the same base URI as that provider's configuration
service, the version of the configuration service MAY be different
from the version of the provider list service.
{
"versions": [
{
"major": 1,
"minor": 6
},
{
"major": 2,
"minor": 13
},
{
"major": 3,
"minor": 2
}
]
}
Figure 3: Example of a Version JSON Object
9.2.4. Examples
{
"signUp": [
{ "language" : "en", "uri" : "https:hello-en.example.net"},
{ "language" : "es", "uri" : "https:hello-es.example.net"} ] ,
"dial-around": [
{ "language" : "en", "front-door" : "sip:fd-en.example.net",
"oneStage" : "sip:1stg-eng.example.com" } ,
{ "language" : "es", "front-door" : "sip:fd-es.example.net",
"oneStage" : "sip:1stg-spn.example.com" } ] ,
"helpDesk": [
{ "language" : "en", "uri" : "sip:help-en.example.net"} ,
{ "language" : "es", "uri" : "sip:help-es.example.net"} ]
}
Figure 4: Example JSON Provider Configuration Payload
{
"lifetime": 86400,
"display-name" : "Bob Smith",
"phone-number": "+15551234567",
"provider-domain": "red.example.net",
"outbound-proxies": [
"sip:p1.red.example.net",
"sip:p2.red.example.net" ],
"mwi": "sip:+15551234567@red.example.net;user=phone",
"videomail": "sip:+15551234567@vm.red.example.net;user=phone",
"contacts": {
"contacts-uri":
"https://red.example.net:443/c/3617b719-2c3a-46f4-9c13",
"contacts-username": "bob",
"contacts-password": "XhOT4ch@ZEi&3u2xEYQNMO^5UGb"
},
"carddav": {
"carddav-domain": "carddav.example.com",
"carddav-username": "bob",
"carddav-password": "sj887%dd*jJty%87hyys5hHT"
},
"sendLocationWithRegistration": false,
"ice-servers": [
{"stun":"stun.red.example.com:19302" },
{"turn":"turn.red.example.com:3478"}
]
}
Figure 5: Example JSON RUE Configuration Payload
9.2.5. Using the Provider Selection and RUE Configuration Services
Together
One way to use these two services is:
1. At startup, the RUE retrieves the provider list for the country
it is located in.
2. For each provider in the list:
* If the RUE does not have credentials for that provider, if
requested by the user, use the ProviderConfig path without
credentials to obtain signup, dial-around, and help desk
information.
* If the RUE has credentials for that provider, use the
RueConfig path with the locally stored credentials to
configure the RUE for that provider.
9.3. OpenAPI Interface Descriptions
The interfaces in Sections 9.1 and 9.2 are formally specified with
OpenAPI 3.0 [OpenAPI] descriptions in YAML form.
The OpenAPI description below is normative. If there is any conflict
between the text or examples and this section, the OpenAPI
description takes precedence.
9.3.1. Provider List
openapi: 3.0.1
info:
title: RUM Provider List API
version: "1.0"
servers:
- url: https://localhost/rum/v1
paths:
/Providers:
get:
summary: Get a list of providers and domains to get
config data from
operationId: GetProviderList
responses:
'200':
description: List of providers for a country
content:
application/json:
schema:
$ref: '#/components/schemas/ProviderList'
/Versions:
servers:
- url: https://localhost/rum
description: Override base path for Versions query
get:
summary: Retrieves all supported versions
operationId: RetrieveVersions
responses:
'200':
description: Versions supported
content:
application/json:
schema:
$ref: '#/components/schemas/VersionsArray'
components:
schemas:
ProviderList:
type: object
required:
- providers
properties:
providers:
type: array
items:
type: object
required:
- name
- providerEntryPoint
properties:
name:
type: string
description: Human-readable provider name
providerEntryPoint:
type: string
description: Provider entry point for interface
VersionsArray:
type: object
required:
- versions
properties:
versions:
type: array
items:
type: object
required:
- major
- minor
properties:
major:
type: integer
format: int32
description: Version major number
minor:
type: integer
format: int32
description: Version minor number
Figure 6: Provider List OpenAPI Description (RueProviderList.yaml)
9.3.2. Configuration
openapi: 3.0.1
info:
title: RUM Configuration API
version: "1.0"
servers:
- url: https://localhost/rum/v1
paths:
/ProviderConfig:
get:
summary: Configuration data for one provider
operationId: GetProviderConfiguration
parameters:
- in: query
name: apiKey
schema:
type: string
description: API Key assigned to this implementation
- in: query
name: instanceId
schema:
type: string
required: true
description: Unique string for this implementation
on this device
responses:
'200':
description: Configuration object
content:
application/json:
schema:
$ref:
'#/components/schemas/ProviderConfigurationData'
/RueConfig:
get:
summary: Configuration data for one RUE
operationId: GetRueConfiguration
parameters:
- in: query
name: apiKey
schema:
type: string
description: API Key assigned to this implementation
- in: query
name: instanceId
schema:
type: string
required: true
description: Unique string for this implementation
on this device
responses:
'200':
description: Configuration object
content:
application/json:
schema:
$ref: '#/components/schemas/RueConfigurationData'
/Versions:
servers:
- url: https://localhost/rum
description: Override base path for Versions query
get:
summary: Retrieves all supported versions
operationId: RetrieveVersions
responses:
'200':
description: Versions supported
content:
application/json:
schema:
$ref: '#/components/schemas/VersionsArray'
components:
schemas:
ProviderConfigurationData:
type: object
required:
- dial-around
properties:
signup:
type: array
items:
type: object
required:
- language
- uri
properties:
language:
type: string
description: Entry from IANA "Language Subtag
Registry"
uri:
type: string
format: uri
description: URI to signup website supporting
this language
dial-around:
type: array
items:
type: object
required:
- language
- front-door
- oneStage
properties:
language:
type: string
description: Entry from IANA "Language Subtag
Registry"
front-door:
type: string
format: uri
description: SIP URI for two-stage dial-around
oneStage:
type: string
format: uri
description: SIP URI for one-stage dial-around
helpDesk:
type: array
items:
type: object
required:
- language
- uri
properties:
language:
type: string
description: Entry from IANA "Language Subtag
Registry"
uri:
type: string
format: uri
description: SIP URI of help desk supporting language
RueConfigurationData:
type: object
required:
- phone-number
- provider-domain
properties:
lifetime:
type: integer
description: How long (in seconds) the RUE MAY cache the
configuration values
sip-password:
type: string
phone-number:
type: string
description: Telephone number assigned this subscriber in
E.164 format
user-name:
type: string
description: A username assigned to this subscriber
display-name:
type: string
description: Display name for the subscriber
provider-domain:
type: string
description: Domain of the provider for this subscriber
outbound-proxies:
type: array
items:
type: string
format: uri
description: SIP URI of a proxy to be used when sending
requests to the provider
mwi:
type: string
format: uri
description: A URI identifying a SIP event server that
generates "message-summary" events for this subscriber
videomail:
type: string
format: uri
description: An HTTPS or SIP URI that can be used to
retrieve video mail messages
contacts:
type: object
description: Server and credentials for contact
import/export
required:
- contacts-uri
properties:
contacts-uri:
type: string
format: uri
description: An HTTPS URI that may be used to export
(retrieve) the subscriber's complete contact list
managed by the provider
contacts-username:
type: string
description: Username for authentication with the
CardDAV server. Use SIP user-name if not provided
contacts-password:
type: string
description: Password for authentication. Use provider
sip-password if not provided
carddav:
type: object
description: CardDAV server and user information that can
be used to synchronize the RUE's contact list with
the contact list managed by the provider
required:
- carddav-domain
properties:
carddav-domain:
type: string
description: CardDAV server address
carddav-username:
type: string
description: Username for authentication with the
CardDAV server. Use SIP user-name if not provided
carddav-password:
type: string
description: Password for authentication to the CardDAV
server. Use provider sip-password if not provided
sendLocationWithRegistration:
type: boolean
description: True if the RUE should send a Geolocation
header field with REGISTER; false if it should not.
Defaults to false if not present
ice-servers:
type: array
items:
type: object
required:
- server-type
- uri
properties:
server-type:
type: string
description: Server type ("stun" or "turn")
uri:
type: string
format: uri
description: URIs identifying STUN and TURN servers
available for use by the RUE for establishing
media streams in calls via the provider
VersionsArray:
type: object
required:
- versions
properties:
versions:
type: array
items:
type: object
required:
- major
- minor
properties:
major:
type: integer
format: int32
description: Version major number
minor:
type: integer
format: int32
description: Version minor number
Figure 7: Configuration OpenAPI Description (RueConfiguration.yaml)
10. IANA Considerations
10.1. RUE Provider List Registry
IANA has created the "RUE Provider List" registry. The registration
policy is "Expert Review" [RFC8126]. A regulator operated or
designated list interface operator is preferred. Otherwise, evidence
that the proposed list interface operator will provide a complete
list of providers is required to add the entry to the registry.
Updates to the registry are permitted if the expert determines that
the proposed URI provides a more accurate list than the existing
entry. Each entry has two fields; values for both MUST be provided
when registering or updating an entry:
* country code: a two-letter ISO93166 country code
* list entry point: a string is used to compose the URI to the
provider list interface for that country
10.2. Registration of Rue-Owner Value of the Purpose Parameter
This document defines the new predefined value "rue-owner" for the
"purpose" header field parameter of the Call-Info header field. The
use for rue-owner is defined in Section 5.2.3. IANA has added a
reference to this document in the "Header Field Parameters and
Parameter Values" subregistry of the "Session Initiation Protocol
(SIP) Parameters" for the header field "Call-Info" and parameter name
"purpose".
Header Field: Call-Info
Parameter Name: purpose
Predefined Values: Yes
11. Security Considerations
The RUE is required to communicate with servers on public IP
addresses and specific ports to perform its required functions. If
it is necessary for the RUE to function on a corporate or other
network that operates a default-deny firewall between the RUE and
these services, the user must arrange with their network manager for
passage of traffic through such a firewall in accordance with the
protocols and associated SRV records as exposed by the provider.
Because VRS providers may use different ports for different services,
these port numbers may differ from provider to provider.
This document requires implementation and use of a number of other
specifications in order to fulfill the RUE profile; the security
considerations described in those documents apply accordingly to the
RUE interactions.
When a CA participates in a conversation, they have access to the
content of the conversation even though it is nominally a
conversation between the two endpoints. There is an expectation that
the CA will keep the communication contents in confidence. This is
usually defined by contractual or legal requirements.
Since different providers (within a given country) may have different
policies, RUE implementations MUST include a user interaction step to
select from available providers before proceeding to actually
register with any given provider.
12. Normative References
[OpenAPI] Miller, D., Whitlock, J., Gardiner, M., Ralphson, M.,
Ratovsky, R., and U. Sarid, "OpenAPI Specification
v3.0.1", December 2017,
<https://spec.openapis.org/oas/v3.0.1>.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC2392] Levinson, E., "Content-ID and Message-ID Uniform Resource
Locators", RFC 2392, DOI 10.17487/RFC2392, August 1998,
<https://www.rfc-editor.org/info/rfc2392>.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261,
DOI 10.17487/RFC3261, June 2002,
<https://www.rfc-editor.org/info/rfc3261>.
[RFC3263] Rosenberg, J. and H. Schulzrinne, "Session Initiation
Protocol (SIP): Locating SIP Servers", RFC 3263,
DOI 10.17487/RFC3263, June 2002,
<https://www.rfc-editor.org/info/rfc3263>.
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
with Session Description Protocol (SDP)", RFC 3264,
DOI 10.17487/RFC3264, June 2002,
<https://www.rfc-editor.org/info/rfc3264>.
[RFC3311] Rosenberg, J., "The Session Initiation Protocol (SIP)
UPDATE Method", RFC 3311, DOI 10.17487/RFC3311, October
2002, <https://www.rfc-editor.org/info/rfc3311>.
[RFC3323] Peterson, J., "A Privacy Mechanism for the Session
Initiation Protocol (SIP)", RFC 3323,
DOI 10.17487/RFC3323, November 2002,
<https://www.rfc-editor.org/info/rfc3323>.
[RFC3326] Schulzrinne, H., Oran, D., and G. Camarillo, "The Reason
Header Field for the Session Initiation Protocol (SIP)",
RFC 3326, DOI 10.17487/RFC3326, December 2002,
<https://www.rfc-editor.org/info/rfc3326>.
[RFC3327] Willis, D. and B. Hoeneisen, "Session Initiation Protocol
(SIP) Extension Header Field for Registering Non-Adjacent
Contacts", RFC 3327, DOI 10.17487/RFC3327, December 2002,
<https://www.rfc-editor.org/info/rfc3327>.
[RFC3458] Burger, E., Candell, E., Eliot, C., and G. Klyne, "Message
Context for Internet Mail", RFC 3458,
DOI 10.17487/RFC3458, January 2003,
<https://www.rfc-editor.org/info/rfc3458>.
[RFC3515] Sparks, R., "The Session Initiation Protocol (SIP) Refer
Method", RFC 3515, DOI 10.17487/RFC3515, April 2003,
<https://www.rfc-editor.org/info/rfc3515>.
[RFC3605] Huitema, C., "Real Time Control Protocol (RTCP) attribute
in Session Description Protocol (SDP)", RFC 3605,
DOI 10.17487/RFC3605, October 2003,
<https://www.rfc-editor.org/info/rfc3605>.
[RFC3840] Rosenberg, J., Schulzrinne, H., and P. Kyzivat,
"Indicating User Agent Capabilities in the Session
Initiation Protocol (SIP)", RFC 3840,
DOI 10.17487/RFC3840, August 2004,
<https://www.rfc-editor.org/info/rfc3840>.
[RFC3842] Mahy, R., "A Message Summary and Message Waiting
Indication Event Package for the Session Initiation
Protocol (SIP)", RFC 3842, DOI 10.17487/RFC3842, August
2004, <https://www.rfc-editor.org/info/rfc3842>.
[RFC3891] Mahy, R., Biggs, B., and R. Dean, "The Session Initiation
Protocol (SIP) "Replaces" Header", RFC 3891,
DOI 10.17487/RFC3891, September 2004,
<https://www.rfc-editor.org/info/rfc3891>.
[RFC3892] Sparks, R., "The Session Initiation Protocol (SIP)
Referred-By Mechanism", RFC 3892, DOI 10.17487/RFC3892,
September 2004, <https://www.rfc-editor.org/info/rfc3892>.
[RFC3960] Camarillo, G. and H. Schulzrinne, "Early Media and Ringing
Tone Generation in the Session Initiation Protocol (SIP)",
RFC 3960, DOI 10.17487/RFC3960, December 2004,
<https://www.rfc-editor.org/info/rfc3960>.
[RFC3966] Schulzrinne, H., "The tel URI for Telephone Numbers",
RFC 3966, DOI 10.17487/RFC3966, December 2004,
<https://www.rfc-editor.org/info/rfc3966>.
[RFC4102] Jones, P., "Registration of the text/red MIME Sub-Type",
RFC 4102, DOI 10.17487/RFC4102, June 2005,
<https://www.rfc-editor.org/info/rfc4102>.
[RFC4103] Hellstrom, G. and P. Jones, "RTP Payload for Text
Conversation", RFC 4103, DOI 10.17487/RFC4103, June 2005,
<https://www.rfc-editor.org/info/rfc4103>.
[RFC4488] Levin, O., "Suppression of Session Initiation Protocol
(SIP) REFER Method Implicit Subscription", RFC 4488,
DOI 10.17487/RFC4488, May 2006,
<https://www.rfc-editor.org/info/rfc4488>.
[RFC4585] Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
"Extended RTP Profile for Real-time Transport Control
Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585,
DOI 10.17487/RFC4585, July 2006,
<https://www.rfc-editor.org/info/rfc4585>.
[RFC4733] Schulzrinne, H. and T. Taylor, "RTP Payload for DTMF
Digits, Telephony Tones, and Telephony Signals", RFC 4733,
DOI 10.17487/RFC4733, December 2006,
<https://www.rfc-editor.org/info/rfc4733>.
[RFC4967] Rosen, B., "Dial String Parameter for the Session
Initiation Protocol Uniform Resource Identifier",
RFC 4967, DOI 10.17487/RFC4967, July 2007,
<https://www.rfc-editor.org/info/rfc4967>.
[RFC5104] Wenger, S., Chandra, U., Westerlund, M., and B. Burman,
"Codec Control Messages in the RTP Audio-Visual Profile
with Feedback (AVPF)", RFC 5104, DOI 10.17487/RFC5104,
February 2008, <https://www.rfc-editor.org/info/rfc5104>.
[RFC5168] Levin, O., Even, R., and P. Hagendorf, "XML Schema for
Media Control", RFC 5168, DOI 10.17487/RFC5168, March
2008, <https://www.rfc-editor.org/info/rfc5168>.
[RFC5393] Sparks, R., Ed., Lawrence, S., Hawrylyshen, A., and B.
Campen, "Addressing an Amplification Vulnerability in
Session Initiation Protocol (SIP) Forking Proxies",
RFC 5393, DOI 10.17487/RFC5393, December 2008,
<https://www.rfc-editor.org/info/rfc5393>.
[RFC5626] Jennings, C., Ed., Mahy, R., Ed., and F. Audet, Ed.,
"Managing Client-Initiated Connections in the Session
Initiation Protocol (SIP)", RFC 5626,
DOI 10.17487/RFC5626, October 2009,
<https://www.rfc-editor.org/info/rfc5626>.
[RFC5658] Froment, T., Lebel, C., and B. Bonnaerens, "Addressing
Record-Route Issues in the Session Initiation Protocol
(SIP)", RFC 5658, DOI 10.17487/RFC5658, October 2009,
<https://www.rfc-editor.org/info/rfc5658>.
[RFC5954] Gurbani, V., Ed., Carpenter, B., Ed., and B. Tate, Ed.,
"Essential Correction for IPv6 ABNF and URI Comparison in
RFC 3261", RFC 5954, DOI 10.17487/RFC5954, August 2010,
<https://www.rfc-editor.org/info/rfc5954>.
[RFC6263] Marjou, X. and A. Sollaud, "Application Mechanism for
Keeping Alive the NAT Mappings Associated with RTP / RTP
Control Protocol (RTCP) Flows", RFC 6263,
DOI 10.17487/RFC6263, June 2011,
<https://www.rfc-editor.org/info/rfc6263>.
[RFC6351] Perreault, S., "xCard: vCard XML Representation",
RFC 6351, DOI 10.17487/RFC6351, August 2011,
<https://www.rfc-editor.org/info/rfc6351>.
[RFC6352] Daboo, C., "CardDAV: vCard Extensions to Web Distributed
Authoring and Versioning (WebDAV)", RFC 6352,
DOI 10.17487/RFC6352, August 2011,
<https://www.rfc-editor.org/info/rfc6352>.
[RFC6442] Polk, J., Rosen, B., and J. Peterson, "Location Conveyance
for the Session Initiation Protocol", RFC 6442,
DOI 10.17487/RFC6442, December 2011,
<https://www.rfc-editor.org/info/rfc6442>.
[RFC6665] Roach, A.B., "SIP-Specific Event Notification", RFC 6665,
DOI 10.17487/RFC6665, July 2012,
<https://www.rfc-editor.org/info/rfc6665>.
[RFC6764] Daboo, C., "Locating Services for Calendaring Extensions
to WebDAV (CalDAV) and vCard Extensions to WebDAV
(CardDAV)", RFC 6764, DOI 10.17487/RFC6764, February 2013,
<https://www.rfc-editor.org/info/rfc6764>.
[RFC6881] Rosen, B. and J. Polk, "Best Current Practice for
Communications Services in Support of Emergency Calling",
BCP 181, RFC 6881, DOI 10.17487/RFC6881, March 2013,
<https://www.rfc-editor.org/info/rfc6881>.
[RFC7525] Sheffer, Y., Holz, R., and P. Saint-Andre,
"Recommendations for Secure Use of Transport Layer
Security (TLS) and Datagram Transport Layer Security
(DTLS)", BCP 195, RFC 7525, DOI 10.17487/RFC7525, May
2015, <https://www.rfc-editor.org/info/rfc7525>.
[RFC7647] Sparks, R. and A.B. Roach, "Clarifications for the Use of
REFER with RFC 6665", RFC 7647, DOI 10.17487/RFC7647,
September 2015, <https://www.rfc-editor.org/info/rfc7647>.
[RFC7742] Roach, A.B., "WebRTC Video Processing and Codec
Requirements", RFC 7742, DOI 10.17487/RFC7742, March 2016,
<https://www.rfc-editor.org/info/rfc7742>.
[RFC7852] Gellens, R., Rosen, B., Tschofenig, H., Marshall, R., and
J. Winterbottom, "Additional Data Related to an Emergency
Call", RFC 7852, DOI 10.17487/RFC7852, July 2016,
<https://www.rfc-editor.org/info/rfc7852>.
[RFC7874] Valin, JM. and C. Bran, "WebRTC Audio Codec and Processing
Requirements", RFC 7874, DOI 10.17487/RFC7874, May 2016,
<https://www.rfc-editor.org/info/rfc7874>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive
Connectivity Establishment (ICE): A Protocol for Network
Address Translator (NAT) Traversal", RFC 8445,
DOI 10.17487/RFC8445, July 2018,
<https://www.rfc-editor.org/info/rfc8445>.
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018,
<https://www.rfc-editor.org/info/rfc8446>.
[RFC8599] Holmberg, C. and M. Arnold, "Push Notification with the
Session Initiation Protocol (SIP)", RFC 8599,
DOI 10.17487/RFC8599, May 2019,
<https://www.rfc-editor.org/info/rfc8599>.
[RFC8760] Shekh-Yusef, R., "The Session Initiation Protocol (SIP)
Digest Access Authentication Scheme", RFC 8760,
DOI 10.17487/RFC8760, March 2020,
<https://www.rfc-editor.org/info/rfc8760>.
[RFC8825] Alvestrand, H., "Overview: Real-Time Protocols for
Browser-Based Applications", RFC 8825,
DOI 10.17487/RFC8825, January 2021,
<https://www.rfc-editor.org/info/rfc8825>.
[RFC8827] Rescorla, E., "WebRTC Security Architecture", RFC 8827,
DOI 10.17487/RFC8827, January 2021,
<https://www.rfc-editor.org/info/rfc8827>.
[RFC8829] Uberti, J., Jennings, C., and E. Rescorla, Ed.,
"JavaScript Session Establishment Protocol (JSEP)",
RFC 8829, DOI 10.17487/RFC8829, January 2021,
<https://www.rfc-editor.org/info/rfc8829>.
[RFC8834] Perkins, C., Westerlund, M., and J. Ott, "Media Transport
and Use of RTP in WebRTC", RFC 8834, DOI 10.17487/RFC8834,
January 2021, <https://www.rfc-editor.org/info/rfc8834>.
[RFC8835] Alvestrand, H., "Transports for WebRTC", RFC 8835,
DOI 10.17487/RFC8835, January 2021,
<https://www.rfc-editor.org/info/rfc8835>.
[RFC8839] Petit-Huguenin, M., Nandakumar, S., Holmberg, C., Keränen,
A., and R. Shpount, "Session Description Protocol (SDP)
Offer/Answer Procedures for Interactive Connectivity
Establishment (ICE)", RFC 8839, DOI 10.17487/RFC8839,
January 2021, <https://www.rfc-editor.org/info/rfc8839>.
[RFC8865] Holmberg, C. and G. Hellström, "T.140 Real-Time Text
Conversation over WebRTC Data Channels", RFC 8865,
DOI 10.17487/RFC8865, January 2021,
<https://www.rfc-editor.org/info/rfc8865>.
[RFC8866] Begen, A., Kyzivat, P., Perkins, C., and M. Handley, "SDP:
Session Description Protocol", RFC 8866,
DOI 10.17487/RFC8866, January 2021,
<https://www.rfc-editor.org/info/rfc8866>.
[RFC9071] Hellström, G., "RTP-Mixer Formatting of Multiparty Real-
Time Text", RFC 9071, DOI 10.17487/RFC9071, July 2021,
<https://www.rfc-editor.org/info/rfc9071>.
[RFC9110] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP Semantics", STD 97, RFC 9110,
DOI 10.17487/RFC9110, June 2022,
<https://www.rfc-editor.org/info/rfc9110>.
[RFC9112] Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,
Ed., "HTTP/1.1", STD 99, RFC 9112, DOI 10.17487/RFC9112,
June 2022, <https://www.rfc-editor.org/info/rfc9112>.
13. Informative References
[RFC3665] Johnston, A., Donovan, S., Sparks, R., Cunningham, C., and
K. Summers, "Session Initiation Protocol (SIP) Basic Call
Flow Examples", BCP 75, RFC 3665, DOI 10.17487/RFC3665,
December 2003, <https://www.rfc-editor.org/info/rfc3665>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>.
Acknowledgements
Brett Henderson and Jim Malloy provided many helpful edits to prior
draft versions of this document. Paul Kyzivat provided extensive
reviews and comments.
Author's Address
Brian Rosen
470 Conrad Dr
Mars, PA 16046
United States of America
Email: br@brianrosen.net
|