2012-11-24 19 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。

希望它有幫助

相關問題