如何在PJSIP和星号13中允许入站呼叫



我已经配置了使用PJProject 2.5.5的星号13.13.1,并启用PJSIP为SIP驱动程序(不编译Chan_sip)。

我有完全配置的系统,它正在工作,但是我在来电上有一些问题。我与主机连接的数字很少,当我从任何公共号码打电话时,我在星号远程控制台上注意到了此信息:

[Feb 24 14:27:16] NOTICE[5291]: res_pjsip/pjsip_distributor.c:525 log_failed_request: Request 'INVITE' from '"zzzzz" <sip:zzzzz@192.168.34.1>' failed for '192.168.34.1:5062' (callid: 0e07e7607f8f62dd225347363173bb9f@192.168.34.1:5062) - No matching endpoint found

,如果我将呼叫的号码添加到端点到端点,那么它可以正常工作 - 我可以接听此调用。

如何添加允许所有入站呼叫的可能性?

您需要创建一个匿名端点才能接受来自未知端点的入站调用。

请注意,添加匿名端点会为扩展扫描攻击打开系统,扫描仪试图找出您在系统中配置了哪些扩展的攻击。他们这样做是为了通过广告电话垃圾邮件,要么利用通话转移以调用长距离号码,或者是其他别有用心的动机。

创建匿名端点后,将其与与扩展名不同的上下文相关联。这样可以防止他们通过行李箱拨动长途拨号。

要在pjsip.conf中添加匿名端点,请添加以下行:

[anonymous]
type=endpoint
context=anonymous
disallow=all
allow=speex,g726,g722,ilbc,gsm,alaw

在拨号程序extensions.conf中:

[anonymous]
exten => _XXXXX,1,GotoIf(${DIALPLAN_EXISTS(local-extensions,${EXTEN},1)}?local-extensions,${EXTEN},1)
 same => n,Hangup(1)

local-extensions是列出您本地扩展的上下文。

看来您缺少 pjsip config的东西。我的基本配置如下,并且基于具有内部扩展名的Sipgate设置。此配置已从运行框中提取(尽管用户名&amp;密码已删除);

pjsip.conf

[transport-udp]
type = transport
protocol = udp
bind = 0.0.0.0

[reg_sipgate_premium]
type = registration
retry_interval = 20
max_retries = 10
contact_user = 0000000
expiration = 120
transport = transport-udp
outbound_auth = auth_sipgate_premium
client_uri = sip:0000000@sipgate.co.uk:5060
server_uri = sip:sipgate.co.uk:5060
[auth_sipgate_premium]
type = auth
username = 0000000
password = password
[sipgate_aor_premium]
type = aor
contact = sip:0000000@sipgate.co.uk
[sipgate-preimum]
type = endpoint
context = incomingsipgate
dtmf_mode = rfc4733
disallow = all
allow = alaw
rtp_symmetric = yes
force_rport = yes
rewrite_contact = yes
timers = yes
from_user = 0000000
from_domain = sipgate.co.uk
language = en
outbound_auth = auth_sipgate_premium
aors = sipgate_aor_premium

extensions.conf

[incomingsipgate]
exten => 0000000,1,Goto(sipgate-in-premium,0000000,1)
[sipgate-in-premium]
exten => 0000000,1,Verbose(Incoming call from Sipgate line CallerID=${CALLERID(all)})
exten => 0000000,2,Goto(internal-ext,120,1)
[internal-ext]
exten => 120,1,Dial(SCCP/120,20,o,CallerID=${CALLERID(all)})

当用户内部拨打90500xxxxxxx;

时,该行用于捕获任何免费的电话(0500)号码(0500)号码,并通过sipgate路由它。
exten => _90500.,1,Dial(PJSIP/${EXTEN:1}@sipgate-preimum)

可以肯定的是,问题在您的传入线运算符上下文中。问题不在PJSIP中 - 它在拨号平面中。请检查您的后备箱(或注册上下文值以了解正确的拨号平面部分:

[outer]
exten=>_1234567,1,NoOp(Incoming call to public number 1234567)
exten=>_1234567,n,GoTo(outer,3333,1)
exten=>_1234567,n,Hangup()
exten=>_3333,1,NoOp(Transfered from public context to local extension 3333)
exten=>_3333,n,Dial(PJSIP/${EXTEN},180)
exten=>_3333,n,Hangup()

将1234567更改为您的公共号码,将3333更改为必须接收此来电的本地号码。当然,将outer设置为传入电话号码提供商注册(TRUNK)的上下文。

最新更新