Functional
Specification
s Document
V
V
O
O
I
I
P
P
S
S
O
O
F
F
T
T
P
P
B
B
X
X
Project Code: SPBX
Project Advisor : Aftab Alam
Project Team:
Umair Ashraf 03-1853 (Team Lead)
Imran Bashir 02-1658
Khadija Akram 04-0080
Document Information
Category Information
Customer FAST-NU
Project Soft PBX
Document Functional Specifications
Document Version 1.1
Identifier SPBX
Status Draft
Author(s) Umair Ashraf , Khadija Akram, Imran Bashir
Approver(s) Aftab Alam
Issue Date October 18, 2007
Document Location
Distribution Advisors (Aftab Alam , Asad Gill)
Definition of Terms, Acronyms and Abbreviations
Term
Description
RS
Requirements Specifications
PBX
Private Branch Exchange
SIP
Session Initiation Protocol
RTP
Real Time Protocol
VOIP
Voice over IP
IETF
Internet engineering Task Force
Table of Contents
1. Introduction ... 4
Purpose of Document ... 4
Project Overview ... 4
Introduction ... 5
Vision and Scope ... 6
2. Functional Requirements ... 7
3. Non-functional Requirements ... 9
4. Context Diagram ... 11
5. Use Cases ... 12
5.1 Use Case Diagrams ... 12
5.2 Use Case Descriptions ... 13
6. Data Flow Diagrams ... 30
1.1 Level 0 Data Flow Diagram... 30
1.2 Level 1 Data Flow Diagram... 31
1.3 Level 2 Data Flow Diagram ... Error! Bookmark not defined.
7. References... 32
1. Introduction
Purpose of Document
The Purpose of this Document is to define the Scope and boundary of the
System to be developed. The basic architecture and the functionalities of the
system will be built on the basic of these requirement specifications. Each
Requirement specifies the functionality to be expected from the system. This
document is for the all the stakeholders I-e the Developers, Users and the
client of the product like university admission department.
.
Project Overview
Abstract
VoIP is the currently adopted rapidly growing technology wave is being
rapidly adopted all over the world by the companies in the Communications
and IT industry. Although voice over IP (VoIP) has been in existence for
many years, it has only recently begun to take off as a viable alternative to
traditional public switched telephone networks (PSTN). Interest and
acceptance has been driven by the attractive cost efficiencies that
organizations can achieve by leveraging a single IP network to support both
data and voice. But cost is not enough to complete the evolution; service
and feature parity is a main requirement. Customers will not accept voice
quality or services that are less than what they are used to with a PSTN and,
until now, VoIP fell short in delivery.
Introduction
VoIP is simply the transport of voice traffic by using the Internet Protocol
(IP). It is a technology that allows you to make voice calls over a broadband
internet connection instead of a regular phone line. In VOIP your voice is
converted into a digital signal that travels over the internet. If you are
calling a regular phone number (i.e. on a PSTN), the signal is converted to a
regular telephone signal.
Why should we use VOIP?
Traditional telephony carriers use circuit switching for carrying voice traffic.
Circuit switching was designed for voice from the outset; hence it carries
voice in an efficient manner. However it is an expensive solution. Nowadays
people want to talk much more on phone, but they also want to
communicate in a myriad of other ways – through e-mail, instant
messaging, video, the World Wide Web, etc. Circuit switching is not suitable
for this new world of multimedia communication.
IP is an attractive choice for voice transport for many reasons, including the
following:-
Lower equipment cost
Integration of voice and data applications
Lower bandwidth requirements
Vision and Scope
The Virtual PBX (Private Branch Exchange)
Numerous IP based PBX solutions are in place and more are being deployed
daily. The idea of an IP-based PBX is useful. Firstly, this system integrates
the corporate telephone system with the corporate computer network,
removing the need for two separate networks. A new office is wired for voice
communication, as well. The PBX itself becomes just another server or group
of servers in the corporate LAN, which helps to facilitate voice/data
integration.
We would be implementing a soft PBX that is going to be a server that
performs call-routing functions, replacing the traditional legacy PBX or key
system. Our PBX would allow a number of attached soft phones to make
calls to one another and to connect to other telephone services.
The basic software would include many features available in proprietary PBX
systems: voice mail, conference calling, interactive voice response, and
automatic call distribution, just to name a few. Our system would also help
the user in building the dial plan for the network.
We would be using the Session Initiation Protocol as our VoIP protocol. Our
PBX would be acting as both the registrar and as a gateway between the soft
phones.
2. Functional Requirements
Registering a user
The system shall allow a user to register itself to the PBX by its IP Address
and caller ID through a soft phone.
Dialing and placing Call
The system shall allow users to dial and place a call to each other using Soft
phones through a PBX over the Network (internet or intranet)
Accepting (call pick up) /rejecting a call
The system shall allow the user to receive or reject a call of the caller using
Soft Phone.
Terminating the Session
The system shall allow the user to terminate the call at any time.
Voice Conferencing
The System shall allow users to have voice conferencing service amongst
multiple users at a time.
Missed Call Alert
The System shall support missed call service and provide the information of
the missed calls to the user.
Call Hold
The system shall provide the station user, to hold a call in progress. When
the call is being hold then the hold music will be played till the call is
unhold.Incase of termination of call by calle the session amongst the caller
and calle will be termintated.
Call Detail Reporting (CDR)
The PBX shall be equipped to capture Call Detail information. The
information to be captured shall as a minimum provide:
Date of Call (Month and Day)
Calling Station Number
Called Number (all depressed digits)
Time (Time Call Was Placed)
Duration of Call (Minutes and Seconds)
Caller identification
The System shall allow the user to get the information of the caller person
like his/her caller id and the name.
Dial Plan
The System shall provide complete dial plan options to the users like
Administrator could add, remove and change the caller ids as well as the
Dialing plans.
Speed dialing
The system shall support the services of the speed dialing through a PBX.
Administrative and management services
The system shall provide the administrative and management services of the
PBX like changing dial plans, managing users, managing passwords,
changing voice conferencing configuration, call forwarding configuration,
changing Music on hold settings and creating call Detail Reporting services.
Phone book service
The system shall support and provide phone book service to the users.
Call Recording
Call Transfer
The system shall allow the user to transfer his/her call to another user at a
different location.
Call forwarding
The System shall allow the administrator to forward the calls of a particular
user to another caller id at another location.
3. Non-functional Requirements
Performance and Reliability
System must be scalable up to 50 devices per PBX.
The system must ensure that sending and receiving packets are not
discarded, and a mechanism must be adopted so that packet loss and
retransmission should not occur due to algorithm used in the application
otherwise, voice quality or service disruptions might occur.
The jitter buffer (see appendix for details) configuration must be
implemented in the software to avoid packet delay which should not be more
than 100 millisecond between the two consecutive packet transmissions
otherwise quality of voice may drop.
The system must ensure to utilize as low bandwidth of the network as
possible.Inorder to prevent high traffic over the internet by the application
some compression codec’s like G.729 (see appendix for more details) shall
be supported by the system.
Robustness
The system should support proper exception handling like incase of
unavailability of Network.
Security
The system shall provide complete security and privacy to the users and no
other party shall be allowed to listen to the conversation between the two
end users.
Standards compliance
The system shall fulfill all the standards of the IEEE and IETF.
The system shall support all standard protocols like SIP and RTP protocols.
(See Appendix for details).
Usability
The system must be providing user-friendly interface to the end users. A dial
pad and telephone like features must be provided with the interface so as to
provide the end user a Complete Soft phone on his/her desktop.
The system shall provide an interface to the Administrator to maintain and
configure the system.
Portability
The system shall work under Windows XP and windows 2000.
Development tools
The system shall be developed in rapidly growing and cutting edge
technology of .Net and C sharp framework.
Documentations
The Specification document and user manual shall be provided when the
software will be handed over to the clients.
Maintenance and Support
The installation and configuration, maintenance support shall be provided.
4. Context Diagram
Soft Phone Soft PBX Soft Phone
Rx/Tx UDP Connection SIP SIP R e g is te r u s e r, E d it u s e r, G e n e ra te C D R , C h a n g e M u s ic Operator Callee Caller D ia l C a ll, H o ld C a ll, M is s e d C a ll T e rm in a te C a ll R e c e iv e C a ll, R e je c t, C a ll H o ld C a ll, T ra n s fe r C a ll
5. Use Cases
5.1 Use Case Diagrams
Soft PBX
Place phone Call
Caller Callee Forward Call Missed Call Register user Receive Call
Call Deatail Report
Place coference Call Terminate call «extends» «uses» Record Call Accept Call Reject Call Hold Call Phone Book «extends» «uses» Operator Change User Change MCU no Music Unhold End Conference Call
Remove User
«uses»
5.2 Use Case Descriptions
Use case Id 1:
Dialing and placing a call
Actors: Caller,Calle
Feature: This will allow the caller to dial and place a call to the calle.
Use case Id: 1
Pre-condition: Both caller and calle should be registered to the ip pbx.
Scenarios
Step #
Action Software Reaction
1. The use case starts when the caller wants to dial and place a call to the calle using a soft phone
2. Caller enters a required number using soft phone.
Alternate-1a
Soft phone displays the number on the screen.
3- Caller presses the dial button
Alternate-2a
Soft phone will show the caller that the calle is being invited for the Call and will inform the calle through dial tone
Case 1 Reply
Calle replies the call Case 2 No reply
Calle does not reply the call Case 3 Non Existent user
System displays error message Case 4: Rejects the call Calle rejected the call.
Exception-1 Exception-2
The use case ends
.
Alternate Scenarios:
1a: Caller presses the clear button to enter the number again.
2a: Caller cancels the call by pressing the cancel button in case he wants to rollback or
Exceptions:
1-Network is busy and system informs the caller by displaying the error message on the screen.
2-The dialing number is invalid and system informs the caller by displaying the error message on the screen.
Post Conditions
Step
# Description
1- System will display the status of invitation to the caller and the caller is idle and the system will wait for the next instruction of the caller.
Use Case Cross
referenced Includes <Register User> Extends <placing a conference call>
Concurrency and Response
Number of concurrent users
The system will support maximum 50 users.
Expected response time of the use case The response time will be 5 seconds.
Actors: Calle
Feature: This will allow the calle to receive the call. Use case Id: 2
Pre-condition: Both caller and calle should be registered to the ip pbx.
Scenarios
Step# Action Software Reaction 1. The use case starts when the calle
wants to receive a call.
2. Calle presses the accept call button.
Alternate-1a Alternate-2a
System will establish the communication channel between the caller and the calle and will display the call status on the screen.
Exception-1 Exception-2
The use case ends
.
Alternate Scenarios:
1a: Calle rejects the call by pressing cancel button and the system will terminate the
invitation session between the caller and the calle.
2a: Calle does not accept the call for 30 seconds and the system will the invitation session
between the caller and the calle and updates missed calls.
Exceptions:
1-Network is busy and the system informs the caller by displaying the error message on the screen.
2-The dialing number is invalid and system informs the caller by displaying the error message on the screen.
Post Conditions
Step# Description
1- System will display the status of invitation to the caller and the caller is idle and the system will wait for the next instruction of the caller.
Use Case Cross referenced includes <Register User>
Use case Id 3:
Missed CallsFeature: This will allow the user to see the missed calls on the soft phone. Use case Id: 3
Pre-condition: -
Scenarios
Step# Action Software Reaction 1. The use case starts when the calle
wants to see the missed calls on his phone.
2. User directs the soft phone to display missed calls by pressing misses call button.
The soft phone will display the missed calls on the display screen.
The use case ends
.
Alternate Scenarios: None
Exceptions: None
Post Conditions
Step# Description
1- Soft Phone will display the missed calls.
Use Case Cross referenced None Concurrency and Response
Number of concurrent users
The system will support maximum 50 users.
Expected response time of the use case The response time will be 1 second.
Actors: <User>
Feature: This will allow the user to register itself to the PBX. Use case Id: 4
Pre-condition: The user must be authorized caller id to register to the system
Scenarios
Step# Action Software Reaction 1. The use case starts when the user
wants to register itself to the system
2. The user presses the register a user button.
System displays a dialogue box to enter the ip address and the port no
3- The user enters the port no and the ip address of the user by pressing the continue button. Alternate-1
System will successfully register the user. Exception-1
The use case ends
.
Alternate Scenarios:
none
Exceptions:
1-The user did not enter the valid port no or ip address and repeats step 2.
Post Conditions
Step# Description
1- System will successfully register the user.
Use Case Cross
referenced none
Concurrency and Response
Number of concurrent users
The system will support maximum 50 users.
Expected response time of the use case The response time will be 1 second.
Use case Id 5:
Generate ReportFeature: This will allow the operator to generate a report. Use case Id: 5
Pre-condition: The operator must be logged in.
Scenarios
Step #
Action Software Reaction
1. The use case starts when the operator wants to generate the report of the calls.
2. The operator presses the report
generate button. System displays a dialogue box to enter specific duration.
3- The operator enters the duration. System will successfully generate the CDR (call data Report).
Exception-1
The use case ends
.
Alternate Scenarios:
none
Exceptions:
1-The operator did not enter the valid duration.
Post Conditions
Step
# Description
1- System will successfully generate the report.
Use Case Cross
referenced none
Concurrency and Response
Number of concurrent users
The system will support maximum 1 user.
Expected response time of the use case The response time will be 10 second.
Use case Id 6:
Call Transfer:Actors: < User>
Feature: This will allow the user to transfer his/her call to another location. Use case Id: 6
Pre-condition: The user should be having the established communication session.
Scenarios
Step
# Action Software Reaction
1. The use case starts when the user wants to forward his/her call to another location by pressing call transfer button.
2.
3.
User presses the transfer button to transfer the call.
User Enters the caller id of the person to whom the call is being transferred.
The system will ask for the caller id where the call is being transferred.
The system will transfer the call to another location and notifies the user that the call is being forwarded. (Exception-1)
(Exception-2)
The use case ends
.
Alternate Scenarios:
None
Exceptions:
1- The network is busy or is not available and system will generate exception error. 2- The caller id does not exist and user repeats step3.
Post Conditions
Step
# Description
1- System will transfer the call to another location and the caller will be idle.
Use Case Cross
referenced none
Concurrency and Response
Number of concurrent users
The system will support maximum 1 user.
Expected response time of the use case The response time will be 1 second.
Use case Id 7:
Call ConferencingActors: < User>
Feature: This will allow the user to have call conferencing Use case Id: 7
Scenarios
Step
# Action Software Reaction
1. 1-The use case starts when the user wants to have call
conferencing
2. 2-User dials the conferencing id ( MCU caller ID)
System connects the user to the conferencing session.
(Exceptions 1,2,3) The use case ends
.
Alternate Scenarios:
None
Exceptions:
1- The system generates error that the conferencing id is incorrect and the user repeats step 2
2- The system generates error that the network is unavailable.
3- The system generates error that the maximum no of users are already having the conferencing call over the same conferencing id.
Post Conditions :
noneUse Case Cross referenced
Includes <placing and dialing a call>
Concurrency and Response
Number of concurrent users = 5
Expected response time of the user case 3 seconds
Use case Id 8:
Call RecordingActors: < Caller,Calle>
Feature: This will allow the user to record the call of conversation. Use case Id: 8
Pre-condition: The user should be having the established communication session.
Scenarios
Step
# Action Software Reaction
1. 1-The use case starts when the user wants to record a call of conversation.
2. 2-User by presses the call record button.
3-The soft phone will record the call of conversation, stores it in a file and notifies the user that the call of conversation is being recorded. (Exceptions-1)
The use case ends
.
Alternate Scenarios:
none
Exceptions:
1- System does not record the call of conversation.
Post Conditions :
Step
# Description
1- Soft pbx will have the record of the call of conversation.
Use Case Cross
referenced none
Concurrency and Response
Number of concurrent users
The system will support at max 1 recording at a time..
Expected response time of the use case The response time will be 5 seconds.
Use case Id 9:
Phone Book ServiceActors: < User>
Feature: This will allow the user to save the phone number of any person on his/her
soft phone.
Use case Id: 9
Pre-condition: The user should know the full name of a person.
Step
# Action Software Reaction
1. The use case starts when the user wants to save the phone number of a particular person.
2. User enters the first name of a person and presses continue button.
Alternate-1a
System verifies the first name of the person and asks the user to enter the last name.
Exception-1
3- User enters the last name of a person and presses continue button.
Alternate-2a
System verifies the last name of the person and asks the user to enter the phone number.
Exception-2
4- User enters the phone number of a person and presses continue button.
Alternate-3a
System verifies the phone number and saves the phone number of the person along with his full name.
Exception-3
The use case ends
.
Alternate Scenarios:
Alternate1a-User enters the clear button to enter the first name again. Alternate2a- User enters the clear button to enter the last name again. Alternate3a- User enters the clear button to enter the phone number again.
Exceptions:
1- System displays error in case the first name enters by the user is not valid. 2- System displays error in case the last name enters by the user is not valid. 3- System displays error in case the phone number enters by the user is not valid.
Post Conditions :
Step
# Description
1- System saves the phone number of the person along with his full name.
Use Case Cross
referenced includes <Register User> Concurrency and Response
Number of concurrent users 50
Expected response time of the use case The response time will be 2 seconds.
Use case Id 10:
Call HoldActors: < User>
Feature: This will allow the user to hold a call. Use case Id: 10
Pre-condition: The user should be having the established communication session.
Scenarios
Step
# Action Software Reaction
1. The use case starts when the user wants to hold a call.
2. User presses the call hold button. System will hold the call for the user and play hold music.
Execption-1
The use case ends
.
Alternate Scenarios: None Exceptions: none
Post Conditions :
Step # Description1- System will hold the call for the user.
Use Case Cross
referenced None
Concurrency and Response
Number of concurrent users 50
Expected response time of the use case The response time will be 2 seconds.
Use case Id 11:
Call Un HoldActors: < User>
Feature: This will allow the user to Un hold the call. Use case Id: 11
Pre-condition: The call must be hold first to initiate this use case.
Step
# Action Software Reaction
1. The use case starts when the user wants to un hold the call and talk to another user
2. User presses un hold button. System will again establish a
communication session between the calle and the caller.
Exception-1
The use case ends
.
Alternate Scenarios:
None
Exceptions:
1- The system could establish the session with the calle as the network is unavailable.
Post Conditions:
The caller and calle will be having the communication session againafter the un hold operation.
Use Case Cross referenced
Includes < dialing and placing a call>
Concurrency and Response
Number of concurrent users 50
Expected response time of the use case The response time will be 2 seconds.
Use case Id 12
:
Terminating the call Actors: < User>Feature: This will allow the user to terminate the call. Use case Id: 12
Pre-condition: The user should be having the established communication session.
Step
# Action Software Reaction
1. 1-The use case starts when the user wants to terminate the call.
2.
User presses the cancel button to terminate the call.
System will disconnect the call and
display the user that the call is connected. The use case ends
.
Alternate Scenarios: none Exceptions: none
Post Conditions :
Step # Description1- System will not maintain the communication channel anymore.
Use Case Cross
referenced none Concurrency and Response
Number of concurrent users 50
Expected response time of the use case The response time will be 1 seconds.
Use case Id 13:
Call forwardingActors: < operator/administrator>
Feature: This will allow the user to forward the call of a user to another location. Use case Id: 13
Pre-condition: The administrator must be logged in
Scenarios
1. The use case starts when the user wants to forward the calls to another caller id.
2.
3.
User presses the call forward button to forward the call.
User Enters the caller id and the id of the person to whom the call is being forwarded.
The system will ask for the caller id and the id where the call is being forwarded of that caller id
The system will forward and route the call to another location and notifies the user that the call is being forwarded. (Exception-1)
(Exception-2)
The use case ends
.
Alternate Scenarios: None Exceptions: none
Post Conditions
Step# Description1- System will forward the call to another location and the caller will be idle.
Use Case Cross
referenced none
Concurrency and Response
Number of concurrent users
The system will support maximum 1 user.
Expected response time of the use case The response time will be 1 second.
Use case Id 14:
Add caller id/dial planActors: <operator/administrator>
Feature: This will allow the operator to add a caller id to the system. Use case Id: 14
Pre-condition: The operator must be logged in.
Step
# Action Software Reaction
1. The use case starts when the operator wants to adds a caller id or dial plan
2. The operator presses the add
button System displays a dialogue box to enter the caller id and the ip address
3- The operator enters the caller id and the ip address of the user by pressing the continue button. Alternate-1
System will successfully enters the new entry in the dial plan
Exception-1
The use case ends
.
Alternate Scenarios:
none
Exceptions:
1-The user did not enter the valid caller id or ip address or the caller id and the ip address already exists.
Post Conditions
Step
# Description
1- System will successfully register the user.
Use Case Cross
referenced none
Concurrency and Response
Number of concurrent users
The system will support maximum 1 user.
Expected response time of the use case The response time will be 2 second.
Use case Id 15:
change caller id/dial planActors: <operator/administrator>
Feature: This will allow the operator to change a caller id to the system. Use case Id: 15
Pre-condition: The operator must be logged in.
Step# Action Software Reaction 1. The use case starts when the
operator wants to change a caller id or dial plan
2. The operator presses the add button
System displays a dialogue box of all the registered caller ids and their ips
3- The operator selects caller id and the ip address of the user by pressing and enter the new values Alternate-1
System will successfully enters the new entry in the dial plan
Exception-1
The use case ends
.
Alternate Scenarios:
none
Exceptions:
1-The user did not enter the valid caller id or ip address or the caller id or the ip address already exists.
Post Conditions
Step# Description
1- System will successfully change the dial plan.
Use Case Cross referenced
none
Concurrency and Response
Number of concurrent users
The system will support maximum 1 user.
Expected response time of the use case The response time will be 2 second.
Use case Id 16:
delete caller id/dial planActors: <operator/administrator>
Feature: This will allow the operator to delete a caller id to the system. Use case Id: 16
Pre-condition: The operator must be logged in.
Step
# Action Software Reaction
1. The use case starts when the operator wants to delete a caller id or dial plan
2. The operator presses the add
button System displays a dialogue box of all the registered caller ids and their ips
3-
4-
The operator selects caller id and the ip address of the user and presses the delete button.
The user confirms by clicking yes Alternate 1
The system will display a confirmation dialog box
System will successfully delete the entries Exception-1
The use case ends
.
Alternate Scenarios:
1 The user presses the cancels button.
Exceptions:
none
Post Conditions
Step
# Description
1- System will successfully delete the dial plan.
Use Case Cross
referenced none
Concurrency and Response
Number of concurrent users
The system will support maximum 1 user.
Expected response time of the use case The response time will be 2 second.
Use case Id 17:
change hold on music play listActors: <operator/administrator>
Feature: This will allow the operator to change the hold on music of the system. Use case Id: 17
Pre-condition: The operator must be logged in.
6. Data Flow Diagrams
1.1 Level 0 Data Flow Diagram
Step
# Action Software Reaction
1. The use case starts when the operator wants to change a music play list
2. The operator presses the hold on
music button System displays a dialogue box to the give the new file for hold on music
3- The operator gives the path of new file
Alternate-1
System will successfully enters the new music file for hold on music
Exception-1
The use case ends
.
Alternate Scenarios:
1 The operator cancels the operation.
Exceptions:
1-The user did not enter valid path or file and system generates the error.
Post Conditions
Step
# Description
1- System will successfully change the dial plan.
Use Case Cross
referenced none
Concurrency and Response
Number of concurrent users
The system will support maximum 1 user.
Expected response time of the use case The response time will be 2 second.
Soft Phone Soft PBX Soft Phone Rx/Tx UDP Connection SIP SIP R e g is te r u s e r, E d it u s e r, G e n e ra te C D R , C h a n g e M u s ic Operator Callee Caller D ia l C a ll, H o ld C a ll, M is s e d C a ll T e rm in a te C a ll R e c e iv e C a ll, R e je c t, C a ll H o ld C a ll, T ra n s fe r C a ll
Soft PBX
Multipoint Control Unit
(MCU)
PBX Engine
Soft Phone SIP SIP Soft Phone
Add, Delete & Update User Request Display Updated User Status Change Music & Music No Update Music Status Generate Report Display Report Log Generator Operator R e q u e s t fo r C D R ( C a ll D e ta il R e p o rt ) C h a n g e M u s ic N o U p d a te M u s ic N o D is p la y C D R ( C a ll D e ta il R e p o rt ) R e q u e s t fo r C o n fe re n c e C a ll P la c e C o n fe re n c e C a ll
Music on Hold (MOH)
R e q u e s t fo r M O H P la y M u s ic Callee Caller D ia l C a ll, H o ld C a ll, M is s e d C a ll, T e rm in a te C a ll R e c e iv e C a ll, R e je c t, C a ll H o ld C a ll, T ra n s fe r C a ll Rx/Tx UDP Connection