Skip to content

Customers (Resellers)

A customer is a billable entity that owns accounts and, if allowed, its own sub-customers. The panel calls customers Resellers in the menu because every customer can resell your service under its own tariff. This screen lists the customers directly below you and is where you create, fund, block and delete them.

Customers form a tree. At the top is the root customer, the owner of the switch: it is not billed by anyone and holds the system-wide settings such as routing. Every other customer is billed by the customer directly above it, for its own calls and those of its accounts and sub-customers. A customer sees only its own branch: nothing in its panel shows that there are levels above the customer that created it. A company with one account per employee is a typical customer: you invoice the company for the total, and the company sees the usage of every account.

Open My Customers → Resellers in the left sidebar. The URL is /subcustomers.php.

The item is visible to admin users whose customer may have resellers (Max. Resellers Depth above 0) and who either have the right to add customers or already own at least one. The Add Reseller, Edit, Block and Delete buttons follow the add, edit and delete rights of the web user’s access level.

Screenshot "admin-panel/customers-list" has not been generated yet — see scripts/screenshots/screens.yml.
Column Meaning
Status Green check for an active customer, red ban icon with the tooltip Blocked for a blocked one
Name The customer’s name, linking to the form. The Description shows under it
Balance Current balance converted to your base currency. Red when the balance is below the negative credit limit
Credit Limit The credit limit, also in your base currency
Tariff The customer’s tariff, linking to it. — MY TARIFF — means the customer inherits your own tariff

The filter bar has one field, Reseller Name. It matches the beginning of the name and is case-sensitive. The list shows 50 rows per page, sorted by name.

The wallet icon in a row opens Add Balance. The Actions menu holds Edit, Login as, Add Balance, CDRs, Block or Unblock, Debit/Credit Cards (when enabled for the customer), Notifications, Reseller Mods, Extended Routing (when extra routing groups exist), Reset MFA (when MFA is enabled) and Delete.

Before the first customer you need at least one tariff; the panel refuses with the message You need to have at least one Tariff to add Customer. otherwise. The root customer also needs a routing group.

  1. Click Add Reseller.
  2. Enter Reseller Name. Leaving the field fills Web Login with the name stripped of spaces and punctuation; change it if you want.
  3. Note the generated Web Password (click the eye icon to reveal it) or type your own. It is not shown again after saving.
  4. Select Tariff. The currency of the tariff becomes the customer’s base currency.
  5. Enter Credit Limit. Set Balance if the customer starts with prepaid funds; 0.00 is the default.
  6. Check Time Zone and Language; both default to your own.
  7. Click Save & Close. Save keeps the form open.

In edit mode the header shows the Blocked or Active badge and a stats bar with Balance, Credit Limit, Last Login and Last Pass. Change. The badge is read-only; blocking is done from the list. Fields marked with a password placeholder @@@@@@ keep their current value unless you type a new one.

Field Meaning
Reseller Name Shown in lists and reports. Required
Web Login Login of the customer’s default web user. Required
Web Password Password of that web user. Generated on creation
Tariff Tariff that prices the customer’s calls. - MY TARIFF - inherits yours. Only tariffs in the customer’s currency after creation
Time Zone Time zone of the customer’s web user and CDR display
Language Language of the customer’s panel
Balance Opening balance, creation only. Later changes go through balance operations
Credit Limit How far below zero the balance may go. Required
Description Free text shown under the name in the list
Field Meaning
Acct. Matching Rule Regular expressions, separated by ;, that the names of the customer’s accounts must match. Checked against existing accounts on every save. See Accounts matching rule
Max. Resellers Depth How many levels of sub-resellers the customer may create. 0 hides their Resellers menu. Fixed after creation
Max Sessions Cap on simultaneous calls of all the customer’s accounts. Empty means unlimited
Max Calls Per Second Cap on call attempts per second. Empty means unlimited
Download Format Default file format for the customer’s CDR downloads
Mail “From” Header Sender address of e-mails sent to the customer
Start Page Page the customer sees after login: My CDRs, Call Records (CDRs) or My Preferences
Routing Group Routing group for the customer’s calls. Shown to the root customer, or when the customer has extended routing. Default inherits yours
Password Policy Policy applied to the customer’s web users
Overcommit Protection, Overcommit Limit, % Limits the funds the customer may hand out: a top-up of one of its accounts or sub-customers is refused when their balances together would exceed the customer’s own balance plus the limit. 10 by default. See Overcommit protection
Callshop Enabled Turns the customer into a callshop; its accounts become booths on the Callshop screen
Allow API Calls, API Password Lets the customer use the XML-RPC API with this password. Shown when you have API management rights
DNCL enabled Checks the customer’s calls against the Do-Not-Call list when the module is installed

