Our Products & Services
Getting Started
First Time Setup
Getting Started With Jobs
Getting Started with Accounts
Getting Started with Inventory
Getting Started with Ticketing
Setting Sonar up for Billing
Baseline Configuration
How To: Using Sonar's Customer Portal
User Specific Resources
Accounts
Account Groups: Overview & Example Use Cases
Account List View: Overview
Account Management View: Overview
Account Statuses: Overview & Example Use Cases
Account Types: Overview & Example Use Cases
Anchor & Linked Serviceable Addresses: Overview and Best Practices
CPUC Fixed Broadband Deployment by Address
Child Accounts: Best Practices & How Tos
Creating a New Account
Disconnecting an Account
FCC Broadband Data Collection (BDC) Filings: How Sonar Can Help
FCC Data Exports: General Overview and Usage
Future Serviceable Addresses: Overview
Lead Intake Form Processing
Notes & Tasks: Best Practices & Use Cases
Scheduled Events: Overview & Use Cases
Serviceable Addresses: Overview and Usage
Specify Account ID upon Creation
Understanding the Affordable Connectivity Program
Using Sonar's FCC Broadband Label Generation Tool
Billing
ACH Batching: Overview
Accounts in Vacation Mode
Avalara: Overview & Setup
Batch Payments & Deposit Slips: Overview
Billing Calculator
Billing Defaults
Billing Settings
Building Packages
Building a Data Service
Canadian ACH tool
Changing Service Pricing in Sonar: Best Practices
Considerations When Using Avalara with Voice Services
Creating Discounts for Services and Packages
Delinquency Billing Best Practices
Delinquency Exclusions: Overview and Use Cases
Email Invoice Batch: Overview
General Ledger Codes: Overview
General Transactions: Best Practices
How Sonar Prorates Billing
How to Take Bank Account Payments
How to: Adding a Service to an Account
Invoice Templates: Overview
Leveraging PayPal as a Payment Method in Sonar
Manual Transactions
Multi-Month Billing & Multi-Month Services
Print to Mail
Printed Invoice Batches: Overview
Services: Overview
Setting Up Payment Methods and Taking Payments
Setting up Bank Account & Credit Card Processors
Taxes Setup
Usage Based Billing Policies: Overview and Usage
Usage Based Billing Policy Free Periods: Overview and Usage
Using Tax Exemptions - How To
Communication
Call Logs: General Best Practices
Communication Tools: Overview
Email Variables & Conditions
Message Categories: Overview & Use Cases
Phone Number Types: Overview and Use Cases
Saved Messages: Overview
Setting up an Outbound Email Domain
Trigger Explanations
Triggered Messages: Setup
Using Outbound SMS
Using the Mass Message Tool
Companies
How to: Setting Up a Company in Sonar
Managing Multiple Companies in Sonar: Best Practices
Rebranding your Sonar Instance
Financial
Contract Templates
Invoice Attachment Use Cases & PDF Examples
Invoice Messages: Overview & Use Cases
Invoices in Sonar: Examples, Creation & Contents
Integrations
Calix SMx Integration: Overview
CrowdFiber Integration
External Marketing Providers
GPS Tracking Providers: Overview
GoCardless Integration: Overview & Setup
How to Connect Cambium to your Sonar Instance
How to Connect Preseem to your Sonar System
How to: Using Webhooks in Sonar
RemoteWinBox - Integration with Sonar
The Sonar Field Tech App
Tower Coverage Integration: Overview
Vetro FiberMap Integration: Overview
Webhooks in Sonar: Basic PHP Example
iCalendar Integration
Inventory
Inventory List View: Overview
Inventory Model Management: General Overview
Setup of Inventory: Manufacturers, Categories, and Assignees
Tracking and Using Consumable Inventory
Jobs
Applying Task Templates to Jobs
Edit Job Options
Example Jobs & Templates
Geofences: Overview
Job Types: Best Practices
Jobs and Scheduling: Overview
Scheduling How-to: Creating and Booking a Job
Scheduling Week View: Overview
Setting Up Schedules General Overview
Mapping
Misc.
Combining Custom Fields & Task Templates for Information Storage
Custom Fields Overview & Use Cases
Custom Links: Overview
Task Templates Overview & Use Cases
Monitoring
Building Alerting Rotations
Building a Monitoring Template
Poller Troubleshooting
Pollers: General Overview, Deployment Strategy, Build Out & Setup
Networking
Assigning RADIUS Addresses
Assigning an IP Address Using Sonar's IPAM: How to
Automating IP Assignments, Data Rates, and Network Access in Sonar
Building Address Lists
Building RADIUS Groups
Building a Device Mapper
Cable Modem Provisioning
Controlling Customer Speeds with Sonar: General Overview
DHCP Delivery
Data Usage Available Methods
Finding your OIDs
How Sonar Communicates - Egress IPs Explained
IP Assignments & Sonar
IPAM: Basic Setup
IPAM: Overview
LTE Integration
MikroTik as an Inline Device: Integration With Sonar
MikroTik: Controlling Access
MikroTik: Controlling Speeds
MikroTik: Setting Up a Sonar Controlled DHCP Server
Netflow Integration: Overview
Network Dashboard: Overview
Network Sites: Management View Overview
PacketLogic: Integration With Sonar
Pulse, Polling, and PHP
RADIUS: Build-Out & Integration with Sonar
RADIUS: Building Reply Attributes
Setting Up CoA Proxy
Sonar Flow
Sonar IP Addressing
Using Multiple Network Devices in Sonar
Purchase Orders
Release Notes
Reporting
Enhanced Business Intelligence - Tips & Tricks for Advanced Users
How To Enhance Your Reporting With Custom Field Data
Report Licenses
Sonar's Business Intelligence: Overview
Understanding Sonar Reports
Security
Application Firewall: General Overview and Best Practices
Auth0: Overview
Password Policy In Depth
Removing a Terminated Employee In Sonar
Role Creation using GraphiQL
User Role Creation & Best Practices
Users: Overview
Sonar Billing
sonarPay
sonarPay Chargebacks & Disputes: Overview
sonarPay Disbursements: Overview
sonarPay Overview
sonarPay Reversals, Voids, & Refunds: Overview
sonarPay: Token Migration Process
System
A Deeper Dive into the New Sonar API
API Calls Using Third Party Applications: Personal Access Tokens
Browser Compatibility and Minimum Hardware Requirements for Sonar
Consuming the Sonar API
Controlling Your Landing Page: Personal Preferences
Customizing Your Customer Portal
Date/Time Picker: Overview
Dynamic Time Zones in Sonar
Filtering: Simple vs Advanced
Frequently Used Terms
Getting Your Data into Sonar
How To Use GraphiQL to Understand the Sonar API
How Your Data is Backed Up
How to Best Use Global Search
Interacting with Files via the API
Introducing the New Sidebar
Mutations in the Sonar API
Notification Preferences
REST API Wrappers for V1 Compatibility
SMS Notifications
Sonar's Rich Text Editor
System Settings: Overview
The New Sonar API
Troubleshooting the Customer Portal
Upgrading your Ubuntu OS - Customer Portal Upgrades
User Profile: Your Personal User Settings
Ticketing
Advanced Ticketing Features
Canned Replies Examples & Templates
Canned Reply Categories
Exploring Ticket Groups
How to Integrate Inbound Mailboxes with Slack
Inbound Mailboxes Example Build
Ticket Categories Best Practices & Example Build
Ticketing: Overview
Using Parent Tickets
Voice
API Changes for Voice Billing
Best Practices to Remain CPNI Compliant
Billing Voice Services in Sonar
Deploying Voice Services in Sonar
Working With the Sonar Team & Additional Resources
Sonar's Security Practices & Certifications
CyberSecure Canada Certification
Sonar and General Data Protection Regulation (GDPR)
Sonar's Security Strategies
Technical Security Overview
Best Practices for Fast Tracking a Support Request
Feedback Portal / Suggest a Feature
Learning with Sonar: Tools and Resources
New Client Training Overview
Sonar Casts Table of Contents
Submitting Bugs vs. Feature Requests
The Sonar Community Forum
The Sonar Status Page
Third Party Customer Support Referrals
Table of Contents
- All Categories
- Integrations
- How to Connect Preseem to your Sonar System
How to Connect Preseem to your Sonar System
Updated by Mitchell Paul-Soumis
Read Time: 5 mins
Preseem can query Sonar to pull information about accounts, plans and network sites, including APs, into Preseem. This enables Preseem to measure QoE metrics for each site and customer, and in the future, to apply its Active Queue Management algorithms to maximize the QoE of customers attached to a congested site.
Switching to Preseem from an Inline Device
Before switching to Preseem, consider your existing network infrastructure. It's important that your management is not adversely affected by the switch, and so it is recommended that you speak with a Technical Advisor before initiating any switch.
What You Need
To setup the Preseem-Sonar integration:
- Provide Sonar with your Preseem API Key, and enable the integration
- This will allow Preseem to deliver information back to Sonar
- Provide Preseem with a Read-Only user account from your Sonar instance
- This allows Preseem to query Sonar for information, commonly used to determine upload and download limits based on the data service assigned to the account
If you would like to provide Preseem with a Read-Only user, you'll need the following:
- The hostname of your Sonar instance
- The Personal Access Token of a Sonar user
The user needs to have access to Accounts, Inventory, IPAM, Network, and System in the Sonar environment. We recommend creating a new read-only user account for this specific purpose; instructions for this are provided below.
Connecting the API Integration
The simplest method of connecting Preseem to your Sonar instance is by using the API key provided to you upon signup and configuration of your Preseem account and hardware. Next, log in to your Sonar instance and:
- Click on Settings
- Click on Integrations
- Click on Preseem
- Check the box for "Enabled"
- Enter in the API Key
- Click on Save
Providing a Read-Only User
Creating the Read-Only role
Before creating a new account, we'll want to make sure that we have a role with the necessary permissions which will allow Preseem to monitor the network. In Sonar, new roles can be created in two ways:
- Through the application GUI, which allows you to view and toggle a series of buttons
- Through the GraphQL API
This article will provide instructions for both methods.
Through the User Interface
- Access the Settings menu
- Click on Security
- Click on Roles
- Click on Create Role
Next, you need to select which permissions will be required for this role. For Preseem, we'll be creating a role with basic read permissions for Accounts, Inventory, Network, and Serviceable Addresses.
Module Name | Permission to Enable |
Inventory | View all inventory |
Accounts | View all account transactions View accounts and related entities |
Account Group | View account groups |
Account Status | View account statuses |
Account Type | View account types |
Address | View serviceable addresses |
Address List | View all address lists |
Custom Field | View all custom fields |
DHCP Server | View all DHCP servers |
Inline Device | View all inline devices |
IP Assignment | View all IP assignments |
Netflow Endpoint | View all Netflow endpoints |
Network Site | View all network sites |
Preseem | Update Preseem integration |
RADIUS Account | View all RADIUS accounts |
RADIUS Group | View all RADIUS groups |
RADIUS Server | View all RADIUS servers |
Service | View Services |
Uninventoried MAC Address | View all uninventoried MAC addresses |
If you are going to write usage data to Sonar from Preseem, you will need to enable the following Permissions as well:
Module Name | Permission to Enable |
Data Usage | Create data usage entries |
Data Usage History | Create data usage entries Update a data usage history entry |
Through the GraphQL API
This example makes use of the GraphiQL page accessible within your instance by going to "[instance URL]/graphiql
". To make the process easier, we'll be handling it in two parts - the mutation, and the query variables.
Mutation
mutation ($PreseemReadOnly: CreateRoleMutationInput) {
createRole(input: $PreseemReadOnly) {
id
name
}
}
Query Variables:
{
"PreseemReadOnly": {
"name": "Preseem Read Only",
"applied_permissions": [
"READ_ALL_INVENTORY",
"READ_ACCOUNT",
"READ_ACCOUNT_GROUP",
"READ_ACCOUNT_STATUS",
"READ_ACCOUNT_TRANSACTIONS",
"READ_ACCOUNT_TYPE",
"READ_SERVICEABLE_ADDRESS",
"READ_ADDRESS_LIST",
"READ_CUSTOM_FIELD",
"READ_DHCP_SERVER",
"READ_INLINE_DEVICE",
"READ_IP_ASSIGNMENT",
"READ_NETFLOW_ENDPOINT",
"READ_NETWORK_SITE",
"UPDATE_PRESEEM",
"READ_RADIUS_ACCOUNT",
"READ_RADIUS_SERVER",
"READ_RADIUS_GROUP",
"READ_SERVICE",
"READ_UNINVENTORIED_MAC_ADDRESS"
]
}
}
If you would like to add the following permissions to the above Query Variable, under applied permissions:
"CREATE_DATA_USAGE",
"READ_DATA_USAGE_HISTORY",
"UPDATE_DATA_USAGE_HISTORY",
Creating the User
Now that we've created the Role, we'll be creating the user who we'll be using to provide access to Preseem. To create a new user:
- Click on Settings
- Click on Security
- Click on Users
- Click on Create User
Here's what an example user making use of the Role we created in the previous step would look like:
Creating the User Access Token
Once you have this read-only user configured, log into the account after completing the new user setup sent to the selected email address.
- Access the account's profile page
- Select the drop down next to Update Info
- Select "Create Personal Access token", as pictured below:
Next give the Personal Access token a descriptive name, and note down the token information on the next page.
Once that's done, provide the token to Preseem to link your Preseem Web App with Sonar.