新装的asterCC系统安装完成后发现【呼叫中心高级管理】–>【号码归属地】内为空,这一般是初次进入页面,未初始化造成未导入demo数据造成的,可以使用如下方法再次导入初始化数据。
1、进入asterCC服务器后台,进入路径 /var/www/html/asterCC/sql 内查找名为 phoneareas.sql 的sql文件,如下图:

2、执行mysql命令导入号码归属地信息,如下:
![]()
3、导入成功后,如下图号码归属地信息被列出来:

官方参考文件: asterCC呼叫中心参考文件
新装的asterCC系统安装完成后发现【呼叫中心高级管理】–>【号码归属地】内为空,这一般是初次进入页面,未初始化造成未导入demo数据造成的,可以使用如下方法再次导入初始化数据。

![]()

官方参考文件: asterCC呼叫中心参考文件
服务器A(提供共享空间):192.168.1.81,服务器B(挂载共享空间):192.168.1.82。本文已本地一台asterCC服务器挂载另一台asterCC服务器的录音文件夹为例。
yum install samba
提示:如果你已经安装过samba以上步骤可以略过。
创建samba用户:
useradd sbu
设置sbu密码,并在提示时输入123456:
smbpasswd -a sbu
提示:如果你已经设置过samba的验证用户名和密码以上步骤可以略过。
[ccmonitor]
path = /var/spool/asterisk/monitor
comment = Home Directories
browseable = no
writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
create mask= 777
directory mask = 777
force user = asterisk

service smb restart
mount -t cifs -o username=sbu,password=123456 //192.168.1.81/ccmonitor /var/spool/asterisk/monitor
VIM编辑/etc/fstab,文件末增加如下内容
//192.168.1.81/ccmonitor /var/spool/asterisk/monitor cifs defaults,username=sbu,password=123456 0 0

df -hT

umount //192.168.1.81/ccmonitor
如果执行挂载时一直卡住没反应,可能跟防火墙规则有关,不妨增加以下策略并再次尝试。
增加入站规则:
iptables -I INPUT -p tcp -m multiport –dports 139,445 -j ACCEPT
iptables -I INPUT -p udp -m multiport –dports 137,138 -j ACCEPT
增加出站规则:
iptables -I OUTPUT -p tcp -m multiport –sports 139,445 -j ACCEPT
iptables -I OUTPUT -p udp -m multiport –sports 137,138 -j ACCEPT
系统WEB页面【PBX高级管理】–>【PBX模板】–>”添加”

配置面板字段介绍
“模板名”:可自行编排填写(本列设置为yealink)
“模板类型”:IP话机自动部署(为yealink话机固定选项)
“协议类型”:SIP(固定选项)
“团队”:全部(适用系统下所有或者团队适用于团队)
“详情”:填入内容参考“详情字段填入模板如下”(请注意“详情字段填入模板如下”备注部分说明)
“备注”:根据自己需要填写说明
详情字段填入模板如下
#!version:1.0.0.1
######################################################
##
Account1 Basic Settings
##
######################################################
account.1.enable = 1
account.1.label = %% username %% #注释1
account.1.display_name = %% lastname %% #注释2
account.1.auth_name = %% deviceidentity %% #注释3
account.1.user_name = %% deviceidentity %% #注释4
account.1.password = %% secret %% #注释5
account.1.outbound_proxy_enable = 0
account.1.outbound_host =
account.1.outbound_port =
account.1.sip_listen_port =
account.1.transport =
#######################################################
##
Failback
##
######################################################
account.1.reregister_enable = 1
account.1.naptr_build =
account.1.fallback.redundancy_type =
account.1.fallback.timeout =
account.1.sip_server.1.address = xxx.xxx.xxx.xxx #备注:xxx.xxx.xxx.xxx替换为服务器的SIP的IP(备注请删除)
account.1.sip_server.1.port = xxxx #备注:xxxx替换为服务器的SIP的端口号(备注请删除)
account.1.sip_server.1.expires = 1800
account.1.sip_server.1.retry_counts = 3
account.1.sip_server.1.failback_mode =
account.1.sip_server.1.failback_timeout =
account.1.sip_server.1.register_on_enable = 1
account.1.sip_server.2.address =
account.1.sip_server.2.port =
account.1.sip_server.2.expires =
account.1.sip_server.2.retry_counts =
account.1.sip_server.2.failback_mode =
account.1.sip_server.2.failback_timeout =
account.1.sip_server.2.register_on_enable =
######################################################
上面模板内标注释的5行说明
模板注释行取值字段说明:
%% username %%:取值于账号管理内对应账号中的“用户名”值。
%% lastname %%:取值于账号管理内对应账号中的“姓”值。
%% firstname %%:取值于账号管理内对应账号中的“名”值。
%% deviceidentity %%:取值于分机管理内对对应分机中的“注册账号”值。
%% secret %%:取值于分机管理内对应分机中的“注册密码”值。
模板注释行说明:
#注释1:用于设置yealink话机账号中的【标签】,可取值于username,也可取值于lastname、firstname。
#注释2:用于设置yealink话机账号中的【显示名称】,可取值于lastname、firstname一个或两个。(取值两个字段可写成%% lastname %%%% firstname %%)
#注释3:用于设置yealink话机账号中的【注册名称】,固定取值于%% deviceidentity %%。
#注释4:用于设置yealink话机账号中的【用户名称】,固定取值于%% deviceidentity %%。
#注释5:用于设置yealink话机账号中的【密码】,固定取值于%% secret %%。
成功保存PBX模板后如下

