Voice Over The Internet Protocol Computer Science Essay

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

The purpose of this document is to create and test a VoIP based PBX. In order for this project to get accomplished the VoIP protocol SIP will be used by taking advantage the network infrastructure. This system will be totally functional in order to fulfill the needs of a business such as the New York College. The system will be based on open source technology such as asterisk and hence a product that is based on asterisk which is called Elastix.

Table of Contents

Voice over the Internet Protocol

The Session Initiation Protocol

The Session Initiation Protocol also referred as SIP is an application layer protocol that is text based, it uses UTF-8 encoding, and port 5060 of TCP and UDP in terms of networking, that is used to establish multimedia communication between two or more peers. The protocol consists of two different types of peers. The user agent client (UAC) and the user agent server (UAS). A user agent client is most likely the peer that creates a request, and the user agent server a platform that receives the request from the client and sends back a response. Typical examples of a UAC are VoIP phones or even softphones. A UAS is very important because it also provides other capabilities for communication that sip by itself is not capable of. Some of these capabilities are transferring calls when an extension is busy, or if a user has more than one devices all devices can ring at the same time. Such as phone features and many other capabilities can be provided by a Private Business Exchange (PBX) which is an example of a UAS. There are different types of UAS and they are:

Registrar Server: It receives register requests mostly from one or more clients and it responds back depending on their location.

Proxy Server: it is often used as a median that is required in order for clients and servers to communicate. It receives requests and sends back responses or even transfers the requests to a different server. It is regularly used for security purposes therefore it may deliver functions such as authentication and authorization. It also has routing capabilities such as routes the sip traffic from a user agent to another and is also capable of routing sip traffic to multiple destinations.

Location Server: It is intended to provide functions such as name or address resolution for other SIP servers. It uses different types of technologies such as whois, and Lightweight Directory Access Protocol in order to associate SIP addresses.

Redirect Server: its function is to provide information to the client in order to direct the client to the nest server that should be contacted. It creates 3XX redirection type of responses to the requests it receives from the clients

When sip communication is established (also known as signaling), the protocol transfers "messages" through the UDP that consist of a message header and a message body. The header can consists of two types of messages such as a request or a response. A typical sip request header consists of the following fields:

Request-Line: it contains information such as the method, the request URI and the SIP version that is being used by the user agent

Via: it contains information about the local address of the agent such as the ip address or the domain address

Max-Forward: it is the limit number of hops that the request can travel, similar to the time to leave (ttl) in order to prevent loops and requests from travelling infinitely.

To: it displays the name of the called or reached party with its sip URI.

From: it displays the name of the calling party with its sip URI.

Call-ID: it is a unique id that is being generated by the sip phone's ip address.

CSeq: it is randomly generated at the beginning of the call and then increased by one in order to identify out of order messages.

Contact: it is the sip URI of the calling party even containing its ip address and the Fully Qualified Domain Name

Content-Type: this field contains information about the message body that follows

Content-Length: this field is the count of the message body that follows

A typical sip response header consists of the following fields:

Status Line: it contains the sip version and the status code that are being used.

Via: it contains information about the local address of the agent such as the ip address or the domain address

Max-Forward: it is the limit number of hops that the request can travel, similar to the time to leave (ttl) in order to prevent loops and requests from travelling infinitely.

To: it displays the name of the called or reached party with its sip URI.

From: it displays the name of the calling party with its sip URI.

Call ID: it is a unique id that is being generated by the sip phone's ip address.

CSeq: it is randomly generated at the beginning of the call and then increased by one in order to identify out of order messages.

Contact: it is the sip URI of the called user in order to avoid passing through different proxy's when two peers communicate.

Content-Type: this field contains information about the message body that follows

A request is send from a peer in order to initiate communication, and a response is send back to the initiator to confirm that the request has been processed. There are different types of requests and responses and they are:

SIP Requests:

INVITE This is an invitation to initiate a new session

ACK This is an acknowledgment that the session has been established

CANCEL This means that a session has been canceled

BYE This means that a session has been ended

REGISTER This means that a user has been registered

OPTIONS This is a request in order for the user agent to learn capabilities and methods of the other side.

The SIP responses are send back in three digit numbers from 100 to 699 that are also known as status codes, they indicate the type of message that is send and they are separated into six categories such as:

SIP Responses:

1XX These are the informational type of messages

2XX These are the successful type of messages

3XX These type of messages indicate redirection

4XX These type of messages indicate failure

5XX These type of messages indicate server failure

6XX These type of messages indicate global failure

The different types of responses are explained in the Sip Responses table above:

1XX response Messages

100 Trying

This response indicates that action is being taken on behalf of the caller, but that the called party has not yet been located

180 Ringing

This response indicates that the called party has been located and is being notified of the call. A 180 Ringing response is generated when the called party has been located and is being alerted.

181 Call is being forwarded

