Groupe de travail Réseau	G. Hellstrom, Omnitor AB	
Request for Comments : 4103	P. Jones, Cisco Systems, Inc.	
RFC rendue obsolète : 2793	juin 2005	
Catégorie : En cours de normalisation		
Traduction Claude Brière de L’Isle	octobre 2007	

Charge utile RTP pour conversation textuelle

Statut de ce mémo

Le présent document spécifie un protocole de normalisation Internet pour la communauté de l'Internet, qui appelle à la discussion et à des suggestions pour son amélioration. Prière de se reporter à l'édition en cours des "Normes de protocole officielles de l'Internet" (STD 1) sur l'état de la normalisation et le statut de ce protocole. La distribution du présent mémo n'est soumise à aucune restriction.

Notice de Copyright

Copyright (C) The Internet Society (2005).

Résumé

Le présent mémo rend obsolète la RFC 2793 ; il décrit comment transporter le contenu des sessions de conversations textuelles en temps réel dans les paquets RTP. Les contenus de sessions de conversations textuelles sont spécifiés dans la Recommandation UIT-T T.140.

Un format de charge utile est décrit pour la transmission de texte sur une session RTP séparée dédiée à la transmission de texte.

La présente description de charge utile RTP recommande une méthode pour inclure le texte redondant dans les paquets déjà transmis afin de réduire le risque de perte de texte causée par la perte de paquets.

Table des matières
1
1 Introduction	2
2 Conventions utilisées dans le présent document	3
3 Usage de RTP	3
3.1 Motifs et raisons	3
3.2 Format de charge utile pour la transmission de données text/t140	3
3.3 Le "T140block"	3
3.4 Synchronisation du texte avec les autres supports	3
3.5 En-tête de paquet RTP	3
4 Protection contre les pertes de données	4
4.1 Format de charge utile en utilisant la redondance	4
4.2 Utilisation de la redondance avec le format text/t140	4
5 Procédure recommandée	5
5.1 Procédure de base recommandée	5
5.2 Transmission avant et après les "périodes inactives"	5
5.3 Détection de paquets de texte perdus	6
5.4 Compensation pour les paquets déclassés	6
6 Paramètre pour le débit de transmission des caractères	6
7 Exemples	7
7.1 Exemples de mise en paquet RTP pour le format text/t140	7
7.2 Exemples SDP	8
8 Considérations sur la sécurité	8
8.1 Confidentialité	8
8.2 Intégrité	8
8.3 Authentification de la source	8
9 Considérations sur l’encombrement	9
10 Considérations relatives à l’IANA	9
10.1 Enregistrement du type de support MIME text/t140	10
10.2 Transposition SDP des paramètres MIME	10
10.3 Considérations sur l’offre/réponse	10
11 Remerciements	10
12 Références normatives	10
13 Références informatives	11

1	Introduction

Le présent document définit un type de charge utile pour porter des contenus de session de conversation textuelle dans des paquets RTP [2]. Les contenus de session de conversation textuelle sont spécifiés dans la Recommandation UIT-T T.140 [1]. La conversation textuelle est utilisée seule ou en conjonction avec d’autres facilités conversationnelles, comme la vidéo et la voix, pour former des services de conversation multimédia. Dans les sessions de conversation multimédia, le texte est envoyé caractère par caractère aussitôt qu’il est disponible, ou avec un léger retard du à la mise en mémoire tampon.

Le texte est destiné à être frappé par un utilisateur humain à partir d’un clavier, par la reconnaissance de l’écriture, la reconnaissance vocale, ou toute autre méthode d’entrée. Le débit d’entrée des caractères est habituellement de quelques caractères par seconde ou moins. En général, on s’attend seulement à la transmission d’un ou de quelques nouveaux caractères avec chaque paquet. De petits blocs de texte peuvent être préparés par l’usager et insérés dans l’interface d’usager pour être transmis durant la conversation, causant occasionnellement un accroissement de la charge utile des paquets.

La Recommandation UIT-T T.140 spécifie que le texte et les autres éléments de T.140 doivent être transmis en code ISO 10646-1 [5] avec transformation UTF-8 [6]. Cela rend facile la mise en oeuvre internationale d’applications utiles et le traitement du texte dans des environnements modernes de technologies de l’information. La charge utile d’un paquet RTP qui respecte la présente spécification consiste en un texte codé conformément à T.140, sans aucun tramage additionnel. Le cas commun sera un seul caractère ISO 10646, codé en UTF-8.

T.140 exige que le canal de transport fournisse des caractères sans duplication et dans l’ordre d’origine. Les utilisateurs de conversation textuelle s’attendent à ce que le texte soit délivré sans perte d’information, ou très peu.

Le présent document spécifie donc un mécanisme fondé sur RTP. Il donne l’arrivée du texte dans l’ordre correct, sans duplication, et avec la détection et l’indication des pertes. Il inclut aussi une possibilité en option de répéter les données pour créer une redondance afin de diminuer le risque de perte. Comme la redondance de paquet est habituellement bien supérieure aux contenus T.140, l’augmentation de bande passante est minimale avec l’utilisation de la redondance.

