Asterisk,黑名单号码不会挂断

Asterisk, blacklisted number won't hang up

我已经为我的来电实施了一个简单的黑名单。我遇到的问题是当黑名单来电时我的phone不再响铃(这部分很好),但黑名单phone不挂断(这是问题所在)。

extensions.conf 中的传入上下文:

exten => 12225551234,1,Zapateller(nocallerid)
same => n,GotoIf(${BLACKLIST()}?hangup)
same => n,Dial(SIP/myphone)
same => n(hangup),Hangup()

将号码加入黑名单:

CLI> database put blacklist +14445554321 "Blacklisted for testing"

从列入黑名单的 14445554321 拨打 12225551234...

如通过 CLI 界面所见:

== Using SIP RTP CoS mark 5
 -- Executing [12225551234@from-sipProvider:1] GotoIf("SIP/sipProvider_did9-00000738", "1?hangup") in new stack
 -- Goto (from-sipProvider,12225551234,5)
 -- Executing [12225551234@from-sipProvider:5] Hangup("SIP/sipProvider_did9-00000738", "") in new stack
== Spawn extension (from-sipProvider, 12225551234, 5) exited non-zero on 'SIP/sipProvider_did9-00000738'
== Using SIP RTP CoS mark 5
 -- Executing [12225551234@from-sipProvider:1] GotoIf("SIP/sipProvider_did10-00000739", "1?hangup") in new stack
 -- Goto (from-sipProvider,12225551234,5)
 -- Executing [12225551234@from-sipProvider:5] Hangup("SIP/sipProvider_did10-00000739", "") in new stack
== Spawn extension (from-sipProvider, 12225551234, 5) exited non-zero on 'SIP/sipProvider_did10-00000739'
== Using SIP RTP CoS mark 5
 -- Executing [12225551234@from-sipProvider:1] GotoIf("SIP/sipProvider_did9-0000073a", "1?hangup") in new stack
 -- Goto (from-sipProvider,12225551234,5)
 -- Executing [12225551234@from-sipProvider:5] Hangup("SIP/sipProvider_did9-0000073a", "") in new stack
== Spawn extension (from-sipProvider, 12225551234, 5) exited non-zero on 'SIP/sipProvider_did9-0000073a'

这一直持续到被阻止的呼叫者挂断。最后,大约 50 秒后,如果来电者还没有挂断电话,他就会听到铃声。我需要挂断他的 phone 否则如果他不挂断 phone 我会被收费。

尝试在挂断电话之前接听电话。这是我使用的:

exten => 12225551234,1,Zapateller(nocallerid)
same => n,GotoIf(${BLACKLIST()}?badlist,s,1)
same => n,Dial(SIP/myphone)
same => n,Hangup()

[badlist]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(ss-noservice)
exten => s,n,Hangup