This response indicates that the call is being rerouted to another destination.

182 Queued

This response indicates that the called party is not currently available but that they have elected to queue the call rather than reject it.

183 Session progress

This response is used to perform in-band alerting for the caller.

2XX response Messages

200 OK

This response indicates that the request has been successfully processed. The action taken depends on the request made.

202 Accepted

This response Indicates that the request has been accepted for processing, but the processing has not been completed

204 No Notification

This response Indicates the request was successful, but the corresponding response will not be received

3XX response Messages

300 Multiple Choices

This response indicates that the address resolved to more than one location. All locations are provided and the user or user agent is allowed to select which location to use.

301 Moved Permanently

This response indicates that the user is no longer available at the specified location. An alternate location is included in the header.

302 Moved Temporarily

This response indicates that the user is temporarily unavailable at the specified location. An alternate location is included in the header.

305 Use Proxy

This response indicates that the caller must use a proxy contact the called party.

380 Alternative Service

This response indicates that the call was unsuccessful, but that alternative services are available.

4XX response Messages

400 Bad Request

This response indicates that the request could not be understood because of an illegal format. The SIP gateway generates a 400 Bad Request response for a badly formed request.

401 Unauthorized

This response indicates that the request requires user authentication.

402 Payment Required

This response indicates that payment is required to complete the call.

403 Forbidden

This response indicates that the server has received and understood the request but will not provide the service

404 Not Found

This response indicates that the server has definite information that the user does not exist in the specified domain.

405 Method Not Allowed

This response indicates that the method specified in the request is not allowed. The response contains a list of allowed methods.

406 Not Acceptable

This response indicates that the requested resource is capable of generating only responses that have content characteristics not acceptable as specified in the accept header of the request.

407 Proxy authentication required

This response is similar to the 401 response. This response indicates that the client must first authenticate itself with the proxy.

408 Request timeout

This response indicates that the server could not produce a response before the Expires messages time out.

409 Conflict

This response indicates that the request could not be processed because of a conflict with the current state of the resource.

410 Gone

This response indicates that a resource is no longer available at the server and no forwarding address is known.

411 Length Required

This response indicates that the user refuses to accept the request without a defined content length.

413 Request Entity Too Large

This response indicates that server refuses to process the request because it is larger than the server is willing or able to process.

414 Request-URI Too Long

This response indicates that the server refuses to process the request because the Request-uniform resource identifier (URI) is too long for the server to interpret.

415 Unsupported Media

This response indicates that the server refuses to process the request because the format of the body is not supported by the destination endpoint.

420 Bad Extension

This response indicates that the server could not understand the protocol extension indicated in the Require header.

422 Session Timer Too Small

It is generated by the server (UAS) when a request contains a Session-Expires header with a duration that is below the minimum timer for the gateway server.

480 Temporarily Unavailable

This response indicates that the called party was contacted but is temporarily unavailable. This response is generated if the called party is unavailable for example the called party did not answer within a certain amount of time.

481 Call / Transaction Does not Exist

This response indicates that the server is ignoring the request because it was either a BYE for which there was no matching leg ID or a CANCEL for which there was no matching transaction.

482 Loop Detected

This response indicates that the server received a request that included itself in the path.

483 Too Many Hops

This response indicates that the server received a request that required more hops than allowed by the Max-Forwards header.

484 Address Incomplete

This response indicates that the server received a request containing an incomplete address.

485 Ambiguous

This response indicates that the server received a request in which the called party address was ambiguous. It can provide possible alternate addresses.

486 Busy Here

This response indicates that the called party was contacted but that their system is unable to take additional calls.

487 Request Cancelled

This response indicates that the request was terminated by a BYE or CANCEL request.

488 Not Acceptable Media

This response indicates an error in handling the request at this time.

5XX response Messages

500 Server Internal Error

This response indicates that the server or gateway encountered an unexpected error that prevented it from processing the request.

501 Not Implemented

This response indicates that the server or gateway does not support the functions required to complete the request.

502 Bad Gateway

This response indicates that the server received an invalid response from a downstream server.

503 Service Unavailable

This response indicates that the server or gateway is unable to process the request due to an overload or maintenance problem.

504 Gateway timeout

This response indicates that the server did not receive a timely response from another server

505 Version Not supported

This response indicates that the server does not support the version of the SIP protocol used in the request.

580 Precondition failed

The SIP gateway uses this response code to indicate a

failure in having QoS preconditions met for a call.

6XX response Messages

600 Busy Everywhere

This response indicates that the called party was contacted but that the called party is busy and cannot take the call at this time.

603 Decline

This response indicates that the called party was contacted but cannot or does not want to participate in the call.

604 Does Not Exist Anywhere

This response indicates that the server has authoritative information that the called party does not exist in the network.

606 Not Acceptable

This response indicates that the called party was contacted, but that some aspect of the session such as the requested media or bandwidth description was unacceptable.

