Deeper into the Dialplan II

Using the Asterisk Database (AstDB) Asterisk provides a powerful mechanism for storing values called the Asterisk database (AstDB). The AstDB provides a simple way to store data for use within your dialplan. The Asterisk database stores its data in groupings called families, with values identified by keys. Within a family, a key may be used … Read more

Deeper into the Dialplan(Asterisk)

Expressions and Variable Manipulation As we begin our dive into the deeper aspects of dialplans, it is time to introduce you to a few tools that will greatly add to the power you can exercise in your dialplan. These constructs add incredible intelligence to your dialplan by enabling it to make decisions based on different … Read more

Internationalization(Asterisk)

Telephony is one of those areas of life where, whether at home or at work, people do not like surprises. When people use phones, anything outside of the norm is an expect‐ ation not met, and as someone who is probably in the business of supplying telephone systems, you will know that expectations going unmet … Read more

Outside Connectivity II (Asterisk)

Storage Backends The storage of messages on traditional voicemail systems has always tended to be overly complicated.  Asterisk, on the other hand, not only provides you with a simple, logical, filesystem-based storage mechanism, but also offers a few extra message storage options. Linux Filesystem By default, Asterisk stores voice messages in the spool folder, at … Read more

Voicemail -I(Asterisk)

Voicemail Before email and instant messaging became ubiquitous, voicemail was a popular method of electronic messaging. Even though most people prefer text-based messaging systems, voicemail remains an essential component of any PBX. Comedian Mail One of the most popular (or, arguably, unpopular) features of any modern telephone system is voicemail. Asterisk has a reasonably flexible … Read more

Outside Connectivity(Asterisk) II

VoIP Compared to the vast history of telecom, VoIP is still a relatively new concept. For the century or so prior to VoIP, the only way to connect your site to the PSTN was through the use of circuits provided for that purpose by your local telephone company. VoIP now allows for connections between endpoints … Read more

Outside Connectivity(Asterisk)-I

The architecture of Asterisk is significant, due in large part to the fact that it treats all channel types as equal. This is in contrast to a traditional PBX, where trunks (which connect to the outside world) and extensions (which connect to users and resources) are very different. The fact that the Asterisk dialplan treats … Read more

Interactive Voice Response(Asterisk)

Interactive Voice Response   In this topic, we will talk about IVR. The term IVR is often misused to refer to an automated attendant, but the two are very different things. What Is IVR? The purpose of an Interactive Voice Response (IVR) system is to take input from a caller, perform an action based on … Read more

The Automated Attendant(asterisk)

The Automated Attendant In many PBXs it is common to have a menuing system in place to answer incoming calls automatically, and allow callers to direct themselves to various extensions and resources in the system through menu choices. This is known in the telecom industry as an automated attendant (AA). An auto attendant normally provides … Read more

Rocket.Chat Installation Process(centos)

Rocket.Chat in CentOS

STEP 1-  Install necessary dependency packages

  • Update package list and configure yum to install the official MongoDB packages with the following yum repository file:
     sudo yum -y check-update

cat << EOF | sudo tee -a /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF


Configure Node.js to be installed via package manager:
      sudo yum install -y curl && curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -

Install build tools, MongoDB, nodejs and graphicsmagick:

      sudo yum install -y gcc-c++ make mongodb-org nodejs

      sudo yum install -y epel-release && sudo yum install -y GraphicsMagick

Using npm install inherits and n, and the node version required by Rocket.Chat:

sudo
npm install -g inherits n && sudo n 8.11.4


STEP 2- Install Rocket.Chat

Download the latest Rocket.Chat version:

      curl -L https://releases.rocket.chat/latest/download -o /tmp/rocket.chat.tgz
      tar -xzf /tmp/rocket.chat.tgz -C /tmp

Install (this guide uses /opt but feel free to choose a different directory):

      cd /tmp/bundle/programs/server && npm install

      sudo mv /tmp/bundle /opt/Rocket.Chat


STEP 3- Configure the Rocket.Chat service

Add the rocketchat user, set the right permissions on the Rocket.Chat folder and create the Rocket.Chat service file:

      sudo useradd -M rocketchat && sudo usermod -L rocketchat
      sudo chown -R rocketchat:rocketchat /opt/Rocket.Chat

cat << EOF |sudo tee -a /lib/systemd/system/rocketchat.service
[Unit]
Description=The Rocket.Chat server
After=network.target remote-fs.target nss-lookup.target nginx.target mongod.target
[Service]
ExecStart=/usr/local/bin/node /opt/Rocket.Chat/main.js
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=rocketchat
User=rocketchat
Environment=MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01 MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://localhost:3000/ PORT=3000
[Install]
WantedBy=multi-user.target
EOF

Open the Rocket.Chat service file just created (/usr/lib/systemd/system/rocketchat.service) using sudo and your favourite text editor, and change the ROOT_URL environmental variable to reflect the URL you want to use for accessing the server (optionally change MONGO_URL, MONGO_OPLOG_URL and PORT):

MONGO_URL=mongodb://localhost:27017/rocketchat?replicaSet=rs01
MONGO_OPLOG_URL=mongodb://localhost:27017/local?replicaSet=rs01 ROOT_URL=http://your-host-name.com-as-accessed-from-internet:3000
PORT=3000

Setup storage engine and replication for MongoDB (mandatory for versions > 1), and enable and start MongoDB and Rocket.Chat:
     sudo sed -i "s/^#  engine:/  engine: mmapv1/"  /etc/mongod.conf
     sudo sed -i "s/^#replication:/replication:\n  replSetName: rs01/" /etc/mongod.conf
     sudo systemctl enable mongod && sudo systemctl start mongod
     mongo --eval "printjson(rs.initiate())"
     sudo systemctl enable rocketchat && sudo systemctl start rocketchat


STEP 4- Configure your Rocket.Chat server

Open a web browser and access the configured ROOT_URL (http://your-host-name.com-as-accessed-from-internet:3000), follow the configuration steps to set an admin account and your organization and server info.