En utilisant RTP pour la transmission de texte dans une application de conversation multimédia, on peut réaliser un traitement uniforme du texte et des autres supports, par exemple, dans des systèmes de conférence, des pare-feu, et des appareils de traduction du réseau. Ceci, à son tour, facilite la conception et augmente la possibilité d’une livraison prompte et appropriée par le support.

Le présent document rend obsolète la RFC 2793 [16]. Le texte précise des ambiguïtés de la RFC 2793, améliore les exigences spécifiques de mise en oeuvre grâce aux enseignement de l’expérience de donne des exemples d’utilisation explicites.

2	Conventions utilisées dans le présent document

Les mots clé "DOIT", "NE DOIT PAS", "EXIGE", "DEVRA", "NE DEVRA PAS", "DEVRAIT", "NE DEVRAIT PAS", "RECOMMANDÉ", "PEUT", et "FACULTATIF" dans le présent document sont à interpréter comme décrit dans le BCP 14 [4].

3	Usage de RTP

Le format de charge utile pour la transmission de texte en temps réel avec RTP [2] décrit dans le présent mémo est destiné à la conversation textuelle d’utilisation générale est porte le nom de text/t140 d’après son enregistrement MIME.

3.1	Motifs et raisons
Le format text/t140 est destiné à être utilisé pour le texte transmis sur une session RTP séparée, dédiée à la transmission de texte, et non partagée avec d’autres supports.

Le format text/t140 PEUT être utilisé pour toute application autre que de passerelle, ainsi que dans les passerelles. Il PEUT être utilisé simultanément avec d’autres flux de support, transmis comme une session RTP séparée, selon les besoins des applications multimédia en temps réel.

Le format text/t140 spécifié dans le présent mémo est compatible avec sa précédente définition dans la RFC 2793. Il a été précisé, avec l’intention principale de minimiser les problèmes d’interopérabilité et de favoriser une bonne fiabilité et un bon fonctionnement.

La spécification de la transmission textuelle comme un support de texte a de nombreux effets bénéfiques. L’acheminement, le choix d’appareils, l’invocation du transcodage, le choix des paramètres de qualité de service, et d’autres fonctions de haut et bas niveau dépendent de chacun des supports qui sont explicitement spécifiés.

3.2	Format de charge utile pour la transmission de données text/t140
Un format de charge utile RTP de conversation text/t140 consiste en un, et un seul, bloc de données T.140, appelées un "T140block" (voir au paragraphe 3.3). Il n’y a pas d’en-tête supplémentaire spécifique de ce format de charge utile. Les champs dans l’en-tête RTP sont établis comme défini au paragraphe 3.5, transportés dans l’ordre des octets du réseau (voir la RFC 791 [12]).

3.3	Le "T140block"
Le texte T.140 est codé en UTF-8, comme spécifié dans T.140, sans tramage supplémentaire. L T140block contient un ou plusieurs éléments de code T.140 comme spécifié dans [1]. La plupart des éléments de code T.140 sont des caractères ISO 10646 [5] uniques, mais certains sont des séquences de caractères multiples. Chaque caractère est codé en UTF-8 [6] en un ou plusieurs octets. Chaque bloc DOIT contenir un nombre entier de caractères codés en UTF-8 indépendamment du nombre d’octets par caractère. Toute séquence de caractères (CCS, composite character sequence) DEVRAIT être placée dans un seul bloc.

3.4	Synchronisation du texte avec les autres supports
Habituellement, chaque support dans une session utilise un flux RTP séparé. Aussi, si la synchronisation du texte et des autres paquets support est importante, les flux DOIVENT être associés lorsque les sessions sont établies et les flux DOIVENT partager la même horloge de référence (se référer à la description du champ d’horodatage qui se rapporte à la synchronisation au paragraphe 5.1 de la RFC 3550 [2]). L’association des flux RTP peut se faire au moyen du champ CNAME de la fonction SDES de RTCP. Elle dépend de l’application particulière et sort du domaine d’application du présent document.

3.5	En-tête de paquet RTP
Chaque paquet RTP débute par un en-tête RTP fixe. Les champs suivants de l’en-tête RTP fixe sont spécifiés pour les flux de texte T.140 :

Type de charge utile (PT, Payload Type) : L’allocation d’un type de charge utile RTP est spécifique du profil RTP selon lequel est utilisé le format de charge utile. Pour les profils qui utilisent l’allocation dynamique du numéro de type de charge utile, ce format de charge utile peut être identifié par le type MIME "text/t140" (voir la Section 10). Si la redondance est utilisée selon la RFC 2198, un autre numéro de type de charge utile doit être fourni pour le format de la redondance. Le type MIME pour identifier la RFC 2198 est disponible dans la RFC 4102 [9].

Numéro de séquence : La définition des numéros de séquence est disponible dans la RFC 3550 [2]. Lors de la transmission de texte utilisant le format de charge utile pour le text/t140, il est utilisé pour détecter les pertes de paquets et les paquets déclassés, et peut être utilisé dans le traitement de la restitution de texte redondant, du réordonnancement du texte et du marquage du texte manquant.

