1

我与 Asterisk 合作多年,但我对 OpenSIPS 很陌生。我需要的是让呼叫从我们的 DID 提供商进入 OpenSIPS 服务器,然后将它们重定向到另一个 SIP URI。

像这样的东西:

DID Origination Provider -> OpenSIPS -> 下一个 SIP 服务器

基本上我需要 OpenSIPS 服务器位于我的 DID 提供者和 Plivo 之间,它基本上是一个 Twilio 类型的服务。

我已经安装了 OpenSIPS 和控制面板 GUI。使用 GUI,我已经成功地设置了从 DID 提供商到我注册到 OpenSIPS 的任何 SIP 电话的呼叫,呼叫工作正常。

我需要花费大量时间学习 OpenSIPS 的路由逻辑等,我愿意这样做,但目前我正在尝试解决问题并希望有使用 OpenSIPS CP 的解决方案。如果没有,我希望有一个关于如何在配置文件中进行设置的示例。

感谢您提供任何帮助,我已经在此工作了几天,搜索了 Google 和 Youtube,查看了教程,观看了视频,花时间阅读了这本书等。所以,不是因为缺乏努力。这显然是一个相当长的学习曲线,但我希望能得到一些帮助,以便早日完成这项特定任务。

再次感谢,提前提供任何帮助。如果重要的话,在 Debian 8 上使用最新的 2.4 版本的 OpenSIPS。

4

1 回答 1

1

首先:没有办法通过 CP 做到这一点。OpenSIPS CP 旨在在较低级别上工作,帮助您管理数据(用户、路由规则、路由目标、拨号规则规则、TLS 证书等)。任何将这些数据片段链接在一起的自定义、更高级别的逻辑都需要在opensips.cfg.

幸运的是,默认值opensips.cfg已经涵盖了我们这里需要的 90%。因此,您应该删除这部分,而不是将呼叫路由给用户并直接转到 Plivo:

# do lookup with method filtering
if (!lookup("location","m")) {
    ...
}

...然后是:

  1. 保留 Request-URI,但在执行以下操作时将消息路由到 Plivo t_relay()
$du = "sip:your_plivo_ip:5060"; # set a "destination URI"
  1. 重写 SIP 消息的 Request-URI,所以它会在执行以下操作时前往 Plivo t_relay()
$ru = "sip:your_plivo_ip:5060"; # rewrite the "Request-URI"

就是这样!默认脚本已经这样做record_route()了,确保代理保持在所有呼叫中请求的路径内。

于 2019-07-22T08:23:39.377 回答