Posts

Showing posts with the label PBX

VOIP Project: Creating PBX - Part 9

Image
Before being able to create the application of the system, another step should be made first, the creation of the PBX functionalities. During the development of this project, the best alternative where to create the PBX functionalities was considered the Bitrix24 at bitrix24.net . Bitrix24 offers no limitation regarding the number of the user that can be created in the free plan, so unlimited sip accounts can be created. Creating the sip account in Bitrix24 is a straight forward process. The first step in order to create the sip accounts is to create the management account by signing up in the bitrix.com website. After creating the management account in the page that follows we need to create a Bitrix24 account as by following the steps shown in figure 1: Figure 1: Create Bitrix24 In the next page that follows complete the information required, similar to the ones shown in figure 2: Fill Bitrix24 info In the management panel that shows next can be found a lot of options, ...

VOIP Project: Building PJSIP library - Part 8

After downloading the PJSIP project from pjsip.org website and installing the Visual C++ IDE, PJSIP project must be opened with Visual C++ IDE. In the solution explorer where are listed all the solutions of the PJSIP project, pjsua project must be set as the starting project. Before starting to build the PJSIP project, it is necessary to check and properly set some configuration for the resulting libraries. In order to be able to build compatible libraries, it is necessary that the configuration of when building the PJSIP project, which will generate the need libraries, to be the same with the configuration of the compiler that will be used when building the final application. The first concern of course must be the compatibility of the versions of the compiler. The compilers must be both 32 or 64 bit, which means that when running the compilation of the PJSIP project the target platform must be the same as the target platform which will be used during the development of the appli...

VOIP Project: Preparing environment - Part 7

In order to implement the system shown during the design process shown in the previous parts, there are several steps needed to be followed in order to setup the framework of the project. In order to build the PJSIP library it is necessary to have the Visual C++ IDE in a Windows environment. During the implementation of project, the Visual C++ 2015 Express Edition is used. Of course the PJSIP project must be downloaded as well from the pjsip.org website. During the development of this project the version 2.4.5 was used. And alternative to Visual C++ 2015 Express Edition, a relatively more complex one, in order to build the PJSIP library is the usage of MingW combined with MSYS. When using this tools it is necessary to collect other tools in order to be able to build the PJSIP library. After having the above mentioned tools, it is necessary to have a server where to host the MySQL database used in this project. During the development of this project a server connected with db4free.n...

VOIP Project: Patterns - Part 6

In order to develop good and stable software a software engineer should make use of the standardized accumulated knowledge of other engineers as well, know as patterns. Patterns are defined by Shaffer as follow: “Experienced software designers learn and reuse patterns for combining software components …A primary goal of design patterns is to quickly transfer the knowledge gained by expert designers to newer programmers.” (A.Shaffer, 2013, p. 12), which shows that the patterns are a result of experience. In this project are implemented several patterns and is paid a special attention to avoid the “Anti-Pattern” processes, which means "a common design pitfall. An anti-pattern is called this because many design patterns are designed to avoid such pitfalls.”(Ezust & Ezust, 2007, p. 342) The singleton pattern is one of the patterns implemented in the project. Singleton pattern is a pattern which can be implemented in several high level programming languages and among them is c++...

VOIP Project: Design application - Part 5

Image
In this part we will see in details the UML diagram of the application which will be developed during this project and the specifications of this diagram. In the figure 1 bellow is shown a preview of the class diagram of the application developed with Qt Creator using PJSIP library. In the diagram below are omitted other external classes which are not used directly by the application. On top of figure 4, within the grey rectangle, are shown the classes of Qt library which are extended by the created classes by the programmer. The QMainWindow is a class which provides a framework for building a graphical view, this is the reason why this class is extended by Login and MainWindow classes. The other class, QObject is a base class for many classes in Qt. It provides a wide set of features. The QObject class is extended by SipPhoneImpl class as well because of usage of signals, which will be explained more in deep in the upcoming paragraphs. Figure 4: Class diagram preview In the ...

VOIP Project: Understanding VOIP - Part 4

Image
In order to be able to continue developing further more the VOIP system we need to know which are the components that can be used to build a VOIP system and how they are implemented. In the book titled “Packet Guide to Voice over IP” VOIP is: “…exactly what the name indicates—sending voice (and video) over an IP-based network. This is completely different than the circuit-switched public telephone network…” ( Hartpence, 2013, p. 2). The fact that VOIP “…is completely different than the circuit-switched public tele‐ phone network…” ( Hartpence, 2013, p. 2)makes it possible to do things that are not possible with the standard telephony system, like programming customized applications based on individual needs. VOIP does not only allows to transmit voice over IP but video as well, and this makes communication through VOIP even richer in features. Comparison with traditional telephony VOIP gives the opportunity to use internet connection in order to implement system, while the trad...

VOIP Project: Database implementation - Part 3

After creating the database model as shown in the previos post VOIP Project: Database modeling - Part 2 , we will cover the implementation of that model in this part. On this project will be used a MySQL database. During this lesson we will demostrate the implementation on a MySQL database, which you can obtain by following the lesson Installing MySQL database , or you can create an account at db4free.net in order to have a MySQL database online. First step after logging into the phpMyAdmin management site, as shown in VOIP Project: Database modeling - Part 2 , will be the creation of the database. In the databases tab in the menu of the phpMyAdmin management site is selected the name of the database. During the development of the project the name of the database is set to voip_school_network . After the database is created, the next step that follows is the creation of the tables. As seen in figure 1 of the lesson VOIP Project: Database modeling - Part 2 , in order to supply all ...

VOIP Project: Database modeling - Part 2

Image
As mentioned in the part 1 of this project, the system which is created during this project contains 3 main components and one of them is the database. In this part we will cover the design of the database. For creation of Entity-Relationship Diagram(ERD) of the database of the system is used the community edition of visual paradigm application. Below, in the figure 1, is show the diagram of the database used by the system. As shown in the picture in consists in 6 tables: cit_classroom, cit_subject, cit_scheudle, cit_sip_account, cit_consultation, cit_user . The table cit_classroom as described by its name, contains information about the classroom, labs and lesson classrooms. It has 2 columns, Id , which is of type varchar(10) and contains the name of the classroom, for example: lab2 or D3 , which is unique and is this case is used as primary key. The next column is the Capacity , of type int(11), in which is stored information of the number of the students that the classroom ...

VOIP Project: Introduction - Part 1

Image
This project covers the development of a VOIP(Voice Over IP) system costumized for a university institution. This project is developed using Qt creator, C++ language. If you do not have installed Qt creator on your computer you can follow the lesson 1 in order to obtain it. In this project will be covered the Ubuntu version as well. This project will cover main software engineering steps. The system which was developed during this project contains 3 main components, as shown in the picture bellow. Figure 1: Overview of the system PBX is hosted in bitrix24.com, a free PBX hosting domain. In this PBX is possible to manage the users of the VOIP service. The other component, MySQL database, is an online database in which is stored information for the extra features of the system, like the schedule organization of lessons, consultation or projects. This database is hosted in an online server, which allows the system to be used outside extranet. The database must contain the same in...