Horodatage : L’horodatage RTP code l’instance approximative de l’entrée du texte principal dans le paquet. Une fréquence d’horloge de 1000 Hz DOIT être utilisée. Les paquets séquentiels NE DOIVENT PAS utiliser le même horodatage. Parce que les paquets ne représentent pas une durée constante, l’horodatage ne peut pas être utilisé pour déduire directement une perte de paquet.

M-bit : Le M-bit DOIT être inclus. Le premier paquet dans une session, et le premier paquet après une période inactive, DEVRAIENT être distingués en établissant à un le bit marqueur dans l’en-tête de données RTP. Le bit marqueur dans tous les autres paquets DOIT être mis à zéro. La réception du bit marqueur PEUT être utilisée pour des méthodes élaborées de détection de perte.

4	Protection contre les pertes de données

Il faut veiller particulièrement à garder la perte de texte due à la perte de paquet dans des limites acceptables. (Voir la Recommandation UIT-T T F.703 [17])

La méthode par défaut qui DOIT être utilisée, quand aucune autre méthode n’est explicitement choisie, est la redondance, conformément à la RFC 2198 [3]. Lorsque cette méthode est utilisée, le texte original et deux générations redondantes DOIVENT être transmises si les conditions d’application ou de bout en bout n’appellent pas à utiliser d’autres niveaux de redondance.

Les mécanismes de correction d’erreur directe, conformément à la RFC 2733 [8], ou tout autre mécanisme destiné à augmenter la fiabilité de la transmission du texte, PEUVENT être utilisés comme solution de remplacement ou comme complément à la redondance. Les données de texte PEUVENT être envoyées sans protection supplémentaire si les conditions de réseau de bout en bout permettent de satisfaire aux exigences de qualité du texte, spécifiées dans la Recommandation UIT-T F.703 [17], dans toutes les conditions de charge anticipées.

4.1	Format de charge utile en utilisant la redondance
Quand on utilise le format de charge utile avec des données redondantes, l’émetteur peut choisir un certain nombre de générations de T140block à retransmettre dans chaque paquet. Un nombre plus élevé introduit une meilleure protection contre la perte de texte mais accroît marginalement le débit de données.

L’en-tête RTP est suivi d’un ou plusieurs en-têtes de blocs de données redondants : un pour chaque bloc de données redondants à inclure. Chacun de ces en-têtes donne le décalage de l’horodatage et la longueur du bloc de données correspondant, en plus d’un numéro de type de charge utile (indiquant le format de charge utile text/t140).

Les en-têtes de bloc de données redondants sont suivis par les champs de données redondants qui portent les T140blocks des paquets précédents. Finalement suit le nouveau T140block (primaire) pour ce paquet.

Les données redondantes qui auraient besoin d’un décalage d’horodatage supérieur à 16383 (du fait de leur age à la transmission) NE DOIVENT PAS être incluses dans les paquets transmis.

4.2	Utilisation de la redondance avec le format text/t140
Parce que du texte n’est transmis que lorsqu’il y en a à transmettre, l’horodatage n’est pas utilisé pour identifier un paquet perdu. On utilise plutôt les numéros de séquence manquants à la réception pour détecter les paquets de texte perdus. Aussi, parce que les numéros de séquence ne sont pas fournis dans l’en-tête redondant, quelques règles supplémentaires doivent être suivies pour permettre aux données redondantes qui correspondent aux données primaires manquantes d’être fondues correctement dans le flux des T140blocks de données primaires. Ce sont :
-	Chaque bloc de données redondantes DOIT contenir les mêmes données que le T140block transmis précédemment comme données primaires.
-	Les données redondantes DOIVENT être placées par ordre d’âge, le T140block redondant le plus récent en dernier dans la zone de redondance.
-	Tous les T140blocks, depuis la génération la plus ancienne désirée jusqu’à la génération précédant immédiatement le nouveau T140block (primaire), DOIVENT être inclus.

Ces règles permettent de déduire le numéro de séquence pour les T140blocks redondants en comptant en arrière depuis le numéro de séquence dans l’en-tête RTP. Le résultat en est que tout le texte de la charge utile sera contigu et en ordre.

Si il y a un trou dans les numéros de séquence RTP reçus, et si de T140blocks redondants sont disponibles dans un paquet suivant, le numéro de séquence pour les T140blocks redondants devraient être déduits en comptant en arrière depuis le numéro de séquence de l’en-tête RTP pour ce paquet. Si il y a des T140blocks redondants avec des numéros de séquence qui correspondent à ceux qui manquent, les T140blocks redondants peuvent être substitués aux T140blocks manquants.

5	Procédure recommandée

La présente section contient les procédures RECOMMANDÉES à utiliser pour le format de charge utile. Sur la base des informations des paquets reçus, le receveur peut :
-	réordonner le texte reçu en désordre.
-	marquer où le texte est manquant à cause de paquets perdus.
-	compenser les paquets perdus en utilisant les données redondantes.

