(我是Asterisk的新手。)为什么Asterisk在您上学转学时会在手机上显示asterisk
?
这是Scenation:
asterisk
而不是电话1的分机号我正在做的就是看看发生了什么:
当呼叫进入时,它会进入上下文并执行此
exten => _1499,1,Set(CALLERID(name)=${CALLERID(num)})
exten => _1499,n,NoOp(#################### ${CALLERID(num)} ${CALLERID(name)})
exten => _1499,n,Queue(swb_q,tTkK)
在星号上,它将CallerID显示为1904,这是正确的。
当转移呼叫时,它将转到TRANSFER上下文并执行此代码
exten => _19XX,1,Gosub(ENDRECORD,s,1)
exten => _19XX,n,NoOp(#################### ${CALLERID(num)} ${CALLERID(name)})
exten => _19XX,n,Set(_TransToExt=${EXTEN})
exten => _19XX,n,NoOp(IN TRANSFER ${TransToExt})
exten => _19XX,n,Gosub(RECORDING,s,1)
exten => _19XX,n,Dial(Sip/${EXTEN},40,tT,kK)
但CALLERID(num)
和(name)
变量不是空白。现在我确定这是因为我在不同的分机或频道上。
如何保留来电的来电显示,当交换机转接来电时,将该CID传递给手机2?
任何帮助将不胜感激。谷歌在转账方面有很多,但我很难找到与此有关的东西。
我看过这个 retain original caller id on Call transfer on asterisk 但是我不确定它是否有用,因为答案中没有太多细节。
答案 0 :(得分:0)
经过长时间的搜索,我找到了答案。
您可以使用变量继承。 https://wiki.asterisk.org/wiki/display/AST/Variable+Inheritance
这允许我将传入的CID存储到名为EXTERNAL_NUM
的变量中,如下所示:
exten => _1499,n,Set(__EXTERNAL_NUM= ${CALLERID(num)})
exten => _1499,n,Queue(swb_q,tTkK)
请注意变量名称中的2x _
。 2x _
用于多重继承。 1x _
用于单继承。请参阅我发布的链接以获得解释。
在我的转移上下文中,我使用此变量而不使用__
,如下所示:
exten => _19XX,1,Gosub(ENDRECORD,s,1)
exten => _19XX,n,Set(_TransToExt=${EXTEN})
exten => _19XX,n,NoOp(IN TRANSFER ${TransToExt})
exten => _19XX,n,Gosub(RECORDING,s,1)
exten => _19XX,n,Set(CALLERID(num)=EXTERNAL_NUM)
exten => _19XX,n,Dial(Sip/${EXTEN},40,tT,kK)
希望这可以帮助其他有相同类型问题的人,或者只是需要在某个时候使用变量继承。