Intercom
- Background
- There are three different "types" of intercoms that need to be accommodated:
- Physical intercoms that are deployed in the field - we'll refer to these as client intercoms
- A virtual intercom that is manned by a security officer - we'll refer to these as master stations
- A virtual intercom that is created on-the-fly by anyone having permissions to call a client intercom from a location other than the security desk - we'll refer to these as virtual intercoms
- There are three different "types" of intercoms that need to be accommodated:
- Configuration
- Need to add a Module
- Module configuration to include:
- If intercom system supports video
- Outbound audio/video costs BluBØX money due to charges incurred by the datacenter.
- Billing model - .10/call
- Need to research if this still works when including outbound video from Guard/Master Station back to client intercom
- Plus one time fixed cost 125/channel
- If intercom system supports video
- Module configuration to include:
- Need to control who is able to use Virtual Intercom functionality
- This will be done via a permission - it will be "Can use Virtual Intercom Functionality" with a boolean type of permission.
- If you have the permission in "any" scope, AND you can see the intercom (see below), then you can call that intercom from your pc/phone/etc
- Need to control who is able to see which Master Stations
- We are not doing this with our permissions model because it is not granular enough
- We will implement controlling which master stations you see based on explicit grants.
- There will be a tab added to the Persons screen or possibly a new dedicated screen that allows you to assign master stations to a person (similar to assigning Readers to a person). This table will be called PersonsIntercoms (master stations are just intercoms with IsMaster true and IsVirtual true)
- Need to control who is able to see which intercoms
- We are not doing this with our permissions model because it is not granular enough
- We will implement controlling which intercoms you see based on explicit grants.
- There will be a tab added to the Persons screen or possibly a new dedicated screen that allows you to assign intercoms to a person (similar to assigning Readers to a person). This table will be called PersonsIntercoms (client intercoms will have IsMaster = false and IsVirtual = false)
- Need to add/edit/view/delete intercom servers - BluBØX only as we will incur additional datacenter costs.
- Need UI to add/edit/view/delete intercom devices
- Need to support multiple SIP-based manufacturers, including :
- Person Reader
- Axis Door Station
- 2N
- Need to capture capabilities of intercom
- Include video - this should come from metadata we have based on the model
- If video, what framerate, etc. - this can't come model-specific metadata as it will vary from device to device based on preference.
- IP Address and Port of the SIP Server.
- Whether or not there is an addressable output
- If so, special command formatting, etc.
- Username, password, host, etc.
- Username is the extension in the SIP world, so by controlling passwords for the usernames(extensions), we can multi-tenant a single SIP server across multiple real-world customers.
- Secure SIP?
- Need to capture if the "intercom" is physical or virtual (this will be the case for Master Stations)
- Need to capture if the "intercom" is a Master Station (it is possible that physical master stations will be in the mix beyond our virtualized ones).
- Include video - this should come from metadata we have based on the model
- Consider custom ringtone choice for each extension
- Would help to distinguish between normal intercoms and the Emergency "blue light" intercoms audibly when the session is initiated
- Need to support multiple SIP-based manufacturers, including :
- Need to add a Module
- View List:
- Fields for add/edit screen:
- Need to research if we can use above information to configure the device itself via SDK
- Not a problem for the BluBØX Person Reader
- Camera in intercom is NOT set up as a camera in our cameras table.
- Camera in BS is reserved for when the camera is being used as a Camera streaming to an NVR, etc.
- Otherwise, it is an attribute of the Intercom object (yet to be created).
- Realtime Interaction
- Need software-based Master station
- Need to show via Red/Green light if the Master Station has good connection to VOIPNow/FreeSwitch server in Azure
- May include ability to leave voicemail at Master Station, but probably not at extensions even though it is technically possible
- Two aspects:
- Inbound
- Displays list of both Active and Incoming sessions
- "Incoming" sessions will ring with their appropriate configured ringtone and will show in flashing red?
- Ongoing sessions will show as green
- Ongoing sessions will have a "hold" button in case you need to switch to another ongoing or "incoming" session. Replaces with "resume" button once clicked.
- Hitting an incoming call while speaking to an ongoing call will result in dialog: hang up or put on hold?
- Outbound
- UI for this needs to look at your permissions and determine what devices you can connect to.
- Needs a "intercom picker" UI
- Based on the configuration of each device we know whether or not to show video
- Outbound calls will also have a "hold" button that changes to "resume"
- UI for this needs to look at your permissions and determine what devices you can connect to.
- History/Terminated Sessions List
- Shows as grey - for a session that either was not answered in time or was answered but is no longer active
- Has a "call back" button/link
- Shows as grey - for a session that either was not answered in time or was answered but is no longer active
- Need to capture full costs including data outbound (of guard to client)
- Do we want to store (in Azure) the full session (audio and/or video)?
- Inbound
- Random Notes
- We should explore two models:
- SIP Server in the Cloud (current above spec)
- SIP Server locally
- Problem is, you can't use this outside of the site. So it limits use to only computers/laptops/phones/intercoms that are on the same network (ie, BluSKY in general can't reach it).
- Look into other Intercom solutions:
- Look at common intercom functionality
- Look at third-party software interfaces to their hardware.
- Look at MXButterfly (virtual PBX)
- Look at how various verticals use Intercoms - schools versus hospitals, vs other
- Person Reader:
- RealSense Sensor supports multiple streams from multiple processes simultaneously
- Can do standalone Intercom module that supports video and audio through latest SIP Spec
- Master station side - there's a pure Javascript implementation of SIP library
- Can install FreeSwitch or VOIPNow on a VM in Azure or use a pre-built machine (prebuilt is around .10 to .86/hr and handles 40 sessions at once)
- Links to SIP Servers:
- Javascript SIP Library:
- C# Library
- We should explore two models: