Asterisk DID 传入规则 =s

Asterisk DID 传入规则 =s

所以我有一个来自英国供应商的 10 路 SIP 中继。来电和拨出电话都正常,但由于我有多个用于不同用途的号码,我为每个号码设置了入站规则,但它们从不起作用,只有捕获所有号码有效。在 CLI 中,当有电话打进来时,我得到以下信息:

Executing [s@from-trunk:1] Set("SIP/Entanet-0000014f", "__FROM_DID=s") in new stack
Executing [s@from-trunk:2] ExecIf("SIP/Entanet-0000014f", "0 ?Set(CALLERID(name)=01299404193)") in new stack
Executing [s@from-trunk:7] Goto("SIP/Entanet-0000014f", "timeconditions,1,1") in new stack

我猜重点是“__FROM_DID=s”,为什么是“s”而不是 DID?我与我的提供商交谈过,他们确实在 SIP 标头中发送了 DID。我的设置可能有什么问题吗?

我的 PEER 详细信息:

username=443331010040
type=peer
secret=***********
qualify=yes
nat=always
insecure=very
host=proxy.entacall.com
fromuser=443331010040
fromdomain=mydomain.com
dtmfmode=rfc2833
disallow=all
context=from-trunk
canreinvite=yes
authuser=443331010040
allow=ulaw

我的传入上下文详细信息:

type=user
secret=**********
context=from-trunk

注册字符串:443331010040:************@proxy.entacall.com

希望你能帮忙!?

答案1

在我看来,这看起来像是脚本错误,而不是设置错误。它报告脚本正在将 __FROM_DID 设置为 s,而不一定表示提供商的调用详细信息显示“s”。

为了针对不同目的路由不同的来电号码,我创建了 extensions.ael,内容如下:

context incoming-calls {
    441234000000 => {
        Answer();
        Dial(SIP/100,120);
    }

    441234000001 => {
        Answer();
        Dial(SIP/101, 120);
    }
}

您使用 AEL 吗?您的来电号码是否以 44 开头,而不是以 0 开头?

答案2

尝试将注册字符串更改为

443331010040:************@proxy.entacall.com/443331010040

或者将您的对等体更改为如下形式:

username=443331010040
type=friend
secret=***********
qualify=yes
nat=always
insecure=very
host=proxy.entacall.com
fromuser=443331010040
fromdomain=mydomain.com
dtmfmode=rfc2833
disallow=all
context=from-trunk
canreinvite=yes
authuser=443331010040
allow=ulaw
callbackextension=443331010040

并且不填写用户和注册字符串(当您包含回调扩展时 - 星号会自动注册)

相关内容