如何使用PJSIP转发Asterisk上的Sip呼叫?

时间:2019-01-15 11:36:08

标签: asterisk voip pjsip

我最近使用PJSIP将旧服务器迁移到了新的Asterisk,我们正在使用数据库和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

我可以使用pjsip.conf文件修复它并添加此端点,但是我的问题是我的数据库中有大量端点,应该有另一种解决方案,它在配置中是否有用?因为我们没有在系统中添加这些IPS,而只是将呼叫转发到另一个sip端点。用户也可以选择添加更多端点。我们不使用sip注册,也不允许使用sipper进行实时用户管理。

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

same => n,Dial(PJSIP/default_endpoint/sip:14567895465@64.136.174.35:5060)

请注意, defualt_endpoint 应该是在配置中指定的有效端点。这样,它会从 default_endpoint 获取连接参数(编解码器等),并直接调用指定的url(忽略端点ip)。

在星号文档项目中对此进行了明确的描述

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

答案 1 :(得分:0)

几次尝试后,我感谢@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