5.1	Procédure de base recommandée
Les paquets sont transmis lorsqu’il y a des données T.140 valides à transmettre.

T.140 spécifie que les données T.140 PEUVENT être mises en mémoire tampon pour la transmission avec un maximum de temps de mise en mémoire tampon de 500 ms. Une durée de mise en mémoire tampon de 300 ms est RECOMMANDÉE lorsque les conditions d’application ou de réseau de bout en bout ne sont pas connues pour exiger une autre valeur.

Si aucunes nouvelles données ne sont disponibles pendant une période plus longue que la durée de mise en mémoire tampon, le processus de transmission est dans une période inactive.

Lorsque le nouveau texte est disponible pour transmission après une période inactive, il est RECOMMANDÉ de l’envoyer aussitôt que possible. Après cette transmission, il est RECOMMANDÉ de mettre en mémoire tampon les données T.140 aux intervalles de durée de mise en mémoire tampon, jusqu’à la prochaine période inactive. Ceci est destiné à garder l’utilisation du débit binaire maximum pour le texte à un niveau raisonnable. La durée de mise en mémoire tampon DOIT être choisie de telle façon que les utilisateurs du texte perçoivent un flux de texte en temps réel.

5.2	Transmission avant et après les "périodes inactives"
Lorsque des données T.140 valides ont été envoyées et que de nouvelles données T.140 sont disponibles pour transmission après le délai de mise en mémoire tampon choisi, un T140block vide DEVRAIT être transmis. Cette situation est considérée comme le début d’une période inactive. La procédure est recommandée afin de détecter plus rapidement le texte potentiellement manquant avant une période inactive.

Un T140block vide ne contient pas de données.

Lorsque on utilise la redondance, la transmission continue avec un paquet à chaque expiration du temporisateur de transmission et l’insertion d’un T.140block vide comme primaire, jusqu’à ce qu’ai été transmis le dernier T140block non vide, comme données primaires et comme données redondantes, avec toutes les générations prévues de redondance. Le dernier paquet avant une période inactive contiendra seulement un T140block non vide avec des données redondantes, alors que le reste du paquet de redondance contiendra des T140blocks vides.

Tout T140block vide envoyé comme données primaires DOIT être inclus comme T140block redondant dans les paquets suivants, comme le serait un T140block de texte normal, sauf que le T140block vide est trop vieux pour être transmis. Ceci est fait pour que la déduction du numéro de séquence pour les T140blocks redondants soit correcte, comme expliqué au paragraphe 4.2.

Après une période inactive, l’émetteur DEVRAIT régler le M-bit à un dans le premier paquet avec le nouveau texte.

5.3	Détection de paquets de texte perdus
La perte de paquets de text/t140 PEUT être détectée en observant des trous dans les numéros de séquence des paquets RTP reçus par le receveur.

Avec text/t140, la perte de paquets est normalement détectée par comparaison de la séquence des paquets RTP à leur arrivée. Toute discordance PEUT être utilisée pour indiquer la perte. Le plus fort numéro de séquence RTP reçu peut aussi être comparé avec ceux des rapports RTCP, comme vérification supplémentaire du dernier paquet avant une période inactive.

Les données manquantes DEVRAIENT  être marquées par l’insertion d’un marqueur de texte manquant dans le flux reçu pour chaque T140block manquant, comme spécifié dans la Recommandation UIT-T T.140 Addendum 1 [1].

Parce que les T140blocks vides sont transmis au début d’une période inactive, il y a un faible risque de marquer à tort une perte de texte, alors que seul un T140block vide a été perdu. Les procédures fondées sur la détection du paquet avec le M-bit mis à un PEUVENT être utilisées pour réduire le risque d’introduction de faux marqueurs de perte.

Si on utilise la redondance avec le format text/t140, et si un paquet est reçu avec moins de niveaux de redondance qu’en a normalement la session, il DEVRAIT être traité comme si un T140block vide avait été reçu pour chaque niveau exclu dans le paquet reçu. Ceci parce que la seule occasion où un T140block est exclu de la transmission est lorsque c’est un T140block vide qui est devenu trop vieux pour être transmis.

Si deux paquets successifs ont le même numéro de générations de redondance, ils DEVRAIENT être traités comme le niveau général de redondance de la session. Le changement du niveau général de redondance ne DEVRAIT être fait qu’après une période inactive.

Le format text/t140 s’appuie sur l’utilisation du numéro de séquence dans l’en-tête de paquet RTP pour la détection des pertes et donc, ne convient pas pour les applications où il doit y avoir une alternance avec d’autres charge utiles dans le même flux RTP. Il serait compliqué et non fiable d’essayer de détecter des pertes de données sur les lignes de coupure entre le texte t140 et les autres contenus du flux. Donc, il est RECOMMANDÉ que text/t140 soit le seul type de charge utile dans le flux RTP.

