asterisk中电话评价系统的开发
2011-01-20 10:51
197 查看
本方法采用定义applicationmap 的方法实现,适用于asterisk+FreePBX的环境中
具体请参考前面的文章http://blog.csdn.net/radkitty/archive/2009/12/29/5102097.aspx
在/etc/asterisk/features_applicationmap_custom.conf添加:、
evaluate-start => *0,callee,Macro,evaluate-start
evaluate-zhustart => *7,caller,Macro,evaluate-zhustart
在/etc/asterisk/globals_custom.conf添加:
DYNAMIC_FEATURES=evaluate-start#evaluate-zhustart
在/etc/asterisk/extensions_custom.conf添加:
[dynamic-evaluate]
exten => _X.,1,Hangup()
exten => _X.,2,Answer
;exten => _X.,n,Set(PLAYNUM=${EXTEN})
;exten => _X.,n,Noop(playback ${PLAYNUM})
exten => _X.,n,Background(evaluate)
;exten => _X.,n,Read(DEST,dial,, i)
exten => 1,1,Answer
exten => 1,n,Noop(your input is 1 for ${PLAYNUM})
exten => 1,n,Set(CIDNUM=${CALLERID(num)})
exten => 1,n,Set(ETIME=${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S))
exten => 1,n,MYSQL(Connect connid localhost asteriskuser SOMEPASSWORD asteriskcdrdb)
exten => 1,n,MYSQL(Query ${connid} insert into evaluate values (" ${ETIME} ", 1, ${CIDNUM}))
exten => 1,n,Playback(thanks-for-evaluate)
exten => 1,n,MYSQL(Disconnect ${connid})
exten => 1,n,Hangup()
exten => 2,1,Answer
exten => 2,n,Noop(your input is 2 for ${PLAYNUM})
exten => 2,n,Set(CIDNUM=${CALLERID(num)})
exten => 2,n,Set(ETIME=${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S))
exten => 2,n,MYSQL(Connect connid localhost asteriskuser SOMEPASSWORD asteriskcdrdb)
exten => 2,n,MYSQL(Query ${connid} insert into evaluate values (" ${ETIME} ", 2, ${CIDNUM}))
exten => 2,n,Playback(thanks-for-evaluate)
exten => 2,n,Hangup()
exten => t,n,Hangup()
exten => i,n,Hangup()
[my-evaluate]
;exten => _X.,1,Wait(30)
exten => _X.,1,Hangup()
[macro-evaluate-start]
exten => s,1,Set(NUM=${CALLERID(num)})
exten => s,n,Noop(evaluate extension is ${NUM})
exten => s,n,ChannelRedirect(${BRIDGEPEER},my-evaluate,${NUM},1)
;exten => s,n,Hangup()
exten => s,n,Gosub(dynamic-evaluate,${NUM},1)
[macro-evaluate-zhustart]
exten => s,1,Set(NUM=${CALLERID(num)})
exten => s,n,Noop(evaluate extension is ${NUM})
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-evaluate,${NUM},2)
;exten => s,n,Hangup()
exten => s,n,Gosub(my-evaluate,${NUM},1)
在mysql的asteriskcdrdb数据库建表evaluate如下:
+-----------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+-------+
| date | datetime | YES | | NULL | |
| result | char(5) | YES | | NULL | |
| callernum | char(20) | YES | | NULL | |
+-----------+----------+------+-----+---------+-------+
使用方法:
来电:接听用户电话完成后,按*1即可将用户转到评价系统进行评价,结束后会自动挂机。
去电:呼叫用户电话完成后,按*7即可将用户转到评价系统进行评价,结束后会自动挂机。(注意,转接后请等待自动挂机)
Powered by Zoundry Raven
具体请参考前面的文章http://blog.csdn.net/radkitty/archive/2009/12/29/5102097.aspx
在/etc/asterisk/features_applicationmap_custom.conf添加:、
evaluate-start => *0,callee,Macro,evaluate-start
evaluate-zhustart => *7,caller,Macro,evaluate-zhustart
在/etc/asterisk/globals_custom.conf添加:
DYNAMIC_FEATURES=evaluate-start#evaluate-zhustart
在/etc/asterisk/extensions_custom.conf添加:
[dynamic-evaluate]
exten => _X.,1,Hangup()
exten => _X.,2,Answer
;exten => _X.,n,Set(PLAYNUM=${EXTEN})
;exten => _X.,n,Noop(playback ${PLAYNUM})
exten => _X.,n,Background(evaluate)
;exten => _X.,n,Read(DEST,dial,, i)
exten => 1,1,Answer
exten => 1,n,Noop(your input is 1 for ${PLAYNUM})
exten => 1,n,Set(CIDNUM=${CALLERID(num)})
exten => 1,n,Set(ETIME=${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S))
exten => 1,n,MYSQL(Connect connid localhost asteriskuser SOMEPASSWORD asteriskcdrdb)
exten => 1,n,MYSQL(Query ${connid} insert into evaluate values (" ${ETIME} ", 1, ${CIDNUM}))
exten => 1,n,Playback(thanks-for-evaluate)
exten => 1,n,MYSQL(Disconnect ${connid})
exten => 1,n,Hangup()
exten => 2,1,Answer
exten => 2,n,Noop(your input is 2 for ${PLAYNUM})
exten => 2,n,Set(CIDNUM=${CALLERID(num)})
exten => 2,n,Set(ETIME=${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S))
exten => 2,n,MYSQL(Connect connid localhost asteriskuser SOMEPASSWORD asteriskcdrdb)
exten => 2,n,MYSQL(Query ${connid} insert into evaluate values (" ${ETIME} ", 2, ${CIDNUM}))
exten => 2,n,Playback(thanks-for-evaluate)
exten => 2,n,Hangup()
exten => t,n,Hangup()
exten => i,n,Hangup()
[my-evaluate]
;exten => _X.,1,Wait(30)
exten => _X.,1,Hangup()
[macro-evaluate-start]
exten => s,1,Set(NUM=${CALLERID(num)})
exten => s,n,Noop(evaluate extension is ${NUM})
exten => s,n,ChannelRedirect(${BRIDGEPEER},my-evaluate,${NUM},1)
;exten => s,n,Hangup()
exten => s,n,Gosub(dynamic-evaluate,${NUM},1)
[macro-evaluate-zhustart]
exten => s,1,Set(NUM=${CALLERID(num)})
exten => s,n,Noop(evaluate extension is ${NUM})
exten => s,n,ChannelRedirect(${BRIDGEPEER},dynamic-evaluate,${NUM},2)
;exten => s,n,Hangup()
exten => s,n,Gosub(my-evaluate,${NUM},1)
在mysql的asteriskcdrdb数据库建表evaluate如下:
+-----------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------+----------+------+-----+---------+-------+
| date | datetime | YES | | NULL | |
| result | char(5) | YES | | NULL | |
| callernum | char(20) | YES | | NULL | |
+-----------+----------+------+-----+---------+-------+
使用方法:
来电:接听用户电话完成后,按*1即可将用户转到评价系统进行评价,结束后会自动挂机。
去电:呼叫用户电话完成后,按*7即可将用户转到评价系统进行评价,结束后会自动挂机。(注意,转接后请等待自动挂机)
Powered by Zoundry Raven
相关文章推荐
- Asterisk 电话系统的音频文件
- iPhone开发之调用系统地图、邮件、电话、短信、浏览器
- 搭建一个小型的asterisk电话系统 (三、添加cdr记录,扩展账单系统)
- Android开发:使用Intent打开电话、短信、邮箱、本地文件等系统应用程序整理大全
- 如何开发一个异常检测系统:如何评价一个异常检测算法
- 利用Digium卡搭建一个小型的asterisk电话系统 (二、添加Mysql支持)
- 开发电话薄系统心得
- 用Asterisk@Home组建VoIP电话交换系统
- 第02章 系统开发基础 之 系统运行与评价
- Android开发:使用Intent打开电话、短信、邮箱、本地文件等系统应用程序整理大全
- 用Asterisk@Home组建VoIP电话交换系统
- VOIP电话系统的开发思路
- ios开发之 调用系统电话方式(两种)
- 搭建一个小型的asterisk电话系统 (四、增加voicemail功能)
- 搭建一个小型的asterisk电话系统 (五、增加efax功能)
- 利用Digium卡搭建一个小型的asterisk电话系统
- iOS开发 iOS 10拨打系统电话,弹出框延迟出现问题
- 用 GDI+ 开发矢量图形编辑系统的经验之谈
- android系统开发(四)-触摸屏tslib移植(内核)和原理分析
- 使用Vmware虚拟机部署Swift开发环境之Mac OS X系统安装