Asterisk软交换构建一个简单的语音呼叫中心

1Asterisk如何配置路由
  
假业应用环境要求进行这样的配置:号码范围为1xxx~9xxx。其中1000~1999号码范围为普通IP电话终端分配使用;2000~2999号码保留给一个SIP会议服务器(现阶段可利用一个软SIP电话终端进行模拟),即用户呼叫2xxx号码,都将自动把呼叫转发到SIP会议服务器;80008001作为Asterisk内建的音频会议使用;8002作为自动语言应答(呼叫中心)的号码使用(具体要求在下一项);以开头的号码(0xxxxxxxxxx,含011位)作为呼叫普通传统电话的号码使用(即PSTN),该呼叫将传递给一个电话媒体网关(有关电话媒体[MGCP协议]网关的原理请自行查找资料,在此处进行模拟配置)
2
、呼叫要求
  i.    
用户拨打8002,系统用语音提示:您好,欢迎致电微科科技,请直拨分机号,传真请按#,号码提示请按*
  ii.    
如果用户按的是1xxx号码(即上面路由配置中所说明的1000~1999所对应的普通IP终端),则自动呼通该终端,建立两者之间通话。
iii.    
如果用户按的是#,则自动呼通1999终端(该终端假定为用户传真的终端)。
iv.    
如果用户按的是*,则播放一段语音(假定该语音为公司号码报号)。该语音播放完后,又转入第(i)步,提示用户继续进行操作。
下面为Asterisk软交换配置
extensions.conf

[general] 
static=yes 
writeprotect=yes 
autofallthrough=no 
[globals] 
FAX=SIP/1999 
[incoming] 
include => interal 
include => ipphones 
include => sipphones 
include => inaucon 
include => outphones 
exten => s,1,NoOp() 
exten => s,n,Answer() 
exten => s,n,Set(TIMEOUT(digit)=10) 
exten => s,n,Set(TIMEOUT(response)=20) 
exten => s,n,Background(hello-world) 
exten => i,1,Playback(pbx-invalid) 
exten => i,n,Goto(incoming,s,1) 
exten => t,1,Playback(enterux/call-timeout) 
exten => t,n,Playback(vm-goodbye) 
exten => t,n,Hangup() 
exten => 8002,1,Goto(s,1) 
exten => *,1,Playback(agent-loginok); 
exten => *,n,Goto(s,1) 
exten => #,1,Goto(interal,1999,1)

 sip.conf

[general] 
allowguest=yes 
allowoverlap=yes 
bindport=5061 
bindaddr=0.0.0.0 
srvloopup=yes 
; 
[ipsip](!) 
;disallow=all 
;allow=ulaw 
;allow=g729 
;videosupport=yes 
;maxcallbitrate=384 
;callevents=no 
;alwaysauthreject=yes 
;g726nonstandard=yes 
;matchexterniplocally=yes 
host=dynamic 
nat=yes 
canreinvite=no 
; 
[srsip](!) 
;disallow=all 
;allow=ulaw 
;allow=g729 
;videosupport=yes 
;maxcallbitrate=384 
;callevents=no 
;alwaysauthreject=yes 
;g726nonstandard=yes 
;matchexterniplocally=yes 
host=192.168.1.35 
nat=yes 
canreinvite=no 
; 
[1000](ipsip) 
type=friend 
username=1000 
;secret=123456 
context=incoming 
; 
[1001](ipsip) 
type=friend 
username=1001 
;secret=123456 
context=incoming 
; 
[1002](ipsip) 
type=friend 
username=1002 
;secret=123456 
context=incoming 
; 
[1003](ipsip) 
type=friend 
username=1003 
;secret=123456 
context=incoming 
; 
[1004](ipsip) 
type=friend 
username=1004 
;secret=123456 
context=incoming 
; 
[1005](ipsip) 
type=friend 
username=1005 
;secret=123456 
context=incoming 
; 
[1006](ipsip) 
type=friend 
username=1006 
;secret=123456 
context=incoming 
; 
[1007](ipsip) 
type=friend 
username=1007 
;secret=123456 
context=incoming 
; 
[1008](ipsip) 
type=friend 
username=1008 
;secret=123456 
context=incoming 
; 
[1009](ipsip) 
type=friend 
username=1009 
;secret=123456 
context=incoming 
; 
[1998](ipsip) 
type=friend 
username=1998 
;secret=123456 
context=incoming 
; 
[1999](ipsip) 
type=friend 
username=1999 
;secret=123456 
context=incoming 
; 
[2000](srsip) 
type=friend 
username=2000 
;secret=123456 
context=incoming 
; 
[2001](srsip) 
type=friend 
username=2001 
;secret=123456 
context=incoming 
; 
[2002](srsip) 
type=friend 
username=2002 
;secret=123456 
context=incoming 
; 
[2003](srsip) 
type=friend 
username=2003 
;secret=123456 
context=incoming 
; 
[2004](srsip) 
type=friend 
username=2004 
;secret=123456 
context=incoming 
; 
[2005](srsip) 
type=friend 
username=2005 
;secret=123456 
context=incoming 
; 
[2006](srsip) 
type=friend 
username=2006 
;secret=123456 
context=incoming 
; 
[2007](srsip) 
type=friend 
username=2007 
;secret=123456 
context=incoming 
; 
[2008](srsip) 
type=friend 
username=2008 
;secret=123456 
context=incoming 
; 
[2009](srsip) 
type=friend 
username=2009 
;secret=123456 
context=incoming 
; 
[8000](srsip) 
type=friend 
username=8000 
;secret=123456 
context=incoming 
; 
[8000](srsip) 
type=friend 
username=8000 
;secret=123456 
context=incoming 
; 
[8001](srsip) 
type=friend 
username=8001 
;secret=123456 
context=incoming 

 然后准备两个软电话就可以进行呼叫了
