[Index]

Model: relation/PRSSwitchREL

VOSS Phone Server

The VOSS phone server provides a method of hosting SIP compliant devices such as phones and softclients where it is not possible or desirable to connect these devices into other vendor platforms.

In an HCS environment, full integration management is provided where all trunk and dialplan related configuration is automatically applied. Other CUCM dialplan designs may be utilised through the VOSS4UC dialplan additions templating feature.

The VOSS Phone Server provides three functions:

  1. A SIP registrar allows the use of SIP devices from any compliant vendor, thereby allowing for a wide choice of phones with various feature sets, including the re-use of existing devices from systems such as Cisco Unified CM and others. Since the registrar requires only account definition per line, there is no phone concept in the Phone Server itself. Phones are represented in VOSS-4-UC and are a local construct only.

  2. A SIP Switch handling SIP call traffic. Calls between phones hosted on the VOSS Phone Server are handled locally and calls to other extensions or PSTN destinations are offloaded over a SIP Trunk

  3. Configuration File Management (Optional). Phone configuration files may be created and hosted in the VOSS Phone Server's tftp server. This allows unconfigured phones (i.e. new unused phones, or factory defaulted old phone stock) to obtain their configuration automatically when connected to the network.

    Sample configuration files for phones from SNOM, Grandstream and Cisco are included.

VOSS-4-UC utilities include:

  1. System setup and Country dialplan management
  2. Evaluation of the number of re-usable Cisco CUM hosted phones
  3. Conversion of Cisco configuration to phone server configuration

The VOSS Phone Server is deployed as an OVA, typically alongside CUCM Virtual Machines in an HCS/CUCM environment. Redundancy is an option, providing data replication between servers.

Managing VOSS Phone Servers

Adding phones requires three areas of configuration. These are all automated by VOSS-4-UC during the phone addition:

Set up call routing

In HCS mode, the CUCM dial plan is created to provide call routing of the chosen numbers towards VOSS Phone Server. This allows incoming call routing. Outbound calling Class of Service and routing are also configured to allow internal extension and E164 call routing. Number inventory and CLI management through transformation patterns are maintained.

  1. Set up the VOSS Phone Server

    VOSS Phone Servers are managed on the customer hierarchy - verify that you are at the customer hierarchy.

  2. Add country support.

    Country support must be added in HCS mode in order to integrate with the HCS dialplan. A template is required for each supported country. GBR and USA are provided by default, and other countries may be created or provided by VOSS as required.

    To add HCS country support, use the "phone server countries" menu item and select the template for the required country. There are no user parameters required.

  3. Configure the physical phone

    In HCS mode, sites must be created with site dialplan and number inventory in the same way as when using Cisco Phones registered directly to CUCM. It is possible to host both CUCM and Phone Server phones at the same site.

    The phone itself requires configuration in order to register and handle calls.

    Soft clients will likely be manually configured locally on the hosting PC, and a "generic soft client" device type allows for locally configured devices.

    Other hardware devices such as phones from SNOM, Cisco and Grandstream may be configured using configuration files hosted on the VOSS Phone Server and downloaded at start up by the phone. TFTP is used to download these files. VOSS Phone Server hosts such files for fully automated configuration of the device.

    See:

Model Details: relation/PRSSwitchREL

Title Description Details
Server Name *
  • Field Name: name
  • Type: String
  • MaxLength: 64
Description *
  • Field Name: description
  • Type: String
  • MaxLength: 128
Version *
  • Field Name: version
  • Type: String
  • MaxLength: 128
  • Choices: ["1.0.0"]
Deployment Mode *
  • Field Name: typeDeploymentMode
  • Type: String
  • MaxLength: 1024
  • Choices: ["HCS", "Standalone"]
HCS CUCM
  • Field Name: cucm.[n]
  • Type: Array
  • Cardinality: [0..16]
CUCM
  • Field Name: cucm.[n].hcsCucm
  • Type: String
Virtual Machine
  • Field Name: virtualMachine
  • Type: String
  • MaxLength: 1024
NTP Server for phones *
  • Field Name: ntpServer
  • Type: String
  • MaxLength: 1024
Application Space
  • Field Name: application_space
  • Type: String
  • MaxLength: 1024
Backup Application Space
  • Field Name: backup_application_space
  • Type: String
  • MaxLength: 1024
Credentials
  • Field Name: credentials.[n]
  • Type: Array
Description
  • Field Name: credentials.[n].description
  • Type: String
  • MaxLength: 128
Type Credential *
  • Field Name: credentials.[n].typeCredential
  • Type: String
  • MaxLength: 1024
  • Choices: ["API", "CLI"]
User ID
  • Field Name: credentials.[n].userID
  • Type: String
  • MaxLength: 256
