【问题标题】:Asterisk SIP custom authenticationAsterisk SIP 自定义认证
【发布时间】:2013-10-24 20:49:26
【问题描述】:

我正在使用 ASTERISK 来桥接公司内部的 sip 呼叫。

只有经过身份验证/授权的用户才能拨打电话。

我们已经有一个处理身份验证的服务,那么有没有办法将来自星号(sip.conf)的身份验证集成到我们的服务中?

因此,不用在 sip.conf 中输入所有用户和密码,星号可以简单地调用一些与我们的身份验证服务通信的 API。

基本上,我需要一种从 SIP 设备获取用户名/密码并进行身份验证的方法。 由于每个用户都有不同的密码,当我们已经在数据库中拥有所有用户/密码时,在 sip.conf 中输入所有密码将变得不切实际。

谢谢

【问题讨论】:

    标签: authentication sip asterisk


    【解决方案1】:

    有很多方法可以在星号中进行身份验证

    • 使用星号realtime architecture,身份验证是通过数据库(mysql/odbc)。这是强烈推荐的方法。如需实时 sip 集成,请参阅 this
    • 使用 exec 包含方法(在重新加载时执行提供配置的外部脚本)。只会在重新加载时更改配置。 Check this link
    • 在星号之前使用 openser(kamailio/opensips),使用带有 curl 的 avpairs 从您的 API 获得答案。您的 API 必须非常快速,并且您需要成为 opensips/kamailio 方面的专家。

    由于所有这些对于星号来说都是很常见的事情,因此您可能需要星号专家来验证/安全审核/系统性能审核,或者您需要员工中的某个人阅读诸如 O'Reilly's Asterisk The Future Of Telephony 之类的书籍,以了解一些可能问题。

    【讨论】:

    • 谢谢。 ODBC 路径看起来很复杂,因为它对数据库格式施加了严重的限制。我们已经有一个与我们的许多内部流程集成的数据库,因此我们无法更改它以适应星号。第二个选项是一个不错的选择!只是编写一个'printf' sip.conf 信息可以工作的 C++ 程序?问题是传递所有用户的开销......我无法理解第三个选项。你能再解释一下吗?非常感谢!
    • 格式没有任何问题。只需创建视图并将星号指向该视图。如果您的团队没有熟练的 mysql(或其他数据库)开发人员 - 雇用一个,这很简单。对于第二个选项,任何创建正确配置文件到标准输出的程序都可以工作。第三个选项 - 使用 kamailio.org 软件。恐怕您需要 kamailio 专家才能使用它。
    【解决方案2】:

    arheops 已经锁定了大选项。他那样酷。或者,如果您的手机支持手机上的 XML 浏览/Java 应用程序,您还可以使用自定义 SIP 标头来提供第二个身份验证因素。因此,电话有一个非循环的 RSA 密钥,作为第一个身份验证因素,然后动态执行 CHAP 样式调用到您的身份验证服务器,以检索一个寿命短得多的“开始密钥”,该密钥作为自定义 SIP 标头包含在内.没有时效标头,没有调用权限。 如果您可以派生一个双因素身份验证方案,其中一个因素是 RSA/DSA 密钥,那么您可能就足够安全了。

    【讨论】:

      【解决方案3】:

      您可以使用 AGI 直接(或通过 Web 服务间接)连接到您的数据库。 AGI 可以用 PHP、Java、Python ... 或 Asterisk 提供的其他语言编写。 当分机尝试拨打电话时,您的 Agi 会连接到数据库,填写用户名/密码,然后进行身份验证.... 希望对您有所帮助,

      【讨论】:

      • 这就是我要找的东西。我可以用 C 写吗?如果是这样,我的 AGI 脚本如何将信息返回到拨号计划,以便星号继续进行桥接?有什么例子吗?谢谢
      • 另一个问题是:如何从我的脚本中获取来自 SIP 设备的凭据?用户名和“秘密”信息?
      • 您不能使用 agi 进行 sip 身份验证。回答的人不是专家。
      【解决方案4】:

      我在 Asterisk 工作了 2 年多。我曾经使用 AGI 连接 windows 环境。我写了很多 Asterisk 代码来定制 IVR ......等等。我使用 PHP 编写 AGI。因此,AGI 连接到 Microsoft SQL,获取数据并将数据返回给 Asterisk Dial 计划。这项任务并不简单,但也不太难。问题是你必须学习如何在 Asterisk 中编写代码并学习如何使用 AGI。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多