What is difference between Bitrix64 and Odoo CRM?

Here is a basic difference of any closed source CRM (Bitrix, MS Dynamics, ZOHO CRM, Suger CRM etc) & Open source CRM (e.g. Odoo, Orange etc)

Open Source CRM

  • There will be no licensing terms and you will own the system.
  • You’ll have to rent/own infrastructure and yourself will be responsible to manage it.
  • You have full rights to customize it as you will have the source code.
  • You can establish your own business process on rather than accepting already established process of some software.
  • TCO (Total Cost of Ownership) might be more than hosted ones. It might have bit more operational cost.
  • Export the data and migrate to some other software will be easy as you own that software.
  • Data privacy and confidentiality will be maintained.
  • You will have built in website already connected with CRM/backend (Tight coupling)
  • Extensibility of having accounting, sales, purchase, payroll, inventory on a single click installation without any extra cost.

Hosted CRM (Closed Source)

  • No/little setup cost
  • You don’t need to worry about infrastructure and maintenance.
  • You will not own the software and will need to accept the licensing terms.
  • Very small customization might be allowed.
  • You will need to adopt the business process (workflow) of that software.
  • Migration to other software in future might be difficult.
  • No TCO (Total cost of ownership) as you will not own the software.
  • You will need to write/develop middleware interface to connect with any website (Loose coupling)


How to use Office365 as an outgoing mail/smtp server with odoo?

If you are getting an error like “SMTPDataError:… SMTP; Client does not have permissions to send as this sender

It seems a normal scenario to use office 365 as a email server with Odoo but there are some known issues while you configure it.

  1. It will not directly allow you to use multiple FROM address or different FROM address then the sender address which is being used in authentication. E.g. you have configured alice@example.com and you would like to set no-reply@example.com as a FROM address. This will be needed when you want all your Odoo users to send emails using same FROM address.

As a solution, you have a couple of options,

  1. You can relay your outbound emails from an another MTA like Sendgrid and use the multiple sender addresses.
  2. You may create a security group and follow the steps below,
    1. Create a security group e.g. no-reply@example.com
    2. Add all email accounts to that group and give send as permission.
    3. Try sending an email and it should work!
  3. Check out reverse DNS settings of your domain name and make sure that its mapped to the return path properly.


How to run first blockchain hello world program!

I assume that you have read a lot about the block chain technology and where it can be applied. Now you must be wondering where should I develop the Smart Contract and run the program

Do I need to,

  • Spent Ether to run program on Ethereum main network to test it
  • Download the Ethereum wallet and connect to Ropsten or Rinkeby  test network? Even if you connect to it and download the data from the peers you will find difficulty to execute the program.

Answer is no

Here are the simple steps you need to follow in order to run your first Hello World! etherum smart contract.

Overall Architecture

Step 1 : Setting up testrpc virtual environment

Download the Ethereumjs test rpc Docker image & run it. If you haven’t already installed docker engine follow this instruction.

docker pull silentinfotech/ethereumjs-testrpc
docker run -d -p 8545:8545 silentinfotech/ethereumjs-testrpc:latest -a 10 --debug

When you run the docker it will start the docker container and will forward port 8545 to it.  testrpc is Node.js based ethereum client for development and testing.  Find more information on testrpc from here

Step 2 : Remix IDE

We will use the remix IDE for the ethereum smart contract( In developer language program) development. Navigate to https://remix.ethereum.org/ and allow unsafe script to load.

As a part of first program, We will run hello world “Your first citizen: the greeter” program from ethereum.org. Find more information about hello world program from here

Step 3 : Copy & Paste Hello world contract

Copy “Your first citizen: the greeter” program and paste it on remix IDE window. Contract will be compiled automatically if Auto compile is selected already. Ignore the warning(s) for now.

Hello world block chain program at Remix IDE

Step 4 : Run program

Navigate to Run tab from top right corner.  Choose Web3 Provider as environment. Enter appropriate URL – if you are running docker on local computer you won’t need to change the url. We are now connected to testrpc ethereum test environment. We can find the account dropdown auto populated with all test accounts with having 100EHR by default – which are more than sufficient to run the program. 😉

Let’s run the program,

