All Posts By

辛萌

5 tips for managing small businesses

By | Blogs | No Comments

Managing a small business is not easy.
Larger companies usually have the advantage of focusing specialized departments on one aspect of the business.If you are running a small business, you may have a lot of titles in financial,marketing, sales, logistics and many other fields.

I know this because I saw my friend running his small company.This was his first venture, and he learned some lessons from his mistakes.However, you do not have to make the same mistake.In this blog, we will introduce some convenient small business management tips.

1. Separate personal and corporate finances

When operating a small business, your personal and business finances may start to get mixed up.Please separate them as soon as possible, which will become a big problem in the future.When you submit a return or apply for a business loan, your financial situation will be reviewed.In this case, you must maintain a strict distinction between corporate and personal accounts, which is very important-this will also save you some trouble in the future.

2. You need a good accountant

I must emphasize this point, hiring a good accountant is absolutely crucial, or if you are outsourcing, make sure you are outsourcing a good accounting firm.When my friend first started a business, it can be said that he hired a less competent accounting firm to manage finances. The company used free financial templates and charged excessive fees for its services.
Substandard.
He eventually evaded the country’s tax declaration.In the end, when he decided to change the company, he encountered many difficultiesIt is best to investigate first to make sure that there are no problems, because if the previous company or accountant’s work is not done well, it may be troublesome to sort out the financial situation.

3. Train employees

You cannot continue to run your own business alone, which is unsustainable and you will be exhausted.Correspondingly, you need to hire the right employees and train them.

Take my friend as an example.
I saw that he did a lot of work simply because he felt that his employees did not meet the requirements.
He will undertake many challenging tasks himself.
After a while, he realized that this was not sustainable.
Because in the end he did not help his employees learn and grow.

When you first start hiring, your workload may not decrease immediately.In fact, the workload will increase over time because you must train new employees.However, this is a reasonable effort, because in the long run, it will make your life easier in the future.

4. Get the right tool

Equipping your team with the right tools can have a major impact on your business.”There are two aspects that distinguish companies from competitors: selling in a modern way that goes beyond traditional sales techniques, and providing excellent customer support. Remember to provide your team with the best tools to achieve these goals!” With the right tools, they can expand smoothly and provide a better customer experience.

As a small business, you cannot maintain finances unorganized, track sales leads or support notices.Using the right technology and tools can save you money and time, and can greatly improve the way you do business.

5. Investment marketing

As a small business, you may not be as famous as a large business.You must let people know the types of products or services you provide.You may provide the best products or services, but people wo n’t line up to buy.They must know your existence.

You should also find the right market channel according to your industry, which channel is best for you-social event or booth?Will digital marketing be better?You must determine which channel is suitable for your audience.

If you ask my friend, he will say that this is one of the earliest mistakes he made-he thinks customers will come knocking on the door.In fact: they don’t.
He also spent a lot of money on digital marketing, and later learned face-to-face meeting prospects and participate in activities, which is much better for his business.Having an employee or team that specializes in marketing may also not be hurt, which is a crucial part of any business-it will help your business gain visibility, attract customers and ultimately generate revenue.

CentOS 7 Builds Zabbix Server Monitoring Call Center

By | Blogs | No Comments

1. Why zabbix is the preferred monitoring system for call centers?

  • Zabbix is an enterprise-class open source solution that provides distributed system monitoring and network monitoring based on a web interface.
  • Zabbix monitors various network parameters to ensure the secure operation of the server system; and provides a flexible notification mechanism to allow system administrators to quickly locate/solve various problems.
  • Zabbix consists of 2 parts, zabbix server and optional component zabbix agent.
  • The zabbix server can provide remote server/network status monitoring, data collection and other functions through SNMP, zabbix agent, ping, port monitoring, etc. It can run on Linux, Solaris, HP-UX, AIX, Free BSD, Open BSD, On platforms such as OS X.
    Suggest an edit
  • Zabbix is a popular monitoring tool under linux. It can use zabbix to monitor the performance of call center performance, which is more conducive to understanding the operation of call center system. This article takes the popular astercc call center system as an example to introduce how to configure zabbix to monitor astercc system. The number of incoming calls, the amount of outgoing calls, the number of outgoing calls, the number of outgoing calls, the amount of calls, the total number of agents, the number of agents checked in, the number of agents, the number of calls, the number of agents, and the number of seats suspended (small breaks) , lunch break, leave, meeting, training, other), queuing, etc…

 