5.4	Compensation pour les paquets déclassés
Pour avoir une protection contre les paquets qui arrivent déclassés, la procédure suivant PEUT être mise en oeuvre chez le receveur. Si l’analyse d’un paquet reçu révèle un trou dans la séquence et qu’aucunes données redondantes ne sont disponibles pour boucher ce trou, le paquet reçu DEVRAIT être gardé dans une mémoire tampon pour donner le temps aux paquets manquants d’arriver. Il est RECOMMANDÉ que la durée d’attente soit limitée à 1 seconde.

Si un paquet avec un T140block appartenant au trou arrive avant l’expiration du délai d’attente, ce T140block est inséré dans le trou et les T140blocks consécutifs provenant de la partie avant du trou peuvent alors être consommés. Tout T140block qui n’arrive pas avant l’expiration de la limite d’attente devrait être traité comme perdu et une marqueur de texte manquant devrait être inséré (voir au paragraphe 5.3).

6	Paramètre pour le débit de transmission des caractères

Dans certains cas, il est nécessaire de limiter le débit de transmission des caractères. Par exemple, lorsqu’une passerelle du réseau téléphonique public commuté (RTPC) interagit entre un appareil IP et un textophone RTPC, il peut être nécessaire de limiter le débit de caractères venant de l’appareil IP afin d’éviter d’avoir à jeter des caractères (en cas de débordement de la mémoire tampon à la passerelle RTPC).
Pour contrôler le débit de transmission des caractères, on définit le paramètre MIME "cps" dans l’attribut "fmtp" [7] (voir la Section 10). Il est utilisé dans SDP avec la syntaxe suivante :

a=fmtp:<format> cps=<integer>

Le champ <format> est rempli avec le type de charge utile utilisé pour le texte. Le champ <integer> contient un entier qui représente le nombre maximum de caractères qui peuvent être reçus par seconde. La valeur sera utilisée comme valeur moyenne sur tout intervalle de dix secondes. La valeur par défaut est 30.

Des exemples d’utilisation dans SDP figurent au paragraphe 7.2.
À réception de ce paramètre, les appareils DOIVENT satisfaire à la demande en émettant les caractères à un débit égal ou inférieur à la valeur <integer> spécifiée. Noter que ce paramètre n’était pas défini dans la RFC 2793 [16]. Des mises en oeuvre du format text/t140 peuvent donc se rencontrer qui ne reconnaissent pas et n’agissent pas en conformité avec ce paramètre. Donc, les receveurs de text/t140 DOIVENT être conçus de telle sorte qu’ils puissent effectuer temporairement une réception de caractères à un débit supérieur à ce que spécifié ce paramètre. Les disfonctionnements dus au débordement de la mémoire tampon seront ainsi évités pour la conversation textuelle avec entrée humaine.

7	Exemples
7.1	Exemples de mise en paquet RTP pour le format text/t140
Ci-dessous figure un exemple de paquet RTP text/t140 sans redondance.

0	1	2	3	
0	1	2	3	4	5	6	7	8	9	0	1	2	3	4	5	6	7	8	9	0	1	2	3	4	5	6	7	8	9	0	1	
V=2	P	X	CC=0	M	T140 PT	numéro de séquence	
horodatage (1000Hz)	
identifiant de source de synchronisation (SSRC)	
données codées T.140	
.......................................	

Ci-dessous figure un exemple de paquet text/t140 RTP avec un T140block redondant.

0	1	2	3	
0	1	2	3	4	5	6	7	8	9	0	1	2	3	4	5	6	7	8	9	0	1	2	3	4	5	6	7	8	9	0	1	
V=2	P	X	CC=0	M	PT “Rouge”	
horodatage du “P” de codage primaire	
identifiant de source de synchronisation (SSRC)	
1	T140 PT	
1	T140 PT	
.....................................................................................	
données primaires codées T.140 "P"  	
.......................................	

Ci-dessous figure un exemple de paquet RTP avec un T140block redondant utilisant le format de charge utile text/t140. Le bloc de données primaire est vide, ce qui est le cas lors de la transmission d’un paquet dont le seul objet est de forcer la transmission des données redondantes en l’absence de données nouvelles.

0	1	2	3	
0	1	2	3	4	5	6	7	8	9	0	1	2	3	4	5	6	7	8	9	0	1	2	3	4	5	6	7	8	9	0	1	
V=2	P	X	CC=0	M	PT “Rouge”	
horodatage du “P” de codage primaire	
identifiant de source de synchronisation (SSRC)	
1	T140 PT	
0	T140 PT	
.....................................................................................	

Suite à l’exemple précédent, celui ci-dessous montre le paquet RTP suivant dans la séquence, qui ne contient pas un T140block réel quand on utilise le format de charge utile text/t140. Noter que le bloc vide est présent dans les transmissions redondantes du format de charge utile text/t140. Cet exemple montre deux niveaux de redondance et un bloc de données primaires. La valeur de "longueur du bloc R2" sera mise à zéro afin de représenter le T140block vide.

0	1	2	3	
0	1	2	3	4	5	6	7	8	9	0	1	2	3	4	5	6	7	8	9	0	1	2	3	4	5	6	7	8	9	0	1	
V=2	P	X	CC=0	M	PT “Rouge”	
horodatage du “P” de codage primaire	
identifiant de source de synchronisation (SSRC)	
1	T140 PT	
1	T140 PT	
0	T140 PT	
.....................................................................................	
données primaires codées T.140 "P"  	
.......................................	