Security in VoIP systems

Virtual Private networks

Transport Layer Protocol

Secure SIP and Secure RTP

Quality of Service in VoIP systems

The open source communications project of Asterisk

Structure of the asterisk system

Unified communications with Elastix

Implementation

Installing the Elastix main distro

At this point the software of Elastix will be installed. Since this project is a real case scenario, a real physical computer is going to be used for our experiments. However, since the installation process and consequently the formatting of the disk cannot be captured via screenshots, we are going to perform the installation of the main distro on a virtual machine in order to demonstrate the steps of the installation process and once the installation is done the same process will be performed on a physical computer in order to continue our experiments. The latest version of Elastix will be used, which is Elastix 2.4.0 Stable, and for our virtualization needs the version of virtual box 4.2.10 will be used. During the installation process we press the tab key in order to switch elements, and the space bar in order to choose elements. All passwords will be the word "password".

Step one: We press enter in order to install the software in graphical mode.

F:\NYC\YEAR_3\FYP\FYP_images\installation\1.PNG

Step two: We choose English as the language that will be used during the installation process.

F:\NYC\YEAR_3\FYP\FYP_images\installation\2.PNG

Step three: We choose us for the keyboard type.

F:\NYC\YEAR_3\FYP\FYP_images\installation\3.PNG

Step four: We choose yes in order to confirm that all data will be erased on the disk that we will format.

F:\NYC\YEAR_3\FYP\FYP_images\installation\4.PNG

Step five: We choose the first option "Remove all partitions on selected drives and create default layout" and press ok.

F:\NYC\YEAR_3\FYP\FYP_images\installation\5.PNG

Step six: We press yes in order to confirm the removal of all partitions on the disk.

F:\NYC\YEAR_3\FYP\FYP_images\installation\6.PNG

Step seven: we press no since we will be using the default partitioning layout.

F:\NYC\YEAR_3\FYP\FYP_images\installation\7.PNG

Step eight: we press yes in order to configure the network interface card of the machine. If we choose no we can it set up after the installation is done via the "setup" command, as it will be shown later.

F:\NYC\YEAR_3\FYP\FYP_images\installation\8.PNG

Step nine: We choose the option "activate on boot" and "enable IPv4 support" and press ok.

F:\NYC\YEAR_3\FYP\FYP_images\installation\9.PNG

Step ten: it is not recommended to use a dynamic IP address for servers, therefore we will use a static IP address. We choose the "manual address configuration" and on the fields "IP Address" and "Prefix" we enter the IP address of 192.168.1.10 and subnet mask of 255.255.255.0 correspondingly and press ok.

F:\NYC\YEAR_3\FYP\FYP_images\installation\10.PNG

Step eleven: We enter the IP address of the default gateway and the primary DNS which in this case is going to be the router on the network that has IP address of 192.168.1.1 and press ok.

F:\NYC\YEAR_3\FYP\FYP_images\installation\11.PNG

Step twelve: We choose the second option "manually" in order to assign the hostname of our machine which we will name nycpbx.

F:\NYC\YEAR_3\FYP\FYP_images\installation\12.PNG

Step thirteen: We choose "Europe/Athens" as our time zone and press ok.

F:\NYC\YEAR_3\FYP\FYP_images\installation\13.PNG

Step fourteen: We type twice the root password in order to confirm it.

F:\NYC\YEAR_3\FYP\FYP_images\installation\14.PNG

Step fifteen: We type the MySQL root password.

F:\NYC\YEAR_3\FYP\FYP_images\installation\15.PNG

Step sixteen: We type again the MySQL root password in order to confirm it.

F:\NYC\YEAR_3\FYP\FYP_images\installation\16.PNG

Step seventeen: We type the password for accessing the web interface administration panel.

F:\NYC\YEAR_3\FYP\FYP_images\installation\17.PNG

Step eighteen: We confirm the password for the web interface administration panel.

F:\NYC\YEAR_3\FYP\FYP_images\installation\18.PNG

Step nineteen: At the log in prompt we enter root as the username, we hit enter and then we type the root password and hit enter again in order to log in.

F:\NYC\YEAR_3\FYP\FYP_images\installation\20.PNG

Step twenty-one: At this point the "Welcome to Elastix" message appears and informs us that we can access the web interface via a browser.

F:\NYC\YEAR_3\FYP\FYP_images\installation\21.PNG

Step twenty-two: we enter the IP address 192.168.1.10 on a browser and press "proceed anyway" at the certification prompt.

Step twenty-three: We enter the credentials for the admin web interface in order to log in.

At this point the install process has completed successfully. We are now ready to configure our Private Business Exchange!

Also at this point the above steps 1 through 22 will be performed on a physical computer in order to continue with our configuration.

Configuration of PBX

Conclusion

Quantities

Qualitative

Functional

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.