2. Download and install zabbix server

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

systemctl stop firewalld.service
systemctl disable firewalld.service
yum install -y epel-release 0

yum -y install wget net-snmp-devel OpenIPMI-devel httpd openssl-devel java lrzsz fping-devel libcurl-devel perl-DBI pcre-devel libxml2 libxml2-devel mysql-devel gcc php php-bcmath php-gd php-xml php-mbstring php-ldap php-mysql.x86_64 php-pear php-xmlrpc net-tools wget vim-enhanced
wget -P /etc/yum.repos.d https://mirrors.aliyun.com/repo/Centos-7.repo
yum -y install mariadb mariadb-server php php-mysql httpd
systemctl enable mariadb.service
systemctl start mariadb.service
mysql_secure_installation

systemctl start httpd.service
rpm -ivh https://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm

yum -y install zabbix-server-mysql
yum -y install zabbix-web-mysql
yum -y install zabbix-get
mysql -uroot -proot -e "create database zabbix default character set utf8 collate utf8_bin;"
mysql -uroot -proot -e "grant all on zabbix.* to 'zabbix'@'%' identified by 'zabbix';"
cd /usr/share/doc/zabbix-server-mysql-3.0.21/
zcat create.sql.gz | mysql -uzabbix -p zabbix

 

vim /etc/zabbix/zabbix_server.conf
    DBHost=localhost
    DBName=zabbix
    DBUser=zabbix
    DBPassword=zabbix

vim /etc/httpd/conf.d/zabbix.conf
#Change the time zone to Asia/Shanghai

systemctl start zabbix-server.service
systemctl enable zabbix-server.service
systemctl restart httpd.service

 


Page configuration

https://localhost/zabbix                     #localhost is zabbix server ip address

Username : Admin

Password : zabbix

 

3. Download and install the zabbix client

3.1 zabbix server monitor localhost

yum -y install zabbix zabbix-agent

In the installation, if the above error occurs, the reason is that the two versions of the software are inconsistent. Observe carefully that these two packages use different warehouses, close and reinstall the epel.

vim /etc/yum.repos.d/epel.repo

    enabled=0

vim /etc/zabbix/zabbix_agentd.conf
    Server=127.0.0.1
    ServerActive=127.0.0.1
    Hostname=127.0.0.1
    Timeout=30
    UnsafeUserParameters=1

zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent

 

3.2 astercc server installation configuration zabbix agent


yum install -y zabbix-agent
cd /etc/zabbix/
mv zabbix_agent.conf zabbix_agent.conf.bak
mv zabbix_agentd.conf zabbix_agentd.conf.bak
vim zabbix_agentd.conf
/etc/init.d/zabbix-agent start

vim /etc/sysconfig/iptables         #open 10050/tcp

Add an agent host on the zabbix server

#192.168.1.194 is the astercc agent IP

Agent adds custom key-values

vim /etc/zabbix/zabbix_agentd.conf