7.2	Exemples SDP
Ci-dessous figure un exemple de SDP, qui décrit le transport de texte RTP sur le port 11000 :

m=text 11000 RTP/AVP 98
a=rtpmap:98 t140/1000

Ci-dessous figure un exemple de SDP qui est similaire à l’exemple précédent, mais utilise aussi la RFC 2198 pour fournir les deux niveaux de redondance recommandés pour les paquets de texte :

m=text 11000 RTP/AVP 98 100
a=rtpmap:98 t140/1000
a=rtpmap:100 red/1000
a=fmtp:100 98/98/98

Note : Bien que ces exemples utilisent le profil RTP/AVP, ceci n’est pas destiné à y limiter la portée de ce document. Tout  profil approprié peut être utilisé avec le présent document.

8	Considérations sur la sécurité

Toutes les considérations sur la sécurité figurant à la Section 14 de la RFC 3550 [2] s’appliquent.

8.1	Confidentialité
Comme l’intention du format de charge utile décrit est de transporte du texte dans une conversation textuelle, les mesures de sécurité sous forme de chiffrement sont d’importance. La quantité de données dans une session de conversation textuelle est faible. Donc, toute méthode de chiffrement PEUT être choisie et appliquée au contenu d’une session T.140 ou à la totalité des paquets RTP. Le protocole sécurisé de transport en temps réel (SRTP, Secure Real-time Transport Protocol) [14] procure une méthode convenable pour assurer la confidentialité.

8.2	Intégrité
Il peut être souhaitable de protéger le contenu du texte d’un flux RTP contre les manipulations. SRTP [14] fournit des méthodes qui PEUVENT être appliquées pour protéger l’intégrité.

8.3	Authentification de la source
Il y a plusieurs méthodes pour s’assurer que la source du texte est bien celle prévue.

Les flux de texte sont habituellement utilisés dans un environnement de contrôle multimédia. Les mesures de sécurité pour l’authentification sont disponibles et DEVRAIENT être appliquées dans les procédures d’enregistrement et d’établissement de session, de sorte que l’identité de l’envoyeur du flux de texte soit associée de façon fiable à la personne ou appareil qui établit la session. Une fois établis, les mécanismes SRTP [14] PEUVENT  s’appliquer pour certifier que la source se conserve inchangée durant la session.

9	Considérations sur l’encombrement

Les considérations sur l’encombrement tirées de la Section 10 de la RFC 3550 [2], de la Section 6 de la RFC 2198 [3], et tout profil utilisé (par exemple, la section sur l’encombrement à la Section 2 de la RFC 3551 [11]) s’appliquent avec les considérations spécifiques de l’application suivantes.

Les systèmes automatisés NE DOIVENT PAS utiliser ce format pour envoyer de grandes quantités de texte à des débits significativement plus élevés que ceux que pourraient utiliser un usager humain.

Même si pour le réseau, la charge provenant des usager de la conversation textuelle est habituellement très faible, pour les réseaux au mieux, une application DOIT surveiller le débit de perte des paquets et prendre les mesures appropriées pour réduire son débit d’envoi (si cette application envoie à un débit supérieur à ce que TCP réaliserait sur le même chemin). La raison en est que cette application, du fait de l’utilisation recommandée de deux ou plus niveaux de redondance, est très robuste à la perte de paquet. En même temps, du fait du faible débit des conversations textuelles, si on considère l’exposé de la RFC 3714 [13], cette application va rencontrer de très forts taux de perte de paquet avant qu’elle n’ait besoin d’effectuer une réduction de son débit d’envoi.

Si l’application a besoin de réduire son débit d’envoi, elle NE DEVRAIT PAS réduire le nombre de niveaux de redondance en dessous de la quantité par défaut spécifiée à la Section 4. Les actions suivantes sont RECOMMANDÉES à la place, par ordre de priorité :
-	Augmenter le plus court intervalle entre les transmissions (décrit à la Section 5.1) des 300 ms recommandées à 500 ms, qui est la plus forte valeur permise selon T.140.
-	Limiter le débit maximum de transmission des caractères.
-	Augmenter le plus court intervalle entre les transmissions jusqu’à une valeur plus forte mais inférieure à 5 secondes. Cela causera des retards déplaisants dans la transmission, au delà de ce qui est permis selon T.140, mais le texte qui sera toujours convoyé dans la session aura encore quelque utilité.
-	Exclure des participants de la session.

Noter que si la réduction du débit binaire réalisée par les mesures ci-dessus n’est pas suffisante, la seule action restante est de terminer la session.

