Skip to content

arshiahsn/distributed-telegram

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LinkedIn


Distributed Telegram

A distributed messaging application with SIP protocol.
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgements

About The Project

A distributed messaging application with SIP protocol. This project includes both the server and the client. The server has an overlay what is implemented with Java EE/Socket IO, and an underlay that is implemented with C++.

Built With

Getting Started

To get a local copy up and running follow these simple steps.

Network Configuration

  1. Make sure that there are only two interfaces lo and enps03
  2. To make sure use ifconfig command and remove other interfaces with following commands:
sudo ifconfig INTERFACE_NAME down
sudo brctl delbr INTERFACE_NAME

Installation

  1. Clone the repo
    git clone https://github.com/arshiahsn/distributed-telegram.git
  2. Install Boost Library for C++ and MySQL
  3. Go to the UnderlayServer and run following commands:
mysql -u root -p sip < sip.sql
cp distributed_system_sip_update_server distributed_system_sip_update_command /usr/src/
cd /usr/src/distributed_system_sip_update_server
  1. Compile the underlay server using following command:
g++ -I/usr/include/mysql -L/usr/lib64/mysql -I/root/Downloads/boost_1_60_0 -L/root/Downloads/boost_1_60_0/stage/lib -lmysqlclient -lboost_system -lboost_thread -lboost_date_time update_server.cpp message.cpp mysql_server.cpp -o server
  1. Go to the next folder and run the command:
cd /usr/src/distributed_system_sip_update_command
g++ main.cpp -o update_server
  1. Make symlinks to run:
cd /usr/bin/
ln -s /usr/src/distributed_system_sip_update_command/update_server update_server
ln -s /usr/src/distributed_system_sip_update_server/server serve
  1. Copy Serverv4.jar in the command folder:
cp Server.jar /usr/src/distributed_system_sip_update_command/
(Make sure that both Server.jar and Client.jar are on the VM if you are testing)

Running

Server

  1. Use the following command to run the underlay server:
server
  1. Use this command to run the sip server:
cd /usr/src/distributed_system_sip_update_command
java -jar Server.jar

Client

  1. Use the following command to run the client:
java -jar Client.jar

Features

  1. Decentralized and hierarchical design
  2. Scalable and reliable
  3. Supporting redundancy
  4. Delivery report, registration success report, User not found report
  5. Fast and optimized

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Your Name - @400_bad_req - arshiahsn@gmail.com

Project Link: https://github.com/arshiahsn/simple_api

About

A fully distributed messaging system using SIP protocol

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors