Functional Specifications Document VOIP SOFT PBX Project Code: SPBX Project Advisor : Aftab Alam Project Team: Umair Ashraf 03-1853 (Team Lead) Imran Bashir 02-1658 Khadija Akram 04-0080 Submission Date:19-10-2007
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 RS PBX SIP RTP VOIP IETF MCU Description Requirements Specifications Private Branch Exchange Session Initiation Protocol Real Time Protocol Voice over IP Internet engineering Task Force Multi control Unit Page 2 of 32
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 Page 3 of 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. Page 4 of 32
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 Widespread availability of IP Page 5 of 32
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. Page 6 of 32
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: Page 7 of 32
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 The system shall allow the user to record the call of the conversation. Page 8 of 32
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. Page 9 of 32
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. Page 10 of 32
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 UDP Connection Rx/Tx Soft Phone SIP Soft PBX SIP Soft Phone Dial Call, Hold Call, Missed Call Terminate Call Register user, Edit user, Generate CDR, Change Music Receive Call, Reject, Call Hold Call, Transfer Call Caller Operator Callee Page 11 of 32
5. Use Cases 5.1 Use Case Diagrams Soft PBX Phone Book «uses» Place phone Call «extends» «uses» Place coference Call Hold Call «extends» Receive Call Terminate call Record Call Missed Call Forward Call Caller Call Deatail Report Accept Call Callee End Conference Call Reject Call Change MCU no Music Unhold Change User «uses» Register user Operator «uses» Remove User Page 12 of 32
5.2 Use Case Descriptions Use case Id 1: Dialing and placing a call 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. Step Action 1. The use case starts when the caller wants to dial and place a call to the calle using a soft phone Software Reaction 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 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 Alternate-2a Alternate : 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 cancel the operation. Page 13 of 32
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 Includes <Register User> referenced 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. Use case Id 2: Receiving/rejecting a call Page 14 of 32
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. 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 Alternate : 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 Calls <user> Page 15 of 32
Feature: This will allow the user to see the missed calls on the soft phone. Use case Id: 3 Pre-condition: - 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. Alternate : None The soft phone will display the missed calls on the display screen. Exceptions: None Post Conditions Step Description 1- Soft Phone will display the missed calls. Use Case Cross referenced Concurrency and Response None 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 4: Register User Page 16 of 32
<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 Step Action 1. The use case starts when the user wants to register itself to the system 2. The user presses the register a user button. 3- The user enters the port no and the ip address of the user by pressing the continue button. Alternate-1 Alternate : Software Reaction System displays a dialogue box to enter the ip address and the port no System will successfully register the user. Exception-1 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 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 Report <operator/administrator> Page 17 of 32
Feature: This will allow the operator to generate a report. Use case Id: 5 Pre-condition: The operator must be logged in. 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 Alternate : 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 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: < User> Feature: This will allow the user to transfer his/her call to another location. Use case Id: 6 Page 18 of 32
Pre-condition: Step Action 1. The use case starts when the user wants to forward his/her call to another location by pressing call transfer button. 2. User presses the transfer button to transfer the call. The user should be having the established communication session. Software Reaction The system will ask for the caller id where the call is being transferred. 3. User Enters the caller id of the person to whom 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) Alternate : 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 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 Conferencing < User> Feature: This will allow the user to have call conferencing Use case Id: 7 Pre-condition: The user must be registered to the PBX Page 19 of 32
Step Action 1. 1-The use case starts when the user wants to have call conferencing 2. 2-User dials the conferencing id ( MCU caller ID) Software Reaction System connects the user to the conferencing session. (Exceptions 1,2,3) Alternate : 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 : Use Case Cross Includes <placing and dialing a call> referenced Concurrency and Response Number of concurrent users = 5 Expected response time of the user case 3 seconds Use case Id 8: Call Recording < 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. Page 20 of 32
Step Action 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. Software Reaction 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) Alternate : 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 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 Service < 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. Page 21 of 32
Step Action 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 3- User enters the last name of a person and presses continue button. Alternate-2a 4- User enters the phone number of a person and presses continue button. Alternate-3a Software Reaction System verifies the first name of the person and asks the user to enter the last name. Exception-1 System verifies the last name of the person and asks the user to enter the phone number. Exception-2 System verifies the phone number and saves the phone number of the person along with his full name. Exception-3 Alternate : 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 includes <Register User> referenced 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 Hold < 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. Page 22 of 32
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 Alternate : None Exceptions: Post Conditions : Step Description 1- System will hold the call for the user. Use Case Cross None referenced 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 Hold < 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. Page 23 of 32
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 Alternate : 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 again after the un hold operation. Use Case Cross Includes < dialing and placing a call> referenced 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 < 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. Page 24 of 32
Step Action 1. 1-The use case starts when the user wants to terminate the call. 2. User presses the cancel button to terminate the call. Software Reaction System will disconnect the call and display the user that the call is connected. Alternate : Exceptions: Post Conditions : Step Description 1- System will not maintain the communication channel anymore. Use Case Cross referenced 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 forwarding < 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 Step Action Software Reaction Page 25 of 32
1. The use case starts when the user wants to forward the calls to another caller id. 2. User presses the call forward button to forward the call. The system will ask for the caller id and the id where the call is being forwarded of that caller id 3. User Enters the caller id and the id of the person to whom the call is being forwarded. 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) Alternate : None Exceptions: Post Conditions Step Description 1- System will forward the call to another location and the caller will be idle. Use Case Cross referenced 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 plan <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. Page 26 of 32
Step Action 1. The use case starts when the operator wants to adds a caller id or dial plan 2. The operator presses the add button 3- The operator enters the caller id and the ip address of the user by pressing the continue button. Alternate-1 Alternate : Software Reaction System displays a dialogue box to enter the caller id and the ip address System will successfully enters the new entry in the dial plan Exception-1 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 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 plan <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. Page 27 of 32
Step Action 1. The use case starts when the operator wants to change a caller id or dial plan 2. The operator presses the add button 3- The operator selects caller id and the ip address of the user by pressing and enter the new values Alternate-1 Alternate : Software Reaction System displays a dialogue box of all the registered caller ids and their ips System will successfully enters the new entry in the dial plan Exception-1 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 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 plan <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. Page 28 of 32
Step Action 1. The use case starts when the operator wants to delete a caller id or dial plan 2. The operator presses the add button 3- The operator selects caller id and the ip address of the user and presses the delete button. The user confirms by clicking yes 4- Alternate 1 Alternate : Software Reaction System displays a dialogue box of all the registered caller ids and their ips The system will display a confirmation dialog box System will successfully delete the entries Exception-1 1 The user presses the cancels button. Exceptions: Post Conditions Step Description 1- System will successfully delete the dial plan. Use Case Cross referenced 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 list <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. Page 29 of 32
Step Action 1. The use case starts when the operator wants to change a music play list 2. The operator presses the hold on music button 3- The operator gives the path of new file Alternate-1 Alternate : 1 The operator cancels the operation. Software Reaction System displays a dialogue box to the give the new file for hold on music System will successfully enters the new music file for hold on music Exception-1 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 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. 6. Data Flow Diagrams 1.1 Level 0 Data Flow Diagram Page 30 of 32
UDP Connection Rx/Tx Soft Phone SIP Soft PBX SIP Soft Phone Dial Call, Hold Call, Missed Call Terminate Call Register user, Edit user, Generate CDR, Change Music Receive Call, Reject, Call Hold Call, Transfer Call Caller Operator Callee 1.2 Level 1 Data Flow Diagram Page 31 of 32
UDP Connection Music on Hold (MOH) Soft PBX Log Generator Multipoint Control Unit (MCU) Rx/Tx Soft Phone Dial Call, Hold Call, Missed Call, Terminate Call SIP Request for MOH Play Music Change Music No Update Music No Request for CDR (Call Detail Report) Generate Add, Report Delete Change & Update Music & User Music No Request Display CDR (Call Detail Report) PBX Engine Display Report Request for Conference Call Display Updated User Status Place Conference Call Update Music Status SIP Soft Phone Receive Call, Reject, Call Hold Call, Transfer Call Caller Callee Operator 7. References Carrier Grade Voice over IP by Daniel Collins Understanding VOIP networks by Juniper Network Real-time protocol RFC SIP RFC Voice over IP Fundamentals by Jonathan Davidson How stuff works platform Wekipedia.org Asterisk the Open Source Telephony Platform www.asterisk.org Page 32 of 32