summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--notFinishedCode/Report/test.aux30
-rw-r--r--notFinishedCode/Report/test.log69
-rw-r--r--notFinishedCode/Report/test.pdfbin577415 -> 597569 bytes
-rw-r--r--notFinishedCode/Report/test.tex83
-rw-r--r--notFinishedCode/Report/test.tex.backup87
-rw-r--r--notFinishedCode/Report/test.tex~85
-rw-r--r--notFinishedCode/Report/test.toc20
7 files changed, 269 insertions, 105 deletions
diff --git a/notFinishedCode/Report/test.aux b/notFinishedCode/Report/test.aux
index 92accdc..981dc32 100644
--- a/notFinishedCode/Report/test.aux
+++ b/notFinishedCode/Report/test.aux
@@ -4,28 +4,32 @@
\@writefile{lof}{\select@language{english}}
\@writefile{lot}{\select@language{english}}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction and Motivation}{3}}
-\@writefile{toc}{\contentsline {section}{\numberline {2}Software concept}{4}}
+\@writefile{toc}{\contentsline {section}{\numberline {2}Software requests}{4}}
\@writefile{toc}{\contentsline {section}{\numberline {3}Database design}{5}}
-\@writefile{toc}{\contentsline {section}{\numberline {4}Introduction}{6}}
+\@writefile{toc}{\contentsline {section}{\numberline {4}Software design}{6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Usage}{6}}
-\@writefile{toc}{\contentsline {section}{\numberline {5}Design}{7}}
+\@writefile{toc}{\contentsline {section}{\numberline {5}Hardware Design}{7}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces }}{7}}
-\@writefile{toc}{\contentsline {section}{\numberline {6}Protocol}{8}}
+\@writefile{toc}{\contentsline {section}{\numberline {6}Communication protocol}{8}}
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces }}{8}}
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces }}{8}}
-\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces }}{8}}
+\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces }}{9}}
\citation{sshTunnel}
-\@writefile{toc}{\contentsline {section}{\numberline {7}Security and safety of the system}{9}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{9}}
-\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces }}{9}}
+\@writefile{toc}{\contentsline {section}{\numberline {7}Security and safety of the system}{10}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{10}}
+\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces }}{10}}
\citation{https}
-\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Security on the web site}{10}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Security on the web site}{11}}
\citation{https}
\citation{https}
-\@writefile{toc}{\contentsline {section}{\numberline {8}Web page}{14}}
-\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces }}{14}}
-\@writefile{toc}{\contentsline {section}{\numberline {9}Conclusion}{15}}
+\@writefile{toc}{\contentsline {section}{\numberline {8}Web page}{15}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{15}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {8.2}Results on the web page}{15}}
+\citation{pChart}
+\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces }}{16}}
+\@writefile{toc}{\contentsline {section}{\numberline {9}Conclusion}{17}}
\bibcite{site1}{1}
\bibcite{sshTunnel}{2}
\bibcite{https}{3}
-\newlabel{LastPage}{{}{16}}
+\bibcite{pChart}{4}
+\newlabel{LastPage}{{}{18}}
diff --git a/notFinishedCode/Report/test.log b/notFinishedCode/Report/test.log
index 783a104..60378f0 100644
--- a/notFinishedCode/Report/test.log
+++ b/notFinishedCode/Report/test.log
@@ -1,4 +1,4 @@
-This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.9.27) 8 OCT 2011 22:05
+This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2011.9.27) 9 OCT 2011 16:52
entering extended mode
%&-line parsing enabled.
**test.tex
@@ -293,7 +293,7 @@ Class scrartcl Info: You've told me to use the font selection of the element
(scrartcl) on input line 12.
Class scrartcl Info: You've told me to use the font selection of the element
(scrartcl) `sectioning' that is an alias of element `disposition'
-(scrartcl) on input line 13.
+(scrartcl) on input line 15.
)
\tf@toc=\write4
\openout4 = `test.toc'.
@@ -314,57 +314,64 @@ File: protocolCommunicationcControllerReceiver.png Graphic file (type png)
File: protocolCommunicationcControllerCaller.png Graphic file (type png)
<use protocolCommunicationcControllerCaller.png> [8 <./protocolCommunicationHan
dler.png (PNG copy)> <./protocolCommunicationcControllerReceiver.png (PNG copy)
-> <./protocolCommunicationcControllerCaller.png (PNG copy)>]
-<sshTunnel.png, id=39, 696.6025pt x 152.57pt>
+>] [9 <./protocolCommunicationcControllerCaller.png (PNG copy)>]
+<sshTunnel.png, id=42, 696.6025pt x 152.57pt>
File: sshTunnel.png Graphic file (type png)
- <use sshTunnel.png> [9 <./sshTunnel.png (PNG copy)>]
+ <use sshTunnel.png> [10
+
+ <./sshTunnel.png (PNG copy)>]
LaTeX Font Info: External font `cmex10' loaded for size
-(Font) <9> on input line 164.
+(Font) <9> on input line 174.
LaTeX Font Info: External font `cmex10' loaded for size
-(Font) <5> on input line 164.
- [10] [11]
-LaTeX Font Info: Try loading font information for OMS+cmr on input line 275.
+(Font) <5> on input line 174.
+ [11] [12]
+LaTeX Font Info: Try loading font information for OMS+cmr on input line 285.
(/usr/share/texmf-texlive/tex/latex/base/omscmr.fd
File: omscmr.fd 1999/05/25 v2.5h Standard LaTeX font definitions
)
LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <9> not available
-(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 275.
- [12] [13]
-<resultsImage.png, id=59, 702.625pt x 431.6125pt>
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 285.
+ [13] [14] [15]
+LaTeX Font Info: Font shape `OMS/cmr/m/n' in size <12> not available
+(Font) Font shape `OMS/cmsy/m/n' tried instead on input line 357.
+
+<resultsImage.png, id=67, 702.625pt x 431.6125pt>
File: resultsImage.png Graphic file (type png)
<use resultsImage.png>
-[14 <./resultsImage.png (PNG copy)>] [15]
-LaTeX Font Info: Try loading font information for T1+cmtt on input line 334.
+[16 <./resultsImage.png (PNG copy)>] [17]
+LaTeX Font Info: Try loading font information for T1+cmtt on input line 382.
(/usr/share/texmf-texlive/tex/latex/base/t1cmtt.fd
File: t1cmtt.fd 1999/05/25 v2.5h Standard LaTeX font definitions
)
-AED: lastpage setting LastPage [16] (./test.aux) )
+AED: lastpage setting LastPage [18] (./test.aux) )
Here is how much of TeX's memory you used:
- 4877 strings out of 495061
- 67482 string characters out of 1182621
- 255251 words of memory out of 3000000
- 7996 multiletter control sequences out of 15000+50000
- 16954 words of font info for 41 fonts, out of 3000000 for 9000
+ 4884 strings out of 495061
+ 67557 string characters out of 1182621
+ 255255 words of memory out of 3000000
+ 8001 multiletter control sequences out of 15000+50000
+ 18484 words of font info for 43 fonts, out of 3000000 for 9000
28 hyphenation exceptions out of 8191
36i,10n,45p,751b,1285s stack positions out of 5000i,500n,10000p,200000b,50000s
</home/refik/.texmf-var/font
s/pk/ljfour/jknappen/ec/ectt1200.600pk> </home/refik/.texmf-var/fonts/pk/ljfour
-/jknappen/ec/ecti1200.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/e
-c/ecrm0900.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecsx1200.
-600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm1095.600pk> </ho
-me/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecsx1095.600pk> </home/refik/.t
-exmf-var/fonts/pk/ljfour/jknappen/ec/ecsx1440.600pk> </home/refik/.texmf-var/fo
-nts/pk/ljfour/jknappen/ec/ecsl1095.600pk> </home/refik/.texmf-var/fonts/pk/ljfo
-ur/jknappen/ec/ecrm1200.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen
-/ec/ecrm1728.600pk></usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cms
-y9.pfb>
-Output written on test.pdf (16 pages, 577415 bytes).
+/jknappen/ec/ecrm0600.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/e
+c/ecrm0800.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecti1200.
+600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm0900.600pk> </ho
+me/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecsx1200.600pk> </home/refik/.t
+exmf-var/fonts/pk/ljfour/jknappen/ec/ecrm1095.600pk> </home/refik/.texmf-var/fo
+nts/pk/ljfour/jknappen/ec/ecsx1095.600pk> </home/refik/.texmf-var/fonts/pk/ljfo
+ur/jknappen/ec/ecsx1440.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen
+/ec/ecsl1095.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm120
+0.600pk> </home/refik/.texmf-var/fonts/pk/ljfour/jknappen/ec/ecrm1728.600pk></u
+sr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/share/te
+xmf-texlive/fonts/type1/public/amsfonts/cm/cmsy9.pfb>
+Output written on test.pdf (18 pages, 597569 bytes).
PDF statistics:
- 529 PDF objects out of 1000 (max. 8388607)
+ 564 PDF objects out of 1000 (max. 8388607)
0 named destinations out of 1000 (max. 500000)
36 words of extra memory for PDF output out of 10000 (max. 10000000)
diff --git a/notFinishedCode/Report/test.pdf b/notFinishedCode/Report/test.pdf
index d996043..59f91b4 100644
--- a/notFinishedCode/Report/test.pdf
+++ b/notFinishedCode/Report/test.pdf
Binary files differ
diff --git a/notFinishedCode/Report/test.tex b/notFinishedCode/Report/test.tex
index 340eb61..8b8c36b 100644
--- a/notFinishedCode/Report/test.tex
+++ b/notFinishedCode/Report/test.tex
@@ -102,41 +102,51 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei
Before we had started working on our project, we had to analyze the overall network to come up with test cases that contain the highest information content. The next step in our procedure was to implement our ideas into a working piece of software.
Gradually we implemented a bit-by-bit of the final software. Every single step was accompanied by testing and validation procedures. At the end we connected all the ``black-boxes'' into one big piece of software. We have fulfilled our requests and goals and made a fully working and operable test software. Despite developing a working software, all the way along we thought about the simplicity of the usage of the software. In the following chapters we will describe in more detail our approach and how each subsystem works.
\newpage
-\section{Software concept} % chapter 2
+\section{Software requests} % chapter 2
\newpage
\section{Database design}
\newpage
-\section{Introduction} % section 2.1
+\section{Software design} % section 2.1
\subsection{Usage} % subsection 2.1.1
\newpage
-\section{Design}
-\begin{figure}[hb!]
+\section{Hardware Design}
+In our team project we had the option to choose all the hardware ourself beside the two BeagleBoards, which we were luckily supplied by Konrad and Dennis.
+Since one of the project goals was to save as much money as it was possible, we had tried to use some of the leftovers in our lab.
+
+\begin{figure}[ht!]
\centering
\includegraphics[width=130mm]{bb.jpg}
\caption[]{BeagleBoard, a linux-on-chip board where our controller software runs the GSM device }
\end{figure}
+\par Our first attempt was to control a Nokia cell phone 3310 over the supplied USB connection cables.
+Protocol used by Nokia 3310 was the F-Bus and it was not easy to work with.
+After performing various experiments we found out that it was not possible to
+send commands for controlling the calls.
\newpage
-\section{Protocol}
+\section{Communication protocol}
-\begin{figure}[hb!]
+\begin{figure}[ht!]
\centering
- \includegraphics[width=130mm]{protocolCommunicationHandler.png}
+ \includegraphics[width=140mm]{protocolCommunicationHandler.png}
\caption[]{Flowchart of the protocol, on the handler side}
\end{figure}
-\begin{figure}[hb!]
+\begin{figure}[ht!]
\centering
- \includegraphics[width=130mm]{protocolCommunicationcControllerReceiver.png}
+ \includegraphics[width=140mm]{protocolCommunicationcControllerReceiver.png}
\caption[]{Flowchart of the protocol, on the controller side for the caller}
\end{figure}
-\begin{figure}[hb!]
+\begin{figure}[ht!]
\centering
- \includegraphics[width=130mm]{protocolCommunicationcControllerCaller.png}
+ \includegraphics[width=140mm]{protocolCommunicationcControllerCaller.png}
\caption[]{Flowchart of the protocol, on the controller side for the receiver}
\end{figure}
-%\newpage
+\clearpage
+\newpage
+
+
\section{Security and safety of the system}
\large Safety and security of the software plays a major role in our project.
It is of vital importance that only as few as possible people have access to our test system since the resulting data could be exploited to plan an attack
@@ -315,13 +325,51 @@ refik@ubuntu:/etc/apache2/sites-available$
\newpage
\section{Web page}
-
-\begin{figure}[hb!]
+\large One of the requests of our team project was to build a test system that could be started from the web site.
+Since we used the Open Source platform to base our project on, it was certain we will use it for the web site as well.
+The dynamic parts of the web site were programmed using PHP and JavaScript. The GUI was done using CSS.
+The web site opens TCP/IP sessions between itself and the Python test software. Due reasons explained in the section above,
+a test user needs first to enter his username and password to acccess the web site. Then a test user can manually select what type of tests he wants to perform or he can select already defined test,
+like the simple, smart or full test. (Describe here these three type of tests.)
+Data about the performing tests are inserted into the database only in the case if the mutex lock for the web site can be obtained\footnote{The mutex lock will be explained in the next subsection.}.
+This way we can avoid inserting data about the test in case there is already a test user on the website performing some tests on the system.
+\subsection{Communication between the web page and the test software}
+Our first idea was that the PHP file starts the test software.
+However, parts of our test software open new terminal windows and
+since PHP has restrictions for starting GUI applications our approach was condemned for a failure at the start.
+We had to deal with this problem and our solution to it was to write a little Python script that will run in background and start our
+test software when required. Once a person starts the test over the web site, it automatically connects to the Python script over an TCP/IP socket.
+Before being able to start the test software one needs first to obtain the mutex lock on the web site and to check if there is a mutex lock for the test software running.
+Using this approach we can ensure that only one user at the time can be on the web site and run only one instance of the test software.
+In the next step we send the Python script a message to start the test software. The test software obtains a mutex lock as well.
+When the test software is started the web page checks if a software lock is obtained.
+Once it is obtained we can proceed with creating a new socket connection between the web site and the test software.
+Our TCP/IP communication between the web site and the test software is not encrypted since both the web page and the test software run on the same server computer.
+The mutex locks are freed after the tests are performed. Our test software has a timeout timer in case that the web site hangs or somehow the socket connection breaks
+where it automatically shuts down.
+\subsection{Results on the web page}
+All the performed test results are displayed on the web site. The results are displayed in real time after each selected test case is performed.
+After all the test cases have been performed a topological picture is generated which represents the current state of the system, this can bee seen in the following figure.
+Afterwards, when the result picture is generated, the test user can easily see what is wrong in the system. Various icons represent different subsystems.
+Reading the test results is simple as looking at the icons and identifying if they have: a green plus signs (i.e. working properly), a red minus sign (i.e. not working properly) and a yellow exclamation mark (i.e. it was not tested).
+
+\begin{itemize}
+\item Triangles represent BTS stations
+\item Cellphones represent the external networks (E-Plus, Vodaphone, T-Mobile and O2)
+\item Telephone represents the landline and a telephone with a mortarboard the University telephone network
+\item Servers represent the OpenBSC and LsfKs-Asterisk
+\item Two monitors represent the SIP system
+\end{itemize}
+
+\par The inference mechanism works as following: if a test case works, we can conclude that the subsystems connected inbetween the two ends are working properly as well.
+We use the pChart library\footnote{It is under the GNU GPLv3 license and our project is nonprofit!} to generate the topological picture of our telecommunication system \cite{pChart}.
+\begin{figure}[ht!]
\centering
- \includegraphics[width=100mm]{resultsImage.png}
+ \includegraphics[width=120mm]{resultsImage.png}
\caption[]{Result image showing working, defected and not tested subsystems}
\end{figure}
-
+\par On the right side of the result picture the test user can immediatelly identify the network operability in percentage\footnote{The test user has to take into account that this percantage is only valid if a full test is performed.}. Bellow the network operability statistics are the ping results statistics located.
+If one of the fields is red it means the subsystem is not online or cannot be seen by our server computer where the test software is located.
\newpage
\section{Conclusion}
\newpage
@@ -339,6 +387,9 @@ Hypothesis}, preprint (2003), available at
\bibitem{https} P. Bramscher, \emph{Creating Certificate Authorities and self-signed SSL certificates}, accessed on 05.09.2011, available at
\url{http://www.tc.umn.edu/~brams006/selfsign.html}.
+\bibitem{pChart} \emph{pChart}, accessed on 15.08.2011, available at
+\url{http://http://www.pchart.net/}.
+
%bibliography end
\end{thebibliography}
diff --git a/notFinishedCode/Report/test.tex.backup b/notFinishedCode/Report/test.tex.backup
index b54cbe6..73c65bd 100644
--- a/notFinishedCode/Report/test.tex.backup
+++ b/notFinishedCode/Report/test.tex.backup
@@ -102,41 +102,49 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei
Before we had started working on our project, we had to analyze the overall network to come up with test cases that contain the highest information content. The next step in our procedure was to implement our ideas into a working piece of software.
Gradually we implemented a bit-by-bit of the final software. Every single step was accompanied by testing and validation procedures. At the end we connected all the ``black-boxes'' into one big piece of software. We have fulfilled our requests and goals and made a fully working and operable test software. Despite developing a working software, all the way along we thought about the simplicity of the usage of the software. In the following chapters we will describe in more detail our approach and how each subsystem works.
\newpage
-\section{Software concept} % chapter 2
+\section{Software requests} % chapter 2
\newpage
\section{Database design}
\newpage
-\section{Introduction} % section 2.1
+\section{Software design} % section 2.1
\subsection{Usage} % subsection 2.1.1
\newpage
-\section{Design}
-\begin{figure}[hb!]
+\section{Hardware Design}
+In our team project we had not the option to choose the hardware however we were lucky to have
+two BeagleBoards which were supplied by Konrad and Dennis.
+Since one of the project goals was to save as much money as it was possible we had tried to use some of the leftovers in the lab.
+
+\begin{figure}[ht!]
\centering
\includegraphics[width=130mm]{bb.jpg}
\caption[]{BeagleBoard, a linux-on-chip board where our controller software runs the GSM device }
\end{figure}
+Our first attempt was
\newpage
-\section{Protocol}
+\section{Communication protocol}
-\begin{figure}[hb!]
+\begin{figure}[ht!]
\centering
- \includegraphics[width=130mm]{protocolCommunicationHandler.png}
+ \includegraphics[width=140mm]{protocolCommunicationHandler.png}
\caption[]{Flowchart of the protocol, on the handler side}
\end{figure}
-\begin{figure}[hb!]
+\begin{figure}[ht!]
\centering
- \includegraphics[width=130mm]{protocolCommunicationcControllerReceiver.png}
+ \includegraphics[width=140mm]{protocolCommunicationcControllerReceiver.png}
\caption[]{Flowchart of the protocol, on the controller side for the caller}
\end{figure}
-\begin{figure}[hb!]
+\begin{figure}[ht!]
\centering
- \includegraphics[width=130mm]{protocolCommunicationcControllerCaller.png}
+ \includegraphics[width=140mm]{protocolCommunicationcControllerCaller.png}
\caption[]{Flowchart of the protocol, on the controller side for the receiver}
\end{figure}
-%\newpage
+\clearpage
+\newpage
+
+
\section{Security and safety of the system}
\large Safety and security of the software plays a major role in our project.
It is of vital importance that only as few as possible people have access to our test system since the resulting data could be exploited to plan an attack
@@ -235,7 +243,7 @@ refik@ubuntu:/etc/apache2$ sudo mkdir ssl
cp server.key /etc/apache2/ssl
cp server.crt /etc/apache2/ssl
\end{lstlisting}
-Then we enabled SSL by typing in \emph{a2enmod ssl}, ``it is simply a general purpose utility to establish a symlink between a module in \emph{/etc/apache2/mods-available} to \emph{/etc/apache2/mods-enabled} (or give a message to the effect that a given module does not exist or that it is already symlinked for loading)'' \cite{https}.
+\par Then we enabled SSL by typing in \emph{a2enmod ssl}, ``it is simply a general purpose utility to establish a symlink between a module in \emph{/etc/apache2/mods-available} to \emph{/etc/apache2/mods-enabled} (or give a message to the effect that a given module does not exist or that it is already symlinked for loading)'' \cite{https}.
\begin{lstlisting}
refik@ubuntu:/etc/apache2/ssl$ sudo a2enmod ssl
Enabling module ssl.
@@ -286,7 +294,7 @@ In our last configuration step we had to edit \emph{default-ssl} file to define
refik@ubuntu:/etc/apache2/sites-available$ sudo vim default-ssl
\end{lstlisting}
\newpage
-\par The following part had to be found and modified according to our locations:
+\par The following part of the file had to be found and modified according to our locations:
\begin{lstlisting}
SSLEngine on
@@ -301,7 +309,7 @@ SSLEngine on
# Server Certificate Chain:
# Point SSLCertificateChainFile at a file containing the
\end{lstlisting}
-Finally we had configured our server and can proceed with the restart of the apache web server.
+\par Finally we had configured our server and can proceed with the restart of the apache web server. We created a test web site \emph{/var/www-ssl/index.php} and navigated our browser to \emph{https://localhost}. The test was successful!
\begin{lstlisting}
refik@ubuntu:/etc/apache2/sites-available$ sudo /etc/init.d/apache2 restart
* Restarting web server apache2 [Sat Oct 08 21:52:51 2011] [warn] _default_ VirtualHost overlap on port 443, the first has precedence
@@ -315,13 +323,51 @@ refik@ubuntu:/etc/apache2/sites-available$
\newpage
\section{Web page}
-
-\begin{figure}[hb!]
+\large One of the requests of our team project was to build a test system that could be started from the web site.
+Since we used the Open Source platform to base our project on, it was certain we will use it for the web site as well.
+The dynamic parts of the web site were programmed using PHP and JavaScript. The GUI was done using CSS.
+The web site opens TCP/IP sessions between itself and the Python test software. Due reasons explained in the section above,
+a test user needs first to enter his username and password to acccess the web site. Then a test user can manually select what type of tests he wants to perform or he can select already defined test,
+like the simple, smart or full test. (Describe here these three type of tests.)
+Data about the performing tests are inserted into the database only in the case if the mutex lock for the web site can be obtained\footnote{The mutex lock will be explained in the next subsection.}.
+This way we can avoid inserting data about the test in case there is already a test user on the website performing some tests on the system.
+\subsection{Communication between the web page and the test software}
+Our first idea was that the PHP file starts the test software.
+However, parts of our test software open new terminal windows and
+since PHP has restrictions for starting GUI applications our approach was condemned for a failure at the start.
+We had to deal with this problem and our solution to it was to write a little Python script that will run in background and start our
+test software when required. Once a person starts the test over the web site, it automatically connects to the Python script over an TCP/IP socket.
+Before being able to start the test software one needs first to obtain the mutex lock on the web site and to check if there is a mutex lock for the test software running.
+Using this approach we can ensure that only one user at the time can be on the web site and run only one instance of the test software.
+In the next step we send the Python script a message to start the test software. The test software obtains a mutex lock as well.
+When the test software is started the web page checks if a software lock is obtained.
+Once it is obtained we can proceed with creating a new socket connection between the web site and the test software.
+Our TCP/IP communication between the web site and the test software is not encrypted since both the web page and the test software run on the same server computer.
+The mutex locks are freed after the tests are performed. Our test software has a timeout timer in case that the web site hangs or somehow the socket connection breaks
+where it automatically shuts down.
+\subsection{Results on the web page}
+All the performed test results are displayed on the web site. The results are displayed in real time after each selected test case is performed.
+After all the test cases have been performed a topological picture is generated which represents the current state of the system, this can bee seen in the following figure.
+Afterwards, when the result picture is generated, the test user can easily see what is wrong in the system. Various icons represent different subsystems.
+Reading the test results is simple as looking at the icons and identifying if they have: a green plus signs (i.e. working properly), a red minus sign (i.e. not working properly) and a yellow exclamation mark (i.e. it was not tested).
+
+\begin{itemize}
+\item Triangles represent BTS stations
+\item Cellphones represent the external networks (E-Plus, Vodaphone, T-Mobile and O2)
+\item Telephone represents the landline and a telephone with a mortarboard the University telephone network
+\item Servers represent the OpenBSC and LsfKs-Asterisk
+\item Two monitors represent the SIP system
+\end{itemize}
+
+\par The inference mechanism works as following: if a test case works, we can conclude that the subsystems connected inbetween the two ends are working properly as well.
+We use the pChart library\footnote{It is under the GNU GPLv3 license and our project is nonprofit!} to generate the topological picture of our telecommunication system \cite{pChart}.
+\begin{figure}[ht!]
\centering
- \includegraphics[width=100mm]{resultsImage.png}
+ \includegraphics[width=120mm]{resultsImage.png}
\caption[]{Result image showing working, defected and not tested subsystems}
\end{figure}
-
+\par On the right side of the result picture the test user can immediatelly identify the network operability in percentage\footnote{The test user has to take into account that this percantage is only valid if a full test is performed.}. Bellow the network operability statistics are the ping results statistics located.
+If one of the fields is red it means the subsystem is not online or cannot be seen by our server computer where the test software is located.
\newpage
\section{Conclusion}
\newpage
@@ -339,6 +385,9 @@ Hypothesis}, preprint (2003), available at
\bibitem{https} P. Bramscher, \emph{Creating Certificate Authorities and self-signed SSL certificates}, accessed on 05.09.2011, available at
\url{http://www.tc.umn.edu/~brams006/selfsign.html}.
+\bibitem{pChart} \emph{pChart}, accessed on 15.08.2011, available at
+\url{http://http://www.pchart.net/}.
+
%bibliography end
\end{thebibliography}
diff --git a/notFinishedCode/Report/test.tex~ b/notFinishedCode/Report/test.tex~
index 92b9005..8b8c36b 100644
--- a/notFinishedCode/Report/test.tex~
+++ b/notFinishedCode/Report/test.tex~
@@ -102,41 +102,51 @@ Prof. Dr. Gerhard Schneider\\ \vspace{1\baselineskip} Supervisors: \\ Konrad Mei
Before we had started working on our project, we had to analyze the overall network to come up with test cases that contain the highest information content. The next step in our procedure was to implement our ideas into a working piece of software.
Gradually we implemented a bit-by-bit of the final software. Every single step was accompanied by testing and validation procedures. At the end we connected all the ``black-boxes'' into one big piece of software. We have fulfilled our requests and goals and made a fully working and operable test software. Despite developing a working software, all the way along we thought about the simplicity of the usage of the software. In the following chapters we will describe in more detail our approach and how each subsystem works.
\newpage
-\section{Software concept} % chapter 2
+\section{Software requests} % chapter 2
\newpage
\section{Database design}
\newpage
-\section{Introduction} % section 2.1
+\section{Software design} % section 2.1
\subsection{Usage} % subsection 2.1.1
\newpage
-\section{Design}
-\begin{figure}[hb!]
+\section{Hardware Design}
+In our team project we had the option to choose all the hardware ourself beside the two BeagleBoards, which we were luckily supplied by Konrad and Dennis.
+Since one of the project goals was to save as much money as it was possible, we had tried to use some of the leftovers in our lab.
+
+\begin{figure}[ht!]
\centering
\includegraphics[width=130mm]{bb.jpg}
\caption[]{BeagleBoard, a linux-on-chip board where our controller software runs the GSM device }
\end{figure}
+\par Our first attempt was to control a Nokia cell phone 3310 over the supplied USB connection cables.
+Protocol used by Nokia 3310 was the F-Bus and it was not easy to work with.
+After performing various experiments we found out that it was not possible to
+send commands for controlling the calls.
\newpage
-\section{Protocol}
+\section{Communication protocol}
-\begin{figure}[hb!]
+\begin{figure}[ht!]
\centering
- \includegraphics[width=130mm]{protocolCommunicationHandler.png}
+ \includegraphics[width=140mm]{protocolCommunicationHandler.png}
\caption[]{Flowchart of the protocol, on the handler side}
\end{figure}
-\begin{figure}[hb!]
+\begin{figure}[ht!]
\centering
- \includegraphics[width=130mm]{protocolCommunicationcControllerReceiver.png}
+ \includegraphics[width=140mm]{protocolCommunicationcControllerReceiver.png}
\caption[]{Flowchart of the protocol, on the controller side for the caller}
\end{figure}
-\begin{figure}[hb!]
+\begin{figure}[ht!]
\centering
- \includegraphics[width=130mm]{protocolCommunicationcControllerCaller.png}
+ \includegraphics[width=140mm]{protocolCommunicationcControllerCaller.png}
\caption[]{Flowchart of the protocol, on the controller side for the receiver}
\end{figure}
-%\newpage
+\clearpage
+\newpage
+
+
\section{Security and safety of the system}
\large Safety and security of the software plays a major role in our project.
It is of vital importance that only as few as possible people have access to our test system since the resulting data could be exploited to plan an attack
@@ -286,7 +296,7 @@ In our last configuration step we had to edit \emph{default-ssl} file to define
refik@ubuntu:/etc/apache2/sites-available$ sudo vim default-ssl
\end{lstlisting}
\newpage
-\par The following part had to be found and modified according to our locations:
+\par The following part of the file had to be found and modified according to our locations:
\begin{lstlisting}
SSLEngine on
@@ -315,13 +325,51 @@ refik@ubuntu:/etc/apache2/sites-available$
\newpage
\section{Web page}
-
-\begin{figure}[hb!]
+\large One of the requests of our team project was to build a test system that could be started from the web site.
+Since we used the Open Source platform to base our project on, it was certain we will use it for the web site as well.
+The dynamic parts of the web site were programmed using PHP and JavaScript. The GUI was done using CSS.
+The web site opens TCP/IP sessions between itself and the Python test software. Due reasons explained in the section above,
+a test user needs first to enter his username and password to acccess the web site. Then a test user can manually select what type of tests he wants to perform or he can select already defined test,
+like the simple, smart or full test. (Describe here these three type of tests.)
+Data about the performing tests are inserted into the database only in the case if the mutex lock for the web site can be obtained\footnote{The mutex lock will be explained in the next subsection.}.
+This way we can avoid inserting data about the test in case there is already a test user on the website performing some tests on the system.
+\subsection{Communication between the web page and the test software}
+Our first idea was that the PHP file starts the test software.
+However, parts of our test software open new terminal windows and
+since PHP has restrictions for starting GUI applications our approach was condemned for a failure at the start.
+We had to deal with this problem and our solution to it was to write a little Python script that will run in background and start our
+test software when required. Once a person starts the test over the web site, it automatically connects to the Python script over an TCP/IP socket.
+Before being able to start the test software one needs first to obtain the mutex lock on the web site and to check if there is a mutex lock for the test software running.
+Using this approach we can ensure that only one user at the time can be on the web site and run only one instance of the test software.
+In the next step we send the Python script a message to start the test software. The test software obtains a mutex lock as well.
+When the test software is started the web page checks if a software lock is obtained.
+Once it is obtained we can proceed with creating a new socket connection between the web site and the test software.
+Our TCP/IP communication between the web site and the test software is not encrypted since both the web page and the test software run on the same server computer.
+The mutex locks are freed after the tests are performed. Our test software has a timeout timer in case that the web site hangs or somehow the socket connection breaks
+where it automatically shuts down.
+\subsection{Results on the web page}
+All the performed test results are displayed on the web site. The results are displayed in real time after each selected test case is performed.
+After all the test cases have been performed a topological picture is generated which represents the current state of the system, this can bee seen in the following figure.
+Afterwards, when the result picture is generated, the test user can easily see what is wrong in the system. Various icons represent different subsystems.
+Reading the test results is simple as looking at the icons and identifying if they have: a green plus signs (i.e. working properly), a red minus sign (i.e. not working properly) and a yellow exclamation mark (i.e. it was not tested).
+
+\begin{itemize}
+\item Triangles represent BTS stations
+\item Cellphones represent the external networks (E-Plus, Vodaphone, T-Mobile and O2)
+\item Telephone represents the landline and a telephone with a mortarboard the University telephone network
+\item Servers represent the OpenBSC and LsfKs-Asterisk
+\item Two monitors represent the SIP system
+\end{itemize}
+
+\par The inference mechanism works as following: if a test case works, we can conclude that the subsystems connected inbetween the two ends are working properly as well.
+We use the pChart library\footnote{It is under the GNU GPLv3 license and our project is nonprofit!} to generate the topological picture of our telecommunication system \cite{pChart}.
+\begin{figure}[ht!]
\centering
- \includegraphics[width=100mm]{resultsImage.png}
+ \includegraphics[width=120mm]{resultsImage.png}
\caption[]{Result image showing working, defected and not tested subsystems}
\end{figure}
-
+\par On the right side of the result picture the test user can immediatelly identify the network operability in percentage\footnote{The test user has to take into account that this percantage is only valid if a full test is performed.}. Bellow the network operability statistics are the ping results statistics located.
+If one of the fields is red it means the subsystem is not online or cannot be seen by our server computer where the test software is located.
\newpage
\section{Conclusion}
\newpage
@@ -339,6 +387,9 @@ Hypothesis}, preprint (2003), available at
\bibitem{https} P. Bramscher, \emph{Creating Certificate Authorities and self-signed SSL certificates}, accessed on 05.09.2011, available at
\url{http://www.tc.umn.edu/~brams006/selfsign.html}.
+\bibitem{pChart} \emph{pChart}, accessed on 15.08.2011, available at
+\url{http://http://www.pchart.net/}.
+
%bibliography end
\end{thebibliography}
diff --git a/notFinishedCode/Report/test.toc b/notFinishedCode/Report/test.toc
index 213bd35..3c22ab2 100644
--- a/notFinishedCode/Report/test.toc
+++ b/notFinishedCode/Report/test.toc
@@ -1,13 +1,15 @@
\select@language {english}
\contentsline {section}{\numberline {1}Introduction and Motivation}{3}
-\contentsline {section}{\numberline {2}Software concept}{4}
+\contentsline {section}{\numberline {2}Software requests}{4}
\contentsline {section}{\numberline {3}Database design}{5}
-\contentsline {section}{\numberline {4}Introduction}{6}
+\contentsline {section}{\numberline {4}Software design}{6}
\contentsline {subsection}{\numberline {4.1}Usage}{6}
-\contentsline {section}{\numberline {5}Design}{7}
-\contentsline {section}{\numberline {6}Protocol}{8}
-\contentsline {section}{\numberline {7}Security and safety of the system}{9}
-\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{9}
-\contentsline {subsection}{\numberline {7.2}Security on the web site}{10}
-\contentsline {section}{\numberline {8}Web page}{14}
-\contentsline {section}{\numberline {9}Conclusion}{15}
+\contentsline {section}{\numberline {5}Hardware Design}{7}
+\contentsline {section}{\numberline {6}Communication protocol}{8}
+\contentsline {section}{\numberline {7}Security and safety of the system}{10}
+\contentsline {subsection}{\numberline {7.1}Encryption of the communication channels}{10}
+\contentsline {subsection}{\numberline {7.2}Security on the web site}{11}
+\contentsline {section}{\numberline {8}Web page}{15}
+\contentsline {subsection}{\numberline {8.1}Communication between the web page and the test software}{15}
+\contentsline {subsection}{\numberline {8.2}Results on the web page}{15}
+\contentsline {section}{\numberline {9}Conclusion}{17}