从PSTN到OpenSIPS到下一个SIP目的地

时间:2019-07-18 21:02:06

标签: sip kamailio opensips openser

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

类似这样的东西:

DID原始提供程序-> OpenSIPS->下一个SIP服务器

基本上,我需要OpenSIPS服务器位于我的DID提供程序和Plivo之间,而Plivo基本上是Twilio类型的服务。

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

我需要花费大量时间来学习我愿意做的OpenSIPS之类的路由逻辑,但是目前,我正试图解决问题,并希望有使用OpenSIPS CP的解决方案。如果没有,我希望在配置文件中找到一个示例。

我们非常感谢您的帮助,我已经在这里工作了几天,已经搜索了Google和Youtube,浏览了教程,观看了视频,花了点时间看书,等等。这显然是一条学习曲线,但我希望能有所帮助,以便早日完成此特定任务。

再次感谢您的帮助。如果有必要,请在Debian 8上使用最新的2.4版本的OpenSIPS。

1 个答案:

答案 0 :(得分:1)

首先:无法通过CP进行此操作。 OpenSIPS CP旨在在较低级别上工作,从而帮助您管理数据(用户,路由规则,路由目标,拨号计划规则,TLS证书等)。将这些数据链接在一起的任何自定义高级逻辑都需要在opensips.cfg中编写脚本。

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

if (lookup("location")) {
    ...
}

...然后选择:

  1. 保留Request-URI,但在进行t_relay()时使消息路由到Plivo:
$du = "sip:your_plivo_ip:5060"; # set a "destination URI"
  1. 重写SIP消息的Request-URI,因此在进行t_relay()时它将转到Plivo:
$ru = "sip:your_plivo_ip:5060"; # rewrite the "Request-URI"

就是这样!默认脚本已经执行record_route(),以确保代理位于所有通话中请求的路径之内。