Commission assigns a Commission Agent, another customer of yours with the same currency, who earns Commission Size, % of this customer’s traffic. See Commission agent setup.

Address Info holds the company, address and contact fields used on invoices and notifications: Company Name, First Name, Last Name, Address, City, Province/State, Postal Code, Country/Region, Contact, E-Mail, Phone, Fax, plus CC and BCC for extra e-mail recipients. None is validated beyond length.

Payments sets Preferred Method, Payment Currency and Min. Amount for online payments by the customer.

From the list, click the wallet icon or Actions → Add Balance:

  1. Select the action: Add Funds records a payment received from the customer, Manual Charge debits the balance, Manual Credit credits it without a payment.
  2. Enter Amount and select the Currency. The customer’s base currency is preselected; other currencies are converted with your exchange rates.
  3. Enter Notes for the payment history and click the confirmation button.

The same three operations are available in the edit form under No Action at the top. There they run after the form is saved and ask you to confirm the amount.

Actions → Block stops all accounts and sub-customers of the customer. The confirmation reminds you that every call in progress is disconnected at once. Unblock restores service immediately and has no confirmation. A blocked customer’s Login as entry is greyed out but still works.

Actions → Login as opens the customer’s panel in a new window using the customer’s default web user, without the password. Use it to see the panel as the customer sees it, to check their rates and CDRs, or to configure accounts on their behalf. The session is marked as yours in the audit log.

Actions → Delete shows how many accounts, sub-customers and tariffs belong directly to the customer and deletes them all together with the customer. Objects of nested sub-customers are not counted in the warning but are deleted as well. CDRs of deleted customers remain available in the deleted-customer reports.

Actions → Reseller Mods sets a DNS Alias, the hostname on which the customer’s branded panel answers, and a custom CSS for it. The alias must be unique across customers. See Panel branding.

Acct. Matching Rule restricts the names a customer may give its accounts. Enter one or more regular expressions separated by ;; a name is accepted when it matches at least one of them. For example, ^1000[1-9]$ allows only 10001 to 10009, and ^44;^33 allows names starting with 44 or 33. An empty field allows any name.

When you save the rule, the panel checks the existing accounts of the customer and of all its sub-customers. If some do not match, the Matching Rule error page shows how many and offers:

  • Edit again: return to the form and change the rule.
  • Delete non-matching Accounts: save the rule and delete the customer’s own accounts that do not match. Accounts of sub-customers are not deleted. Deleted accounts go to the Deleted tab of Accounts.
  • Proceed with update: save the rule and keep the non-matching accounts.

Select one and click Continue.

Overcommit protection stops a reseller from crediting its accounts and sub-customers with more money than it has itself. With Overcommit Protection on, a top-up of one of its accounts or sub-customers is refused when their balances together would exceed the reseller’s balance plus Overcommit Limit, %. With a balance of 100 and the default limit of 10, the reseller’s accounts and sub-customers may hold up to 110 in total.

Protection applies down the tree. When a customer above has it on, the fields are locked for the customers below: protection is on and the limit is 0, so a sub-reseller can hand out no more than its own balance.

By default a customer and its accounts use one routing group. Actions → Extended Routing gives the customer more routing groups, each with its own tariff, so that the customer can choose a Routing Group for each of its accounts. Each row pairs a Routing Group with a Tariff in the customer’s currency and a Description.

  1. Open Actions → Extended Routing for the customer.
  2. Select Routing Group and Tariff in the empty row. The list offers only routing groups the customer does not already have.
  3. Click the Add icon in the row.

The root customer can offer any routing group. A reseller sees the item only when it has extended routing itself, and can pass on only the routing groups it was given. The pencil icon changes the Tariff and Description of a row. The trash icon deletes a row; it is hidden while the customer still uses that routing group for one of its own sub-customers.