Pour servir de guide, quelques chiffres de charge sont fournis comme exemple sur la base de l’utilisation de IPv4, comportant la charge provenant des en-têtes IP, UDP, et RTP sans compression.
-	L’expérience nous indique qu’un débit moyen de transmission de caractères courant, durant une session complète de téléphonie textuelle sur RTPC, est d’environ deux caractères par seconde.
-	Une performance maximale de 20 caractères par seconde est suffisante même pour des applications de voix à texte.
-	Avec la charge (inhabituellement élevée) de 20 caractères par seconde, dans un langage qui utilise trois octets par caractère UTF-8, deux niveaux de redondance, et 300 ms entre les transmissions, la charge maximum de cette application est de 3300 bit/s.
-	Lorsque sont appliquées les restrictions mentionnées ci-dessus, limiter la transmission à 10 caractères par seconde, et utiliser 5 s entre les transmissions, la charge maximum de cette application, dans un langage qui utilise un octet par caractère UTF-8, est de 300 bits/s.

Noter que cette charge utile peut être utilisée en dernier ressort dans une situation d’encombrement pour conserver un contact lorsque les supports audio et vidéo doivent être arrêtés. La disponibilité d’un flux à bas débit binaire pour du texte dans des situations aussi difficiles peut être cruciale pour conserver un peu de communication dans une situation critique.

10	Considérations relatives à l’IANA

Le présent document met à jour le format de charge utile RTP nommé "t140" et le type MIME "text/t140" associé, dans les registres IANA RTP et Type de support

10.1	Enregistrement du type de support MIME text/t140
Nom du type de support MIME : text
Nom du sous-type MIME : t140
Paramètres requis : débit : Le débit d’horloge d’horodatage RTP, qui est égal au taux d’échantillonnage. La seule valeur valide est 1000.
Paramètres facultatifs : cps : Le nombre de caractères maximum qui peuvent être reçus par seconde. La valeur par défaut est de 30.
Considérations de codage : Le texte T.140 peut être transmis avec RTP comme spécifié dans la RFC 4103.
Considérations sur la sécurité : Voir la Section 8 de la RFC 4103.
Considérations sur les interactions : Ce format est le même que celui spécifié dans la RFC 2793. Pour la RFC 2793, le paramètre "cps=" n’était pas défini. Donc, il peut y avoir des mises en oeuvre qui ne tiennent pas compte de ce paramètre. Les receveurs ont besoin d’en tenir compte.
Spécification publiée : Recommandation UIT-T T.140. RFC 4103.
Applications qui utilisent ce type de support : Terminaux de communication textuelle et outils de conférence textuelle.
Informations supplémentaires : Ce type n’est défini que pour le transfert via RTP.
Nombre magique : Aucun
Extensions de fichier : Aucune
Codes de type de fichier Macintosh : Aucun
Adresse de messagerie à contacter pour des précisions : Gunnar Hellstrom : gunnar.hellstrom@omnitor.se  
Utilisation prévue : COMMUNE
Auteur / Contrôleur des changements : Gunnar Hellstrom | IETF avt WG gunnar.hellstrom@omnitor.se  |

10.2	Transposition SDP des paramètres MIME
Les informations portées dans la spécification de type de support MIME ont une transposition spécifique dans les champs du protocole de description de session (SDP) [7], qui est communément utilisée pour décrire les sessions RTP. Lorsque SDP est utilisé pour spécifier des sessions qui utilisent le format text/t140, la transposition est la suivante :
-	Le type MIME ("text") devient en SDP "m=" comme nom de support.
-	Le sous-type MIME (nom de format de charge utile) devient en SDP "a=rtpmap" comme nom de codage. Le débit d’horloge RTP dans "a=rtpmap" DOIT être 1000 pour text/t140.
-	Le paramètre "cps" devient en SDP l’attribut "a=fmtp".
-	Lorsque le type de charge utile est utilisé avec la redondance conformément à la RFC 2198, le niveau de redondance est indiqué par le nombre d’éléments dans la liste de types de charge utile séparés par une barre oblique dans le paramètre "fmtp" de la déclaration de redondance, comme défini dans la RFC 4102 [9] et la RFC 2198 [3].

10.3	Considérations sur l’offre/réponse
Afin de réaliser l’interopérabilité dans le cadre du modèle d’offre/réponse [10], il convient de considérer que :
-	le paramètre "cps" est déclaratif. Les deux côtés peuvent fournir une valeur, indépendamment de l’autre côté.

11	Remerciements

Les auteurs remercient Stephen Casner, Magnus Westerlund, et Colin Perkins pour leur soutien précieux, leurs révisions et leurs avis sur la création du présent document, à Mickey Nasiri de Ericsson Mobile Communication pour la fourniture de l’environnement de développement, à Michele Mizarro pour la vérification de la possibilité d’utiliser le format de charge utile aux fins qu’on lui destinait, et à Andreas Piirimets pour son soutien à l’édition et à la validation du document.

12	Références normatives

[1]	Recommandation UIT-T T.140 (1998) – Protocole de conversation en mode texte pour application multimédia, avec amendement 1, (2000).

[2]	Schulzrinne, H., Casner, S., Frederick, R. et V. Jacobson, "RTP : un protocole de transport pour les applications en temps réel", RFC 3550, juillet 2003.

