如何确定一个电话号码(带国家/地区电话代码)是否与另一个(不带国家/地区电话代码)相同
我正在开发类似 iPhone 的“Viber”应用程序 ( http://www.viber.com/ ) 。
我需要使用用户电话号码作为数据库中的 ID。
当用户启动应用程序时,我需要确定哪些联系人使用同一应用程序。 我可以使用 ios API 获取联系人电话号码。
但在考虑国家/地区呼叫代码时,这种情况会出现问题( http://en.wikipedia.org/wiki/List_of_country_calling_codes< /a> ) :
当“注册”时,用户 A 输入他的电话号码,不带国家/地区电话代码。 用户 A 在用户 B 的联系人列表中,但没有国家/地区呼叫代码。
以法国为例: +33 x xx xx xx xx 指的是 0x xx xx xx xx 的同一部手机
有没有简单的方法来解决此问题?
I am working on an application like 'Viber' for iPhone ( http://www.viber.com/ ).
I need to use the user phone number as ID in my database.
When the user launch the application, I need to determine which contacts use the same application.
I can get contacts phone number with ios API.
But this scenario is problematic when considering country calling codes ( http://en.wikipedia.org/wiki/List_of_country_calling_codes ) :
When "registering", the USER A type his phone number without country calling code.
The USER A is in the contact list of USER B, but without the country calling code.
For instance, in France :
+33 x xx xx xx xx is refering to the same phone that 0x xx xx xx xx
Is there a simple way to resolve this problem ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从本地格式转换为 E.164 格式没有简单的方法。问题是每个国家/地区的本地移动格式各不相同,因此您无法为所有国家/地区制定一套规则。您必须找出国家/地区当地移动运营商支持哪些格式。
如果您必须支持多个国家/地区,那么您可以基于 MCC/MNC 从 iPhone 返回。我还没有找到哪些国家/地区支持哪些本地格式的列表。它也无法解决号码采用本地格式的漫游电话的问题。
如果您必须与多个国家/地区打交道,那么您将会遇到像澳大利亚这样的国家/地区的问题,这些国家/地区支持本地号码格式,如果没有更多信息,几乎不可能将它们转换为 E.164 格式......
请参阅此 问题这基本上是和你有同样的问题。
我建议您的所有用户使用 E.164 格式来存储所有电话号码。如果您必须支持转换,请仅支持您必须处理的国家/地区格式。确保您调查了该国家/地区支持的所有格式。
您可以尝试使用上面问题中尝试使用的通用格式,但它不适用于所有数字格式。
在我开发的 PBX 软件中,我们使用基于规则的引擎,客户可以为其环境进行配置,并且我们尝试为我们销售的国家/地区进行预填充。
There is no easy way to convert from a local format to E.164 format. The problem is that every countries local mobile format varies, so you can't have one set of rules for all countries. You have to find out what formats a countries local mobile carrier supports.
If you have to support multiple countries then you may be base it on the MCC/MNC returned from the iphone. I have yet to find a list of what the local formats are supported in what countries. It also doesn't get around the problem of a roaming phone where the number is in a local format.
If you have to deal with multiple countries then you are going to have problems with countries like Australia, who support local number formats that make converting them to E.164 format almost impossible without further information....
See this Question which is basically the same question that you have.
I would recommend that all your users use E.164 format for storing all there phone numbers. If you have to support a conversion, only support the country formats you have to deal with. Make sure you investigate all the formats that country supports.
You can try to a generic one like in the question above tries to use, but it will not work for all number formats.
In the PBX software that I work on, we use a rules based engine that the customer can configure for there environment and we try to pre-populate for the countries that we sell into.