【问题标题】:Automate Calling to mobile number for Authentication自动呼叫手机号码进行身份验证
【发布时间】:2018-06-20 09:49:11
【问题描述】:

我见过很少有应用程序为 2FA 提供语音呼叫,服务会呼叫我们的手机号码并告诉我们必须输入验证码。

我想在我的 JAVA 应用程序中实现其中之一。

据我搜索,有许多第三方提供商可以执行此操作,但我想使用 JAVA 原生 API 实现我自己的,并且更喜欢避免使用第三方 API。

有可能吗?有什么建议吗?

编辑

我研究了 JTAPI。看起来我们需要一个提供程序(Avaya 或 Cisco)来充当应用程序和用户之间的接口。如何联系这些供应商?

【问题讨论】:

    标签: java mobile native phone-call two-factor-authentication


    【解决方案1】:

    这就像调用 URL 一样简单。您不需要任何 API。您可以尝试 Twilio 或 Nexmo。 请参阅下面的 Nexmo 示例(他们也有 Java 库,但这是“纯”REST):

    https://rest.nexmo.com/call/json?api_key=your-key&api_secret=your-secret&to=+99450_destination_number&answer_url=https://myserver/call_callback.php
    

    但是,不建议使用传统的电话和短信。

    【讨论】:

    • 我检查了 Twilio 和 Nexmo。它们是我不想要的 API。
    • 据我所知,Java 可以使用 Native 函数或 API 进行操作。如果您正在寻找一个本地 Java 函数来拨打电话,我可以确定这样的函数不存在。顺便说一句,API 有什么问题?如果这是一个安全问题,那么就像在窗户上放置网格而门是敞开的:语音通话是如此不安全且易于拦截,以至于依赖外部 API 根本不会增加任何风险。
    • 有JTAPI,但没完全看懂。
    • 快速浏览了JTAPI,似乎它是SIP客户端功能的原生实现。这在概念上不会改变任何东西。呼叫仍需要由您必须“信任”的服务器(SIP/VoIP)完成。因此,您无需向 Nexmo 发送 HTTP 请求,而是向 Voip 服务器发送 SIP/UDP 请求。 JTAPI 能够更好地解决您的问题的唯一方案是您自己在本地托管一个 SIP 设备(如 Cisco Voip 路由器)。
    • 我想学习如何实现这些东西。因此,使用 Nexmo 或 Twilio 毫无意义。从您的评论看来,我必须托管一个 VoIP 服务器,而我的客户必须与服务器通信才能呼叫手机。虽然我不明白 SIP 和 VoIP 的术语,但看起来这就是我想要的。关于服务器端的任何建议?
    猜你喜欢
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 2022-07-21
    • 2013-02-22
    • 2020-12-04
    相关资源
    最近更新 更多