[3]	Perkins, C., Kouvelas, I., Hodson, O., Hardman, V., Handley, M., Bolot, J., Vega-Garcia, A., et S. Fosse-Parisis, "Charge utile RTP Ppour les données audio redondantes", RFC 2198, septembre 1997.

[4]	Bradner, S., "Mots clés à utiliser dans les RFC pour indiquer les niveaux d’exigence", BCP 14, RFC 2119, mars 1997.

[5]	ISO/CEI 10646-1 : (1993), Ensemble universel de caractères codés sur plusieurs octets.

[6]	Yergeau, F., "UTF-8, un format de transformation de ISO 10646", STD 63, RFC 3629, novembre 2003.

[7]	Handley, M. et V. Jacobson, "SDP : Protocole de description de session ", RFC 2327, avril 1998.

[8]	Rosenberg, J. et H. Schulzrinne, "Format de charge utile RTP pour la correction d’erreur directe générique", RFC 2733, décembre 1999.

[9]	Jones, P., "Enregistrement du sous-type MIME text/red", RFC 4102, juin 2005.

[10]	Rosenberg, J. et H. Schulzrinne, "Modèle d’offre/réponse avec le protocole de description de session (SDP)", RFC 3264, juin 2002.

[11]	Schulzrinne, H. et S. Casner, "Profil RTP pour conférence audio et vidéo avec contrôle minimal", STD 65, RFC 3551, July 2003.

[12]	Postel, J., "Protocole Internet", STD 5, RFC 791, septembre 1981.

13	Références informatives

[13]	Floyd, S. et J. Kempf, "Remarques de l’IAB en ce qui concerne le contrôle de l’encombrement du trafic vocal sur l’Internet", RFC 3714, mars 2004.

[14]	Baugher, M., McGrew, D., Naslund, M., Carrara, E., et K. Norrman, "Protocole sécurisé de transport en temps réel (SRTP)", RFC 3711, mars 2004.

[15]	Schulzrinne, H. et S. Petrack, "Charge utile RTP pour chiffres DTMF, tonalités et signaux téléphoniques", RFC 2833, mai 2000.

[16]	Hellstrom, G., "Charge utile RTP pour conversation textuelle", RFC 2793, mai 2000.

[17]	Recommandation UIT-T F.703, Services conversationels multimédia, novembre 2000.

Adresse des auteurs

Gunnar Hellstrom	Paul E. Jones	
Omnitor AB	Cisco Systems, Inc.	
Renathvagen 2	7025 Kit Creek Rd.	
SE-121 37 Johanneshov	Research Triangle Park, NC 27709	
Sweden	USA	
tél : +46 708 204 288 / +46 8 556 002 03	tél : +1 919 392 6948	
Fax :   +46 8 556 002 06		
mél : gunnar.hellstrom@omnitor.se	mél : paulej@packetizer.com  	

Déclaration de copyright

Copyright (C) The Internet Society (2005).

Le présent document est soumis aux droits, licences et restrictions contenus dans le BCP 78, et à www.rfc-editor.org, et sauf pour ce qui est mentionné ci-après, les auteurs conservent tous leurs droits.

Le présent document et les informations y contenues sont fournies sur une base "EN L'ÉTAT" et le contributeur, l'organisation qu'il ou elle représente ou qui le/la finance (s'il en est), la INTERNET SOCIETY et la INTERNET ENGINEERING TASK FORCE déclinent toutes garanties, exprimées ou implicites, y compris mais non limitées à toute garantie que l'utilisation des informations ci-encloses ne violent aucun droit ou aucune garantie implicite de commercialisation ou d'aptitude à un objet particulier.

Propriété intellectuelle

L'IETF ne prend pas position sur la validité et la portée de tout droit de propriété intellectuelle ou autres droits qui pourrait être revendiqués au titre de la mise en œuvre ou l'utilisation de la technologie décrite dans le présent document ou sur la mesure dans laquelle toute licence sur de tels droits pourrait être ou n'être pas disponible o pas plus qu'elle ne prétend avoir accompli aucun effort pour identifier de tels droits. Les informations sur les procédures de l'ISOC au sujet des droits dans les documents de l'ISOC figurent dans les BCP 78 et BCP 79.
Des copies des dépôts d'IPR faites au secrétariat de l'IETF et toutes assurances de disponibilité de licences, ou le résultat de tentatives faites pour obtenir une licence ou permission générale d'utilisation de tels droits de propriété par ceux qui mettent en œuvre ou utilisent la présente spécification peuvent être obtenues sur répertoire en ligne des IPR de l'IETF à http://www.ietf.org/ipr.
L'IETF invite toute partie intéressée à porter son attention sur tous copyrights, licences ou applications de licence, ou autres droits de propriété qui pourraient couvrir les technologies qui peuvent être nécessaires pour mettre en œuvre la présente norme. Prière d'adresser les informations à l'IETF à ietf- ipr@ietf.org.

Remerciement

Le financement de la fonction d'édition des RFC est actuellement fourni par l'activité de soutien administratif de l'IETF (IASA, Administrative Support Activity).