Asterisk 如何使用星号呼叫文件提取目的地号码

Asterisk 如何使用星号呼叫文件提取目的地号码,asterisk,Asterisk,我不熟悉Asterisk,但我可以通过生成呼叫文件并将其移动到spool文件夹来拨打外线电话。我甚至可以将它链接到AGI脚本,并得到做更多事情的调用 问题是我可以看到所有详细信息,包括cdrdb数据库中的CLI号码,但看不到它正在调用的号码。“dst”列中只有字母“s” 此外,当我键入“core show channel简明”时,我会得到当前传出呼叫的频道,但它会显示“SIP/0001c”或类似内容 我是否应该在调用文件或AGI脚本中输入一些可以传递目标号码的内容?或者我应该在这里做拨号计划 顺

我不熟悉Asterisk,但我可以通过生成呼叫文件并将其移动到spool文件夹来拨打外线电话。我甚至可以将它链接到AGI脚本,并得到做更多事情的调用

问题是我可以看到所有详细信息,包括cdrdb数据库中的CLI号码,但看不到它正在调用的号码。“dst”列中只有字母“s”

此外,当我键入“core show channel简明”时,我会得到当前传出呼叫的频道,但它会显示“SIP/0001c”或类似内容

我是否应该在调用文件或AGI脚本中输入一些可以传递目标号码的内容?或者我应该在这里做拨号计划

顺便说一句,电话正在挑衅地通过

感谢:

您拨打的电话号码将不会通过*存储在CDR中- 如果需要此信息进行CDR处理,可以设置 调用文件中的CallerID,并将其存储。 但是,这将显示您正在拨打自己电话的人 数字,这没什么意义。更好的解决办法可能是 将您正在拨打的号码放入 .call文件,然后将其放入CDR的UserField中。参见示例 以上是第一节

因此,我认为最好的方法是在调用文件中添加一个变量(如文本所示),目标如下:

Set: Target=5555555
然后,在agi脚本中,您将有一个名为Target的通道变量,其值有问题

通过或获取其内容,并在agi脚本中通过设置CDR(myvariable)添加自定义CDR字段

这将获得cdr的值,以便保存。您可以在csv后端进行尝试,方法是在cdr\u custom.conf中添加自定义字段,例如在末尾添加${csv\u QUOTE(${cdr(myvariablename)})}

如果您使用的是其他cdr后端,您可能需要查看正确的文档(对于mysql,可能还有其他的,您可以使用“userfield”列)


希望有帮助

感谢您的帮助并确认Asterisk无法将值存储在CDR中。此方法是否允许值显示在“核心显示频道”中?因为我想到了另一个难看的解决方法,那就是在调用文件中将数字添加到帐户名中,如:account:myaccount.5555,这样我就可以使用sql或php或其他方法来选择帐户字段,并将其拆分为帐户名和目的地号码。这样做可以吗?还是因为某种原因我没有看到它是一个坏主意?@TomHare当然:)如果答案有用,别忘了接受。干杯@TomHare mm不这么认为,这是CDRfield@TomHare嗯,我不会那样做的。。如果你真的想这样做,试着使用本地频道,甚至做一个核心频道,在那里你可以看到“目标”值(实际上是所有频道变量),如果我理解正确的话,频道名称每次都会根据我认为的十六进制代码而改变。