系统WEB页面【PBX管理】–>【分级管理】–>编辑具体分机–>【高级资料】–>“MAC地址”填入yealink话机的MAC地址


系统WEB页面【系统设置】–>【系统设置】–>【系统高级设置】–>“默认团队”–>双击该选项选择一个有闲置分机的空团队,且团队下的分机没有绑定该话机的MAC地址。

登录yealink话机配置页面–>【设置】–>【自动更新】–>“服务器地址”
填入固定的:http://xxx.xxx.xxx.xxx/provisions/provisioning(xxx.xxx.xxx.xxx替换为服务器的IP)

点击“立即更新”获得话机配置结果如下

参考文件: asterCC呼叫中心参考文件
可以通过PBX呼叫记录里的录音主路径加录音路径查看录音文件是否存在。
![]()
录音文件路径各层权限均为asterisk用户和组权限。
![]()
可以使用 rpm -qa|grep sox查看是否已安装。
![]()
安装可使用 yum install sox
参考文献: asterCC的官方wiki文档
测试环境选为Ubuntu 14.04.X 和 CemtOS6.X下。
Ubuntu下打开shell命令终端依次输入如下命令:
sudo apt-get install heirloom-mailx
sudo apt-get install postfix
CentOS下打开shell命令终端依次输入如下命令:
yum install mailx.x86_64
yum install postfix.x86_64
打开Linux shell命令终端,依次输入并执行如下命令:
mkdir .certs
certutil -N -d .certs
echo -n | openssl s_client -connect smtp.gmail.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /$PATH$/.certs/gmail.crt
certutil -A -n "Google Internet Authority" -t "C,," -d /$PATH$/.certs -i set /$PATH$/.certs/gmail.crt (以上$PATH$替换为实际路径)
certutil可能系统会返回找不到命令错误,可根据提示命令安装。
Ubuntu下修改 /etc/nail.rc,CentOS下修改 /etc/mail.rc,文件结尾回车后增加如下内容:
set smtp-use-starttls(使用TLS/STARTTLS 端口:587时增加该条件)
set ssl-verify=ignore
set nss-config-dir=/$PATH$/.certs ($PATH$替换为实际路径)
set from=用户名@astercc.com
set smtp=smtps://smtp.gmail.com:465(gmail 使用TLS/STARTTLS 端口587可改为,set smtp=smtp://smtp.gmail.com:587)
set smtp-auth-user=用户名@astercc.com
set smtp-auth-password=密码
set smtp-auth=login
如果需要多个邮箱的账号并存在配置文件中,在发送时提供选择还有另外一种写法如下:
account gmail {
set smtp-use-starttls(使用TLS/STARTTLS 端口:587时增加该条件)
set ssl-verify=ignore
set nss-config-dir=/$PATH$/.certs ($PATH$为路径)
set from=用户名@astercc.com
set smtp=smtps://smtp.gmail.com:465(gmail 使用TLS/STARTTLS 端口587可改为,set smtp=smtps://smtp.gmail.com:587)
set smtp-auth-user=用户名@astercc.com
set smtp-auth-password=密码
set smtp-auth=login
}
这种写法需要在mail/mailx命令后增加-A参数引用。
set smtp-use-starttls:gmail使用TLS/STARTTLS。
ssl-verify:使用SSL。
nss-config-dir:本地SSL认证证书和密钥数据路径。
from:发送的邮件地址。
smtp:发生的外部SMTP服务器的地址。
smtp-auth-user:外部SMTP服务器认证的用户名。
smtp-auth-password:外部SMTP服务器认证的用户密码。
smtp-auth:邮件认证的方式。
确定配置参数,后保存文件后,就可以使用mail/mailx命令发送邮件了。
命令行使用如下命令发送邮件 mail/mailx (-vcabSA) -s "Test mail" address 回车后命令行输入邮件内容,内容输入完毕回车后ctrl+d发出邮件内容,多个收件人之间用逗号分隔,你也可以通过管道(|)和重定向符(<)获取要发送邮件内容。
-s 指定邮件主题。
-v 列出讯息,例如送信的地点、状态等等。
-c 抄送邮件副本的用户列表。
-a 文件指定的文件附加到邮件。
-b 发送密件副本列出,多个名单应该是一个逗号分隔的名称列表。
-S 设置内部选项的变量(如上面配置文件增加的内容可由 -S set smtp-auth-user=用户名@astercc.com指定)。
-A 多个SMTP账号时引用账号名(即配置文件里account后的名字 )。
温馨提示:
错误一
Resolving host smtp.gmail.com . . . done. Connecting to 173.194.72.108:587 . . . connected. Error initializing NSS: Unknown error -8015. “/root/dead.letter” 11/300 . . . message not sent.
邮件发送异常时返回类似以上错误,这类错误可以理解成是没有证书或创建的证书未生效。
错误二
SMTP发送邮件遇到”535“错误多为账户或密码错误。有的邮箱需要将密码改为SMTP授权码(163邮箱遇到此类问题)。
SMTP错误码详解参考链接: http://www.aiuxian.com/article/p-2648073.html
温馨提示:请确保系统没任何通话任务时,执行以下修改操作。
由于大量通话造成数据库文件越来越大,会占用服务器大量硬盘空间,与转移录音文件类似我们往往将其他设备挂载至本机服务器,将数据库目录迁移至挂载的路径下,再将目录软连接至服务器原始位置。
进入asterCC服务器的CentOS系统,如下执行查看当前数据库正处于运行状态:
service mysqld status
如图:

