如何扩展哪些具有不同的上下文可以相互通信?

时间:2012-11-24 15:30:56

标签: asterisk

sip.conf

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

extension.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'时,我有一个错误“没有路由到destionation”。但是上下文是一样的,没有错误

2 个答案:

答案 0 :(得分:6)

那是因为你没有正确的背景。 SIP对等方101指向上下文技术办公室,并且在该上下文中没有扩展102。 要使其工作,请使用:

sip.conf

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

extension.conf

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

哪两部手机都处于相同的上下文中,所以如果101拨打102,它将开始工作,如果102要拨打101,它也可以正常工作。 实际上_1XX称为模式,$ {EXTEN}是指您拨打的扩展名。 这在Asterisk拨号方案中非常普遍。

答案 1 :(得分: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: The future of telephony (O'Reilly)书籍以获取对Asterisk的完整介绍。

希望有所帮助