首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用星号为传出调用自定义cdr字段

使用星号为传出调用自定义cdr字段
EN

Stack Overflow用户
提问于 2014-05-29 23:56:26
回答 1查看 2.1K关注 0票数 1

我试图使用自定义字段来利用cdr日志记录(到mysql)。我所面临的问题只是当一个出站呼叫被放置时,在入站呼叫期间,我能够记录没有问题的自定义字段。

我之所以有问题,是因为我需要的自定义cdr字段是系统上每个用户的唯一值。

sip.conf

代码语言:javascript
复制
 ...
 ...

 [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="<...>"

extensions.conf

代码语言:javascript
复制
 [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)。但在上面,您可以看到拨号计划的外接部分,我很困惑如何能够告诉拨号计划是哪个agent_id正在打出站电话。

我的问题是:如何将agent_id=11 & agent_id=12、agent_id=13和agent_id=14等作为cdr在出站呼叫中的自定义字段?

EN

回答 1

Stack Overflow用户

发布于 2014-06-06 20:43:21

您应该能够用呼叫函数来完成它。尝试在您的拨号计划中将其编码为一个测试:

代码语言:javascript
复制
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,您应该看到您正在调用的号码显示在控制台,并听到您的号码播放给您。在这种情况下,您应该能够为日志记录执行这样的操作:

代码语言:javascript
复制
same => n,Set(CDR(agent_id)=${CALLERID(num)})

编辑

若要使用此方法,请不要使用sip.conf callerid=设置或隐藏调用方or。相反,在您阅读了调用方in供自己使用之后,在拨号计划中的代码。例如:

代码语言:javascript
复制
same => n, Set(CALLERID(all)=""<>)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23944943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档