执行 ps aux | grep mysqld 也可查看mysql运行状态。
确保服务器内无通话任务时,如下执行命令关闭mysql服务:
service mysqld stop
如图:

执行 mysqladmin shutdown -uroot -pastercc 也可停掉mysql服务(asterCC的mysql密码初期化为astercc)。
完毕后可再次执行查看状态命令,确认mysql是否真的已停止运行。
将其它存储设备(或服务器)执行mount命令挂载到服务器某个目录,例如Linux根目录下默认的挂载目录mnt或其它自定义目录,本例以mnt目录为例。
将/var/lib/目录下的mysql文件夹复制到/mnt下,如下执行操作:
cp -Rp /var/lib/mysql /mnt
如图:

数据库内容很庞大,这一过程执行时间会很长,需耐心等待操作完成,中间切勿执行其他操作!复制操作完成后mnt路径下将显示新数据库目录,该目录将存储在新存储设备(或服务器)内。
将/var/lib/目录下的mysql文件夹,重命名为mysql.bak作为备份,如下执行命令:
mv /var/lib/mysql /var/lib/mysql.bak
如图:

复制完成后如下执行命令,将新数据库目录软链接至/var/lib操作如下:
ln -s /mnt/mysql /var/lib
如图:

如下执行命令查看软连接是否生效:
ll /var/lib
如图:

已上操作完毕后,如下执行操作重新启动asterCC的mysql服务:
service mysqld start
如图:

执行 mysqld_safe & 也可启动mysql服务,运行成功后需要按回车键返回命令行提示符。
此时可执行查看状态命令,查看mysql是否已处于运行状态,为确保无误可进入mysql系统,查看通话记录等进行验证。
在一切操作确认成功完成后,可删除原数据目录下的mysql.bak备份文件以节省服务器空间。
系统中一个坐席组有可能对应多个模块的多个应用,如果坐席使用分机直接往外打电话,那么系统无法得知其在为哪个应用打电话。为了解决此问题你可以参考如下设置。



设置后当坐席使用分机直接外呼时,系统便知其是在为“当前呼出坐席组”工作。再结合坐席组中设置的“当前呼出应用”,系统会把呼叫记录记录在此应用下,并帮助你弹出此应用的处理页面。
温馨提示:分机直接往外打电话时首先请确保该坐席处于空闲状态。其次坐席不处于话后处理状态,话后时处理与通话相关的业务流程,不会记录呼叫记录。
1、查看【系统实时信息】–>【通话监控】查看要清理哪些旧数据。

2、需处理 MySQL 内 astercc10 库下 cc10_curpbxcdrs 表里的数据,需要确定好一个新旧数据分割的时间点。
1、delete from cc10_curpbxcdrs where calldate < ‘XXXX-XX-XX’;
2、再次刷新通话页面查看监控信息变化后是否正常。
参考文档: asterCC的官方wiki文档
坐席设置仅呼出状态后依旧有电话打进来的原因有以下情况。
执行服务器迁移后没安装的模块显示已安装,是由于导入的数据库数据包含了,以前系统的安装信息。
遇到这种问题需要在数据库内解决,登陆mysql数据库控制台查询astercc10库表cc10_upgradelogs内容。
select * from cc10_upgradelogs;

这张表内向页面返回了已安装模块的信息,所以确定模块的实际安装情况,删除未安装但显示已安装的数据。