Relevé d'identité opérateur

Un article de Wikipédia, l'encyclopédie libre.

Le relevé d'identité opérateur (en abrégé RIO) est un identifiant unique attribué à chaque contrat de téléphonie mobile en France.

Son but est de faciliter l'identification de la ligne lors des demandes de portabilité du numéro, en cas de changement d'opérateur. Il est utilisé (et indispensable) depuis la mise en oeuvre de la portabilité simplifiée (21 mai 2007).

Sommaire

[modifier] Composition technique du RIO

Le RIO est un code alphanumérique de 12 caractères noté "OO Q RRRRRR CCC" dont la signification est

champ signification valeurs
OO Identifiant de l'opérateur Code numérique (01: Orange, 02: SFR, 03: Bouygues ...)
Q Qualité du client E (entreprise) ou P (particulier)
RRRRRR Identification du contrat Numéro de contrat, choisi par l'opérateur
CCC code de contrôle Tient compte du numéro d'appel de la ligne et des 9 premiers caractères du RIO

[modifier] Connaître le RIO

Un particulier peut obtenir gratuitement son RIO en composant un numéro spécial depuis son téléphone mobile. Il est mis en liaison avec un serveur vocal. Le RIO est communiqué oralement et envoyé par SMS. Ce numéro varie selon les opérateurs.

[modifier] Numéros d'appel des serveurs RIO et Identifiants opérateur (OO)

Ces numéros d'appel sont à disposition uniquement des particuliers. Les clients professionnels disposent de leur RIO sur leur facture ou leur interface de gestion de compte.


Opérateur Numéro d'appel Deux premiers chiffres du RIO

(Identifiant de l'opérateur = OO)[1]

Afone 0 805 160 040 66
Auchan 5533 65
Bouygues Telecom / Universal Music Mobile 658 03
Carrefour 845 54
Coriolis Télécom 7327 ou 01 41 45 87 49 10
E. Leclerc Mobile 0 805 160 040 66
Estvideo Numericable 22
Futur Télécom 0 805 801 811 60
M6 Mobile 527 01 (à confirmer)
Mobisud 0 805 700 438 62
Neuf Cegetel 0 805 700 452 63
NRJ 675 767 57 (Orange)

64 (SFR)

Orange 527 01
Simpleo (anciennement |Débitel) 1804 ou 0 980 981 981 61
Simyo 807 23
Symacom 55
SFR 933 02
Télé2 841 50
Ten 839 53
Transatel 01 70 67 00 67 21
Virgin Mobile / Breizh Mobile (Omer telecom) 843 ou 0800 843 800[2] 49
Ftmvno 48
France Télécom 90
Sybase365 91
Mblox 92
Netsize 93
Colt 94
Ocito 95
Verizon 96

[modifier] Vérifier le RIO

Afin de vérifier le code RIO, il est possible d'utiliser le code Java suivant :

private static boolean is_RIO(String rio, String sMsisdn){
    if(rio.length() !=12) return false;
    if (!sMsisdn.matches("0\\d{9,9}")) {
    	throw new IllegalArgumentException("Le numéro de téléphone (msisdn) doit être au format 0612345678");
    }
    String sRio = rio.toUpperCase();
    String sOperateur=sRio.substring(0, 2);
    String sTypeContrat=sRio.substring(2, 1);
    String sRefClient=sRio.substring(3, 6);
    if(!sTypeContrat.equals("P") && !sTypeContrat.equals("E")) return false;
    String sOrdre="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+";
    int[] nRes= {0, 0, 0};
    String sTmp=sOperateur+sTypeContrat+sRefClient+sMsisdn;
    for(int n=0;n<19;n++) {
        int nPos=sOrdre.indexOf(sTmp.substring(n, 1));
        nRes[0]=(nRes[0]+nPos)%37;
        nRes[1]=((2*nRes[1])+nPos)%37;
        nRes[2]=((4*nRes[2])+nPos)%37;
    }
    String sCleCalculee=
    	sOrdre.substring(nRes[0],1)+
    	sOrdre.substring(nRes[1],1)+
    	sOrdre.substring(nRes[2],1);
    return sRio.substring(9).equals(sCleCalculee);
}

ou le code PHP suivant (envoi depuis un formulaire du code RIO et du numéro de téléphone mobile en methode POST) :

if ($_POST["coderio"] == "" or $_POST["mobile"] == "") echo "Un des champs est vide";
else if(strlen($rio) !=12) echo "Le code RIO doit contenir 12 caractères exactement";
else
{
    $rio = strtoupper($rio);
    $operateur=substr($rio,0,2);
    $typecontrat=substr($rio,2,1);
    $refclient=substr($rio,3,6);
 
    if($typecontrat != "P" && $typecontrat != "E") echo "Le code RIO est erroné, l'identification du contrat est faux";
    $ordre="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+";
    $res = array(0,0,0);
    $tmp=$operateur.$typecontrat.$refclient.$mobile;
    for($n=0;$n<19;$n++) {
        $pos=strpos($ordre,substr($tmp,$n, 1));
        $res[0]=($res[0]+$pos)%37;
        $res[1]=((2*$res[1])+$pos)%37;
        $res[2]=((4*$res[2])+$pos)%37;
    }
 
    $clecalculee = substr($ordre,$res[0],1).substr($ordre,$res[1],1).substr($ordre,$res[2],1);
    if(substr($rio,9) != $clecalculee) echo "Le code RIO est erroné";
    else echo "<em>!!! Le code RIO est BON !!!</em>";	
}

[modifier] Liens externes

[modifier] References

  1. OO obtenus d'après code source HTML de https://www.simyo.fr/simyo-fr/portal/store/action/select-number
  2. http://www.breizhmobile.com/edito.php?id_er=9&id_esr=7
Créer un livre