cat > /home/Realtime_report.sh << EOF
#!/bin/bash
USER=root #mysql user
PASSWORD=astercc #mysql password
INBOUNDCOUNT=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curpbxcdrs where endtime='0000-00-00 00:00:00' and calltype='DIALIN' and memo != 'PREDICTIVE CALLER';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
OUTBOUNDCOUNT=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curpbxcdrs where endtime='0000-00-00 00:00:00' and (userfield='DID DIALOUT' or calltype='DIALOUT') and answertime='0000-00-00 00:00:00';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
OUTBOUNDRINGING=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curpbxcdrs where endtime='0000-00-00 00:00:00' and (userfield='DID DIALOUT' or calltype='DIALOUT') and answertime='0000-00-00 00:00:00';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
OUTBOUNDANSWER=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curpbxcdrs where endtime='0000-00-00 00:00:00' and (userfield='DID DIALOUT' or calltype='DIALOUT') and answertime!='0000-00-00 00:00:00';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
TRAFFICCOUNT=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curpbxcdrs where endtime='0000-00-00 00:00:00' and memo != 'PREDICTIVE CALLER';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
AGENTCOUNT=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_agents;" 2&gt;/dev/null|awk 'NR==2{print $1}'`
AGENTCHECKLOGIN=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curagents;" 2&gt;/dev/null|awk 'NR==2{print $1}'`
AGENTCALL=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curagents where status='ringing' and status='busy';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
AGENTOUTBOUND=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curpbxcdrs where endtime='0000-00-00 00:00:00' and (userfield='DID DIALOUT' or calltype='DIALOUT') and agentno!='';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
AGENTINBOUND=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curpbxcdrs where endtime='0000-00-00 00:00:00' and calltype='DIALIN' and memo !='PREDICTIVE CALLER' and agentno!='';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
AGENTACW=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curagents where status='pause' and acw_status!='';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
AGENTPAUSE=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curagents where status='pause' and acw_status='';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
AGENTREST=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curagents where status='pause' and acw_status='' and pause_reason='rest';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
AGENTLUNCH=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curagents where status='pause' and acw_status='' and pause_reason='lunch';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
LEAVE=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curagents where status='pause' and acw_status='' and pause_reason='leave';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
MEETING=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curagents where status='pause' and acw_status='' and pause_reason='meeting';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
TRAINING=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curagents where status='pause' and acw_status='' and pause_reason='training';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
OTHER=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curagents where status='pause' and acw_status='' and pause_reason='other';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
WAIT=`mysql -u$USER -p$PASSWORD astercc10 -e "select count(*) from cc10_curqueuecallers where status='wait';" 2&gt;/dev/null|awk 'NR==2{print $1}'`
#channels
CHANNELS=`asterisk -rx 'core show channels count' 2&gt;/dev/null|awk 'NR==3{print $1}'`
#calls
CALLS=`asterisk -rx 'core show calls' 2&gt;/dev/null|awk 'NR==2{print $1}'`
if [ $1 = 'INBOUNDCOUNT' ] then
echo $INBOUNDCOUNT
elif [ $1 = 'OUTBOUNDCOUNT' ] then
echo $OUTBOUNDCOUNT
elif [ $1 = 'OUTBOUNDRINGING' ] then
echo $OUTBOUNDRINGING
elif [ $1 = 'OUTBOUNDANSWER' ] then
echo $OUTBOUNDANSWER
elif [ $1 = 'TRAFFICCOUNT' ] then
echo $TRAFFICCOUNT
elif [ $1 = 'AGENTCOUNT' ] then
echo $AGENTCOUNT
elif [ $1 = 'AGENTCHECKLOGIN' ] then
echo $AGENTCHECKLOGIN
elif [ $1 = 'AGENTCALL' ] then
echo $AGENTCALL
elif [ $1 = 'AGENTOUTBOUND' ] then
echo $AGENTOUTBOUND
elif [ $1 = 'AGENTINBOUND' ] then
echo $AGENTINBOUND
elif [ $1 = 'AGENTACW' ] then
echo $AGENTACW
elif [ $1 = 'AGENTPAUSE' ] then
echo $AGENTPAUSE
elif [ $1 = 'AGENTREST' ] then
echo $AGENTREST
elif [ $1 = 'AGENTLUNCH' ] then
echo $AGENTLUNCH
elif [ $1 = 'LEAVE' ] then
echo $LEAVE
elif [ $1 = 'MEETING' ] then
echo $MEETING
elif [ $1 = 'TRAINING' ] then
echo $TRAINING
elif [ $1 = 'OTHER' ] then
echo $OTHER
elif [ $1 = 'WAIT' ] then
echo $WAIT
elif [ $1 = 'CHANNELS' ] then
echo $CHANNELS
elif [ $1 = 'CALLS' ] then
echo $CALLS
else
echo "Incorrect input variable"
fi
EOF

 

