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
- ↑ OO obtenus d'après code source HTML de https://www.simyo.fr/simyo-fr/portal/store/action/select-number
- ↑ http://www.breizhmobile.com/edito.php?id_er=9&id_esr=7