Pass the constructor parameters in create method(e.g “Hello world!”. Click on create, Wow!!! we have generated a first block. You can even call the greet method on newly created block.

You can also read the existing blocks methods/variables by providing block address in At Address text field.

Ethereum Network Charges

In a nutshell, you will be charged when ever you/program will change the state of the variable. e.g Increment value of variable, store the value in variable, destroy value of variable. there is no charge for reading the blocks.





Odoo won’t start after pysftp installed


  • UBUNTU 16.04
  • Odoo 9


Today I came across the situation where after installing pysftp suddenly I won’t be able to start odoo again. I have tried to do

service odoo restart
service odoo stop ; service odoo start

When I have tried to uninstall pysftp, I was having SSL_ST_INIT error

root@erp:~# pip uninstall pysftp
Traceback (most recent call last):
 File "/usr/bin/pip", line 9, in <module>
 from pip import main
 File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 13, in <module>
 from pip.exceptions import InstallationError, CommandError, PipError
 File "/usr/lib/python2.7/dist-packages/pip/exceptions.py", line 6, in <module>
 from pip._vendor.six import iteritems
 File "/usr/lib/python2.7/dist-packages/pip/_vendor/__init__.py", line 64, in <module>
 File "/usr/lib/python2.7/dist-packages/pip/_vendor/__init__.py", line 36, in vendored
 __import__(modulename, globals(), locals(), level=0)
 File "/usr/share/python-wheels/CacheControl-0.11.5-py2.py3-none-any.whl/cachecontrol/__init__.py", line 9, in <module>
 File "/usr/share/python-wheels/CacheControl-0.11.5-py2.py3-none-any.whl/cachecontrol/wrapper.py", line 1, in <module>
 File "/usr/share/python-wheels/CacheControl-0.11.5-py2.py3-none-any.whl/cachecontrol/adapter.py", line 3, in <module>
 File "/usr/share/python-wheels/requests-2.9.1-py2.py3-none-any.whl/requests/__init__.py", line 53, in <module>
 File "/usr/share/python-wheels/urllib3-1.13.1-py2.py3-none-any.whl/urllib3/contrib/pyopenssl.py", line 54, in <module>
 File "/usr/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
 from OpenSSL import rand, crypto, SSL
 File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 118, in <module>
AttributeError: 'module' object has no attribute 'SSL_ST_INIT'


Step 1: Backup existing directory on OpenSSL and pyOpenSSL from dist-packages folder.

cp -r /usr/lib/python2.7/dist-packages/OpenSSL /tmp/
cp -r /usr/lib/python2.7/dist-packages/pyOpenSSL-0.15.1.egg-info /tmp/

Step 2: Remove directory OpenSSL and pyOpenSSL from dist-packages folder and install pyopenssl module

# rm -rf /usr/lib/python2.7/dist-packages/OpenSSL 
# rm -rf /usr/lib/python2.7/dist-packages/pyOpenSSL-0.15.1.egg-info 
# sudo pip install pyopenssl

Step 3: Start odoo service.

How to connect to PPTP server from linux

How you could connect to PPTP server from linux to access your office network?

  • Goto Edit Connections -> Add New Connection

  • Choose Point-to-Point Tunneling Protocol (PPTP) as connection type

  • Provide the information you have received from your company administration team( e.g Gateway, User name, Password, NT Domain(Optional)) and save it

  • New connection with connection name will be available to dial under the connection manager -> VPN Connections -> Office VPN Connection(in our case)

How To Secure Apache with Let's Encrypt on Ubuntu

This post will show you how to set up a TLS/SSL certificate from Let’s Encrypt on an Ubuntu server running Apache as a web server.

Introduction about SSL

SSL stands for Secure Socket Layer. SSL is a protocol used for sending confidential data over the Internet. SSL creates a secure connection between a web browser and the server. In this process, SSL uses encryption to keep the data private.

Advantages of SSL

• Encrypts Information. SSL certificate ensures the data you send online are read by only the intended recipient and none else.
• SSL makes some changes in the original data so that the data can’t be read by the third parties.
• Having SSL certificate ensures authentication.
• Secure against phishing attacks.
• Better search engine rankings.

Install SSL certificate using Let’s Encrypt


• Ubuntu server with a non-root sudo user.
• The Apache web server installed and domain name properly configured.
• Your domain mapped with server IP.

Step 1 — Install the Let’s Encrypt Client

The first step to Let’s Encrypt SSL certificate is to install the certbot software on your server.

sudo add-apt-repository ppa:certbot/certbot

You will need to press ENTER to accept. Then update the package list using following command

sudo apt-get update

Install Certbot SSL using following command.

sudo apt-get install python-certbot-apache

Step 2 — Set Up the SSL Certificate

Following command is automatically install a new SSL certificate on apache server that is valid for only 3 months. A single certificate that is valid for multiple domains or subdomains. Execute following command.

sudo certbot --apache -d example.com

If you can execute above command then it will ask some basic information like email, agree terms & service and enabling both http and https access. After install certificate, automatically changed apache configuration file as required.
When the installation is finished, you should be able to find the generated certificate files at /etc/letsencrypt/live.

Step 3 — Auto Renewal SSL Certificate

Let’s Encrypt’s certificates is valid for 3 months. Following command is to check for expiring certificates and renew them automatically.

sudo crontab -e

After execute above command, Your text editor will open the default crontab which is a text file with some help text in it.
Paste in the following line at the end of the file, then save and close it:

15 3 * * * /usr/bin/certbot renew --quiet

Now your domain is ready with SSL Certificate.

Installing Zimbra community 8.7 on Ubuntu 16.04


Zimbra email collaboration is the leading open source enterprise email solution and the most preferred alternative to Microsoft Exchange. It is now available in hosted, cloud and on-premise versions. Zimbra provides an excellent browser-based interface that allows users to integrate with mail clients easily. Silent Infotech provides consultation, implementation and migration services with support for your Zimbra email/collaboration solution.

Download zimbra based on your platform, from latest release Zimbra Open Source. Here we will choose Ubuntu 16.04 LTS 64-bit release and download it with wget. Get the download address location and download form machine where you want to install zimbra

Download zimbra

root@silent:/cd /home/
root@silent:/home# wget https://files.zimbra.com/downloads/8.7.7_GA/zcs-8.7.7_GA_1787.UBUNTU16_64.20170410133400.tgz

Extract downloaded zimbra

root@silent:/home# tar tar xzf zcs-8.7.7_GA_1787.UBUNTU16_64.20170410133400.tgz

Prerequisite to install zimbra

Step 1 : In case the system configured by using DHCP, you need set an static IP for Zimbra Collaboration.

root@zimbra8:~# vim /etc/network/interfaces


If you have dhcp line:

allow-hotplug eth0 
iface eth0 inet dhcp


Then change it to static Ethernet configuration:

allow-hotplug eth0 
iface eth0 inet static
address 10.X.X.X 
gateway 10.X.X.X


Note, address : Zimbra machine ip,

gateway : router IP address in your Environment.

DNS Server, type your own Zimbra server if you will use an internal DNS server on Zimbra Server, or other IP in case you have a valid DNS Server already exist.

Step 2 : Set hostname

root@silent:/home# vi /etc/hosts       localhost   mail.silent.com mail

Step 3 : Reboot machine

root@silent:/home# reboot

Install zimbra

root@silent:/home# cd zcs-8.7.7_GA_1787.UBUNTU16_64.20170410133400/

root@silent:/home/zcs-8.7.7_GA_1787.UBUNTU16_64.20170410133400# ./install.sh

Now follow given steps to complete the installation:

Step 1 : Read and accept license agreement:

License Terms for the Zimbra Collaboration Suite:
Do you agree with the terms of the software license agreement? [N] y

Step 2 : Now it will check if some zimbra packages already exist

Operations logged to /tmp/install.log.zlP8ruf3
Checking for existing installation...
    zimbra-ldap...NOT FOUND
    zimbra-logger...NOT FOUND
    zimbra-mta...NOT FOUND
    zimbra-dnscache...NOT FOUND
    zimbra-snmp...NOT FOUND
    zimbra-store...NOT FOUND
    zimbra-apache...NOT FOUND
    zimbra-spell...NOT FOUND
    zimbra-convertd...NOT FOUND
    zimbra-memcached...NOT FOUND
    zimbra-proxy...NOT FOUND
    zimbra-archiving...NOT FOUND
    zimbra-core...NOT FOUND
License Terms for the Zimbra Collaboration Suite:
Do you agree with the terms of the software license agreement? [N] y

Step 3 : Select the services to be installed on this server.

To install Zimbra Collaboration on a single server, enter Y for the ldap, logger, mta, snmp, store, and spell packages.The installer verifies that there is enough room to install Zimbra Collaboration. If there is not, the installation stops.

Checking for installable packages
Found zimbra-core
Found zimbra-ldap
Found zimbra-logger
Found zimbra-mta
Found zimbra-dnscache
Found zimbra-snmp
Found zimbra-store
Found zimbra-apache
Found zimbra-spell
Found zimbra-memcached
Found zimbra-proxy

Use Zimbra's package repository [Y]

Select the packages to install

Install zimbra-ldap [Y] y

Install zimbra-logger [Y] y

Install zimbra-mta [Y] y

Install zimbra-dnscache [Y] y

Install zimbra-snmp [Y] y

Install zimbra-store [Y] y



Checking required space for zimbra-core

Checking space for zimbra-store

Checking required packages for zimbra-store

zimbra-store package check complete.











The system will be modified.

Continue? [N] y

Removing /opt/zimbra
Removing zimbra crontab entry...done.
Cleaning up zimbra init scripts...done.
Cleaning up /etc/security/limits.conf...done.

Finished removing Zimbra Collaboration Server.
Installing packages
Local packages  zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-proxy selected for installation
Monitor /tmp/install.log.sKlWbSLr for package installation progress
Remote package installation started
Installing zimbra-core-components  zimbra-ldap-components zimbra-mta-components zimbra-snmp-components zimbra-store-components zimbra-apache-components zimbra-spell-components zimbra-memcached zimbra-proxy-components....

Local package installation started
Installing  zimbra-core zimbra-ldap zimbra-logger zimbra-mta zimbra-snmp zimbra-store zimbra-apache zimbra-spell zimbra-proxy...done
Operations logged to /tmp/zmsetup.20160430-185719.log
Installing LDAP configuration database...done.
Setting defaults...

Step 4 : Update MX records

If it throws exception about a missing MX record as given below, which says your domain DNS records are not matching with zimbra server’s expectation, based on the hostname which is configured earlier. Find your /etc/hostname file and check DNS records to resolve the problem.


DNS ERROR resolving MX for mail.silent.com
It is suggested that the domain name has an MX record configured in DNS
Change domain name? [Yes]

Create domain: [mail.silent.com] example.com
MX: mail.silent.com (

Interface: fd7a:4c04:5f10:0:20c:29ff:feb9:ecf8
Interface: ::1
Checking for port conflicts

Step 5 : Set admin password

Main menu
 1) Common Configuration:                                                  
 2) zimbra-ldap:                             Enabled                       
 3) zimbra-logger:                           Enabled                       
 4) zimbra-mta:                              Enabled                       
 5) zimbra-dnscache:                         Enabled     

 6) zimbra-snmp:                             Enabled                
 7) zimbra-store:                            Enabled                       
     +Create Admin User:                     yes                           
     +Admin user to create:               admin@mail.silent.com
 ******* +Admin Password                        UNSET                         

