代码之家  ›  专栏  ›  技术社区  ›  Kamal Panhwar

如何使用pjsip转发星号上的sip调用?

  •  0
  • Kamal Panhwar  · 技术社区  · 6 年前

    我最近用pjsip将我们的旧服务器迁移到了新的星号,我们使用数据库和agi来控制调用。我们的客户可以设置呼叫到PSTN或SIP端点。 在旧的sip服务器中,我们在agi中使用以下命令。

    SIP/#######@sipserverip.com,30,HL(299940000:7000:5000)
    

    现在,对于pjsip,我已经更改了pstn的以下内容,它工作得很好,相同的字符串,但是对于出站sip调用,我收到了错误。因为我的pstn中继是注册的所以它在工作,

     PJSIP/#######@sipserverip.com,30,HL(299940000:7000:5000)
    

    它给了我错误

    Unable to create PJSIP channel - endpoint 'sipserverip.com' was not found
    

    我可以使用PJIP.CONF文件修复它并添加这个端点,但是我的问题是我的数据库中有大量的端点,应该有另一个解决方案,在配置中有什么吗?因为我们不在系统中添加这些IP,而只是将调用转发到另一个SIP端点。用户也可以选择添加更多的端点。我们不使用sip注册,也不允许sipper实时用户管理。

    谢谢你的帮助。

    2 回复  |  直到 6 年前
        1
  •  0
  •   arheops    6 年前
    same => n,Dial(PJSIP/default_endpoint/sip:14567895465@64.136.174.35:5060)
    

    请注意, 解除终结点 应该是 有效的 配置中指定的终结点。这样就可以从 默认终结点 并直接调用指定的url(忽略端点ip)。

    它在星号文档项目中有清楚的描述。

    https://wiki.asterisk.org/wiki/display/AST/Dialing+PJSIP+Channels

        2
  •  0
  •   Kamal Panhwar    6 年前

    我试了几次就解决了这个问题,谢谢@arheops。我需要在pjsip.conf文件中创建一个包含以下信息的pjsip端点。我知道需要减少这个配置,但现在调用进行得很好。感谢您的帮助,以下是配置,可能会有其他人来解决问题。

    [outgoing]
    type = aor
    maximum_expiration = 60
    minimum_expiration = 60
    default_expiration = 180
    
    [outgoing]
    type = identify
    endpoint = outgoing
    
    [outgoing]
    type = endpoint
    context = default
    dtmf_mode = none
    disallow = all
    allow = all
    rtp_symmetric = yes
    force_rport = yes
    rewrite_contact = yes
    direct_media = no
    language = en
    aors = outgoing
    t38_udptl = yes
    t38_udptl_ec = none