2011-03-29 63 views
1

我有一个设置为电话交换机的星号服务器。我有100个扩展,从00到99.我在每个扩展上运行特定的功能。其中一些功能可能需要接收呼叫的分机可用。我怎样才能访问相同的?例如,获取某个功能内收到呼叫的分机号码 - 星号

说分机55上有一个呼叫。
55有一个与它相关的功能。该函数必须以55作为输入参数。我该怎么做呢?

我曾尝试以下:

exten => 0,n,Verbose(1, "Call on ${EXTEN}-${CHANNEL}") 

输出为:Call on 0-DAHDI/20-1

感谢,
斯利拉姆尚卡尔。

回答

1

您正在寻找的答案取决于通过您的系统进行通话的路径。确定回答你的问题,最简单的方法是将呼叫,然后从Asterisk的CLI中运行以下命令:

> core show channels 

这会告诉你什么渠道有效。找到您的通话的频道名称。

core show channel [channel-name] 

这将输出一个通道详细信息数组,包括设置的不同变量及其相应的值。在值字段中查找您想要获取的分机号码,然后查看相应的变量名称。它可以是$ {CALLERID(num)},$ {CALLERID(dnid)},$ {CDR}变量下的某些内容,甚至其他地方。

如果在“core show channel [channel-name]”输出中找不到它,则可能需要跟踪该调用正在进行的dialplan路径,并尝试在DID信息仍然可用。

+0

老兄!这是完美的!非常感谢! '$ {CALLERID(dnid)}'就像一个魅力! +10000 – Sriram 2011-07-07 05:24:50

+0

很高兴我能帮到你。这对于常规故障排除和上下文发现来说是一个很好的技术 – 2011-07-07 22:16:43