gpt4 book ai didi

mysql - 使用 Asterisk 的拨出电话的自定义 cdr 字段

转载 作者:行者123 更新时间:2023-11-30 23:01:03 24 4
gpt4 key购买 nike

我正在尝试使用自定义字段来利用 cdr 日志记录(到 mysql)。我面临的问题是仅当拨出电话时,在拨入电话期间,我可以毫无问题地记录自定义字段。

我遇到问题的原因是因为我需要的自定义 cdr 字段对于系统上的每个用户都是唯一的值。

sip.conf

 ...
...

[sales_department](!)
type=friend
host=dynamic
context=SalesAgents
disallow=all
allow=ulaw
allow=alaw
qualify=yes
qualifyfreq=30


;; company sales agents:
[11](sales_agent)
secret=xxxxxx
callerid="<...>"

[12](sales_agent)
secret=xxxxxx
callerid="<...>"

[13](sales_agent)
secret=xxxxxx
callerid="<...>"

[14](sales_agent)
secret=xxxxxx
callerid="<...>"

扩展.conf

 [SalesAgents]
include => Services

; Outbound calls
exten=>_1NXXNXXXXXX,1,Dial(SIP/${EXTEN}@myprovider)


; Inbound calls
exten=>100,1,NoOp()
same => n,Set(CDR(agent_id)=11)
same => n,CELGenUserEvent(Custom Event)
same => n,Dial(${11_1},25)
same => n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
same => n(unavail),VoiceMail(11@asterisk)
same => n,Hangup()
same => n(busy),VoiceMail(11@asterisk)
same => n,Hangup()

exten=>101,1,NoOp()
same => n,Set(CDR(agent_id)=12)
same => n,CELGenUserEvent(Custom Event)
same => n,Dial(${12_1},25)
same => n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail)
same => n(unavail),VoiceMail(12@asterisk)
same => n,Hangup()
same => n(busy),VoiceMail(12@asterisk)
same => n,Hangup()

...
...

对于上面示例中拨号方案的入站部分,我可以插入自定义 cdr 字段 (agent_id)。但在它上面,您可以看到拨号方案的 Oubound 部分,我一直对如何告诉拨号方案哪个 agent_id 正在进行出站调用感到困惑。

我的问题:如何将 agent_id=[11] & agent_id=[12] 和 agent_id=[13] 和 agent_id=[14] 等用作出站调用的 cdr 的自定义字段?

最佳答案

你应该可以用 CALLERID function 做到这一点.尝试在您的拨号方案中将其编码为测试:

exten=6599,1,Answer()
exten=6599,n,Verbose(Caller id name=${CALLERID(name)})
exten=6599,n,Verbose(Caller id num=${CALLERID(num)})
exten=6599,n,Verbose(Caller id all=${CALLERID(all)})
exten=6599,n,SayNumber(${CALLERID(num)})
exten=6599,n,Hangup()

当您调用 6599 时,您应该会在控制台上看到您调用的号码,并会听到播放给您的号码。在这种情况下,您应该能够为您的日志记录做这样的事情:

same => n,Set(CDR(agent_id)=${CALLERID(num)})


编辑

要使用此方法,请不要使用 sip.conf callerid= 来设置或隐藏来电显示。相反,在您阅读了供您自己使用的来电显示后,在拨号方案中编码。例如:

same => n, Set(CALLERID(all)=""<>)

关于mysql - 使用 Asterisk 的拨出电话的自定义 cdr 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23944943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com