cat > /home/Realtime_report_system.sh << EOF
#!/bin/bash
CPUFREE=`vmstat |awk 'NR==3{print $15}'`
CPULOAD1=`uptime|awk '{print $10}'|awk -F ',' '{print $1}'`
CPULOAD5=`uptime|awk '{print $11}'|awk -F ',' '{print $1}'`
CPULOAD15=`uptime|awk '{print $12}'|awk -F ',' '{print $1}'`
DISKUSAGERATE=`df |grep -e '\/dev\/sda5'|awk '{print $5}'|awk -F '%' '{print $1}'`
MEMALL=`free |grep "Mem"|awk '{print $2}'`
MENUSE=`free |grep "Mem"|awk '{print $3}'`
MEMUSAGERATE=`awk 'BEGIN{printf "%.1f\n",('$MENUSE'/'$MEMALL')*100}'`
if [ $1 = 'CPUFREE' ] then
echo $CPUFREE
elif [ $1 = 'CPULOAD1' ] then
echo $CPULOAD1
elif [ $1 = 'CPULOAD5' ] then
echo $CPULOAD5
elif [ $1 = 'CPULOAD15' ] then
echo $CPULOAD15
elif [ $1 = 'DISKUSAGERATE' ] then
echo $DISKUSAGERATE
elif [ $1 = 'MEMUSAGERATE' ] then
echo $MEMUSAGERATE
else
echo "Incorrect input variable"
fi
EOF

Zabbix server test key

zabbix_get -s 192.168.1.194 -k "astercc.info[AGENTCOUNT]"

Return value “5”, that is, the number of seats is 5 key values are successfully created.

Add monitoring items

All key values that need to be monitored can be replaced by astercc.info[*] in Realtime_report.sh.

/etc/init.d/zabbix-agent restart

Green light indicates that astercc has been monitored

 

Astercc and Viking cruises have a successful cooperate in Call center customization options

By | Latest News | No Comments

November 1, 2017, the global river giant Viking cruise ship in Loushanguan Road, the naked heart of the Chinese office celebrations officially opened. The Viking cruise ship’s personalized office building is intended to expand the Chinese market. At the same time, the personalized office needs reasonable management to realize, which is inseparable from the excellent enterprise management system. With its perfect management system and unique customization, astercc has the honor to be the first choice of the service management system of Viking cruises.

Since the establishment of Salesforce in 1999,  the global for 15 m companies are using salesforce powerful features to share customer information, Astercc has been systematically optimized several times,so that you can seamlessly dock with the salesforce system inside the Viking ship and make it easier and faster to use.

What’s more , which about Viking cruise ship choose ASTERCC another important reason is ASTERCC can afford Tailor-made agency function for him.

The astercc aims to achieve more transparent and convenient management of the agency according to customers’ requirements, and in the original basic call system specifically for its customized agency details and agency group detail function, which Can check the work situation of the agency in half an hour.

The seating group customization include about Inbound call,2s Abandon rate amount, the work of agency, Average waiting time, Average Talk Time, Abandon Rate, and the response rate of response in 20s. In addition to the above functions, the seating record is more specific to the accurate calculation of utilization. The calculation excludes loginlong, the busy lunch time, the busy time of the meeting and the length of the training. Productivity, loginlong, average ringing time, the average response speed, the length of the call, the length of the post, the average call processing time, and so on, which can make the management of the seat is more simplified and efficient.the rate of the service of the agent is improved greatly, so that the service management is maintained and the benefit of the enterprise is maximized.

ASTERCC the cooperation with the Viking cruise ship, not only the strong combination for the Viking cruise ship to bring a smooth development, but also for its high-speed development of the Chinese market to provide a more intimate service guarantee.

A Sonicwell Product · Also: CXMind AI · WCC Contact Center