To change default admin password, select menu 7 and then inside zimbra store select 4, provide password and press enter

Type r to return to the Main menu.

Select from menu, or press ‘a’ to apply config (? – help) a

Save configuration data to a file? [Yes] : press enter

Save config in file: [/opt/zimbra/config.10687]:press enter

Notify Zimbra of your installation? [Yes]
Notifying Zimbra of installation via http://www.zimbra.com/cgi-bin/notify.cgi?VER=8.7.7_GA_1787.UBUNTU16_64&MAIL=admin@mail.silent.com
Notification complete

Setting up zimbra crontab…done.
Moving /tmp/zmsetup.20160430-185719.log to /opt/zimbra/log
Configuration complete – press return to exit

Step 6 : Check installation

To check admin control panel: http://mail.silent.com:7071

To check user login: http://mail.silent.com

Suggestions & inquiry are welcome http://silentinfotech.com/get

DMA Radius : How to repair "Incorrect key file for table ‘./conntrack/xxxx@xxxxxx@xxxxxx.MYI’"

Some times if your production server goes down due to power failure you might face below error while accessing “Connection Tracking Reports” in Radius manager.

Incorrect key file for table ‘./conntrack/2017@002d06@002d04.MYI’. try to repair it

Follow below mentioned steps to resolve issue.

