Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Internal numbering (2-4 digits)
  • Receiving incoming calls: binding of any number of external numbers (DID)
  • Making of outgoing calls
  • Organization of multi-level voice menus depending on different conditions, for example:
    • time / date
    • source / destination numbers
    • caller interactive selection
    • dynamic routing (not defined in advance and can be set at the time of the call based on the client-side service)
  • Queuing, which allows you to distribute calls between employees in various schemes. Key features of the queues are:
    • the ability to set music to play to the caller while waiting, as well as periodic sound announcements.
    • request from the caller to assess the quality of service at the end of the conversation. 
    • dynamic binding of the caller to the employee for a certain time is possible (so that the same employee receives repeated calls)
      • the following call distribution schemes are supported:
      • call all employees at the same time
      • uniform distribution
        • the first to be called is the employee who has not taken calls for the longest time
        • the employee with the shortest talk time is called first
        • the first person to be called is the person who receives the least number of calls.
      • randomly
      • sequentially
      • by priority
  • Ability to download your own sound files for presets, announcements, call waiting music and voice mail
  • Setting up forwarding for employees based on different criteria
  • Blacklists
  • Voice mail
  • Call management directly from the phone (intercept, barge-in, monitor and whisper) and the ability to configure permisions for these actions.
  • Call management via API: transfer, barge-in, monitor,  whisper, adding to a conference, putting on hold, taking off hold, parking, intercept
  • Binding of mobile / city number to the extension  
  • Conferences
  • Recording conversations (with notification when nearing low disk space)
  • WebRTC - making calls directly from the browser
  • Web Call / API Initiation
  • Receive / send faxes via web interface / API
  • Receive alerts for missed calls in the mail
  • Generating PBX events for integration with third-party systems (for example, CRM)
  • Independent configuration of PBX parameters via the web interface / API
  • 2 levels of web interface / API: for PBX administrator and employee
  • Receiving a variety of reports on calls through the web interface / API

...

Schematic diagram

Component Description

Designation

ComponentDescription
kamailioKamailioBased on open source project . Is the entry point of SIP traffic. Responsible for authorizing incoming requests, routing outgoing calls, registration
fs1, fs2...FreeSwitchBased on open source project . Interacts only with kamailio via SIP, is engaged in processing media
CouB1,CouB2...CouchbaseCompiled on the basis of the project of the same name . Used to store FreeSwitch dynamic configurations and store temporary data (in memcached bucket)
SqlMariaDBMariaDB sql server, is used to ensure data integrity required for kamailio and CDR archive.
API (web backend)Rest API

API based on the REST architecture. Used to configure PBXs and receive reports. The user can work with the API directly or through interfaces based on this API. Built on Flask and nginx

Server requirements

For small operators (about 200 simultaneous calls maximum) it is possible to install on one middle-level server. Example configuration for such a server:
16 GB of RAM 2 SSD disks of 128 GB (mirror) 2 HDDs of 512 GB (mirror) CPU Intel (R) Xeon (R) CPU E5-2407 v2 @ 2.40GHz

...