我有一个 Asterisk 开源电话系统。我的公司会有许多免费的 800 电话号码,它们都转到电话系统。当客户打电话给我们时,是否有可能知道哪个他们使用的 800 电话号码?也许在通话记录的某个地方?我已经搜索过通话记录,但看不到这些数据。
谢谢
答案1
在我们的系统上,当我们接到电话时,我会看到
VERBOSE[21579] logger.c: -- 在新堆栈中执行 Set("IAX2/abcdef", "FROM_DID=1234567890")
在 /var/log/asterisk/full 中,也可能在 asterisk 控制台上 - 我忘了。这里 abcdef 是您配置的入站路由的名称,FROM_DID 是我们的线路号。即使您没有获得 FROM_DID,您的所有号码是否都针对相同的入站 IAX2 路由设置 - 您能通过路由区分吗?
答案2
这取决于上游的线路如何配置。
如果免费电话号码被映射到单个来电号码,那么您将不得不依赖提供商是否使用 CLID 传递所拨打的号码 - 并非所有提供商都这样做。您为服务付费 - 为什么不问他们呢?
答案3
;Send calls from this DID to IVR
exten => 18005555555,1,Answer
exten => 18005555555,2,NoOp(Inbound Call on ${EXTEN} from ${CALLERID(num)})
exten => 18005555555,3,Goto(s,1)
我主要使用 SIP 而不是 IAX。如果您将第二行添加到入站拨号计划,您将能够在星号控制台中看到它到达的号码以及它的来源。
如果你想记录这些信息,你可能需要查看 log 命令而不是 noop
http://www.voip-info.org/wiki/view/Asterisk+cmd+Log
如果您想要自定义内容,您应该阅读有关编写 AGI 的内容。我一直使用 perl 编写 AGI 脚本。以下是 Asterisk::AGI 的 cpan 模块的链接
我本来想给你发链接,但我的声望不够,无法发布多个链接,只能谷歌搜索“perl cpan asterisk agi”
希望这可以帮助
答案4
正确答案取决于您的电话是如何接通的。您正在寻找一种名为 DNIS 或域名注册号在 Asterisk 中。如果您的呼叫是通过 SIP 拨入的,请打开 SIP 调试以查看是否已设置。