How to repair table[Ubuntu]?

Go to database folder

cd /var/lib/mysql/conntrack
service mysql stop
myisamchk -r -v -f 2017\@002d06\@002d04.MYI
service mysql start

# don’t forgot to change table name

How to repair table[Centos]?

Go to database folder

cd /var/lib/mysql/conntrack
service mysqld stop
myisamchk -r -v -f 2017\@002d06\@002d04.MYI
service mysqld start

# don’t forgot to change table name


  • Use SSD or RAID based storage for faster IO and make sure you have plenty of disk space.
  • Use separate host for Connection Tracking database for better performance
  • Follow mysql performance tuning guide line https://www.mysql.com/why-mysql/performance/

Zimbra Email Collaboration Solution Fits in all Businesses

Zimbra Email Collaboration Solution Fits in all Businesses

Zimbra email collaboration has more than 400 million trusted users worldwide. It is the leading open source enterprise email solution and the most preferred alternative to Microsoft Exchange. It is now available in hosted, cloud and on-premise versions. Zimbra provides an excellent browser-based interface that allows users to integrate with mail clients easily.

Zimbra UI

Silent Infotech provides consultation, implementation and migration services with support for your Zimbra email/collaboration solution.


  • Secure Communication for Businesses: Stayed connected with your business-class email in a secure environment with dedicated file sharing, tasks, and shared calendaring features. Zimbra collaboration solution ensures protected communication with higher security standards and transparency of an open source platform.
  • Excellent Collaboration Tools: Increase your productivity with a comprehensive set of collaboration tools and having complete control over company’s privacy and security.
  • Easy Collaboration from Any Device, Any Location: Zimbra enterprise email solution offers ease of access from anywhere, across multiple devices including smartphones and tablets, and both online as well as offline.
  • Open Source Offers Extended Collaboration: Extend collaboration further than an email with Zimlets and APIs to connect to other applications like Salesforce. Increase security through third-party integration with Zimbra Collaboration’s open framework.
  • No Downtime: Maximize benefits of carrier-grade collaboration with Zimbra collaboration solutions. It is the only platform with plenty of choices for larger telecommunications companies and ISPs worldwide. Performance and speed guaranteed.
  • Deployment Flexibility: Deploy Zimbra enterprise email solution through any of our trusted service providers or on-premise.
  • Save on TCO: With Zimbra, you can save at least 50% than Microsoft Office 365 and Exchange. Save on hardware, operations, and licensing. Get best savings on cloud based and on-premise Zimbra collaboration.