Password
  • Field Name: credentials.[n].password
  • Type: String
  • Is Password: True
  • Store Encrypted: True
  • MaxLength: 512
Network Addresses
  • Field Name: networkAddresses.[n]
  • Type: Array
Type Address Space *
  • Field Name: networkAddresses.[n].typeAddressSpace
  • Type: String
  • MaxLength: 1024
  • Choices: ["APPLICATION_SPACE", "SERVICE_PROVIDER_SPACE", "CUSTOMER_SPACE", "BACKUP_APPLICATION_SPACE"]
Description
  • Field Name: networkAddresses.[n].description
  • Type: String
  • MaxLength: 128
IP Addr V4
  • Field Name: networkAddresses.[n].iPAddrV4
  • Type: String
  • MaxLength: 64
Conn Parms
  • Field Name: connParms
  • Type: Object
Name * Name for this instance of generic driver connection details.
  • Field Name: connParms.name
  • Type: String
Description * Description for this instance of generic driver connection details.
  • Field Name: connParms.description
  • Type: String
Version * Version of models to use.
  • Field Name: connParms.version
  • Type: String
  • Pattern: ^[0-9]+?(\.[0-9]+?)+?$
Authentication Method * Type of authentication to use when interfacing to the external service.
  • Field Name: connParms.auth_method
  • Type: String
  • Choices: ["HTTP Basic Authentication", "OAuth(OApen Authorization)", "Session Based Authentication", "Broadsoft OCIP socket based authentication protocol"]
Username Username to use with specified authentication method.
  • Field Name: connParms.username
  • Type: String
Password Password to use with specified authentication method.
  • Field Name: connParms.password
  • Type: String
  • Is Password: True
  • Store Encrypted: True
Token Token to use with specified authentication method.
  • Field Name: connParms.token
  • Type: String
  • Is Password: True
  • Store Encrypted: True
Test Connection URI URI to use when testing connection to external service, e.g. https://service.domain/api/health, {{ driver_parameters.host_base }}/status
  • Field Name: connParms.test_connection_uri
  • Type: String
Driver Parameters Additional parameters for the driver
  • Field Name: driver_parameters.[n]
  • Type: Array
Name * Name of additional driver parameter.
  • Field Name: connParms.driver_parameters.[n].name
  • Type: String
Value * Value of additional driver parameter.
  • Field Name: connParms.driver_parameters.[n].value
  • Type: String
Default Request Headers Default HTTP request headers to send with all device model API operation requests. Defaults specified here will be overriden by request headers specified on individual device model API operation definitions.
  • Field Name: default_request_headers.[n]
  • Type: Array
Name * Name of HTTP request header, e.g. Accept.
  • Field Name: connParms.default_request_headers.[n].name
  • Type: String
Value * Value of HTTP request header, e.g. text/plain.
  • Field Name: connParms.default_request_headers.[n].value
  • Type: String
Default Response Handlers Default handlers to execute on all API operation responses. Only those response handlers' which condition evaluates to True are executed.
  • Field Name: default_response_handlers.[n]
  • Type: Array
Condition * Jinja template which if evaluation results in a value of True will cause the specified handler type to be executed, e.g. {{ status_code == 429 }}.
  • Field Name: connParms.default_response_handlers.[n].condition
  • Type: String
Type * Response handler type to execute if specified condition evaluates to True, e.g. Backoff & Retry.
  • Field Name: connParms.default_response_handlers.[n].type
  • Type: String
  • Choices: ["Backoff & Retry", "Failure - Duplicate", "Invalid Session"]
Session Based Auth Request Describes the API request required to obtain a valid auth token.
  • Field Name: session_based_auth_request
  • Type: Object
Login URI URI for the API Login request.
  • Field Name: connParms.session_based_auth_request.login_uri
  • Type: String
Login HTTP Method HTTP method for API login request. Default: POST
  • Field Name: connParms.session_based_auth_request.login_http_method
  • Type: String
  • Default: POST
  • Choices: ["GET", "POST"]
Use Request Body on Login Use a request body to send login credentials.
  • Field Name: connParms.session_based_auth_request.use_request_body
  • Type: Boolean
Request Template for POST requests A request template that will be used for POST requests.
  • Field Name: connParms.session_based_auth_request.request_template
  • Type: String
Session Expire Time (min) The amount of time a session is valid specifiec in minutes.
  • Field Name: connParms.session_based_auth_request.session_expire_minutes
  • Type: Integer
Headers Session headers to include for all requests.
  • Field Name: session_headers.[n]
  • Type: Array
Header Name Name of session request header, e.g. Cookie.
  • Field Name: connParms.session_based_auth_request.session_headers.[n].session_header_name
  • Type: String
Header Value Value of session request header, e.g. session=12345.
  • Field Name: connParms.session_based_auth_request.session_headers.[n].session_header_value
  • Type: String