为何手机号码是1开头呢,是因为,早期的手机号码被当做特殊号局对待。2-8开头的才是正常电话号码,长度为7-8位。
为什么会这样呢,是和电话的演进有关。电话是先出来有线电话,也就是我们以前用的固定电话,然后才出现了手机号码。早期,各个区县的电话是单独的一个管理区,各个管理区之间,相互呼叫,要收取区间通话费;由电话号码的第一个数字标识该号码属于哪个区(比如济南市在未升8位数电话号码前,8表示历下区高新区,3表示章丘区,5表示市中区,7表示槐荫区,4表示济阳区和商河县等,升8位以后设备已经更新换代,新号段就乱了,老号码也可以随意移机了),8位数字电话号码则由第2-4位标识该号码所在的区内程控交换机(这也是早期电话为何乡镇之间的号码前部都不一样的原因,比如济南的号码,一看到前面是8887开头,大概率就是在高新区软件园附近,而8488开头则大概率是在商河县城区附近,纯粹就是因为很多用户很多年电话号码都没有换。),其实早期的小灵通也有自己专门的号段,也就是为了标记小灵通专属交换机,比如我们县当时小灵通的专属号段就是588,589。
为何要这么规划呢?是因为早期的程控交换机内存普遍不大,要管理全县,全区上百万门电话,程控交换机受不了。本地网直接呼叫本地网内的各个交换机,前3-4位拨出以后,也就进入了对方子网的交换机。比如,66668888呼叫88886666,用户66668888摘机,拨号,拨完8888时,该用户所属的6666交换机一看前4位是8888,就和8888交换机建立了话务连接,并继续发送后4位号码给8888交换机,8888交换机一看呼叫的是自己所属的用户线路号码为6666的用户,于是就给线路号码6666上加入70V振铃电压,用户电话就响了。
手机当时归属于无线局,第一位数字是9,因为当时手机还是非常贵,所以用户不是太多,每个市能有1-2万人就很不错了,所以,只有几个个无线交换机,交换机编码分别为9001-9009等,能用的起手机的肯定是先富起来的那群人。当时的手机号码是[区号]900N[用户号码],此时,手机还不能漫游,只能在本地移动使用。此时,手机号码属于中国电信运营。
后来电信移动局拆分出来成立中国移动,要建设全国一张移动网,就把移动局的号码单独拿出来,用1表示特殊服务号码(10不用),如110,114,120,170,180等,就用13表示本地移动局,用9表示移动第一个交换机,8表示移动第二个交换机……同时,手机号码也有全国唯一性,所以,在139和用户号码之间还要加入区号表示这个用户是属于那个营业城市的,所以,139中间带区号是中国最早的一批手机号码。至于为何打外地手机前面需要加0?是因为需要离开本地网,要占用全国长途资源,而移动是不允许建设全国长途网的,所有的长途电话只能由中国电信经营。而中国电信规定,想要离开本地网,号码第一位必须是0,所以,外地手机号码前必须要加0。所以13805321234表示青岛市的移动第二个交换机下面用户号码位1234的用户。
当固定电话用户想呼叫长途固定电话时,会怎样呢?我国早期的长途交换网由中国电信专营,全国分为东北,华东,华北,西北,西南五个交换区域,分别用数字4 5 6 7 8 9来标识,东北用4标识,根程控交换机在沈阳,华东用5,在南京,华南用7,在武汉,西南用8,在成都,西北用9,在西安。比如某个济南用户66668888想呼叫陕西延安的用户88886666,济南用户摘机,按0,此时,济南用户所属的6666交换机将呼叫转移至本地长途局,本地长途局接入南京,用户继续按下了9,南京交换局分出一路资源和西安交换机互联,并继续发送拨号信息,此时,用户按下了后面的10,西安交换局接入延安长途局,用户继续按下后面的数字8888,延安长途局则接入本地8888交换机,并继续转发后续拨号,用户继续拨完6666,延安8888交换机下面的用户线6666加电振铃。
当固定用户呼叫外地手机时,会在手机号码前加0表示这是外地手机,本地长途局收到呼叫信息后,会将呼叫去掉0送至移动本地局,移动本地局会根据HLR查询到本号码的属地,然后翻译成区号+手机号码的格式,送回电信长途局然后按照前文说的长途呼叫的引发方式建立呼叫。虽然这样看似不加0也可以,但是这样会造成计费系统异常,所外地手机号码前面加0的格式也就保留了下来。
这是以前程控交换机时代的网号编码及拨号方式,现在已经全部实现了IP化,直接成了用户和用户的自行对接,已经没有了多级转发的过程。以前是根据线路端口来判定这根线是哪个号码(用户),现在则成了账号。手机的VoLTE和电话的ims,都是这种形式。
手机号则直接转译成IMSI,也就是4600x开头的13位数字,如460001234567890,手机就会以这个数字为账号向服务器注册,注册用户名是460001234567890@mcc460.mnc00.3gppnetworks.org,假设他是13800000000,用户13900000000的IMSI为460011234567890,当13800000000拨号完毕点击发送时,电脑实际呼叫的是460011234567890。所以,手机实际是以IMSI作为互相通信的号码。
电话也是如此,比如固定电话053288888888,则变成了用户名+8653288888888@ims.sd.chinaunicom.cn
=====20220310补充==============
感谢大家的指正,我也确实发现了一些错误,比如1380531,确实是济南的号码,哈哈……
我看大家也有些问题,那我就继续回答一下。
在程控时代,主要是靠每一位的号码确定号码去向,那IP时代呢?则完全变了样。
首先是固定电话。固定电话那长长的单独的一根线已经消失了,成了这个样子:
注册成功则会这样:
联通一般是一个省份一个服务器,电信则是双归属原则,北方10省的注册服务器在天津和内蒙古,南方的在贵州和成都。
以一个呼叫流程为例,说明一下这种情况下的呼叫。
电信对电信/联通固网:
电话摘机,呼叫同一运营商的网内号码时(不分市话和长途,呼叫市话时自动补齐长途区号):
如0531-88888888呼叫028-88888888,其实是+8653188888888@sd.ctcims.cn向服务器发送的呼叫请求,呼叫028-88888888,服务器查找028-88888888的注册信息为+862888888888@sc.ctcims.cn,还有注册终端的IP,然后将被叫信息发送给该注册终端,告诉它,有呼入的连接,你可以振铃了。摘机,通话完毕,挂机后,相互bye下线(设备都比人懂礼貌),然后进入休眠模式。但是休眠模式时,服务器不知道终端在线不在线,于是乎就每30秒发送一次信息,问终端,你还活着么?终端如果活着,就回复,我还活着,劳您费心了。如果连续三次都没收到终端的信息,则认为该终端下线,就会反馈给主叫方(对方没有开机;就会提示您拨打的电话已关机,这个真有的,你们可以把光猫关了试试看)
手机的VoLTE和固定电话之间的呼叫也是一样的。中间多了一个双方服务器交互过程,此处不再赘述。
说一下手机的注册过程。手机VoLTE其实是VoIP的一个升级版,也是通过VoIP的方式注册的语音。注册成功后,你的手机上会显示一个HD标志。VoLTE注册网络是纯IPv6网络,通过接入点IMS实现接入。如下图:
固定电话用的步进式程控交换机。步进式的意思是拨一位号解析一次。
第一位拨0,本地局会将通话线路转接至电信的全国固定电话交换中心处理。拨完区号,全国固定电话交换中心会将通话转接给区号对应的区域交换中心处理。
第一位拨1,本地局会等待前三位号码拨完。前三位是网络码的,转接给对应网络的无线呼叫处理中心处理。前三位不是网络码的(110,120,119,123)则转给对应呼叫总台。
第一位拨9,本地局直接转给工信部呼叫中心
第一位拨4或8,本地局等待第二位是否为0,是的话转给400/800总台,否则按其他号码处理
其他的就是本地电话了,按本地组网方式寻呼。
补充几点。以上操作每次接入地方局都会执行一次,所以拨0+区号+110可以接入指定地方的110指挥中心,其他1开头或9开头的总台同理。
通话已经在由全国固定电话交换中心处理时,再次拨0则会转接给IDD(国际直接拨号)中心,手机上直接拨“+”(长按数字0)则可以绕过全国固定电话交换中心,直接拨给IDD中心,固定电话不支持这个功能。
来电显示固定电话是在振铃时通过FSK或DTMF制式发送,边振铃边发送,所以在呼叫建立的时候没人知道正确的来电显示号码。移动电话的来电显示由各自的通信制式处理。所以固定电话打移动电话需要先假装振铃,由无线呼叫处理中心收完来电显示后再寻呼手机并振铃。所以固话打手机会嘟几声后手机才响。(并不是所有固话都这样,很多地方固话已经VoIP改造,固话接在光猫之类的东西上,用类似手机的方式寻呼)
一次通话寻呼如果经历了太多次转发,并不能保证每次都能正确转换制式,所以来电不显示或者错误显示都是很常见的情况。而且整个寻呼链条上只有第一个交换中心知道正确的来电号码,链条后面只转发不验证。如果第一个交换中心被骗子控制了,那他想怎么显示就怎么显示。
应该是个前缀码,简单说就是你拨了 13、15、17、18 等等前缀之后,接收方就知道你正在输入的应该是一个总长11位的手机号。这个系统需要和原来固话的系统兼容,因为不知道固话拨号的系统是如何设计的所以这里没法继续讨论了。
但这并不是必须的,很多国家的手机号码和固话号码(比如美国)用的都是同一个地址空间(比如 10 位数字),就是只看一个号码并不能很容易地看出这个是手机号码还是固话号码。