「0800」で始まる電話番号はフリーダイヤルです。
「080」で始まる携帯電話番号とは違います。
- 「080」で始まる11桁の番号は、かけた側が携帯電話の通話料を負担します(例:080-xxxx-xxxx)。
- 「0800」で始まる番号には、10桁と11桁のパターンがあります(例:0800-xxx-xxxx または 0800-xx-xxxx)。
主に企業のカスタマーサポートや問い合わせ窓口などに使われ、着信側の企業や団体が通話料を負担します。
080-0XXX の範囲は、携帯電話会社が指定されていません。
YouTube動画でも話しています。
1. 0800で区切られる着信があった
着信を見たら、「0800 XXX XXXX」という区切り方の番号がありました。
携帯電話番号なら「080 XXXX XXXX」だと思うのですが、どうしてですか?
これは、「0800」はフリーダイヤル用の番号だからです。
フリーダイヤルといえば「0120」ですが、番号が枯渇したために 0800も追加されました1。
似たような、いわば「フリーダイヤルもどき」に「0570」もありますが、こちらはまったく違う仕組みです。
「0570」は、「ナビダイヤル」。
同じようにオペーレーターにつながりますが、こちらは通話料は発信者持ち。
「通話かけ放題」の範囲外ですし、待ち時間の間も料金が発生するので要注意です。
2. 0800〜で個人の携帯電話番号はありうる?
あれ?
たとえば、「080-0123-4567」はどっちになるの?
個人の携帯電話の番号だと 4桁目が0であることはありえないの?
総務省の電気通信番号制度の指定状況で確認してみました。
すると、音声伝送携帯電話番号の 080-0XXX の範囲は、携帯電話会社が指定されていません。
つまり、携帯電話番号には「080-0〜」のパターンはなく、フリーダイヤル用に取り置き状態になっているのです。
function setup() {
createCanvas(400, 400);
}
function getCarrier(number) {
if (number < 0 && 10000 <= number) {
throw new Error("Input must be a 4-digit string.");
}
if (1000 <= number && number <= 2999) {
return 1; // 株式会社NTTドコモ
} else if (3000 <= number && number <= 4999) {
return 3; // ソフトバンク株式会社
} else if (5000 <= number && number <= 6999) {
if ((6480 <= number && number <= 6499) || number === 9850) {
return 4; // 沖縄セルラー電話株式会社
} else {
return 2; // KDDI株式会社
}
} else if (
(7000 <= number && number <= 7599) ||
(7930 <= number && number <= 7999) ||
(9100 <= number && number <= 9199) ||
(9400 <= number && number <= 9799)
) {
return 3; // ソフトバンク株式会社
} else if (
(7600 <= number && number <= 7699) ||
(7700 <= number && number <= 9299) ||
(9500 <= number && number <= 9599) ||
(9900 <= number && number <= 9999)
) {
return 1; // 株式会社NTTドコモ
} else if (
(9000 <= number && number <= 9099) ||
(9300 <= number && number <= 9399) ||
(9800 <= number && number <= 9899)
) {
if (number === 9850) {
return 4; // 沖縄セルラー電話株式会社
} else {
return 2; // KDDI株式会社
}
} else if (9200 <= number && number <= 9299) {
return 1; // 株式会社NTTドコモ
} else {
return 0; // 未定義
}
}
function draw() {
background(220);
for (let row = 0; row < 100; row++) {
for (let col = 0; col < 100; col++) {
var value = getCarrier(col*100+row);
if (value == 1) {
stroke(230, 0, 18);
fill(230, 0, 18);
} else if (value == 2) {
stroke(242, 142, 0);
fill(242, 142, 0);
} else if (value == 3) {
stroke(192, 192, 192);
fill(192, 192, 192);
} else if (value == 4) {
stroke(0, 123, 192);
fill(0, 123, 192);
} else {
stroke(40, 40, 40);
fill(40, 40, 40);
}
rectMode(CORNER);
let r = height / 100;
rect(row*r, col*r, r, r);
}
}
let d = height / 10;
stroke(100, 100, 100);
for (let x = 0; x < width; x += d) {
for (let y = 0; y < height; y += d) {
line(x, 0, x, height);
line(0, y, width, y);
}
}
}
沖縄セルラー電話もあるんだね。
2-1. 携帯電話番号の指定状況(090, 080, 070)
ちなみに、090, 080, 070のそれぞれの指定状況を見てみます。
const table = [
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,4,4,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,3,3,3,3,3,3,3,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,
1,1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,
1,1,1,1,1,1,1,1,1,1,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
2,2,2,2,2,4,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,
-1
];
function getCompany(number) {
const num = Math.floor(number / 10);
return table[num];
}
function setup() {
createCanvas(400, 400);
}
function setColorByCompanyID(id) {
switch (id) {
case 1:
stroke(230, 0, 18);
fill(230, 0, 18);
break;
case 2:
stroke(242, 142, 0);
fill(242, 142, 0);
break;
case 3:
stroke(192, 192, 192);
fill(192, 192, 192);
break;
case 4:
stroke(0, 123, 192);
fill(0, 123, 192);
break;
case 5:
stroke(233, 0, 94);
fill(233, 0, 94);
break;
default:
stroke(40, 40, 40);
fill(40, 40, 40);
}
}
function draw() {
background(220);
let dr = 100;
let dc = 100;
for (let row = 0; row < dr; row++) {
for (let col = 0; col < dc; col++) {
var company_id = getCompany(row* dc +col);
setColorByCompanyID(company_id);
rectMode(CORNER);
let rr = height / dr;
let rc = width / dc;
rect(col*rc, row*rr, rc, rr);
}
}
let d = height / 10;
stroke(100, 100, 100);
for (let x = 0; x < width; x += d) {
for (let y = 0; y < height; y += d) {
line(x, 0, x, height);
line(0, y, width, y);
}
}
}
const table = [
1,1,1,1,1,1,1,1,1,1,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
3,0,0,0,0,0,0,0,0,0,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
4,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
0,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
2,2,2,2,2,2,2,2,2,2,
0,3,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,0,0,0,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
3,3,3,3,3,3,3,3,3,3,
0,0,0,0,0,0,0,0,0,0,
3,3,3,3,3,3,0,0,0,0,
3,3,3,3,3,3,3,3,3,3,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
2,2,2,2,2,2,2,2,2,2,
5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,5,
5,5,5,5,5,5,5,5,5,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
-1
];
function getCompany(number) {
const num = Math.floor(number / 10);
return table[num];
}
function setup() {
createCanvas(400, 400);
}
function setColorByCompanyID(id) {
switch (id) {
case 1:
stroke(230, 0, 18);
fill(230, 0, 18);
break;
case 2:
stroke(242, 142, 0);
fill(242, 142, 0);
break;
case 3:
stroke(192, 192, 192);
fill(192, 192, 192);
break;
case 4:
stroke(0, 123, 192);
fill(0, 123, 192);
break;
case 5:
stroke(233, 0, 94);
fill(233, 0, 94);
break;
default:
stroke(40, 40, 40);
fill(40, 40, 40);
}
}
function draw() {
background(220);
let dr = 100;
let dc = 100;
for (let row = 0; row < dr; row++) {
for (let col = 0; col < dc; col++) {
var company_id = getCompany(row* dc +col);
setColorByCompanyID(company_id);
rectMode(CORNER);
let rr = height / dr;
let rc = width / dc;
rect(col*rc, row*rr, rc, rr);
}
}
let d = height / 10;
stroke(100, 100, 100);
for (let x = 0; x < width; x += d) {
for (let y = 0; y < height; y += d) {
line(x, 0, x, height);
line(0, y, width, y);
}
}
}
なんとなくデフラグっぽいね。
3. 0800は主にNTTコミュニケーションズが管理している
ちなみに、0800番の付加的役務電話番号の指定状況をみると、以下のようになります。
function setup() {
createCanvas(400, 400);
}
function getCarrierMobile(number) {
if (number < 0 && 10000 <= number) {
throw new Error("Input must be a 4-digit string.");
}
if (1000 <= number && number <= 2999) {
return 1; // 株式会社NTTドコモ
} else if (3000 <= number && number <= 4999) {
return 3; // ソフトバンク株式会社
} else if (5000 <= number && number <= 6999) {
if ((6480 <= number && number <= 6499) || number === 9850) {
return 4; // 沖縄セルラー電話株式会社
} else {
return 2; // KDDI株式会社
}
} else if (
(7000 <= number && number <= 7599) ||
(7930 <= number && number <= 7999) ||
(9100 <= number && number <= 9199) ||
(9400 <= number && number <= 9799)
) {
return 3; // ソフトバンク株式会社
} else if (
(7600 <= number && number <= 7699) ||
(7700 <= number && number <= 9299) ||
(9500 <= number && number <= 9599) ||
(9900 <= number && number <= 9999)
) {
return 1; // 株式会社NTTドコモ
} else if (
(9000 <= number && number <= 9099) ||
(9300 <= number && number <= 9399) ||
(9800 <= number && number <= 9899)
) {
if (number === 9850) {
return 4; // 沖縄セルラー電話株式会社
} else {
return 2; // KDDI株式会社
}
} else if (9200 <= number && number <= 9299) {
return 1; // 株式会社NTTドコモ
} else {
return 0; // 未定義
}
}
function getCompany(number) {
const num = number;
const table = [1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
2,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
3,0,0,0,0,0,0,0,0,0,
0,3,0,0,0,0,0,0,0,0,
0,0,0,2,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
3,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
1,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,3,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
2,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
5,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
2,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
5,5,5,5,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
2,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,2,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
1,0,0,0,0,5,5,5,5,5,
5,5,5,5,5,5,5,5,0,0,
0,5,5,5,5,5,5,0,0,5,
5,5,5,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,3,0,
0,0,0,0,0,0,0,0,0,0,
5,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,3,
0,0,0,0,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,1,1];
return table[num];
}
function setColorByCompanyID(id) {
switch (id) {
case 1:
stroke(230, 0, 18);
fill(230, 0, 18);
break;
case 2:
stroke(242, 142, 0);
fill(242, 142, 0);
break;
case 3:
stroke(192, 192, 192);
fill(192, 192, 192);
break;
case 4:
stroke(0, 123, 192);
fill(0, 123, 192);
break;
case 5:
stroke(233, 0, 94);
fill(233, 0, 94);
break;
default:
stroke(40, 40, 40);
fill(40, 40, 40);
}
}
function draw() {
background(220);
let dr = 10;
let dc = 100;
for (let row = 0; row < dr; row++) {
for (let col = 0; col < dc; col++) {
var company_id = getCompany(row* dc +col);
setColorByCompanyID(company_id);
rectMode(CORNER);
let rr = height / dr;
let rc = width / dc;
rect(col*rc, row*rr, rc, rr);
}
}
let d = height / 10;
stroke(100, 100, 100);
for (let x = 0; x < width; x += d) {
for (let y = 0; y < height; y += d) {
line(x, 0, x, height);
line(0, y, width, y);
}
}
}
かなりNTTコミュニケーションズの比重が多いけど、まだ空白の範囲もけっこうあるね。
4. もし、かかってきたら?
0800xxxxxxxという11桁の電話番号は、フリーダイヤルからの着信です。
しかし、もし心当たりのない番号からの着信なら、一度番号を検索してから折り返すのが賢明でしょう。
基本的には、企業の公式サイトなどで番号が掲載されているので、検索結果に出てくるはずです。
たとえば、この例では「NTT西日本」からの電話でした。
(補足)
- 「0800」の登場は、「0120」の番号が枯渇したことが主な理由とされています。 – 着信課金サービスとは? 「0120」「0800」番号を簡単に解説|ビジネスブログ|ソフトバンク