将调用星号转移到不同的上下文

Nec*_*net 2 asterisk

我有一个小型和基本的 PBX,并且有两个上下文,基本上是销售和主管,两者都有不同的角色和权限。我注意到可以从同一上下文转移呼叫,但不可能将任何内容转移到另一个上下文。

任何见解,我有点像星号上的菜鸟,但目前没有其他人负责......

谢谢

编辑

这是扩展名.conf

[supervisor]
include => from-internal
exten => _40XX,1,Answer
exten => _40XX,n,Set(calltime=${STRFTIME(${EPOCH},,%C%y%m%d.%H.%M.%S)})
exten => _40XX,n,Set(CALLEDNUMBER=${EXTEN})
exten => _40XX,n,MixMonitor(/tmp/Para_${CALLEDNUMBER}-${calltime}-De_${CALLERID(num)}.wav)
exten => _40XX,n,Dial(SIP/${EXTEN},40,TtRr)
exten => _40XX,n,Hangup

[sales]
include => out-trunksip
exten => _41XX,1,Answer
exten => _41XX,n,Set(calltime=${STRFTIME(${EPOCH},,%C%y%m%d.%H.%M.%S)})
exten => _41XX,n,Set(CALLEDNUMBER=${EXTEN})
exten => _41XX,n,MixMonitor(/tmp/Para_${CALLEDNUMBER}-${calltime}-De_${CALLERID(num)}.wav)
exten => _41XX,n,Dial(SIP/${EXTEN},40,TtRr)
exten => _41XX,n,Hangup
Run Code Online (Sandbox Code Playgroud)

sip.conf 如下所示:

[supervisor]
username=sales
secret=ASUPERSECRETPASSWORD
type=peer
.....
context=supervisor
mailbox=supervisor

[sales]
username=sales
secret=ASUPERSECRETPASSWORD
type=peer
.....
context=sales
mailbox=sales
Run Code Online (Sandbox Code Playgroud)

为了让主管拥有他已经拥有的相同特权,并且销售人员能够将电话转接给他,你有什么建议

小智 5

当您转接电话时,asterisk 会在您当前的上下文中搜索分机,因此如果有人使用“销售”呼叫,他将只能转接到分机 41XX,如果您想让他转接到分机 40XX 那么您应该添加 40XX销售环境,例如:

[sales]
include => out-trunksip
exten => _41XX,1,Answer
exten => _41XX,n,Set(calltime=${STRFTIME(${EPOCH},,%C%y%m%d.%H.%M.%S)})
exten => _41XX,n,Set(CALLEDNUMBER=${EXTEN})
exten => _41XX,n,MixMonitor(/tmp/Para_${CALLEDNUMBER}-${calltime}-De_${CALLERID(num)}.wav)
exten => _41XX,n,Dial(SIP/${EXTEN},40,TtRr)
exten => _41XX,n,Hangup

exten => _40XX,1,Dial(SIP/${EXTEN},40,TtRr)
Run Code Online (Sandbox Code Playgroud)

(您还可以在销售上下文中包含主管上下文)

如果您想阻止销售用户呼叫主管用户,反之亦然,但仍允许他们相互转接呼叫,那么您可以通过以下方式解决:

创建一个仅指定用于呼叫转接的新上下文,您在其中提供转接呼叫时应可达的分机,例如:

[call-transfer]
 exten => _40XX,1,Dial(SIP/${EXTEN},40,TtRr)
 exten => _41XX,1,Dial(SIP/${EXTEN},40,TtRr)
Run Code Online (Sandbox Code Playgroud)

然后设置 __TRANSFER_CONTEXT=call-transfer:

[supervisor]
include => from-internal
exten => _40XX,1,Answer
exten => _40XX,n,Set(__TRANSFER_CONTEXT=call-transfer)
exten => _40XX,n,Set(calltime=${STRFTIME(${EPOCH},,%C%y%m%d.%H.%M.%S)})
exten => _40XX,n,Set(CALLEDNUMBER=${EXTEN})
exten => _40XX,n,MixMonitor(/tmp/Para_${CALLEDNUMBER}-${calltime}-De_${CALLERID(num)}.wav)
exten => _40XX,n,Dial(SIP/${EXTEN},40,TtRr)
exten => _40XX,n,Hangup

[sales]
include => out-trunksip
exten => _41XX,1,Answer
exten => _40XX,n,Set(__TRANSFER_CONTEXT=call-transfer)
exten => _41XX,n,Set(calltime=${STRFTIME(${EPOCH},,%C%y%m%d.%H.%M.%S)})
exten => _41XX,n,Set(CALLEDNUMBER=${EXTEN})
exten => _41XX,n,MixMonitor(/tmp/Para_${CALLEDNUMBER}-${calltime}-De_${CALLERID(num)}.wav)
exten => _41XX,n,Dial(SIP/${EXTEN},40,TtRr)
exten => _41XX,n,Hangup
Run Code Online (Sandbox Code Playgroud)

我只是不确定 __TRANSFER_CONTEXT 是否仍然存在于新的星号版本中:)