PSTN到OpenSIPS到下一个SIP目的地

PSTN到OpenSIPS到下一个SIP目的地,sip,kamailio,opensips,openser,Sip,Kamailio,Opensips,Openser,我与Asterisk合作多年,但我对OpenSIPS非常陌生。我需要的是让调用从我们的DID提供者传入OpenSIPS服务器,然后将它们重定向到另一个SIPURI 大概是这样的: DID发起提供程序->OpenSIPS->下一个SIP服务器 基本上,我需要OpenSIPS服务器位于我的DID提供者和Plivo之间,Plivo基本上是一种Twilio类型的服务 我已经安装了OpenSIPS和控制面板GUI。使用GUI,我成功地设置了从DID提供商到我注册到OpenSIPS的任何SIP电话的呼叫,呼

我与Asterisk合作多年,但我对OpenSIPS非常陌生。我需要的是让调用从我们的DID提供者传入OpenSIPS服务器,然后将它们重定向到另一个SIPURI

大概是这样的:

DID发起提供程序->OpenSIPS->下一个SIP服务器

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

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

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

感谢您的帮助,我在这方面已经做了几天了,搜索了谷歌和Youtube,查看了教程,观看了视频,花了时间阅读了这本书等等。所以,这并不是因为缺乏努力。这显然是一个很好的学习过程,但是,我希望能得到一些帮助,以便尽早完成这项具体任务


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

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

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

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

  • 保留请求URI,但在执行
    t\u relay()
    时将消息路由到Plivo:
  • 重写SIP消息的请求URI,使其在执行
    t_relay()
    时指向Plivo:

  • 就这样!默认脚本已经执行了
    记录路由()
    ,确保代理位于所有中间呼叫请求的路径内。

    我还应该提到,我基本上是在尝试接受来自DID提供商IP地址的任何呼叫,并通过sip URI将其发送到下一个目的地。我需要做的唯一修改是将号码发送给我的方式(NPANXXXXXX)更改为(+1NPANXXXXXX)。感谢您提供的信息,我今天将尝试一下,并让您知道它是如何运行的。说真的,很难从任何地方得到关于OpenSIPS的答案。在IRC或我找到的任何其他地方,人们似乎对他们的信息不太慷慨。我目前在opensips.cfg中没有if(lookup(“location”){}我确实有类似的东西,尽管使用方法过滤if(!lookup(“location”){t_newtran();t_reply(“404”,“notfound”);exit;}进行查找看起来这正是我建议的街区。我对答案进行了更精确的编辑:)
    $du = "sip:your_plivo_ip:5060"; # set a "destination URI"
    
    $ru = "sip:your_plivo_ip:5060"; # rewrite the "Request-URI"