2

sip.conf

[101]
context = technical-office
[102]
context = employment-department

扩展名.conf

[technical-office]
exten => 101,1,answer()
exten => 101,2,dial(sip/101)
exten => 101,3,hangup()

[employment-department]
exten => 102,1,answer()
exten => 102,2,dial(sip/102)
exten => 102,3,hangup()

当我使用“101”分机拨打“102”时,出现错误“没有路由到目的地”。但是上下文是相同的没有错误

4

2 回答 2

6

那是因为你没有正确的上下文。SIP 对等体 101 指向上下文技术办公室,而您在该上下文中没有分机 102。要使其正常工作,请使用:

sip.conf

    [101]
    context = technical-office
    [102]
    context = technical-office

扩展名.conf

    [technical-office]
    exten => _1XX,1,answer()
    exten => _1XX,n,dial(sip/${EXTEN})
    exten => _1XX,n,hangup()

哪部电话都在同一个上下文中,所以如果 101 拨 102,它会工作,如果 102 拨 101,它也会工作。实际上 _1XX 被称为模式,而 ${EXTEN} 是指您拨打的分机。这在 Asterisk 拨号方案中很常见。

于 2012-11-26T04:44:49.597 回答
5

当然,您可以从一个上下文拨号到下一个上下文。

sip.conf:

[101]
context = technical-office
[102]
context = employment-department

extensions.conf:

[technical-office]
include => dial-context

[employment-department]
include => dial-context

[dial-context]
exten => _1XX,1,answer()
exten => _1XX,n,dial(sip/${EXTEN})
exten => _1XX,n,hangup()

您的示例不起作用,因为 exten => XXX 表示拨打的电话,而不是来自电话。如果您在拨号方案 (extensions.conf) 101 通过 102 上交换,您的示例将起作用,允许上下文 A 上的分机调用分机 102 并以另一种方式执行相同的操作。

检查voip-info或查找Asterisk:电话的未来 (O'Reilly)一书以完整介绍 Asterisk。

希望能帮助到你

于 2012-12-12T08:07:13.930 回答