下面是我跟勇哥测试的结果,还支持视频, 刚开始不支持视频,法了好大的劲还弄Asterk技术视频了,哈哈~~~

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基于Asterisk的满意度调查功能的示例代码。该代码使用Dialplan和AGI脚本来实现满意度调查,并将结果保存到CSV文件中。您需要将以下代码添加到您的Asterisk配置文件中,并根据需要进行修改。 1. Dialplan 在您的Asterisk配置文件(如extensions.conf)中,添加以下Dialplan代码: ``` [mysurvey] exten => s,1,Answer() same => n,Playback(welcome) same => n,AGI(survey.agi) same => n,Playback(thankyou) same => n,Hangup() ``` 该Dialplan定义了一个名为“mysurvey”的上下文,当有电话呼入时,会播放欢迎语音,启动AGI脚本进行满意度调查,并在调查结束后播放感谢语音并挂断电话。 2. AGI脚本 在您的Asterisk配置文件(如extensions.conf)所在的目录中,创建名为“survey.agi”的AGI脚本文件,并添加以下代码: ``` #!/usr/bin/perl use Asterisk::AGI; use Text::CSV; my $AGI = new Asterisk::AGI; my $callerid = $AGI->get_variable('CALLERID(num)'); my $filename = "/var/spool/asterisk/surveys/${callerid}.csv"; my $csv = Text::CSV->new({binary => 1, eol => $/}) or die "Cannot use CSV: " . Text::CSV->error_diag(); my $questions = [ {id => 'q1', text => 'How satisfied are you with our service?'}, {id => 'q2', text => 'How likely are you to recommend us to others?'}, {id => 'q3', text => 'Do you have any suggestions for improvement?'}, ]; my $answers = {}; foreach my $question (@$questions) { my $answer = $AGI->exec('Playback', $question->{text}); $answers->{$question->{id}} = $answer; } open(my $fh, '>>', $filename) or die "Cannot open $filename: $!"; $csv->print($fh, [$callerid, $answers->{q1}, $answers->{q2}, $answers->{q3}]) or die "Cannot write to $filename: $!"; close($fh); ``` 该AGI脚本定义了一个名为“survey.agi”的AGI脚本,用于执行满意度调查并将结果保存到CSV文件中。该脚本首先获取来电号码,并根据号码生成CSV文件名。 然后,脚本定义了一个问题数组,用于存储要问的问题和问题ID。在调查过程中,脚本会遍历问题数组,并使用AGI命令“Playback”播放每个问题的语音,并等待来电者的回答。回答将存储在一个答案哈希表中。 最后,脚本将来电号码和答案存储到CSV文件中。如果文件不存在,则会创建一个新文件。如果文件已存在,则会在文件末尾添加新行。 3. 配置文件 在您的Asterisk配置文件中,添加以下内容以启用满意度调查功能: ``` [general] autofallthrough=yes [surveys] exten => _X.,1,Goto(mysurvey,s,1) ``` 该配置定义了一个名为“surveys”的上下文,用于匹配所有满意度调查呼叫。当有电话呼入时,该配置会将呼叫路由到之前定义的Dialplan“mysurvey”中。 需要注意的是,您需要根据您的Asterisk系统和需要进行适当的修改。例如,您可能需要更改CSV文件的路径和命名方式,或者修改问题数组中的问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值