Why is Silent Infotech the Best Choice for Zimbra Email Solution?

  • Professional Zimbra mail consulting services
  • High-level architecture and design with low-level workflow details for easy deployment
  • 24×7 Zimbra mail server support by experts
  • End-to-end security with SSL and Firewall
  • Regular offsite backup of Zimbra for unforeseen disaster recovery
  • Experienced migration from one platform to another

Join us to know more.

Steps to Install Windows 10 on existing Ubuntu 16.04

Installing Ubuntu after Windows is easy and strait forward process. But to install Windows after Ubuntu is a bit tricky and not recommended. But you still have to do it sometimes.

So, here are the steps to install Windows 10 when you have Ubuntu 16.04 already installed. And you want to run both together.

1. Prepare partition for Windows Installation in Ubuntu 16.04

  •  To install Windows 10, it is mandatory to have Primary NTFS partition created on Ubuntu for Windows.
  • Create Primary NTFS partition for Windows installation using gParted OR Disk Utility command line tools. If you have existing logical/extended partitions in which you want to install windows, then you need to delete that partition and create new Primary Partition. (NOTE: All data in the existing logical/extended partition will be erased. Because you want Windows there.)

2. Install Windows 10

  • Start Windows Installation from bootable DVD/USB stick.
  • Once you provide Windows Activation Key, Choose “Custom Installation“.
  • Select the NTFS Primary Partition(we have just created in Ubuntu 16.04)
  • After successful installation the Windows bootloader replaces the grub. So, when Windows boots, you won’t see the grub menu to choose Ubuntu. So, Next you need to install grub again for Ubuntu.

3. Install Grub for Ubuntu

  • To install and fix grub, you need LiveCD or LiveUSB of Ubuntu.
  • Once you load Live Ubuntu, Open Terminal and fire following commands to install boot-repair and let it fix the Grub.
    sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    sudo apt-get install -y boot-repair && boot-repair
  • After installation, boot-repair will get automatically launched.
  • Make sure to select “recommended repair” option to repair grub. Reboot.
  • You will now have a Grub menu on boot, where you can choose from Ubuntu, memtest, and Windows 10