2012-11-24 20 views
2

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”。但上下文是一样的是没有错误

回答

6

这是因为你没有正确的上下文。 SIP peer 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拨号方案中很常见。

4

当然,您可以从一个环境拨号到另一个环境。

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() 

您的例子不工作,因为讯号分配延长=> XXX指拨电话,而不是从手机。如果您在dialplan(extensions.conf)101之间交换102,您的示例将工作,允许上下文A的扩展调用extenion 102,并以其他方式执行相同的操作。

检查voip-info或查找Asterisk: The future of telephony (O'Reilly)书以完整介绍Asterisk。

希望它有帮助

相关问题