You are on page 1of 593

1. Splynx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4
1.1 Getting Started With SPLYNX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.1 Splynx license . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.2 Hardware requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1.3 Install Splynx ISP Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.4 Dashboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.5 Create swap file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Configuring Tariff Plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.1 Internet plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2.2 Burst speed concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2.3 Fair User Policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2.4 Voice plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.2.5 Custom plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.2.6 Capped plans and Top-Ups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.3 Customer Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
1.3.1 Adding new customer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
1.3.2 Custom additional fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
1.3.3 Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
1.3.4 Configuration of the Table, List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.3.5 Customer information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
1.3.6 Customer services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
1.3.7 Customer billing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
1.3.8 Customer statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
1.3.9 Customer documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
1.3.10 CPE management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
1.3.11 Prepaid vouchers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
1.4 Customer Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
1.5 Finance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
1.5.1 Billing engine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
1.5.2 Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
1.5.3 Invoices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
1.5.4 Proforma invoices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
1.5.5 Payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
1.5.6 History & Preview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
1.5.7 Bank statement processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
1.5.8 Refill cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
1.6 Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
1.6.1 Blocking customers in Splynx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
1.6.2 Authentication of admins, Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
1.6.2.1 Admin login to Mikrotik routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
1.6.2.2 Admin login to Cisco devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
1.6.2.3 Admin login to Junipers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
1.6.3 Authentication of users . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
1.6.3.1 Mikrotik: DHCP with Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
1.6.3.2 Mikrotik: Hotstpot, Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
1.6.3.3 Mikrotik: PPPoE, Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
1.6.3.4 Mikrotik: Static IPs with API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
1.6.3.5 Mikrotik: Local auth, API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
1.6.3.6 Ubiquiti: Wireless auth, Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
1.6.3.7 Ubiquiti: PPPoE on Edge Routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
1.6.3.8 Cisco IOS: PPPoE with Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
1.6.3.9 Cisco IOS XE : PPPoE Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
1.6.3.10 Juniper: PPPoE with Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
1.6.3.11 Mikrotik: OpenVPN, Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
1.6.4 Bandwidth management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
1.6.4.1 Capped plans and top up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
1.6.4.2 Contentions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
1.6.4.3 Fair user policy - FUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
1.6.4.4 Mikrotik queue speed limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
1.6.4.5 Radius based speed limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
1.6.5 Routers settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
1.6.5.1 Cisco routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
1.6.5.2 Juniper routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
1.6.5.3 Mikrotik routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
1.6.5.4 Ubiquiti Edge routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
1.6.5.5 Other routers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
1.6.6 IP address management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
1.6.7 Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
1.6.8 Weathermaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
1.6.9 Troubleshooting Radius server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
1.6.10 Radius server customization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
1.6.11 PPTP Connection between Splynx and Mikrotik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
1.7 Support, Tickets and Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
1.7.1 Email messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
1.7.2 SMS messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
1.7.3 Tickets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
1.7.4 News . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
1.8 Administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
1.8.1 Main . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
1.8.1.1 Admins and permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
1.8.1.2 Partners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
1.8.1.3 Locations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
1.8.2 Logs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
1.8.2.1 Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
1.8.2.2 Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
1.8.2.3 Email . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
1.8.2.4 SMS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
1.8.2.5 Sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
1.8.2.6 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
1.8.2.7 Changes of statuses/plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
1.8.2.8 Pending statuses/plans . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
1.9 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
1.9.1 System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
1.9.1.1 Additional fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
1.9.1.2 Custom translations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
1.9.1.3 File manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
1.9.1.4 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
1.9.1.5 Variables for templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
1.9.2 Main configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
1.9.2.1 Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
1.9.2.2 Localization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
1.9.2.3 Customers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
1.9.2.4 Email config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351
1.9.2.5 SMS config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
1.9.2.6 Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
1.9.2.7 Portal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364
1.9.2.8 Cards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
1.9.2.9 Logrotate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
1.9.3 Finance configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
1.9.3.1 Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
1.9.3.2 Finance settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374
1.9.3.3 Pairing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
1.9.3.4 Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
1.9.3.5 Payment methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
1.9.3.6 Transaction categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
1.9.3.7 Reminders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392
1.9.3.8 Template values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
1.9.4 Network configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
1.9.4.1 Radius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
1.9.4.2 MikroTik API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
1.9.4.3 IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
1.9.4.4 CPE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
1.9.4.5 FUP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
1.9.4.6 NAS types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
1.9.4.7 IP Network categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
1.9.4.8 IP Host categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
1.9.4.9 Monitoring config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405
1.9.4.10 Network Weathermap Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408
1.9.5 Voice processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
1.9.5.1 CDR Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415
1.9.5.2 CDR History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
1.9.5.3 Categories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
1.9.6 Integrations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
1.9.6.1 Main modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
1.9.6.2 Install module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
1.9.6.3 Modules list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
1.9.6.4 Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
1.9.7 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
1.9.7.1 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
1.9.7.2 Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
1.9.7.3 Activate services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434
1.9.7.4 Invoices cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
1.9.7.5 Adminer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
1.10 Add-ons, Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
1.10.1 Cashdesk module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
1.10.2 Google maps add-on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
1.10.3 Quickbooks accounting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
1.10.4 Xero accounting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
1.10.5 Ofipro contabilidad (Spanish) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464
1.10.6 FCC 477 export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 472
1.10.7 Baicells LTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
1.10.8 Signaturit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
1.10.9 Social and Self Registration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
1.11 Payment systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 511
1.11.1 Authorize.net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
1.11.2 Braintree payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
1.11.3 Gocardless.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 519
1.11.4 Paypal payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
1.11.5 Paypal RB (Recurring Billing) payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
1.11.6 Payfast.co.za payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
1.11.7 SEPA debit orders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
1.11.8 SEPA debit orders in Spanish . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
1.11.9 Bitpay bitcoin payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
1.11.10 Stripe online payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
1.11.11 IPpay by Convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 570
1.11.12 Pesapal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
1.11.13 Paystack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 581
1.11.14 Wepay (recurring billing) payments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586
1.11.15 SagePay Pay now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
1.11.16 SagePay Direct Debit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
Splynx

Welcome!
Welcome to Splynx ISP Framework documentation website. Here you can find useful information to each part of Splynx - billing
system for Internet providers.

Splynx ISP Framework official documentation

Frequently asked questions Need more help? Other resources


Splynx Billing engine Find information in our forum List of Splynx features
Splynx Radius server Create a ticket to resolve the issue Splynx Datasheet
Customer portal Explore youtube tutorials Visit us on Facebook

Browse by topic Recently updated articles


A-I J-U Social and Self Registration
Nov 12, 2017 • updated by Nik Ostrovskiy • view change
accounting juniper SagePay Direct Debit
add-ons logs
administration mikrotik
Oct 21, 2017 • created by Ruslan Malymon
bandwidth_management network_management SagePay Pay now
cisco payment_gateways Oct 21, 2017 • created by Ruslan Malymon
configuration radius
customer_management support Wepay (recurring billing) payments
customer_portal tariff_plans Oct 04, 2017 • updated by Nik Ostrovskiy • view change
finance ubiquiti
Payment systems
V-Z Sep 30, 2017 • updated by Nik Ostrovskiy • view change
Gocardless.com
voice Sep 30, 2017 • updated by Nik Ostrovskiy • view change
Mikrotik: DHCP with Radius
Sep 29, 2017 • updated by Nik Ostrovskiy • view change
Splynx license
Sep 29, 2017 • updated by Ruslan Malymon • view
change
Mikrotik: OpenVPN, Radius
Sep 26, 2017 • created by Jorge Gomis
Hooks
Sep 20, 2017 • updated by Oleksii Fedoryshyn • view
change
Customer services
Sep 12, 2017 • updated by Jorge Gomis • view change
Payment systems
Sep 05, 2017 • updated by Alex • view change
Ofipro contabilidad (Spanish)
Sep 01, 2017 • updated by Alex • view change
Cisco routers
Aug 30, 2017 • updated by Alex • view change
Cisco IOS XE : PPPoE Radius
Aug 30, 2017 • updated by Alex • view change

Getting Started With SPLYNX


To get started with Splynx you should install the system in Debian or Ubuntu linux environment.

Please follow these links to get license, install the software and make first steps with it:

Splynx license

Hardware requirements

Install Splynx ISP Framework

Dashboard

Splynx license
In order to start using Splynx, it is mandatory to get the license, here.

License prices you can found on http://splynx.com/pricing/

Included in the subscription, there are:

Full setup and configuration


Integration project for deploying Splynx in client’s network
Technical Support – 7 days in a week, 9-21:00 Central European Time
Frequent Software Updates
Trainings for customer’s team members
Full description of API structure and assistance in building custom modules

Hardware requirements
Hardware:

CPU: 2 cores and more


CPU Core speed: 2400 Mhz or more
Memory: 1 GB or more
HDD: 32 GB or more
Network interface: 1 or more

Virtual machines supported: VMWare, XEN, KVM, Hyper-V

Splynx Isp Framework can’t work on OpenVZ containers.

System is successfully tested on these cloud services:

DigitalOcean (can be used in production)

Scaleway (armv7 technology, it can be used for small installations)


Software:

OS Linux: Debian 7, or 8 or Ubuntu (14.04, 14.10 or 15.04) , PHP 5.4, 5.5, 5.6, MySQL server

SSL Certificate

GlobeSSL

Install Splynx ISP Framework


For the installation, please use a clear Debian or Ubuntu server.

Log in as root:

Ubuntu:

sudo su

Debian:

su

Insert Timezone configuration:

dpkg-reconfigure tzdata

Update CA certificates for HTTPS:

apt-get install ca-certificates


update-ca-certificates

Install Splynx:

wget -qO- https://deb.splynx.com/setup | bash -


apt-get install splynx

or update it:

apt-get update
apt-get install splynx

If you make a mistake when you enter the license code, or the mysql root password you can use:

dpkg-reconfigure splynx

The installation procedure has been tested on:

Debian 7, 8
Ubuntu 14.04, 15.04, 15.10, 16.04, 16.10

Dashboard
Dashboard is the main control panel in Splynx which will help you to check financial and customer statistics on a daily basis. With dashboard you
can also monitor system performance and immediately get information about your network health.
At the top of the live dashboard will be displayed the number of customers online, number of new customers, new and open tickets and number of
devices down. It is possible to view them in details in a list.
Live dashboard is divided into 4. main parts:

System status - with the information free memory, last DB backup, last remote backup, etc.

Customers - with the latest statistics about new, active, blocked customers, etc.

Networking - with the information about number of routers, IPv4 networks, Monitoring, etc.

Finance - with the statistics of unpaid/ paid, debit transactions and payments for the current and last months.
There is a Side Menu at the left side of the page with following modules:

Tariffs - It shows the tariffs aspect of the system

Customers - It shows the customers aspect of the system

Finance - It shows the financial aspect of the system

Networking - It shows the networking aspect of the system

Support - It shows the support aspect of the system

Administration - It shows the administration aspect of the system

Config - It shows the configuration aspect of the system

My profile - It shows the current profile on the system

Logout - Logout from the system

Create swap file


Run on your server:
if [[ ! -f /swapfile ]]; then
echo "Building swapfile..."
dd if=/dev/zero of=/swapfile bs=64M count=32
mkswap /swapfile
chmod 0600 /swapfile
swapon /swapfile

# Mount on reboot
if [[ -z "$(cat /etc/fstab | grep swapfile)" ]]; then
echo "/swapfile none swap sw 0 0" | tee -a /etc/fstab > /dev/null
2>&1
fi
fi

This commands create file with size 2 GB, if you need more or less change bs=64M count=32 – 32 to 16 for 1 GB, 64 for 4 GB.

Configuring Tariff Plans


Splynx has 3 different types of tariff plans - Internet, Voice and Custom. Plans are used to assign a service to customer and charge him.

Internet plans are also limiting the speed accordingly to plan settings. Voice Plans are used to create fees for voice services and for CDR
processing. With Custom plans you are able to charge customers for IPTV services, public IP addresses and other similar services.

Internet plans

Burst configuration

Fair user policy settings

Voice plans

Custom plans

Capped plans and Top-Ups

Internet plans

To configure the Internet plan, click on the Tariffs plans Internet and click on Add plan.
A Create plan window will pop up and it will be possible to create a plan.

Title - the name that describe the plan in the Internet plans table
Service name - the service name will be used for description
Price - the monthly price for the service
Partners - the partner 's name
VAT - the percentage of the VAT
VAT Included - select if Price in plan is VAT included or excluded
Download speed (Kbps) - the download speed for the internet plan
Upload speed (Kbps) - the upload speed for the internet plan
Values of Download and Upload speed are MIR (Maximum Information Rate) – best case scenario, maximum available data rate for flow,
if there is free any part of bandwidth.
Guaranteed speed limit at - the percentage shows what speed we guarantee for the end user. It's CIR (Committed Information Rate)
– worst case scenario, flow will get this amount of traffic rate regardless of other traffic flows. At any given time, the bandwidth should not
fall below this committed rate.
Priority - the options are: Low, Normal, High. IP packets of customers with High priority will be forwarded as first in case of congestion.
Values are 1 (high), 4(normal) and 8(low).
Aggregation - how many users will share the speed in plan
Burst limit - the percentage of maximum allowed burst speed
Burst threshold - the percentage that setups a value of burst on/off switch
Burst Time - the period of time for calculation of Burst values

It is possible to edit or to delete the tariff with the icons

or

in the column Actions.

On the left bottom of the table, there are two symbols

. The first one on the left

is used to copy, print the table and to export it in different formats: Excel, CSV, PDF. The second one

is used to modify the view of the table.

After the creation of Internet plan, it is possible to associate service to the customer. Click on Customer List, select the customer, click on the tab
Services and on the +.

A window will pop up to create the service.


It is possible to see the new service in the Services' table.
Burst speed concept
Burst is a technology that is part of Splynx bandwidth manager. It's supported by Mikrotik RouterOS devices. Splynx can create speed limits with
burst option via Radius protocol or via API.

Burst concept is about to allow customer transfer data with higher speed that is in his tariff plan but for some period of time.Burst will work in case
ehn average-rate of the queue for the last burst-time seconds is smaller that burst-threshold value. Burst stops when average-rate of the
queue for the last burst-time seconds is higher or equal to burst-threshold value.

When burst is applied burst-limit value replaces the max-limit value inside the queue.

Description of the burst terminology and Splynx usage:

burst-limit (set in %) : it is a maximal upload/download speed which client can get when the burst is allowed. We set it up in % of the speed of the
plan. If customer has a plan of 2 Mbps with burst-limit 100%, he will get bust speed of 4 Mbps. If we setup burst-limit in Splynx to 50%, then
customer will get under burst 3 Mbps instead of original 2 Mbps of the plan.

burst-time (seconds) : period of time when average data rate is calculated. It's not the time when burst is active.

burst-threshold (set in %) : Bust technology always compares average speed with threshold. When average reaches threshold, burst is disabled.
We also define it in % in Splynx. For example if we set up 80% of threshold of 2 Mbps plan, the threshold value will be set to 1.6 Mbps and bust
will be deactivated when average speed during burst-time will reach 1.6 Mbps.

average-rate (not setup in Splynx, default value) : Every 1/16 part of the burst-time, Mikrotik router calculates the average data rate over the last
burst-time seconds

actual-rate (read-only value) : actual traffic transfer rate of the queue, it's used in the picture below for better understanding of concept. On
picture is an example of plan with bust-time 16 seconds, tariff speed of 2 Mbps and burst-rate of 4 Mbps, threshold is set to 1.6 Mbps.
To setup the burst which will provide service as on the picture we have to configure Splynx tarrif plan this way :
We recommend to use burst time of 30 or 60 seconds, and value of threshold around 70-80% of the plan.

Fair User Policy


Many Internet providers use Fair User Policing (FUP). This is an approach when speed of customer is changed if he downloads or uploads more
than a certain amount of data.

Splynx FUP mode allows:

Define when count the traffic - days and hours


Decrease or increase speed of customer if he reaches defined amount of data during one day, week or month
Block customer if he reached allowed amount of data per day, week or month
Permamently block customer until he pays for additional data
Change the speed of customer based on day of the week and time of the day
Change customer's priority if he reached allowed amount of data

There is an arrow icon in Splynx Internet plan settings which is used to define Fair user policies -

Each internet plan has its own independent fair user policy settings. Examples of different FUP settings and usage are shown below.

1. Define when count the traffic in Plan for FUP.

The first part you see are settings of when to count customers traffic. By default Splynx counts all customer's traffic and then applies FUP
settings. But It's possible to not count customer's traffic in some period of time. In example below traffic is not counted on Sundays and in night
hours:
If online time of the customer is used in FUP settings, an option of counting of online time is also available.

2.Change speed of the customer when allowed data amount is reached

For example, there is a plan of 2 Mbps download/1 Mbps upload and we want to limit the speed of people who will download or upload over 5 GB
per day. Every day when customer downloads 5 GB, his speed will be decreased to 50% of original speed. Next day he will get back to original
speed. Below is example of FUP rule which will do the job:

We can check what will happen when customer downloads 2 GB per day in the Preview window of FUP settings:
Nothing happens because customer hasn't reached 5 GB daily limit. We can see that no FUP rule was applied. In case if customer transfers over
5 GB limit, his speed will be decreased from 2/1 Mbps to 1/0,5 Mbps:

We can quickly get an overview of customers with active FUP rules in services or online list of clients.

3. Block customer if he reached allowed amount of data per day, week or month

The same logic is used for blocked customer, we just need to change the action. Let's apply FUP to block customer who will reach 10GB per
month.
As it's obvious from a picture, Splynx can combine several FUP rules under one plan. Here we combine the speed limitation based on daily usage
and blocking on monthly usage.

4. Permamently block customer until he pays for additional data

This is a different type of blocking. FUP is used to optimise the customers' network usage when permanent blocking is used to provide capped
services.

5. Change the speed of customer based on day of the week and time of the day

We can allow customers to get higher speed in night hours. Below is an example of configuration, again it's just a new rule in the same plan, so all
our settings for daily and monthly limitations remain, and one new rule is added to speed up internet from 2 Mbps to 4 Mbps in night hours:
6. Override Accounting

In Override Accounting we can define if we want to override default accounting of traffic or online time rules.

Below are examples of default accounting of tariff & online time rules:

Traffic consumption of your customers will be accounted from 08:00 to 02:00


Online time consumption of your customers will be accounted from 10:00 to 02:00
Overriding accounting configuration per rule:

Override accounting:

First checkbox defines if we want to override default tariff values.

Accounting of traffic:

Here we can set to account the traffic when this rule is active (in case of Override accounting is enabled)

Accounting of online time:

Here we can set to account online time when this rule is active (in case of Override accounting is enabled)

Examples of accounting of traffic & online time rules are shown below:

Traffic consumption of your customers will be accounted from 08:00 to 02:00


Online time consumption of your customers will be accounted from 10:00 to 02:00
Here are some previews explaining logic of work:

Rule #1: Override accounting is enabled, accounting of traffic is enabled, accounting of online time is enabled
Rule #2: Override accounting is disabled

Rule #3: Override accounting is enabled, accounting of traffic is enabled, accounting of online time is enabled:
Voice plans
Why use Voice plans in Splynx?

There are two main reasons for voice plans :

1. Charging clients monthly fee for voice services such as VOIP, Toll number, Number rental or Mobile plan.
2. Processing of VOIP CDR. Splynx is able to process the CDR from Voice platforms, attach calls from CDRs to proper customer, create
transaction for voice usage and make one common invoice for Voice services and Internet.

To configure the Voice plan, click on Tariff plans Voice and click on Add plan.

A Create plan window will pop up and it will be possible to create a plan.
Title - the name that describe the tariff in the Voice Tariffs table
Service name - the service used
Price - the price for the service
Type - the options are: VOIP, Fix or Mobile
Partners - the partner 's name
VAT Included - select it on or off
VAT - you can decide the percentage of the VAT
It is possible to edit or to delete the tariff with the icons

or

in the column Actions.

There are two symbols

on the bottom left of the table. The first one on the left

is use to copy, print the table and to export it in different formats: Excel, CSV, PDF. The second

is use to modify the view of the table.

After the creation of Voice plan, it is possible to associate the service to a customer. Click on Customer List, select the customer, click on the tab
Services and on the +.
A window will pop up to create the service.
It is possible to see the new service in the Services table.

To get more information about Voice CDR processing, please, follow dedicated tutorial page.

Custom plans
When use custom plans?

For example, ISP provides public IP service to users; Rental of equipment; Hosting or IPTV services.
To configure the Custom plan, click on the Tariffs plans Custom and click on Add plan.

A Create plan window will pop up and it will be possible to create a plan.

Title - the name that describe the tariff in the Custom Tariffs table
Service name - the service used
Price - the price for the service
Partners - select the partner 's name
VAT Included - select it on or off
VAT - the percentage of the VAT

It is possible to edit or delete the tariff with the icons


or

in the column Actions.

There are two symbols

on the bottom left of the table. First icon

is use to copy, print the table and to export it in different formats: Excel, CSV, PDF. The second one icon

is use to modify the view of the table.

After the creation of Custom plan, it is possible to associate the service to a customer. Click on Customer List, select the customer, click on the
tab Services and on the +.

A window will pop up to create the service.


It is possible to see the new service in the Services table.
Capped plans and Top-Ups
CAP is a feature that allows ISP to provide Internet services with monthly limitation of data and charge customers for additional data.

The advantage is that customer can pay more to extend his CAP using the tool Top Up. Administrator designs Top Up plans that are avaliable for
customers in addition to their regular Internet plans.

First of all, you should enable the CAP module in Config Integrations Main Modules.

1. CAP configuration

To configure CAP policies go to Tariffs Internet, and then choose selected plan and click on FUP button. A new window will appear there called
CAP.
There are 3 configuration boxes in CAP: Monthly limits (CAP), Top Up Plans and Notifications.

In first box (Monthly limits (CAP)) we can set how much data (in KB, MB, GB or TB) customer is able to consume in Internet plan. It can be
dowload, upload or bidirectional usage. When the CAP monthly data are used, Splynx automatically blocks user or reduce his speed according to
the configured percentage level.

Also, you can disable daily or weekly limits set on FUP or enable the Rollover mode. Rollover means that unused monthly data of the CAP will be
moved to the next month.

In the second box you can find the Top Up Plans configuration. These plans are for the usage when monthly data of CAP is fully used. Customer
pays for a Top Up and then he received more data to use.

You can set validity of Top Up data. It can be unlimited or set to several months. Also, there is an option A dd Top Up to the customer invoice.
Very useful option is to Load plans from other tariffs, means you can configure Top Up plans once and then just copy the settings to all your
tariffs.

The third is the Notification box, which inform customer by email or SMS about monthly usage, Top Up data usage or Top Up actions.

Also, it is possible to load notifications that we have created in other plan.

Source means the counter or action that we want to notify our customer about.
Monthly limit - the data included in CAP,
Top Up usage - notify customer when certain % of his the top-up is spent
Top Up action - notify when top-up was added to customer's account
Auto Top Up - send a notification when customer's account data were automatically added by Splynx.

You have to write a subject and customize the message clicking on Edit message. There you can also load a template you have created in
section Splynx Config Tempates.
To check, if the email or notification is working correctly, you can view the email log clicking on Administration Logs Email.

The same verification is available for SMS messages in Splynx Administration Logs SMS.

2. Top-Up

Splynx works with 3 types of Top-up:

A. Administrative top-up

B. Customer portal top-up

C. Auto top-up

A. Administrative Top-up

In first case, go to Customers List and choose the customer you want to add the Top Up. There is a CAP Top-Up section at the bottom right
corner of the Information window. By clicking on Top-Up button below the section a new window "Add CAP to Customer" will be open that is
asking for a service and Top up plan. Administrators can have rights to add custom top-up, it means they can define the Data to top up and the
price of singe top-up.
When we create a Top-Up for 1 GB we can see that 1GB of data were added to customer's account. The transaction is on the list and we can
proceed charging for generating the invoice.

As we have enabled the option "To invoice" in the Top Up transaction, the Top-up appears on invoice PDF:
B. Customer portal Top-up

In second case customer can order a top-up on a portal. The administrator configure in Splynx the permissions and options customers will have.
This configuration is on Config Main Portal. There are two boxes with some options for customer's Top Up:

1. You can enable Top-Up and edit Auto Top-Up settings. Auto top-up permissions shows if client can enable/disable auto top-up and if he
can choose from top-up plans. Also there is an option to allow the customer to change the maximum amount of auto top-ups per month.

2. To enable Manual Top-up from portal, select which type of document will be created when customer tops up from the portal. Pay before me
ans that customer will not get the top-up data until he pays the invoice.

When customer enters Portal, he clicks on Services Top Up where will be top-up options for automatic and/or manuall top up.

In Manual Top-up customer should choose the plan and add a top-up.
Then in Statistics customer can see the amount of traffic in the bar. Also his actual top-up data is displayed.

In case if administrator sets the option Pay Before Top-Up, the data will be available after customer pays for it.
So, the invoice is paid and additional 1GB data is added now.

C. Auto Top-up

Inside the CAP window in customer information we can enable auto top-up.

Then we define the auto top-up plan and number of top-ups per month.

Transfer usage to new service means that Splynx will transfer unused data between plans in case when customer changes his plan.

Customer Management
Splynx has an advanced User Management. Each customer can have his own billing settings, where administrator is able to define when charge
the customer or disconnect him, what is his payment method and other individual parameters.

Customers have three types of services - Internet, Voice and Custom. The access information like PPP username/password, IP addresses,
Router information, MAC address is also defined in Services section of customer. You can generate document PDF such as agreement,
installation document etc.

Please, follow the sections below to find tutorial page about every single part of Customer Management:

Adding new customer

Additional fields

Search

Configuration of table, configuring list view

Customer information

Customer services

Customer billing

Customer statistics

Customer documents

Prepaid vouchers

Adding new customer


To add a customer, click on the Customers Menu + Add. The window will pop up where you will fill in the next fields:

Login and Password - it is possibile generate a new login and password or add it manually. The button

is used for generation of new login and password.


Type of billing - if customer is fully prepaid or we will charge him monthly (recurring charge).
Full name - full name of the customer
Email - email of the customer
Phone Number - phone number of the customer
Category - if customer is a private person or a company
Birthday - birthday of the customer
Passport - passport of the customer
Partner - partner of the customer
Location - location of the customer
Date add - the date when the customer has been added
Street - Street of the customer
ZIP code - ZIP code of the customer
City - city of the customer
Contract ID - contract ID of the customer
Custom Status - the options are: customer, deactivated, new
VAT ID - the vat ID

Login and password are created based on pattern. To define the pattern, click on Config Main Customers. This is a way to define symbols for
generation of login and password.
It is possible to personalise customer's parameters with the function Additional field in Config System Additional fields. When you create the
additional field for a customer, select Add to get the parameter in the customer's profile by default.
Custom additional fields
To add additional field, click on the Config menu, scroll down to the end of the page and click on

Additional field. Select the module where you'd like to add an additional field and click on

.
A window will pop up and it will be possible to create an additional field. In this example, it shows a "Service Location" additional field for the
Customers module and "Serial Number" additional field for the Networking module.

Required - impossible to save without filling in this field.


Unique - unique value for this field.
Show in the list - shows in the list of the selected module as a column.
Add - add to the entry of every module.
Searchable - searchable.
Set default value for - set as a default value for every field.

When the new field is created, it is possible to see the new field in the Additional Field table and in the Customer Information view:
A window will pop up and it will be possible to create an additional field. In this example, it shows a Contract ID additional field for the Customers
module.
Required - impossible to save without filling in this field.
Unique - unique value for this field.
Show in the list - shows in the list of the selected module as a column.
Add - add to the entry of every module.
Searchable - searchable.
Set default value for - set as a default value for every field.

When the new field is created, it is possible to see it in the Additional Field table and in the Customer Information view:
Search
The Search engine in SPLYNX is divided in:

Search a customer or a card


Search inside a table
Search in the whole system

Customer search

To search a customer, click on Customers Menu Search. In the poped-up window will be possible to make a search in the customers database.
Here you will be able to use different parameters for the search, such as:

ID - ID of the customer
Login - the login of the customer
Status - the options are: New (not yet connected), Active, Inactive (doesn't use services), Blocked, Select all (to select all options).
Type of billing - it can be Recurring Payments, Prepaid, Select all (to select all options).
Email - email of the customer.
Phone Number - phone number of the customer.
Date add - the date when the customer has been added into database.
Category - the options are: Private person, Company, Select all (to select all options).
Partner - one of the partners created or all of them.
Location - location of the customer.
Tariff - the tariff created
Service - the options are: Internet, Voice, Custom.

To get a more customizable search, you can click on My Profile Menu Customer search fields and select different fields.
To search a card click on the Customers Menu Cards Search. It is possible to do a search in the Prepaid cards database with that option.

Different parameters for searching here can be used, such as:

ID - ID of the customer
Serie - the card's serie
Prefix - the card's prefix
Status - the options are: New, Active, Expired, Used, Disabled, Online, Select all
Full name - name of the owner
Phone - phone number of the owner
Email - email of the owner
Seller name - name of the seller
Partner - name of the partner
Location - location where the customer's card is based

Search inside a table

It is possible to search a particular data inside any table in Splynx. Use the search tab of every table and get the complete view as a result.

Search in the whole system

It is possible to do a full text search in the system. Use the main search tab as it is shown in the screenshot.
Configuration of the Table, List
It is possible to customize every table and change the columns' order. Click on

below the table and drag and drop fields in order preferable for you or turn the field on\ off.
In addition, it is possible to print, copy or export a table in Excel, CSV or PDF formats. Click on

and select the option you'd like.

Customer information
Customer information is divided into Main information and Additional information, both of them are shown in a view.
ID - ID of the customer. It has given by the system in a sequential order
Login - user login
Password - user password. The password is masquerade by default, but it is possible to see the password in plain text, if you just click on
the password field
Status - the options are: New, Active, Inactive, Blocked. It is not possible to operate with some functions on the customer if the status is
not Active. In order to delete the customer the status has to be Inactive
Type of billing - the options are Recurring payments or Prepaid
Full name - full name of the customer
Email - email of the customer
Phone Number - phone number of the customer
Partner - partner of the customer
Location - location of the customer
Street - Street of the customer
ZIP code - ZIP code of the customer
City - city of the customer
Date Add - when the customer has been added

It is possible to create additional field with the function Additional fields.

Customer services
It is possible to associate different services for every customer: Internet services, Voice services and Custom services. In order to add a new
service for the customer, select the Customer view and click on + sign next to the service (make sure customer is in Active status).

A window will pop up and it will be possible to select the service.


Tariff - the tariff (Internet, Voice, Custom)
Description - a description of the tariff
Quantity - the quantity
Unit - number of unit
Price - the price
Start date - when the service will start
End date - when the service will end
Discount - it is possible to set a discount with the percentage, start and end dates of the discount
Status - the options are Active, Disabled, Stopped, Pending, Archived.
Active - Usual status for work.
Disabled - Service with data end reached.
Stopped - Used for set customer to status Inactive, when customer will be activated , it will be automaticly changed to Active.
Pending - Waiting when will be activated.
Archived - Only for future information.

Tariffs options
Router - we can select the router
Login - the login
Password - the password
Tacking IPv4 - the options are None, Permanent IP, Dynamic IP
Mac(s) - Mac address
Port ID - the port ID

You can edit tariff/service, check its statistic, see the graf of services or delete them by these actions

Customer billing
The Customer Billing is divided into:

Billing Overview

Transactions

Invoices

Payments

Proforma Invoices
Billing Overview

Billing Overview displays 4 main sections:

Billing Settings
Actions
Proforma Invoice settings
Reminders settings

It is possible to see the Billing settings for the selected customer (The global settings for all customers are in Config Finance Settings).
Billing Settings:

Billing Enabled - enable billing for customer


Period - it can be prepaid or postpaid
Payment Method - it is possible to select how the customer will pay
Billing day - when the customer will be charged
Billing due - when the customer will be blocked
Grace Period - when the customer's services will be disabled
Minimal balance - minimal balance for the customer
Make Invoices (after to charge) - create an invoice automatically after the charge

In Actions section you can see the type of customer's payment account with his billing address set by default taken from the Main information of
the customer.

It is possible to charge the customer manually with the action To charge. Select date and period of charging, click on Preview to see services
description and click on To charge. The system will automatically charge the customer, and it will be shown as a new transaction in the
transaction's table.
Please note, that if you are charging customer manually, the new invoice will be created only if Invoicing option is enabled in Customer's Billing
Billing OverviewBilling settings.
It is possible to set a discount for the customer before you charge him. You can choose that option in Customer's services: select the service
where you'd like to make a discount, and click on Edit icon

. The window will appear where it will be possible to enable Discount and set up Discount percent, Discount start and end date, and Discount
message. After discount is set up it will appear in

window and final price will be automatically counted.


In Actions section you can also generate a Payment calendar for the customer by using templates.
In Proforma Invoice settings is possible to enable Auto proforma invoices creation for the current or next month with choosing a prepay type (up
to 12 months).

In Reminders settings you can enable sending automatic reminders to the customer to avoid him to get blocked or inactive. It is also possible to
enable payment option for the last reminder and set an amount of reminder payment with comment on it.
Transactions
In the Transaction's table all shown transactions related to the customer. They are divided into Debit transactions, when we make an invoice to
be paid by a customer, and Credit transactions, when payment from customer has been received.

There is an option to print out, copy or save customer's transactions in CSV or PDF files.
There is also an option to choose columns, which will be displayed in the transaction's table by sorting show/hide columns.

To know more about transactions, please, visit transactions manual page - Transactions.

Invoices

Every customer's invoice is shown in this table. It contains invoice number, date of issuing the invoice, payment date and status of payment. The
same as with transactions there is an option to print out, copy or save customer's invoices in CSV or PDF files and sort columns by drag&drop
fields.
Detailed explanation of Invoicing you can find here - Invoices

Payments
Payment table contains all payments, related to the customer with the date of payment, payment type, amount, invoice number and comment on
the payment. The same as with transactions and invoices there is an option to print out, copy or save customer's payments in CSV or PDF files
and sort columns by drag&droping fields.

More information about Payments you can find here - Payments

Proforma Invoices
All Proforma invoices related to the customer will be shown in this table containing invoice number, date of invoice, total amount, payment date
and status (if it's paid, unpaid or overdue). There is the same option to print out, copy or save customer's pro forma invoices in CSV or PDF files
and sort columns by drag&drop fields.

Detailed information about Proforma invoices and its creation you can find here - Proforma invoices

Customer statistics
Customer statistics displays his Internet usage for a certain period of time.

Customer statistics is divided into 3 main sections:

Total for period where will be shown number of sessions, errors, time in total, downloaded and uploaded amount of data.
Graph which will show statistics for a certain period of time. You can set up an hourly, daily, weekly, monthly and yearly graph to be
displayed, where you will see maximum, minimum and average data transfer speed.
Sessions, where in form of table will be shown all sessions for a certain period of time with connected\ disconnected time, number of
errors, amount of downloaded and uploaded MB etc.

If customer uses few services it is possible to choose preferable one or All Internet option, where all services will be shown. It is also possible to
set a filter for particular period of time or services to be displayed.

Customer documents
The purpose of Documents section in Customer profile is to store all important documents for every customer (agreements, additional
agreements, certificates or manually made invoices etc). This documents will be available for customers use in Customer portal.
Documents can be uploaded in any format you will choose or generated with the help of templates.

1. How to upload a document to Splynx.

To upload a document in Spynx click on

on the top right corner and window "Upload file" will appear. Here you can write the Title of the document, its Description (optionally) and choose
if you'd like this document to be visible to a customer by turning this option on\off. Then click on File

and choose the document to be uploaded.

A soon as file will be uploaded it will also appear in a list of Documents.

In Operations column of the table will be additional options of using this file, such as Edit

, View

, Download

, Send to a customer

and Delete
.

Once file had been uploaded it will also appear in Customer portal if option Visible by customer was turned on. Customer will find it in Documents
section.

Customer can download and view the file from here by clicking on Download icon

on the right side of the table.

2. How to generate document in Splynx.

Another way to have files in Documents section is by generating them. To generate a document in Splynx click on

on the top right corner and the window "Generate document" will appear. Here you will write a Title of document, its description (optionally) and
choose if you'd like the document to be visible to a customer.
There are to options to generate the body of the document:

1) It is possible to simply type it in the text area window and then click on Generate or Save as a new template (option above the text area).

There are here text formatting and editing tools, where you can not only choose a size of the letters, font or colour of the text but also insert the
image or URL link, or print the document. You can also see the Preview of the document before generating by clicking on a Preview option on the
left side of the text area.
As soon as document will be generated it will appear in the list of documents in a table.

2) It is possible to use a Template to create a document by clicking on a Template window, choosing a Template and then clicking on

option. Write a Title of the document, make it visible to a customer (optional) and then click on Generate.
It will appear in the list of documents in a table and in a Customer portal as well, where customer will be able to download it and read. Below is an
example of the documents list on a Customer portal for a particular customer.
Before using Templates it is necessary to configure them first in Config System Templates:

By clicking on a "Type" option on the top right corner and you can check all templates you've already have in each category such as Cust
omer portal, Invoice PDF, Mail, SMS, Documents, cards, Payment calendars.

To create a new template choose a type of template first (Document) and then click on

option. A window "Create template" will appear where you will write the Title, Description (optionally) and a code for the template.
You can also edit existing template or delete it by clicking on options

and

in Operations column of the table.


CPE management
Splynx is able to manage Customer Premises Equipment, and apply some QoS rules. At the moment it works only on MikroTik.

To add CPE choose the Customer who owns this equipment and set IP and Login/Password of API. Select service customer is using with that
CPE and enable QoS if you'd like to set some rules.

If all data is correct, you will see the signal of CPE.


Once CPE is connected, we can set some QoS rules to prioritize and guarantee some services. For example, we set a rule to prioritize VOIP
traffic and guarantee a minimum speed.
CPE management allows to control some WLAN settings. In this case the WLAN settings appear in the box. WLAN is editable and we can make
changes from Splynx, for example, change SSID, password, interface, protocol, mode, security, encryption and disable it.
The other way is to add it manually and set all information.
Another feature is managing of CPE status, it shows information about API status, board name, version CPU, last status, and also you can check
interfaces by clicking on

.
It's posible to see information about rates, data trasmited/recieved, erros and status.

Finally, you can enable DHCP server from CPE and set interface, network, pool and other features.

Prepaid vouchers
In Splynx core we have a powerful Radius server which provides different types of services to end users. One of our popular services is hotspot
access for hotels, conference halls etc. Soon we will create a module for Splynx that can add PayPal, Cards and Online Registration features. At
the moment, you can use Splynx for providing hotspot access to regular customers or generating prepaid vouchers for one time access. Pictures
with examples of how to generate customized prepaid vouchers are shown below.
Here you can define voucher prices, download and upload speed, and max. traffic. Once vouchers are generated you can edit and customize
each one, and set up the contact details of customers using the cards.

Each voucher has its own statistics, charge of usage and detailed information :
Configuration of Hotspot for prepaid cards you can find in Radius hotspot configuration page

The video tutorial below shows configuration of prepaid vouchers in Splynx :

Customer Portal
Customer portal provides each customer a private access to his Account containing information on his services and its statistic, financial
aspects of provided services. Customer can also check here his profile, latest news and updates, important documents including financial
documents, all messages received or tickets submitted for support.

A Side panel of customer's account in portal can display following Modules:

Dashboard - can display general information about customer current balance, unpaid invoices or proforma invoices, new messages,
new tickets and latest news.

Statistics - shows statistic of the services customer is using. In the top-right corner of the screen customer can choose type of the
service to be displayed in statistics and period of time.
Services - show all customer's services such as Internet, Voice or Custom services.

Finance - displays financial information such as Transactions, Proforma Invoices, Invoices and Payments. Here customer can view or
download them by clicking on View icon

or Download icon

in Operations column.
Messages - shows all messages has been sent to a customer to Customer portal. By clicking on View icon

in Actions column customer can read the message.

News - shows latest news and updates for a customer.


Tickets - shows all tickets submitted for technical support. By clicking on View icon

in Actions column customer can read the ticket.

Here customer can also create and submit a new ticket by clicking on Create ticket icon in the top-right corner of the screen. The window "Create
ticket" will appear where customer will write Subject of the ticket, choose Priority, write a message and upload any files if needed.
Documents - contains any documents which can be important for a customer, such as Agreements, Additional Agreements, manually
made Invoices, Certificates etc. Customer can view and download them from here by clicking on Download icon

in Actions column of the table.

Profile - shows customer's main contact and access information. If fields are marked in white customer can change information in them,
if they are dimmed customer can only view that information.

About - Splynx contact information


Logout - Logout from customer's account

Customer portal can be configured according your and your company needs. To configure Customer portal click on Config Main Portal.
The main sections to configure here will be:

1. Main
2. Menu
3. Dashboard
4. Profile
5. Statistics
6. Services
7. Finance
8. Additional attributes in profile.

Detailed information about configuring Customer Portal can be found here - Portal.
Finance
Finance module is one of the important parts of Splynx billing system.

Splynx has Prepaid and Recurring billing engines. It's possible to define which billing engine is used by customer in his settings in Customer
Billing Billing overview.

Please, follow the links below to find tutorial page about each feature of Finance module:

Billing engine

Transactions

Invoices

Proforma invoices

Payments

History & Preview

Bank statement processing

Refill cards

Billing engine
In Billing engine section we describe the difference between Recurring and Prepaid billing of the customer. Let's start with financial dashboard
that shows us information about Splynx financial status:

Debit transactions
Payments
Paid Invoices
Unpaid invoices

In particular, it shows the current month and last month statistics.

1. Recurring billing engine

Recurring billing is the best solution for ISP charging customer a fixed price on a recurring basis typically at the beginning of the billing cycle.
Recurring type of billing is set by default in Splynx global configuration.

You can set up recurring type of the payment for a customer in Customer Information section (Customers View) by clicking on Type of billing o
ption and choosing Recurring payments as a type of billing.
Recurring Invoices can be issued every month in advance (Prepay) or in Postpay Mode. One month in advance means, for example, that
1st of May Splynx will generate invoices for 1-31 of May. Postpay means that Splynx generates invoices on 1st of May for the period of
1-30 of April. You can set up Prepay or Postpay mode of recurring payments in Customers ViewBillingBilling overview. In Billing settings
click on Period and choose Postpay or Prepay mode with options to pay up to 5 months in advance.
Choose a Payment Method for recurring payment, such as Cash, Bank Transfer, Credit Card, PayPal, Refill Card, BrainTree and others.
The next step of setting up Recurring payments will be to choose the Billing day and Billing due day. Billing day is a day of Invoice
generating. Billing due day is the last day when customer have to make a payment before get blocked. In our example we choose 1st day
of the month as a billing day and 15th day of the month as Billing due day, which means that Invoice will be generated on 1st day of the
month and if customer don't make a payment until 15th day of the month, the next day he will be in blocked status. Even though customer
will have blocked status, his services will be still accounted.
You can choose a Grace period - time when customer will have inactive status. In our example it will be 10 days, which means after 10th
day customer's status will be automatically changed for inactive and his services won't be accounting.
Minimal balance defines the customer balance in Recurring payment and is set by default to "0" in Global configuration, but it it possible
to set it up here individually for a customer.
2. Prepaid billing engine

Prepaid billing is used when ISP charges customer in advance and provide him access for certain period of time. When balance of the customer
reaches set limit, he is disconnected.

To set up Prepaid type of billing we need to change the billing type of customer to Prepaid.
The next step is to choose Payment method, such as Cash, Bank Transfer, Credit Card, PayPal, Refill Card, BrainTree and others.

Then we define what is the value of customer’s balance when Splynx will block his access to internet. By default it is set to “0”, but it can
be changed in configuration of each customer inside of the field “Minimal balance”.
After setting up type “Prepaid”, we need to add a payment to customer’s account by clicking on Add payment button in Customer Billing
Payment. For example, 20 USD has been added.

The deposit of the customer changed to 20 USD.


Let’s, for example, add a service of 5 Mbps for 40 USD/month. Splynx calculates the daily rate of the plan and charges user every day.
There are 30 days in October, so daily rate will be 1,33 USD. Tomorrow balance of the customer will be changed from 40 USD to 38,66
USD and will continue decreasing every day according to his plan.

In this particular situation, when customer has 20$ on a deposit, he will get access for 15 days. Then he will reach “0” on his balance and Splynx
will block him.
If we will check the deposit of the customer the next day, it will be reduced based on the daily fee:
Also one transaction has been added, which shows how much we charged. This transaction is updated every day and it shows the total amount of
money that has been taken from customer’s deposit.

If option Make invoices (after to charge) is enabled, Splynx will generate an invoice for consumed services on a first day of the next
month.

Transactions
The whole billing process inside Splynx is based on transactions. Transactions are the key point in billing, and they are always added when there
is a change in the customer’s flow or balance:

a. Each invoice period Splynx charges customers automatically. The admininstrator can set up the invoice date as the 1st day of the month, and
then customer will be charged for the calendar month.
Splynx has the ability to charge each customer on a different date. For example, one customer is charged on the 15th day of the month, and
another customer is charged on the 20th. This action creates an “+ Debit” transaction.

b. When a customer pays for services, a transaction is created. He can pay via bank transfer, cash or online payment gateway. Splynx will always
pair the payment with the customer’s account and create one payment transaction. A “- Credit” transaction is then created.

c. When administrator adds or removes money to/from the customer’s balance.

d. When correction is needed, it’s also achieved with a transaction.

Thanks to the transaction system, there is always a clear history as well as a way to track changes in the customer’s profile.

Transactions table in Finance Module displays all type of transactions related to the customer and contain Customer name, ID, date of
transaction, type of transaction (debit or credit), its description, price etc.

There is a table called "Totals" below which shows type of transaction (Debit / Credit), number of transactions in each type and total
amount of money.

In fact you can set a filter to view particular transactions, for example, by partner, by transaction's category or its type or period.
There is an option to print out, copy or save in CSV or PDF files transactions, chosen by you.

You can also choose columns which will be displayed in the transactions table by sorting show/hide columns.
To correct customer's balance is possible to create a new transaction and add invoice from transaction. You can find that option in Cus
tomer View Customer Billing Transactions.

When you click on Add transaction a pop-up window will appear with different options of new transaction you can choose: Type (Debit/ Credit), De
scription, Quantity, Unit, Price, VAT, Total amount, Category (service, discount, payment, correction for customer's balance, Braintree fee etc.), D
ate, Comment on the transaction and Period.
After the new transaction's created it is also possible to generate an invoice manually by clicking on Add Invoice from transaction in the
Transactions tab. The window will pop-up where you can fill in following fields: Description, Price, Period, Note for the customer or Memo
for you (if necessary).

Once transaction is created it is possible to edit or delete it

. Please note, if you've added an Invoice from transaction there is no longer a possibility to edit that transaction, but invoice only.
Invoices
An invoice is a commercial document that specify a transaction between a buyer and a seller. If goods or services were purchased on credit, the
invoice usually specifies the terms of the deal, and provide information on the available methods of payment. An invoice is also known as a bill or
sales invoice.

Splynx provides the ability to work with or without invoices. Without issuing invoices, Splynx just receives payments and charges customers each
invoice period without creating an official document. When invoicing is required, Splynx is able to generate invoices automatically, or the
administrator can issue invoices manually. Invoices can be created conjointly or separately. Invoices in PDF format are fully customizable. All
documents generated by Splynx can be exported to different formats to the end users for printing or sending.

All issued Invoices can be found in Finance Invoices. It is possible to range them by Period of time, Partner or Status (Any, Paid,
Unpaid, Deleted). Under the list of Invoices will be a Table called "Total", which displays all Invoices for a particular period of time by their
status, number of Invoices in each status and amount of money paid and unpaid in each status of Invoice.

To print or to export the list of invoices for accounting purposes, click on Finance Invoices and click on Export.
In export you can choose the period of time and the export type (PDF, CSV, external handler etc.).

It is possible to operate on every invoice with the icons

in the column Operations.


To view an invoice with

, it is necessary to configure an invoice template first in Config SystemTemplates and define an invoice template in Config Finance
Template Values.
In the page Template values, it is possible to define the partner and the PDF template (Invoice PDF example by default). Once the PDF template
is defined, the invoice will be visible.
The invoice is customizable. Click on Config Main Localization, where it is possible to define the currency and other finance settings
.

There are global billing settings for all customers in Config Finance Settings.
Billing Settings:

Billing Enabled - enable billing for customer


Period - it can be prepay or postpay
Payment Method - it is possible to select how the customer will pay
Billing day - when the customer will be charged
Billing due - when the customer will be blocked
Grace Period - when the customer's services will be disabled
Minimal balance - minimal balance for the customer
Work with - it can be with the Deposit or the Balance

More information about Invoices global configuration can be found here - Finance configuration.

In Invoices Settings is also possible to set an invoice issuing automatically and to define the invoice number pattern.

When option "Make Invoices (after To charge)" is not selected in Billing Overview Billing Settings, it is possible to generate an invoice manually b
y clicking on "Add Invoice from transaction" in the Transactions tab.

800p
x

Another way to create Invoice is by clicking on Add Invoice in Billing Invoices, where you can enable Use transaction option, write a
description and period of service, note for customer or memo for yourself.

To edit an invoice with

icon, click on the tab Billing Invoices.


It is also possible to send the invoice via email with

icon (if the email server is configured) in Billing Invoices. You can write a message body or choose it from templates and load it.

You can also write here a message body and save it as a new template.
Proforma invoices
Pro-forma Invoice is an abridged or estimated invoice sent by a seller to a buyer in advance of delivery of servives\ goods. It notes the kind and
quantity of services\goods, their value, and other important information. Proforma invoices are commonly used as preliminary invoices with a
quotation, or for customs purposes in importation. They differ from a normal invoice in not being a demand or request for payment.

In our billing system Proforma Invoice can be used as a request of payment in advance. For example, it can be created 1 month before the
occuring payment, so you will see if customer is able to pay the Proforma Invoice. When proforma invoice is created, the customer’s
balance hasn't changed. The main reason for this billing approach is to prevent the payment of VAT tax for non-paying customers. If the customer
pays the amount specified in the Proforma Invoice PDF, the company can issue a tax Invoice.
An example of this document is shown in the picture below:

All issued Proforma invoices can be found in Finance Proforma Invoices. It is possible to range them by particular period of time or
partner.
By clicking on a period you can set it up manually, so you can select the option to show all proforma invoices for today, yesterday, last or 30 days,
this or last month or just choose a custom range and click on Apply.

It is possible to operate with every proforma invoice with icons

in the column Operations.

To be able to view the proforma invoice in PDF with icon

, it is necessary to configure an invoice template first in Config SystemTemplates and define template values in Config Finance
Template Values. More information about Invoice's template configuration you can find here - Templates, Invoices.
You can also set up proforma invoices global settings for all customers in Config Finance Settings.
More information about Proforma Invoice global configuration is here - Finance configuration.

To edit the proforma invoice with

, click on the tab Billing Proforma Invoices.


It is possible to send the proforma invoice via email with

(if the email server is configured). You can write a message body or choose it from templates and load it.
You can also write here a message body and save it as a template.
To print or export the list of proforma invoices for accounting purposes, click on Finance Invoices and click on Export. You can select
here Period of time, Partner, Location, Customer payment type (cash, bank transfer, PayPal, Credit card, refill card etc.), Status (paid\
unpaid), Export type (CSV, PDF file inactive, one PDF file etc.). You can also check an export history here.
It is possible to enable auto making of proforma invoices in Customer's Billing Billing overview with choosing particular day, month
and type.

There is a possibility to create Proforma Invoice manually by clicking on Add Proforma Invoice in Customer's Billing Proforma
Invoices.
Payments
Splynx processes payments. When customer pays cash at your company office, the cash desk module can be used to enter payments into the
system. The cash desk operator’s access is limited: he can only accept, enter payments and view customers’ details. The administrator can add
cash payments into the system as well.

ISPs usually have different payment methods; Splynx supports bank transactions or generation of SEPA payment orders and also wide range of
payment gateways.

Payments' table in Finance module displays all different types of payments for a particular period of time according your choice. You can
also range them by Partner. Under the list of Payments will be a table called "Totals", which will display all types of payments for a
particular period of time with number of payments in each type and amount of money in each type.
To export payments selected by you into one PDF or CSV file click on tab Export and window with exporting options will pop-up, where
you can create an export based on partner, location, customer payment type etc. Here you can also select an export type of the file.
It is possible to add the payment manually (without making an invoice). You will find that option in Billing Payments. Click on Add
Payment button and window will pop-up, where you can select a Payment type (Cash, Bank transfer, PayPal, Credit card, Braintree etc.),
add a Date of payment, Amount, Receipt number, Note for customer and Memo for you etc. You can also enable Send receipt option h
ere, so customer will receive a receipt after payment will be made. After payment will be created a credit transaction will appear in
Transactions table (Customer's BillingTransactions).
It is possible to operate with every payment using icons

in the column Operations. For example, with

option you can edit the payment, with icon

you can send payment receipt to the customer, with icon

you can download payment receipt in PDF format.


History & Preview
Preview is autogenerated at 2:00 AM on billing day, auto confirmation is made at 22:00. It shows all transactions, invoices and proforma invoices
issued for a particular period of time. It is possible to set a filter by period of time according your needs, for example, custom range for a few
months or half of the year.
When you click on icon

in Operations column a window will appear with all transactions, invoices and proforma invoices issued for that period. You can download the list
of transactions and invoices in HTML format.

History Preview could be a useful feature for the mass billing, when you need to double-check customer's services and prices for a group of
customers before issuing invoices for them. It is possible to do by creating proforma invoices for customers, who is due to pay, and checking them
in a history preview.

How to create Proforma invoices (automatic and manual creation) were mentioned in Proforma invoices. After proforma invoices (for a particular
day) will be created you can check the full list of them in Finance Proforma Invoices.
Then click on icon

in Operations column in Finance History Preview and download file with all proforma invoices for the period that need to be checked. The rest of
invoices and transactions for that date will also be there.

Bank statement processing


The bank statement processing feature lets you reconcile payments receivable with invoices issued by paring them, so it can proceed multiple
payments. Bank payment transactions are automatically processed by Splynx handlers – small modules created for each bank file format.
1. Bank statement processing starts with importing bank statement format file into Splynx. For each bank different handler can be used.
We can also connect your bank to email processing bank statements.

2. When the file's been downloaded next step is to set up matching criteria for bank statement processing and click on Preview.
3. The table with paired data will appear where we can check all matches with payments and invoices. To finish process multiple payments
click on Process button below the table.

4. The message will appear that payments paired successfully. Then, in Bank Statements History (Bank Statements History) you will be
able to check downloaded file with information in the table about status of bank statement importing, records, processed payments and errors.

It is possible to see processed payments from particular bank statement more detailed. If you click on View option

in Actions or on a title of each file in Title column, the window will pop-up with description of every status of processed payment.

Payments with Error or Ignored status can be checked and paired manually by clicking on

icon in Actions. Payments will be in Ignored status when they've been already paid, but you can always double check them and manually pair.
When you click on Manual pair icon

, a new window will pop-up, where you can search for a customer by entering his ID, Login, Contact details, Partner, Status, etc. in Customer
section of the table.

You can also search by entering Invoice number or Proforma Invoice number in Invoice section or Proforma Invoice section of the table or check
all invoices \proforma invoices for a particular period.

When you find a customer who's payment needs to be paired, click on Manual pair icon

in Pair column of the table. The window will pop-up where you will confirm the paring.
After manual paring is done the status of the payment in a Bank statements history view (Finance Bank Statements View History) will be marked
as Manually paired.

Refill cards
Very easy and convenient way for your customers to pay for their services or make a prepaid deposit is to use refill cards. You can generate Refill
cards in Splynx with further exporting them in PDF and CSV format, printing out and delivering them to customers. Your customers, in turn, will be
able to redeem refill card via customers' portal.

1. How to generate Refil cards for your customers.

In Finance Refill cards Generate set up parameters for Refill cards generating: Quantity, Prefix, Price, choose the partner and valid
date, and click on Generate.

As soon as cards will be generated a window will pop up with a table of refill cards series.
In Actions column will be options

for editing, viewing the list of Refill cards' series, exporting them and deleting. To edit refill cards serie click on

and window will appear enabling you to make changes.

By clicking on icon

or on card serie in the Serie Column a table of all cards created under this serie will appear with their full codes.
Here you can redeem customers' card to top up their balance by clicking on

As soon as card will be redeemed its status will be changed.

In Customers View Billing Payments will be possible to see activated card and amount of deposit made on the customer's account.
By clicking on icon

you can export cards in two available formats: SCV and PDF for further printing out and sale to customers.
2. How customer can redeem purchased refill card.

In Customer's portal customer will go to Finance Payments Refill card and enter the card's code into Code window.
Customers will be able to check their balance in Finance Payments List, where date of the payment, payment type, amount and possible
comment on the payment will be shown.

Networking
Important part of Splynx software is Network management. We use the following technologies for Network Management:
Radius protocol – central customer authentication, locking non-payers, getting statistics of Internet usage, support of different vendors.
Mikrotik API – advanced bandwidth management on RouterOS. CPE configuration and provisioning.
SNMP - monitoring and building weathermaps directly in Splynx.

The following network management topics are described below:

Blocking customers in Splynx

Authentication of admins, Radius

Authentication of users
Bandwidth management

Routers settings

IP address management

Monitoring

Weathermaps

Troubleshooting Radius server

PPTP Connection between Splynx and Mikrotik

Blocking customers in Splynx


Splynx blocks non-paying customers automatically. Administrator can also manually block the customer. When customer is set in Blocked or
Inactive status, Splynx sends to router command to block him. If status is changed on Blocked, Splynx never cuts the service, but places the IP of
end user to Address-list or give hime IP address from IP pool for blocked customers. Then administrator can create a rule on router for redirection
of non-payers to a special page.

Splynx has 4 default blocking pages which are located at : http://yoursplynxurl:8101, http://yoursplynxurl:8102, http://yoursplynxurl:8103 and http://
yoursplynxurl:8104

It’s a simple HTML file, which you can change via command line inside your Splynx installation (SSH) at /var/www/splynx/web/errors/ and folders
1,2,3,4 correspond to ports 8101, 8102, 8103 and 8104

Example of default blocking page is shown below:

Example of how this page can be customized:


There are 4 types of blocking scenarios :

1. Mikrotik API blocking


If you use Mikrotik based authentication – Hotspot, DHCP, Wireless or PPP, then as the first step you should enable API blocking of users. It’s
called “Disabled customers to Address-List” in Router API settings:

When customer is moved to status “Blocked”, his IP address is put to address list “SpLBL_blocked”. With setting up the rules for redirection you
can manage that customer will see special webpage with information, why his access to the Internet was blocked.

2. Radius COA blocking


In Radius by default we also work with Addres-lists. Splynx uses names of address lists Reject_1, Reject_2, Reject_3 and Reject_4 for different
type of errors. The names of address lists are configured in Config -> Networking -> Radius and also in a field COA Block attributes:
3. Radius Session disconnection
The difference between Radius COA block and session blocking is that with COA session of customer is not disconnected, while in Session
blocking his session is cut and user must reconnect his device.

The setting of blocking the user is defined in Config -> Networking -> Radius “Customer Block” and “FUP Block”:

4. Radius IP pool blocking


If customer gets IP from dynamic pool, or when NAS router is not a Mikrotik, Splynx gives IP from Reject IP pools to blocked customer. By default
these pools are 10.250.25x.0/24, but it can be changed in Config -> Networking -> Radius, as it shown on the screenshot below:
If you use Mikrotik routers, there are 2 rules to redirect all TCP traffic to the blocking webpage and to cut all other traffic like Peer to peer
connections (redirect them to router itself):

/ip firewall nat add action=dst-nat chain=dstnat protocol=tcp src-address-list=Reject_1


to-addresses=10.0.1.158 to-ports=8101
/ip firewall nat add action=redirect chain=dstnat protocol=!tcp src-address-list=Reject_1

There is another approach where to redirect customer, the Proxy server in Mikrotik RouterOS is using it :
IP 10.0.1.16 is the router's WAN IP address.

/ip proxy
set enabled=yes

/ip proxy access


add action=allow disabled=no dst-host=10.0.1.6 dst-port=80
add action=deny disabled=no dst-port=80 redirect-to=10.0.1.16/portal/
add action=deny

/ip firewall filter


add action=drop chain=forward comment="Block All" disabled=yes log-prefix="" src-address-list=Reject_1
add action=accept chain=block comment="Users need DNS to work" dst-port=53 protocol=udp
add action=accept chain=block comment="Make port 80 to work" dst-port=80 protocol=tcp
add action=drop chain=block comment="Block everything else for blocked users"
add action=jump chain=forward comment="Redirect blocked users to the block chain" jump-target=disconnected src-address-list=Reject_1

All four methods of Splynx user blocking you can find on our video tutorials:

Mikrotik API blocking of non payers

Radius COA blocking of non payers

Radius code disconnect (session reset)

Radius reject IP pool assignment


Authentication of admins, Radius
Part of Splynx Framework is a Radius server. Radius protocol is used for authentication, authorisation and accounting purpose (AAA).

With Splynx you can setup that when administrator accesses equipment, his credentials will be checked over Radius server database. If his
Username/Password is correct, he will be able to login to equipment. If not, he will not get access. This is a very convenient approach compare to
local login. Imagine if you hire a new administrator and you need to update hundreds of routers, APs and switches to create him local login
everywhere or you can give him one common Login/Password. But when person leaves the company, you should change these credentials
everywhere. Better is to connect all networking devices to Radius server and verify administrator login using Radius protocol.

Below are tutorials of how to configure admin Login using Radius Splynx server on different platforms:

Mikrotik: Radius admin login to Mikrotik routers

Cisco: AAA for login on Cisco equipment

Juniper: Juniper admin login using Radius protocol

Admin login to Mikrotik routers


It is possible to authenticate administrators locally on the router or using the Splynx Radius server.

To configure the Radius Server, click on Config Networking Radius and click on load at the bottom of the page.
Turn the mode Use admin login on:

Select the router you want to configure with Radius. Click on Networking List, select the router and write down the Radius secret password that is
going to be used in the router Radius configuration.
Open Winbox, click on System User and the User List window will pop up. Click on AAA (Authentication and Accounting), flag Use Radius.

Click on System User, the User List window will pop up. Select the tab Active Users, click on Radius, click on the default service and flag the
Radius service you want to use: ppp, hotspot, dhcp, login. Insert the Radius Server, the Radius secret password, the source address of the
interface connected to the Radius server.
In Splynx, click on Administration Administrators, click on Add and fill up the administrator's fields.
It is possible to chose the role of the administrator: Administrator, Customer Creator, Financial Manager, Manager, Super Administrator. In
Router access (radius) the default permission are: read, write, full.

It is possible to edit, change the permissions or delete the administrator with

Now, if you try to connect the new Administrator to the winbox-router, you will see the new user created with the Radius server in User list.

It is possible to see all operations of each Administrator. Click on Administration Logs Operation.
If you click on

, you will see a pop up window with the operation in details.

If you need a short log of the Radius login, click on Administration Logs Operation and click on the icon
Admin login to Cisco devices
First of all, we need to grant permissions to access routers to Admin in Splynx. We have created a test admin who will login to devices:
Splynx has 3 permission levels - Full, Write and Read. These levels can be mapped to Cisco privilege levels:

I'm creating admin with Full rights and then in Config Radius Cisco will choose that attribute used for Full access has privilege level 15:
Cisco-AVPair = shel:priv-lvl=15 says that Splynx will grant privilege level 15 to test admin when he connects to Cisco router/switch:

Also we need to add router to Splynx and choose NAS type = Cisco and setup the same Radius secret as we will setup on Cisco router:
Now we need to configure Cisco device to accept radius authentication and privilege levels:

aaa new-model
aaa authentication login SPLYNX group radius local
aaa authorization exec SPLYNX group radius local

radius-server attribute 6 on-for-login-auth


radius-server host 10.0.1.16 auth-port 1812 acct-port 1813
radius-server key 123456

line vty 0 4
authorization exec SPLYNX
login authentication SPLYNX
transport input ssh

for SSH configuration please run these commands:

cisco(config)# ip domain name splynx.test


cisco(config)# crypto key generate rsa || (chose at lease 1024 bit key)
cisco(config)# ip ssh version 2

When commands entered to Cisco and Splynx are configured, admin is able to login to the Cisco router via SSH:
Admin login to Junipers

Authentication of users
Splynx supports different ways of customers' central authentication in the network of Internet provider. It always depends on topology of ISP and
technology that ISP decides to use. Access technologies are widely used and their advantages and disadvantages are described below:

PPPoE - easy to maintain and implement. Customer on CPE device setups username and password and all networking settings CPE receives
from PPPoE NAS (Network Access Server). Also provides encryption if needed and accounting for getting statistics of usage. Had issues with
MTU in past, but in last years these issues were fixed by main vendors.

IPoE (or DHCP) - DHCP is based on MAC address of client. Also can be linked to port of switch were customer is connected (DHCP option 82).
In several vendors don't provide accounting capability (Mikrotik routers)

Wireless Authentication - when ISP has a wireless network, he needs to maintain access of CPE devices to his Access Points. For this purpose
several wireless authentication methods are used, such as a password inside TDMA protocols or wireless access-lists

Hotspot - customer has to enter his username and password on the webpage before using the Internet. Many hotspot networks allow free limited
access and then charge customers for addtional usage or advanced plans.

Static IP addressing - some ISPs don't have central management of authentication and setup static IP addresses to CPE devices. With Mikrotik
RouterOS platform Splynx can manage even customers who's got static IPs in Vlan per customer scenario or plain IPv4 connection. Also Splynx
can grab statistics from Mikrotik routers for such customers.

Below are manuals for different types of user authentication in Splynx ISP Framework:

Mikrotik: DHCP using Radius

Mikrotik: PPPoE and other PPP tunnels using Radius

Mikrotik: Hotstpot with Radius

Mikrotik: Static IP addressing with API authentication/accounting

Mikrotik: Local auth with Mikrotik API

Ubiquiti: Wireless authentication with Radius

Ubiquiti: PPPoE authentication on Edge Routers

Cisco IOS: PPPoE with Radius server

Cisco IOS XE: PPPoE with Radius server

Juniper: PPPoE with Radius server


Mikrotik: DHCP with Radius

Associate a permanent IP to a client

To configurate the Splynx Radius Server with the DHCP service you should have a DHCP server configured on the interface of your router. Select
your DHCP server and make sure you have the option "Use RADIUS" flagged. Also, make sure you have selected in Address pool "static only" (th
e DHCP is going to get the IP from the Splynx RADIUS server).
To configure the Splynx Radius Server, click on Networking Routers List, select the router where you have configured your dhcp service, click on
the "Authorization/Accounting" window and select DHCP (Radius)/ API accounting).

Click on IPv4 Networks + Add and create the network you want to use with the dhcp service. Don't forget to select Static in Type of usage.
Click on Customers List, select a customer and click on the tab Services. Now you can add a new service, just click on the +.

When you add the service, you should pay attention to three fields:

Router - select the router that is used with the dhcp service
Tacking IPv4 - select Permanent IP ( from static IPs)

IPv4 - IP you want to be associated with the customer


MAC (s) - MAC address of the customer

Mikrotik even with AAA enable, doesn't send DHCP statistic. In order to get statistic, you should enable an API on Splynx Radius server.

Click on Networking List, and select the router where you have configured your dhcp service. Click on the tab Mikrotik, put Enable Api on and
insert a login and password of an administrator (be sure that the administrator is created in the router also).
Associate more than one MAC Address to a client

To associate more than one MAC address to a client you should create a new service with a new MAC address, and set the price to 0 to not
charge the client twice.

As you can see from the screenshot, the DHCP service is going to release a second IP associated to a different MAC address.

It is possible to block a permanent IP address assigned from the DHCP service through an API. Click on Networking Routers List, select the
router where you configured your dhcp service, click on the tab Mikrotik and set the mode "Disabled customer to Address-List" on. Go to the Cust
omer's Status and select Blocked.
The user will be blocked and his internet traffic will be redirect to a Reject IP for blocked users defined in Config Networking Radius.
Associate a dynamic IP to a client

To configurate the Splynx Radius Server with the DHCP service, you should have DHCP server configured on the interface of your router. Select
your dhcp server and make sure you have the option "Use RADIUS" flagged. In Address pool you have to select "Static only" (DHCP is going to
get IP from the Splynx RADIUS server).

To configurate the Splynx Radius Server, click on Networking Routers List, select the router where you have configured your dhcp service, click
on the Authorization/Accounting window and select DHCP (Radius)/ API accounting.
Click on IPv4 Networks + Add and create the network you want to use with the dhcp service. Don't forget to select Pool in Type of usage.

Click on Customers List, select a customer and click on the tab Services. Now you can add a new service, just click on +.
When you add the service, you should pay attention on three fields:

Router - select the router that is used with the dhcp service
Tacking IPv4 - select Dynamic IP ( from IP Pools)

IPv4 pool - the IP pool you want to be associate with the customer

MAC (s) -MAC address of the customer


It is possible to get statistic from the DHCP dynamic assignment. Open your ssh client and connect to Splynx Radius Server, go to
/var/www/splynx/config.

Edit radius.php and set add_to_online value equal to true. Restart the Radius Daemon with service splynx_radd restart.

When customer has a dynamic IP, the API blocking will not work and you need to use a hack. Just go to the DCHP server parameters in your
Mikrotik router and set Lease Time 1 day.
In Splynx, click on Config Networking Radius and click on Load. In Rate-Limit attributes, add the string "Session-Timeout = 86400" (seconds in
24 hr).
Mikrotik: Hotstpot, Radius
Hostpot configuration on Mikrotik router

First configuration steps for Hotspot Radius authentication are the same as for other types of Radius authentication.

Router should be added to Splynx and Radius Hotspot authentication enabled. Even, if other Radius authentication method will be chosen in
Splynx router settings, it will still allow Radius hotspot authentication.
Radius secret - the password for communication between Radius server and router.
IP/HOST - this is the physical IP address from where packets are sent to Radius server. In case when router is behind NAT, this is the
public IP address. Can be set as a domain name or dynamic DNS entry.
NAS IP - the real IP source address for radius packets. It's recommended than in Radius settings in Mikrotik router Src. address = NAS
IP in Splynx.

Next step is to configure Radius settings inside the router:

In configuration of Hotspot we have added IP local pool 10.200.255.0/24, this pool will be used to provide IP to the client connected for the first
time. As soon as he will become authenticated, he will get IP address from the IP range defined in Splynx - 192.168.102.0/24

The last step is to enable hotspot Radius authentication in HS Profile, arrow shows type of connection, in case of Wireless choose 19/wireless in
case of ethernet please select ethernet:
Hotspot authentication login and password

Now when customer connects to the router, he receives the login screen where he should enter the username and password specified in Splynx
internet service.

In this case it's alex-pppoe name and 12345 password, client will get permanent IP address after successful authentication:
Authentication Mikrotik screen:

After setting the right password and username, customer get access and his DHCP address 10.200.255.x is mapped to the real routable IP
address 192.168.102.x in Hosts list:
Also we can see that client is active, and "R" means that he was authenticated via Radius server:

And client is online in Splynx, where we can see his session and current usage:

If we would like to close the session of the customer, there is an option in Splynx how to close the session and enforce customer to reconnect.

It's available through "X" button in service of the client or in Online view if the "X" option is added to the list of table.

Service close session:


Online customers close session action:

Hotspot authentication using cookies

When client is already authenticated, Mikrotik can store in cache his information for certain period of time and don't ask him to enter username
and password again. Authenticated customer is put to cookies with lifetime specified in settings.

For example, we don't want to ask customer for a password for 24 hours. So, if he will reconnect his PC several times during a day to Wifi or
router, the login and password page will not appear. On example below is shown how to enable the cookies and set the lifetime to 24 hour or 1
day.

Hotspot MAC authentication

Splynx can recognise the MAC address of customer if it is set to his internet service. If MAC authentication is enabled in Hotspot server profile
and MAC is set in customer's service, then the login page will not appear for such customer and he will get internet access immediately.

Enabling MAC authentication in Hotspot profile:


Setting the MAC address of client to his internet service

Blocking of hostpot users

If client has a static/permanent IP address assigned to the service, than blocking is made via putting IP address to the address list and further
redirect. In case of dynamic IP address, the hotspot IP of client is mapped to one of IPs from the blocking range of Splynx. To get more
information about blocking customers, please, read our tutorial page - blocking customers in Splynx
Setting different values to Radius attributes

In Config Networking Radius is field available for setting additional attributes.

To understand the usage of Radius attributes customization, please, follow the guide - Radius server customization

Mikrotik: PPPoE, Radius


The setup shown below is equal for all types of tunnels in Mikrotik, that are configured under ppp secrets: ppp, pptp, l2tv, ovpn and pppoe. The
particular example is using PPPoE configuration.

There are several areas described in tutorial:

1. Connecting Mikrotik router to Splynx Radius server


2. Customer connection to router and authentication
3. Disconnecting/blocking users from Radius server
4. Closing PPPoE sessions
5. Setting different values to Radius attributes

Connecting Mikrotik router to Splynx Radius server

As the first step, it's needed to add a router to Splynx under menu Networking Routers:

Radius secret - the password for communication between Radius server and router.

IP/HOST - this is the physical IP address from where packets are sent to Radius server. In case when router is behind NAT, this is the public IP
address. Can be set as a domain name or dynamic DNS entry.

NAS IP - the real IP source address for radius packets. It's recommended than in Radius settings in Mikrotik router Src. address = NAS IP in
Splynx.

Next step is to configure Radius settings inside the router:


Then, define the Interface where PPPoE server runs:

And enable Radius authentication for PPPoE server (and other ppp services) in the Secrets tab of router settings:
Very important thing is to define the Local IP address in Profile. It's used as a local IP of PPPoE server for establishing PPPoE tunnel. Tunnel will
not be established without specifying the Local IP and you will get Local IP error in logs. Remote IP will be assigned by Splynx Radius server.

Customer connection to router and authentication

When router is connected to Splynx Radius server we can add a new customer and create internet service for him in Splynx software:
IP address can be assigned on permanent basis by Splynx Radius or dynamically (every time when customer connects he will get different IP
from pool). PPP login and password are taken by default from the main Splynx customer login/password credentials. This can be changed in
service and ppp and Splynx portal login and password will be different in this case:

Now we can connect CPE or PC of customer with username alex-pppoe and password 12345. All communication between Splynx Radius server
and Mikrotik router is available in logs under Splynx Administration Files Radius short (radius/short):
For further troubleshooting please visit the topic Troubleshooting Radius server.

Disconnecting/blocking users from Radius server

When customer changes the status from Active to Blocked, Splynx Radius server pushes the Change of authorization (COA) message to Mikrotik
Router. The COA message contains the name of address list where customer's IP should be put. It doesn't matter if customer has permanent or
dynamic IP - his current IP address will be put to the address list Reject_1. When we change back the status to Active, the address list Reject_1 is
rewritten via COA message to "Active". Other option to block the customer's session is to use disconnection of the session. Session is
disconnected and when client reconnects it he is put to address-list (in case of permanent IP assignment) or he receives IP from special blocked
IP pool (dynamic IP assignment). For both types of blocking sessions it's needed to enable Incoming communication on Mikrotik Router side:
Please, find more information about blocking customers on the tutorial page - blocking users in Splynx.

Closing PPPoE sessions

By default Splynx don't close the sessions of customers if it's not requested by administrator. It means that in Statistics of customers a session
can remain active for a long time. This can cause the misleading with communication with customers. To close the session automatically every 24
hours it's possible to configure the session timeout in Mikrotik router settings:
Or add a attribute to rate-limit field inside Splynx Config Networking Radius

Also, there is a way in Splynx how to close the session and enforce customer to reconnect. It's available through "X" button in service of the client
or in Online view if the "X" option is added to the list of table.

Service close session:


Online customers close session action:

Setting different values to Radius attributes

In Config Networking Radius is field available for setting additional attributes.

To understand the usage of Radius attributes customization, please, follow the guide - Radius server customization

Mikrotik: Static IPs with API


Some topologies of WISPs don't have central authentication of customers based on PPPoE or DHCP. Instead of it each client's device is
connected using static IP address. But what will happen if customer will get access and change the static IP address to a different one? Probably
his speed limitation will become inactive, because it's also based on IP address of the client.

In Splynx you can setup authentication for statically configured IP addresses. Also it's possible to match IP address of CPE with MAC address
and achieve static IP + MAC authentication.

This setup works only for Mikrotik RouterOS devices, because authentication rules are pushed to router via API.

First step is to add to internet service of the customer Router, IP address and MAC (if needed):
In settings of router NAS-SPLYNX we should enable proper authentication type, it's Firewall IP/MAC filter. Accounting will be grabbed by Splynx
every 5 minutes via API:

The API should be enabled on Mikrotik router and in Splynx settings for router as well:
Splynx connects to the router and create in IP Firewall Filter entries allowing access for the IP/MAC combination for the user.
If MAC is added to customer's service, then the Firewall rule also contains the MAC address:

As you can see, Splynx doesn't create any DENY rule. If you have other rules in Firewall, Splynx don't touch or change them as well. System just
adds allow rules to the beginning of Filter chain "Forward". To prevent all non authenticated customers access the network you can create a
manual DENY rule on Forward chain:
Blocking of customers with static IP address authentication

Blocking behaviour depends on settings on Router. There are 2 options:

1.Customer's entry is removed from the IP Firewall - Filter.

If router doesn't have option of putting disabled customers to Address list, then Splynx will remove the authentication entry from firewall:
2. Customer's IP is put to Blocking address list.

Router should have Disabled to address list = Yes. In this case blocked customer in Splynx is not removed from IP firewall, but IP address is put
to Address-list.

SpLBL_Blocked address list is used for blocking customers:


To get more information about blocking customers using Splynx, please visit the tutorial page Blocking customers in Splynx.

Mikrotik: Local auth, API


Instead of using Radius, Splynx is able to push authentication rules for customers to Mikrotik router via API. Advantage of this approach is that
rules for authentication are created in routers and are stored there locally. It means, if Splynx or Radius server will not respond, customers will still
be able to get Internet access. Disadvantage is that router should be always specified in customer settings where customer is connected. Also
customers can only get permanent IP from Splynx.

Authentication rules can be added via API:

PPP Secrets
DHCP Leases
Hotspot users

In all types of API authentication is important to have Mikrotik API enabled on router and also in Splynx router settings.
When both things are enabled, it's useful to create a special admin account for Splynx, which will be used for API login to routers and making
changes there. You can create an admin API or with other name and assign him to special access group for API login:
Below are described all types of API authentication and how Splynx covers it with Mikrotik RouterOS:

Mikrotik PPP Secrets via API

First of all, select PPP secrets as type of authentication in Spynx router settings:

Then in internet service of customer should be selected a router where Splynx will push authentication rules and also grab statistics from. Login
and password should be specified there and also Permanent IP address. API authentication works well only with permanent IP assignments. In
case of dynamic IP assignment, Splynx will not know which IP is used by customer and will not be able to gather statistics from IP accounting of
Mikrotik router.
After saving, Splynx will connect to router and create entries in PPP Secrets:

Mikrotik DHCP Leases via API

Please choose DHCP leases as type of authentication in Spynx router settings.


In internet service of customer should be selected a router where Splynx will push authentication rules and also grab statistics from. It is important
to set the MAC address of the customer. Only permanent IP works in API authentication because of limitations in grabbing accounting from
Mikrotik IP accounting:

When we save the service information, Splynx connects to the router and setup static DHCP Leases on IP DHCP Server Leases
In settings of DHCP server you can set an option, that all non authenticated customers will get IPs from fake pool and all authenticated users will
get IPs which are set in Leases by Splynx

Mikrotik Hotspot users via API

Select Hotspot as type of authentication in Spynx router settings:

In internet service of customer should be selected a router where Splynx will push authentication rules and also grab statistics from. Login and
password are values for hotpost entry. In case of MAC authentication you can specify a MAC address of end user:
When it saved, Splynx creates IP hostpot entries in Mikrotik router under IP Hotspot Users:

When authentication type is configured and Splynx pushed the rules to Mikrotik router, we can see clients coming online in 5 minute interval.
Splynx grabs statistics from Mikrotik routers via API every 5 minutes. The log of accounting you should be able to find in Splynx Networking
Routers under Mikrotik API log tab:
Ubiquiti: Wireless auth, Radius
Ubiquiti access points have the ability to authenticate radius via Radius server. This means the admin doesn’t have to maintain local passwords
for wireless authentication, each CPE/radio can have its own account in the Splynx ISP Framework and our Radius server will authenticate UBNT
CPEs.

Usually ISP already has a PPPoE or similar authentication mechanism which is why wireless Radius authentication is added in Splynx to existing
customers as one new (empty) service.

As a first step, we define a Plan in Splynx with 0 price and 0 in all other fields.
Then, we should add a wireless service to the customer and enter his login and password.

It is also important to add AP to splynx.

In the last step we should enable Wireless Radius authentication EAP on the UBNT router and setup a Radius server IP address and secret.
Now we can connect a UBNT radio CPE to a UBNT Access Point:

Ubiquiti: PPPoE on Edge Routers

UBNT EdgeRouters can act as a PPPoE server with authentication of CPEs, providing statistics, blocking end users, and setting up speed limits
and FUP rules.

Let’s divide it into parts:

1. Configure EdgeRouter PPPoE server with Radius


2. Configure EdgeRouter PPPoE server for incoming radius packets
3. Add EdgeRouter to Splynx
4. Connect PPPoE customer and check that everything is working fine
5. Install other usefull tools to Edgerouter

1. Configure EdgeRouter PPPoE Server with Radius support

The first step is to upgrade the system to at least 1.5 version and higher, because support of Radius attributes was added to EdgeOS in this
version. The version we describe here is EdgeOS v1.8.5.
Upgrade can be achieved in CLI with commands:
add system image http://dl.ubnt.com/...
add system image new-version-1085.tar

As a second step we need to define the IP address for communication between Radius and EdgeRouter.
In my case it’s 10.0.1.166, set it up as the main IP of EdgeRouter with a command (in configure mode):

set system ip override-hostname-ip 10.0.1.166

Then I setup the PPPoE server with mandatory settings:

edit service pppoe-server


set authentication mode radius
set authentication radius-server 10.10.10.65 key 12345
set client-ip-pool start 10.5.50.2
set client-ip-pool stop 10.5.50.200
set interface eth2

Radius configuration can also be done in web browser:

Encryption on Edge Routers tunnels is disabled by default. To enable it:


Please login via SSH to EdgeRouter and type:

sudo su -
vi /opt/vyatta/share/perl5/Vyatta/PPPoEServerConfig.pm

press "/" on your keyboard and type: refuse-chap


and then press 'i' on your keyboard and change "refuse-chap" to "require-chap".
after that press Escape button and type :wq
The same way you can enable PAP and MSCCHAP.

2. Configure EdgeRouter PPPoE incoming packets

This is an important part because we need to change plans, disconnect customers or apply FUP rules. In all these cases Splynx Radius sends
packets to Edge Router.
Default port is of UBNT is 3779. To enable incoming packet processing run these command on EdgeOS:

sudo cp /opt/vyatta/etc/pppoe-server/start-pppoe-radius-disconnect /config/scripts/post-config.d/

and reboot the router.

to debug, if packets are received use file pppoe-radius-disconnect.log:

tail /var/log/pppoe-radius-disconnect.log

Below is example of output when packet disconnect was received by EdgeOS:


3. Add EdgeRouter to Splynx and set up settings in Splynx

Just add a router to Splynx in Networking -> Routers and choose the NAS Type Ubiquiti:

You can add additional attributes to the configuration of NAS Type under Config -> Networking -> Radius.
By default we support radius-rate-limit attributes to setup speeds of PPPoE tunnels.
4. Connect PPPoE customer and check that everything is working fine

Now we can connect the PPPoE user to EdgeRouter and check that everything works fine.
With the „show pppoe-server“ command we can see how many users are connected to the PPPoE server:

In Splynx we can see if customer is online and get his stats:


When we click disconnect button the customer should dissapear from the online list and reconnect with a new session which means that
EdgeRouter accepted the incoming packet from Splynx Radius server.

5. Install other usefull tools to EdgeRouter

PPPoE client tunnels are dynamically created and are not shown in the web dashboard. We need to get statistics of customer throughput, and a
simple way to do it is to install the software bwm-ng. It’s located in the Debian repository, which means we need to add new repositories first and
then install bwm-ng.
Add new repositories:

configure
set system package repository wheezy components 'main contrib non-free'
set system package repository wheezy distribution wheezy
set system package repository wheezy url http://http.us.debian.org/debian
set system package repository wheezy-security components main
set system package repository wheezy-security distribution wheezy/updates
set system package repository wheezy-security url http://security.debian.org
commit
save
exit

and install the tool

apt-get install bwm-ng

Then you can run bwm-ng -u bits to get the actual Kbps throughput of pppoe clients.
Example of output of bwm-ng is in picture below:

Now you can configure Splynx Radius server with UBNT EdgeRouter and benefit from a fast router that delivers 1 million packets per second
routing performance in a compact and affordable unit!
If you face any difficulties, please, use our forum – https://forum.splynx.com/ or submit us a ticket – https://splynx.com/my-tickets/
Cisco IOS: PPPoE with Radius
Cisco IOS and Cisco IOS XE have a bit different commands, but the main difference is that Cisco IOS allows pushing the rate-limit attributes and
using of rate-limit on Virtual interface, while Cisco IOS XE doesn't have option to use rate-limiting. That's why in Cisco IOS XE we should use the
policing for speed limitations. This tutorial shows Cisco IOS Radius configuration :

First of all we need to have configured a NAS type in Splynx correctly with all attributes.

Config Radius Choose NAS type cisco

Radius Incoming port is the port that Splynx will use to send Change of Authorization (COA) or Packet of Disconnect (POD) messages to the
router.

The most important are the rate-limit attributes. Rate limit attributes are used in these cases:

1. When PPPoE session is created on Cisco router and we need to setup to customer his speed from the tariff plan
2. If customer reaches the FUP limit, then Splynx changes the speed using COA packet. Packet is sent to Cisco router incoming port from
Radius server
3. You can also limit the customer's speed when he is blocked, for example to 56 kbps
The syntax of attribute in Splynx Radius server is :

Cisco-Avpair=lcp:interface-config#1=rate-limit input {{ rx_rate_limit }} 80000 80000 conform-action


transmit exceed-action drop
Cisco-Avpair+=lcp:interface-config#1=rate-limit output {{ tx_rate_limit }} 80000 80000 conform-action
transmit exceed-action drop

rx_rate_limit - is the Download speed of the plan, it's applied on Output direction of PPPoE tunnel in Cisco router.

tx_rate_limit - is the Upload speed of the plan, it's applied on Input direction of PPPoE tunnel in Cisco router.

80000 are the burst values, that you can change. We prefer to have static burst value, for example of 100 kbps.

The whole description of the Cisco rate-limit attribute is :

rate-limit {input | output} [dscp dscp-value] [access-group [rate-limit] acl-index] bps burst-normal burst-max conform-action conform-action e
xceed-action
exceed-action

The burst can be taken from Splynx as well this way, but then Bursts must be always configure in Splynx, if you left it 0, PPPoE session will not be
established :

Cisco-Avpair=lcp:interface-config#1=rate-limit input {{ rx_rate_limit }} {{ rx_burst_rate }} {{ rx_burst_rate }} conform-action transmit exceed-action


drop
Cisco-Avpair+=lcp:interface-config#1=rate-limit output {{ tx_rate_limit }} {{ tx_burst_rate }} {{ tx_burst_rate }} conform-action transmit
exceed-action drop

In testing scenario, we have 1 Mbps Download / 512 Kbps Upload plan :

The configuration of Cisco routers for the IOS version 15 and above :

First part is related to aaa, we are saying that we want to Authenticate, Authorize and Account our PPPoE sessions using Radius server:

aaa new-model

aaa authentication ppp default group radius


aaa authorization network default group radius
aaa accounting delay-start
aaa accounting network default start-stop group radius
Then we are configuring incoming packets for Radius protocol. Server from IP 10.0.1.16 can send us the COA or POD messages on port 3799

aaa server radius dynamic-author


client 10.0.1.16 server-key 123456
server-key 123456
port 3799
auth-type any
ignore session-key

Configuration of PPPoE server :

bba-group pppoe SPLYNX


virtual-template 1

interface Virtual-Template1
mtu 1492
ip unnumbered Loopback0
no peer default ip address
ppp authentication pap chap ms-chap ms-chap-v2

Applying the PPPoE server on interface where customers will connect :

interface Ethernet0/0
no ip address
pppoe enable group SPEED
And finally the Radius server connection details :

radius-server attribute 6 on-for-login-auth


radius-server attribute nas-port-id include vendor-class-id plus remote-id plus circuit-id
radius-server host 10.0.1.16 auth-port 1812 acct-port 1813
radius-server key 123456

If everything is configured properly, we should be able to connect the PPPoE customer :

#show pppoe session

1 session in LOCALLY_TERMINATED (PTA) State


1 session total

Uniq ID PPPoE RemMAC Port VT VA State


SID LocMAC VA-st Type
12 12 5000.0001.0001 Et0/0 1 Vi3 PTA
aabb.cc00.0200 UP

When the PPPoE session is established, we can display the rate limiting on PPPoE interface on Cisco using command

#show interfaces rate-limit

The output should be :

Virtual-Access3
Input
matches: all traffic
params: 512000 bps, 80000 limit, 80000 extended limit
conformed 23 packets, 2829 bytes; action: transmit
exceeded 0 packets, 0 bytes; action: drop
last packet: 19387ms ago, current burst: 0 bytes
last cleared 00:21:25 ago, conformed 17 bps, exceeded 0 bps

Output
matches: all traffic
params: 1024000 bps, 80000 limit, 80000 extended limit
conformed 0 packets, 0 bytes; action: transmit
exceeded 0 packets, 0 bytes; action: drop
last packet: 1947334ms ago, current burst: 0 bytes
last cleared 00:21:25 ago, conformed 0 bps, exceeded 0 bps

The customer is online in Splynx, and we can try to kill his session to verify that Radius Incoming port on Cisco router is working:

The whole final Cisco configuration please find below :

aaa new-model

aaa authentication ppp default group radius


aaa authorization network default group radius
aaa accounting delay-start
aaa accounting network default start-stop group radius

aaa server radius dynamic-author


client 10.0.1.16 server-key 123456
server-key 123456
port 3799
auth-type any
ignore session-key

bba-group pppoe SPLYNX


virtual-template 1

interface Virtual-Template1
mtu 1492
ip unnumbered Loopback0
no peer default ip address
ppp authentication pap chap ms-chap ms-chap-v2

interface Ethernet0/0
no ip address
pppoe enable group SPEED

radius-server attribute 6 on-for-login-auth


radius-server attribute nas-port-id include vendor-class-id plus remote-id plus circuit-id
radius-server host 10.0.1.16 auth-port 1812 acct-port 1813
radius-server key 123456

Cisco IOS XE : PPPoE Radius


Cisco IOS and Cisco IOS XE differs in configuration. The main difference is that Cisco IOS uses rate-limit attributes for speed limitation. Cisco
IOS XE doesn't have support of rate-limiting. Cisco IOS XE is used in ASR 1001, 1002, 1003 router series. If we want to limit speed of the PPPoE
customers, we must follow these steps :
1. Configure Policies for each single plan that we have in our network
2. During PPPoE authentication Radius server must send an attribute with the policy name (tariff plan) where customer belongs.

The attribute syntax is :

Cisco-AVPair = ip:sub-qos-policy-out=PLAN-DOWNLOAD
Cisco-AVPair += ip:sub-qos-policy-in=PLAN-UPLOAD

Let's go though the whole config, starting with configuring Plans and Attributes for speed limitation in Splynx Radius server.

Step 1.

Define the naming of our policy/plan attributes. The names are taken from Splynx Internet tariff Titles. We will setup the internet plan "Wifi_1_Mb".

Then the policy name in cisco will be Wifi_1_Mb-down, Wifi_1_Mb-up. Now we are going to add additional field "Policy" to tarrif plans in
Splynx :

Step 2.

Ok, we got the field policy name for each tariff plan. Check the settings of attribute in Splynx :
Step 3.

If we will use Fair User Policy, we must configure also the FUP plan names. It must be without spaces, for example Wifi_1_slow, will slowdown
user if he transfers over 100 MB per day :

Step 4.

Configure the policies on Cisco IOS XE router :

policy-map Wifi_1_Mb-down
class class-default
police cir 1024000 bc 6000 be 6000 conform-action transmit exceed-action drop

policy-map Wifi_1_Mb-up
class class-default
police cir 512000 bc 6000 be 6000 conform-action transmit exceed-action drop

And the policy for FUP slowdown action Wifi_1_slow :

policy-map Wifi_1_slow-down
class class-default
police cir 512000 bc 6000 be 6000 conform-action transmit exceed-action drop

policy-map Wifi_1_slow-up
class class-default
police cir 256000 bc 6000 be 6000 conform-action transmit exceed-action drop
Step 5.

Connect the customer and verify that the policy was applied to his virtual interface :

Cisco_IOS_XE#show pppoe session

1 session in LOCALLY_TERMINATED (PTA) State

1 session total

Uniq ID PPPoE RemMAC Port VT VA State

SID LocMAC VA-st Type

268 268 5001.0001.0002 Gi2 1 Vi1.2 PTA

5001.0003.0001 UP

The interface name is Virtual-access 1.2

Cisco_IOS_XE#show policy-map interface Virtual-access 1.2

the output of the command should be :

Cisco_IOS_XE#show policy-map interface Virtual-access 1.1

Virtual-Access1.1

SSS session identifier 282 -

Service-policy input: Wifi_1_Mb-up

Service-policy output: Wifi_1_Mb-down

with the details of traffic that was forwarded or limited by the policy

The full configuration of Cisco IOS XE router that was used in the LAB configuration :

service password-encryption

aaa new-model

aaa group server radius SPLYNX

server name SPLYNX

aaa authentication ppp default group radius local

aaa authorization network default group radius

aaa accounting delay-start

aaa accounting exec default

action-type start-stop

group radius

aaa accounting network default start-stop group radius

aaa accounting system default start-stop group radius

!
!

aaa server radius dynamic-author

client 10.0.1.16 server-key 7 06575D72181B5F

server-key 7 014254570F5E50

port 3799

auth-type any

ignore session-key

ignore server-key

aaa session-id common


!

policy-map Wifi_1_Mb-down
class class-default
police cir 1024000 bc 6000 be 6000 conform-action transmit exceed-action drop

policy-map Wifi_1_Mb-up
class class-default
police cir 512000 bc 6000 be 6000 conform-action transmit exceed-action drop

policy-map Wifi_1_slow-down
class class-default
police cir 512000 bc 6000 be 6000 conform-action transmit exceed-action drop

policy-map Wifi_1_slow-up
class class-default
police cir 256000 bc 6000 be 6000 conform-action transmit exceed-action drop

bba-group pppoe SPLYNX

virtual-template 1

interface Loopback0

ip address 192.168.140.1 255.255.255.0

interface GigabitEthernet1

ip address dhcp

negotiation auto

!
interface GigabitEthernet2

no ip address

negotiation auto

pppoe enable group SPLYNX

interface Virtual-Template1

mtu 1492

ip unnumbered Loopback0

no ip redirects

ppp mtu adaptive

ppp authentication chap pap mschap


!

ip radius source-interface GigabitEthernet1

radius-server attribute 6 on-for-login-auth

radius-server attribute 8 include-in-access-req

radius server SPLYNX

address ipv4 10.0.1.16 auth-port 1812 acct-port 1813

non-standard

key 7 101F5B4A514244

If incoming port is correctly configure, we can try to kill the active session from Splynx and see that it reconnects on Cisco IOS XE router.

Run debug command in Cisco CLI:

#debug aaa pod

and disconnect the client session from Splynx server

The output in Cisco debug window should say :

*Aug 30 16:39:58.286: POD: 10.0.1.16 user testcap 192.168.103.10i sessid 0x0 key 0x0

*Aug 30 16:39:58.286: POD: Line User IDB Ses

Cisco_IOS_XE#sion Id Key

*Aug 30 16:39:58.286: POD: Skip <NULL> <NULL> 0.0.0.0 0x1 0x0

*Aug 30 16:39:58.286: POD: KILL Virtual- testcap 192.168.103.10 0x10D 0x0

*Aug 30 16:39:58.287: POD: Sending ACK from port 3799 to 10.0.1.16/56771


Juniper: PPPoE with Radius

Mikrotik: OpenVPN, Radius


Bandwidth management
Splynx has a powerful bandwidth management engine. Software can set the speed limitation for customers on different vendors using Radius
protocol or you can achieve advanced bandwidth management with HTB Queuing system of Mikrotik Router OS. We manage Queues on Mikrotik
router using API. Please, read the following articles related to bandwidth management:

Capped plans and top up

Contention mananagement in Splynx

Fair user policing

Mikrotik based queues

Radius based speed limitation


Capped plans and top up
CAP is a feature thta allows ISP to provide Internet services with monthly limitation of data and charge customers for additional data.

The advantage is that customer can pay more to extend his CAP using the tool Top Up. Administrator designs Top Up plans, that are avaliable for
customers in addition to their regular Internet plans.

1. CAP configuration

To configure CAP policies go to Tariffs Internet, and then choos selected plan and click on FUP button, there will appear a new window called
CAP.
In CAP there are 3 configuration boxes, Monthly limits(CAP), Top Up Plans and Notifications.

In the first, we can set how many data(in KB, MB, GB or TB) customer in Internet plan is able to consume. It can be dowload, upload or
bidirectional usage. When the CAPed monthly data are used, Splynx automatically blocks user or reduce his speed according to the
configured percentage level.

Also, you can disable daily or weekly limits set on FUP or enable the Rollover mode. Rollover means that the unused monthly data of the CAP will
be moved to the next month.

In the second box you can find the Top Up Plans configuration. This plans are for use when monthly data of CAP is fully used. Customer pays for
a Top Up, and then he received more data to use.

You can set the validity of Top Up data. It can be unlimited or set to several months. Also there is an option add Top Up to the customer invoice.

Very useful option is to Load plans from other tariffs. So, you can configure Top Up plans once and then just copy the settings to all your tariffs.

The third is the Notification box, which informa by email or SMS about monthly usage, Top Up data usage or Top Up actions.

Also is possible to load notifications that we have created in other plan.

Source means the counter or action that we want to notify our customer about.

Monthly limit - the data included in CAP,

Top Up usage - notify customer when certain % of his the top up is spent

Top Up action - notify when top up was added to customer's account

Auto Top Up - send a notification when customer's account data were automatically added by Splynx.

You have to write a subject and customize the message clicking on Edit message. There you can also load a template you have created in
section Splynx Config Tempates.
To check if the email or notification are working correctly, you can view the email log clicking on Administration Logs Email.

The same verification is available for SMS messages in Splynx Administration Logs SMS
2. Top Up

Splynx works with 3 types of Top up :

A. Administrative top up

B. Customer portal top up

C. Auto top up

A. Administrative Top up

In first case, go to Customers List and choose the customer you want add the Top Up, then in the window information at down side on right, there
is the CAP Top Up options, click on the Top UP button. It will open a new window that is asking for a service and Top up plan. Administrators can
have rights to add custom top up - it means they can define the Data to top up and the price of singe top up.

When we create a Top UP for 1 GB we can see that 1GB of data were added to customer's account. The transaction is on the list and we can
proceed to charge for generating the invoice.
As we have enabled the option "To invoice" in the Top UP transaction, the Top up appears on invoice PDF :

B. Customer portal Top up

In second case, customer can order a top up in the portal. The administrator configure in Splynx the permissions and options that the customers
have. This configuration is on Config Main Portal. There are two boxes with some options for customer's Top Up:

1. Yo can enable Top Up and edit auto top up settings. Auto top up permissions shows if client can enable/disable auto top up and if he can
choose from top up plans. Also there is an option to allow to customer to change the maximum amount of auto top ups per month

2. To enable manual top up from portal, select which type of document will be created when customer top's up from the portal. Pay before
means that customer will not get the top up data until he pays the invoice.
When customer enters on Portal, he clicks on Services Top Up were there are the top up options - for automatic and/or manuall top up.

In the manual top up customer should choose the plan and add a top up.
Then in Statistics customer can see the amount of traffic in the bar. Also there are displayed his actual top up data.

In case when administrator sets the option Pay Before Top Up, the data will be abaliable after customer pays for it.
So, the invoice is paid andother 1GB data is added now.

C. Auto Top up

Inside the CAP window in customer information we can enable auto top up.

Then we define the auto top up plan and maximum of top up per month.

Transfer usage to new service means that Splynx will transfer unused data between plans in case when customer changes his plan.
Contentions
Splynx provides the feature of contention or aggregation. This feature is used when ISP sells to end users services with contention rate for
example 1:5, 1:10 etc. Contention means that end user will share the bandwidth with other end users in his group.

Splynx operates with two types of contention: Per Plan based and Per Router contention.

1. Plan based contention.


Let’s take a look on example.
We are selling to end users plan 5 Mbps with contention rate 1:5. It means, that Splynx will setup the parent speed-limit of 5 Mbps and under this
parent it will place 5 users with speed-limit of 5 Mbps each. What happens in this situation is that if the line is free and one user starts to
download/upload, he gets full 5 Mbps throughput. In case when second user starts active downloading, they will get 2,5 Mbps each. When all 5
users will simultaneously download with maximum speed, they will share the bandwidth.

It’s described in the image below:


We can tune a bit sharing of speed with setting up “Limit-at” or guaranteed speed. If we place 1 Mbps to each user, then all users will get at least
1 Mbps always.

In that case all 5 users will simultaneously download with 1 Mbps speed. It’s shown on second screenshot.

What will happen in situation when we will put 7 users on 1:5 contention plan? Splynx will change the parent speed to 7 Mbps in this particular
case, but will leave maximum speeds of each user on 5 Mbps.
If you are planning to deploy Plan-based contentions, use it on central routers to achieve high amounts of users in one tree. Compare two
situations – 1:5 contention tree with 5 users and two of them are hard downloaders, it means that 3 other users will never get 5 Mbps speed,
because they are all under one common parent of 5 Mbps.

If we place 100 users on this contention 1:5, then parent maximum speed will be set to 20 Mbps and then two or more high downloaders will not
use the whole bandwidth.
2. Router based contention.

Router based contention is used in this scenario:

Imagine that we have a wireless AP which is connected to backbone network with 30 Mbps speed. But we connected to that AP users with total
possible bandwidth of 60 Mbps. What can happen in peak time is that users will consume more traffic than can be sent through uplink. It means
that wireless link can become overutilized and unstable. It’s shown in the picture below.
To prevent this situation, router based contention can be used. In Splynx each router has field “Sector/Speed limits”, where can be defined groups
and administrator can put users under these groups. As a result we will achieve contention per router:

You can find on a short video tutorial how to configure Splynx and Plan based contention:

Router based contention video:

Fair user policy - FUP


Many ISPs use a Fair User Policy (FUP) – this means that if a customer downloads or uploads more than a certain amount of data, his speed is
reduced. We moved this idea to a different level and made it as configurable as it can be.

In the Splynx ISP Framework we have smart bandwidth management. You can define customer speed based on the amount of traffic consumed
per month, per week, or even per day. You can also set up maximum online time in hours per customer.

Do you want to give your users double speed at night, dounlimited traffic on the weekends, or set up a speed limit for downloaders who exceed
the daily download limit ? Do it with Splynx right now!

FUP settings are located in Plan under the arrow button

Let’s create an example. We have a 5 Mbps download and upload plan. I decided that there will be unlimited traffic for customers on weekends
and they will get 7 Mbps on Saturdays and Sundays. The first rule have been created below. The first rule is “Unlimited traffic on weekends”:

Increased speed from 5 Mbps to 40% more on Saturdays and Sundays:

Then we can check what rule will be applied on Saturday:


The next step is to set up a rule for downloaders with transfers of 10GB per day: I will reduce their speed to 2 Mbps after they reach 10 GB in one
day.

I’ll set up a total Monthly usage limit of 100 GB; after this limit is reached, we will give the user 1 Mbps. When the user reaches 110 GB, we will
block him and charge additional data.
As you can see in the last picture, we have created a full comprehensive policy for bandwidth management for a 5 Mbps plan. You can use our
FUP builder and create your own rules! Speed limitation is done via Radius using CoA attributes on any supporting equipment or via Mikrotik API
on RouterOS.

Mikrotik queue speed limits


Queues for speed limitation on Mikrotik RoutersOS could be created by Splynx using API.

To set it up, Mikrotik API should be enabled on router and in Splynx router settings. To create a Simple queue rule we have to enable Shaping on
the router in settings and setup Shaping type to "Simple queue".

Configuration is shown below on screenshot:


When both things are enabled, it's useful to create a special admin account for Splynx, which will be used for API login to routers and making
changes there. You can create an admin API or with other name and assign him to special access group for API login:
To create rules on router, the router should be selected in service of customer. API queuing works only with permanent IP address assignments:

After saving the settings a simple queue for customer will be added to router:
If FUP rule is applied, the queue speeds will be updated via API automatically.

Simple Queue tree shaping

The Simple queue type of shaping doesn't provide the way how to put customers under one shared plan or make contention per router.

For achieving contention setup we need to change the Shaping type to Simple Queue Tree.

Then Splynx creates a tree design of queues, where tariff plan queue is always a Parent for client's queues:
If we apply per router contention, then as a first step it's needed to define the router max. speed for upload and download:

And then choose the sector value on Internet service:


After saving, Splynx will push the rules to router:

As we can see there are 2 levels of contention now:

Router Tariff and then customer limitation

PCQ shaping

In versions of RouterOS before 6 simple queue were not optimized and that's why one of popular solutions for shaping was PCQ shaping using
address-list. To enable this type of shaping in Splynx, change the shaping type in Splynx router settings:
Please note: in PCQ shaping contentions and FUP policies don't work.
Double queues issue

If you have Radius and API queueu enabled, Splynx will create two queues - one via API and another one is created by Radius server via
attribute. This is not correct and one queue should be removed.

You can disable the API queue and leave automatic Radius queue.

Or if you want to use API queues, then under Config Networking Radius settings it's possible to remove rate-limit attributes and Radius server
will not create automatic queues when customer connects his device. Just delete the lines Mikrotik-Rate-Limit = {{ }} in Rate-limit attributes, COA
attributes and FUP attributes:

To get more information about bandwidth management options please read the tutorials - FUP bandwidth management and contentions in Splynx
.

Radius based speed limits


Configuration of Radius based speed limitation is simple in Splynx. It's already enabled for different types of vendors. The limitation works that
way:

1. Customer is connecting his device to the ISP network via PPPoE or DHCP or Hotspot
2. Router sends Access-request to Splynx Radius server
3. Splynx Radius server sends back to router Access-accept message if customer is in DB and get internet service. In that response Radius
adds attributes called "rate-limit". The rate-limit attribute sets the download and upload speed for customer.

Each vendor has own rate limit attribute format.For example, Mikrotik-Rate-Limit for Mikrotik routers, WISPr-Bandwidth-Max-Down for setting
download speed on Ubiquiti routers, Cisco-Avpair rate-limit for Cisco routers etc.

Rate limit attributes are preconfigured in Splynx. You can find them in Config Networking Radius section. Please choose the vendor from the list
and load Radius attributes settings:

The list of attributes is available in text boxes. Attributes can be changed or new attributes can be added.
When customer is connected to router, the speed limitation is created. It depends on vendor, how to limit the speed. For example, in Mikrotik
router one dynamic queue with customer's interface or IP address is added:

To find out how to customise Radius for advanced configuration, please follow to documentation page - Radus server customisation

Double queues issue

If you have Radius and API queueu enabled, Splynx will create two queues - one via API and second is created by Radius server via attribute.
This is not correct and one queue should be removed.

You can disable the API queue and leave automatic Radius queue.

Or if you want to use API queues, then under Config Networking Radius settings it's possible to remove rate-limit attributes and Radius server
will not create automatic queues when customer connects his device. Just delete the lines Mikrotik-Rate-Limit = {{ }} in Rate-limit attributes, COA
attributes and FUP attributes:
To get more information about bandwidth management options please read the tutorials - FUP bandwidth management and contentions in Splynx

Routers settings
Splynx supports different router models from different producers. Below are configuration tutorials for vendors that are used most often:

Cisco routers

Juniper routers

Mikrotik routers

Ubiquiti Edge routers

Other
Cisco routers
Splynx can manage administrative login to Cisco router and customer's PPPoE access, please find the tutorials for these topics below :

Cisco admin login with Splynx Radius server

PPPoE Radius on Cisco IOS

PPPoE Radius on Cisco IOS XE

Juniper routers

Mikrotik routers
Mikrotik routers are default router type that is set up in Splynx when you create a new router.

Splynx supports communication with routers using Mikrotik API or Radius protocol.

Mikrotik API custom Rules


Splynx ISP Framework supports MikroTik API Custom rules

create file: /var/www/splynx/config/mikrotik.php


header:

; <?php exit(); ?>


; Do not remove this lines
; Splynx Mikrotik API config file

Nas type ID:

[1]

Rules:

dhcp_leases['address'] = '{ip}';
dhcp_leases['mac-address'] = '{mac}';
dhcp_leases['comment'] = 'SpLUser_{customer_id}-{service_id}';

additional part (example):

dhcp_leases['server'] = '{customer_additional_route}';

You can use keys:

service_key – {service_id} as example – key or additional attribute name


customer_key – {customer_id} as exaple – key of additional attribute name

Example file: /var/www/splynx/config/mikrotik.php

; <?php exit(); ?>


; Do not remove this lines
; Splynx Mikrotik API config file

[1]
dhcp_leases['address'] = '{ip}';
dhcp_leases['mac-address'] = '{mac}';
dhcp_leases['comment'] = 'SpLUser_{customer_id}-{service_id}';
dhcp_leases['server'] = '{customer_additional_route}';

Standart rules

dhcp_leases

dhcp_leases['address'] = '{ip}';
dhcp_leases['mac-address'] = '{mac}';
dhcp_leases['comment'] = 'SpLUser_{customer_id}-{service_id}';

filter_rule_1

filter_rule_1["chain"] = "forward"
filter_rule_1["action"] = "accept"
filter_rule_1["src-address"] = "{ip}"
filter_rule_1["src-mac-address"] = "{mac}"
filter_rule_1["comment"] = "SpLUser_{customer_id}-{service_id}-1"

filter_rule_2

filter_rule_2["chain"] = "forward"
filter_rule_2["action"] = "accept"
filter_rule_2["dst-address"] = "{ip}"
filter_rule_2["comment"] = "SpLUser_{customer_id}-{service_id}-2"

hs_users
hs_users["name"] = "{login}"
hs_users["password"] = "{password}"
hs_users["profile"] = "default"
hs_users["address"] = "{ip}"
hs_users["mac-address"] = "{mac}"
hs_users["comment"] = "SpLUser_{customer_id}-{service_id}"

ppp_secrets

ppp_secrets["name"] = "{login}"
ppp_secrets["password"] = "{password}"
ppp_secrets["profile"] = "default"
ppp_secrets["service"] = "any"
ppp_secrets["remote-address"] = "{ip}"
ppp_secrets["routes"] = "{routes}"
ppp_secrets["comment"] = "SpLUser_{customer_id}-{service_id}"

simple_user

simple_user["name"] = "SpLSQ_{customer_id}-{service_id}"
simple_user["max-limit"] = "{out}/{in}"
simple_user["limit-at"] = "{out_at}/{in_at}"
simple_user["priority"] = "{priority}/{priority}"
simple_user["target-addresses"] = "{ip}"
simple_user["burst-limit"] = "{b_out}/{b_in}"
simple_user["burst-threshold"] = "{bt_out}/{bt_in}"
simple_user["burst-time"] = "{b_time}/{b_time}"
simple_user["queue"] = "{qs}"
simple_user["comment"] = "{login}"

simple_tree_user

simple_tree_user["name"] = "SpLSTQ_{customer_id}-{service_id}"
simple_tree_user["max-limit"] = "{out}/{in}"
simple_tree_user["limit-at"] = "{out_at}/{in_at}"
simple_tree_user["priority"] = "{priority}/{priority}"
simple_tree_user["target-addresses"] = "{ip}"
simple_tree_user["burst-limit"] = "{b_out}/{b_in}"
simple_tree_user["burst-threshold"] = "{bt_out}/{bt_in}"
simple_tree_user["burst-time"] = "{b_time}/{b_time}"
simple_tree_user["queue"] = "{qs}"
simple_tree_user["comment"] = "{login}"

Ubiquiti Edge routers


UBNT EdgeRouters can act as a PPPoE server with authentication of CPEs, providing statistics, blocking end users, and setting up speed limits
and FUP rules.

Let’s divide it into parts:

1. Configure EdgeRouter PPPoE server with Radius


2. Configure EdgeRouter PPPoE server for incoming radius packets
3. Add EdgeRouter to Splynx
4. Connect PPPoE customer and check that everything is working fine
5. Install other usefull tools to Edgerouter

1. Configure EdgeRouter PPPoE Server with Radius support

The first step is to upgrade the system to at least the 1.5 version and higher because support of Radius attributes was added in this version of
EdgeOS. The version we describe here is EdgeOS v1.8.5
Upgrade can be achieved in CLI with commands:
add system image http://dl.ubnt.com/...
add system image new-version-1085.tar

As the second step, we need to define the IP address for communication between Radius and EdgeRouter.
In my case it’s 10.0.1.166, set it up as the main IP of EdgeRouter with a command (in configure mode):

set system ip override-hostname-ip 10.0.1.166


Then we setup the PPPoE server with mandatory settings:

edit service pppoe-server


set authentication mode radius
set authentication radius-server 10.10.10.65 key 12345
set client-ip-pool start 10.5.50.2
set client-ip-pool stop 10.5.50.200
set interface eth2

Radius configuration also can be done in web browser:

Encryption on tunnels on Edge Routers is disabled by default. To enable it please login via SSH to EdgeRouter and type:
sudo su -
vi /opt/vyatta/share/perl5/Vyatta/PPPoEServerConfig.pm

press "/" on your keyboard and type: refuse-chap


and then press 'i' on your keyboard and change "refuse-chap" to "require-chap".
after that press Escape button and type :wq
The same way you can enable PAP and MSCCHAP

2. Configure EdgeRouter PPPoE incoming packets

This is an important part because we need to change plans, disconnect customers or apply FUP rules. In all these cases Splynx Radius sends
packets to Edge Router.
Default port is of UBNT is 3779. To enable incoming packet processing run these command on EdgeOS:

sudo cp /opt/vyatta/etc/pppoe-server/start-pppoe-radius-disconnect /config/scripts/post-config.d/


and reboot the router.

to debug, if packets are received use file pppoe-radius-disconnect.log:

tail /var/log/pppoe-radius-disconnect.log

Example of output when packet disconnect was received by EdgeOS:

3. Add EdgeRouter to Splynx and set up settings in Splynx

Just add a router to Splynx in Networking -> Routers and choose the NAS Type Ubiquiti.

You can add additional attributes to the configuration of NAS Type in Config -> Networking -> Radius.
By default we support radius-rate-limit attributes to setup speeds of PPPoE tunnels.
4. Connect PPPoE customer and check that everything is working fine

Now we can connect the PPPoE user to EdgeRouter and check that everything works fine.
With the „show pppoe-server“ command we can see how many users are connected to the pppoe server:

In Splynx we can see whether customer is online and get his stats.
When we click on disconnect button the customer should dissapear from the online list and reconnect with a new session, which means that
EdgeRouter accepted the incoming packet from Splynx Radius server.

5. Install other usefull tools in EdgeRouter

PPPoE client tunnels are dynamically created and are not shown in the web dashboard. We need to get statistics of customer throughput and a
simple way to do it is to install the software bwm-ng. It’s located in the Debian repository which means we need to add new repositories first, and
then install bwm-ng.
Add new repositories:

configure
set system package repository wheezy components 'main contrib non-free'
set system package repository wheezy distribution wheezy
set system package repository wheezy url http://http.us.debian.org/debian
set system package repository wheezy-security components main
set system package repository wheezy-security distribution wheezy/updates
set system package repository wheezy-security url http://security.debian.org
commit
save
exit

and install the tool:

apt-get install bwm-ng

Now you can run bwm-ng -u bits to get the actual Kbps throughput of pppoe clients.
Example of output of bwm-ng is in the picture below:

Now you can configure Splynx Radius server with UBNT EdgeRouter and benefit from a fast router that delivers 1 million packets per second
routing performance in a compact and affordable unit!

Below is a video tutorial showing the configuration of Edge Routers:

Other routers

IP address management
IP addresses are used in every corporate or ISP network. They‘re an essential component of the whole networking. There are several ways to
manage IP address assignments. Many administrators even in large companies are still using Excel sheets due to a lack of smart IP address
management tools. We recommend our engine for IP address management . This module is connected to the customer database in Splynx.
When an IP address or subnet is assigned to a customer for his access, the IPs will be assigned in the IP address management tab as well. The
main advantage of this is avoiding IP conflicts when several customers get the same IP or an IP with the wrong range. Also, you always have an
overview of the current situation with subnets.

Steps how to configure IPAM in Splynx are shown below:


1. Create a root network and subnetworks – create large root network and add subnetworks to it. The root network is marked with yellow color.
For example, 172.16.0.0/9 is a root network and all /24 are end networks. From Root network is not possible to assign any IPs, it's used just as a
parent for all real networks.
IP addresses inside the selected subnetwork are shown in the table:

2. We can statically define what a certain IP address is used for. When you assign an IP address to customer, it’s locked in the IP address
management tool, and if you try to assign an IP that has been already used, the system will prevent it
3. As an extra feature you can send a Mass ping to devices in the selected network, split the network into smaller subnets or merge the network
into one large one. You can switch to a graphical map view with icons to get quick information. All red icons mean that the IP address is not
responding on Mass ping.

There is also a way how to customize colors and types of devices, as well as add new types of equipment.

Screenshot shows an example of how to visualize small networks /29,/28 etc. in one common /24 network
Monitoring
Splynx monitoring is based on SNMP and Ping tools.

The following pictures show SNMP logs and RRD charts. We are using RRD as a technology for data logging and generating charts.
How to add a device to monitoring:

Open the monitoring Tab and Add a new device. Please enter the IP address and SNMP community. You can also define if you want to receive
notifications if device is down.

Title - name of the device


Parent - you can build a parent-child relations in Splynx monitoring
Producer - vendor name
Model - information about the device model
IP address - IPv4 of the device where SNMP and Ping tools will connect
Ping this device - If enabled, Splynx will send ICMP echo pings to the device
SNMP Monitoring - If enabled, Splynx will connect over SNMP to device and grab available information
SNMP community - define community, using "public" is insecure
SNMP Version - we recommend to choose version 2
Type - router, switch or any other type that is possible to configure in settings
Group - important fields, defines under which group device is device assigned. This is used for notification purpose
Partners - defines the partner that can see device in Monitoring
Location - used for searching and listing purpose
Address - information about the address where device is installed
Send notifications - If enabled, will send notification according to Group settings

When device is up and running we should see the message like on picture below:

That was the simple configuration to get status of the device. We can use SNMP OIDs to get the values and measure such thing as CPU
performance, Memory usage, Voltage or speed on interfaces. Please, open the SNMP OID tab and use SNMP watch to get the interface list and
all available OIDs.
SNMP Walk is a linux tool that Splynx uses to get available SNMP OID values for configuration. Clicking the + button you will add the value for
measurement:

In the example we have added LAN, WAN and CPU usage.

Now using these values, we can add the charts to Splynx. Follow to Graph tab and click the button Add graph:

For measuring of speed on interfaces is important to set values bps and set Factor to 8. This will create charts and use Bits per second. Also is
availabe to choose what type of chart will be drawn. Line, Bold line (LINE2) or Area.

Below you can see the result of charts:


Charts and SNMP values from Monitoring can be used in Splynx Weathermap tool as on example below:

To configure notification for monitoring, please open Config Networking Monitoring section:

Below all sections you can find Groups definition.


Each group has it's members and types of notification - Email, to Admin portal or SMS.

Please follow the video tutorials to get deeper understanding of Splynx monitoring:

Ping tools :

CPU usage :

Memory usage :

Weathermaps
To install network weathermaps run commands:

apt update
apt install splynx-network-weathermap

After successful installation in Splynx Networking, Network Weathermap menu will appear.

We integrated awesome open source tool https://network-weathermap.com to Splynx, it's installed as a module and connected via API to our
platform.

To create a new map open editor tool in Splynx Config Networking Network Weathermap.

Choose the name for new MAP and create it. First map LAB was created and it's empty now.
Let's add a device. Weathermaps work with equipment which is added to Networking Monitoring. So, to get some visualisation of the network we
need to add devices to Monitoring and configure their SNMP OIDs for interface traffic, CPU and similar.

Device is added to Monitoring, now let's add SNMP OID values and configure charting in Splynx:
When all devices are properly configured in Monitoring, we can add them to Weathermap. All configuration in editor is very simple and
straightforward: use drag and drop and place the routers ona map, connect the links.
You can choose there device from Splynx monitoring list, define what will be shown as a main chart for device and assign a picture for element on
the map

When the router is added, we can add second device and configure link between our two devices. I've added a device "Internet" and will configure
the link WAN, OIDs of this link I have on my LAB_AP router.
We don't have to look for OID. Just choose the OID from link, and setup the chart you want to display as hover chart of the link and the main chart
which will show the complete usage of the link on a separate page.

It's ready, let's go back from configuration mode to the view mode and check if the new picture was generated (please note that the topology map
is generated every 5 minutes).
The legend shows that traffic loads, and here on example we can see that Download in LAB router is using almost all of 10 Mbps available.

Charts are available in hover mode, topology can also be open in a new window (shows the last hour usage on link):

If we click on the link, new window will open with historical charts, showing usage per week, month and year:
Troubleshooting Radius server
This is a post showing how to troubleshoot communication between router (Mikrotik example) and Radius.

Video tutorial for Radius configuration can be found here – https://splynx.com/384/ispframework-and-radius-mikrotik-example/.

Below are steps for Radius and Splynx configuration:

Step 1. Mikrotik Radius section


To configure Mikrotik router and Radius authentication we should change the settings in Mikrotik Radius section.
1) Choose services that have to be authenticated by Radius (ppp, DHCP, login etc.)
2) Enter IP address = Splynx IP address, reachable from Mikrotik
3) Secret = this value is located at Splynx -> Router -> Edit -> Radius secret
4) We cannot use more than one Radius server per Service
Step 2. MikroTik PPP (in case if PPPoE is used)
1) Enable on Secrets -> PPP Authentication & Accounting features “Use radius (yes), Accounting (yes)”
2) Set Profile – default or default-encrypted, set Local address (it’s IP of Mikrotik router for establishing PPP connections)
Step 2. MikroTik DHCP
If we use IPoE authentication (DHCP), we should enable Radius communication on DHCP server.
Step 2. MikroTik Hotspot
For enabling Radius hotspot authentication please change the Hotspot configuration of Mikrotik under IP -> Hotspot as shown below:
When we enable services for Radius authentication, we can move forward and configure router in Splynx.

Step 3. Splynx router configuration


Splynx -> Networking -> Routers, here you can edit or change router settings. Important fields to fill are:
1) Radius Secret should be the same as in Mikrotik settings
2) IP/Host – the real IP (or host, or dyndns host) from which Mikrotik sends packets. In case when NAT is between Mikrotik and Splynx Radius,
host IP will be public IP of NAT router and real IP will be private IP of Mikrotik router.
3) Authorization/Accounting – please, set DHCP/PPP/HotSpot Radius. Even if you choose PPP, DHCP and Hotspot authentication will work as
well. The difference is in DHCP Radius, here you can find accounting API. It means that for getting statistics from DHCP server, Splynx should
connect to API of Mikrotik. This is caused by unsupported Radius accounting packets on Mikrotik routers.
4) NAS IP – IP address of router (on radius packet – NAS-IP-Address), in case when you use hostname of router you need to set this IP (you can
set this IP on Mikrotik – Radius – Src. Address)
Step 4. Define IP networks for IP assignments
Splynx -> Networking -> IPv4 networks
1) Add some network for dynamic assignment (pool) or permanent (static) usage

Step 5. Activate customer and set the Internet service


When we have added router and networks to Splynx, it’s the right time to add a customer and activate him
Then, we need to create an Internet service for the customer with PPP details (or MAC in case of DHCP authentication), IP address and other
details.

If all these steps were made and Mikrotik router still shows Radius timeout in log, we need to do a quick troubleshooting.

Troubleshooting
First of all, check the file in Splynx logs called radius/short. It can be found in section Splynx -> Administration -> Logs -> Files. If this file is empty,
Radius server should be set to debug mode.

Splynx Radius server consist of 2 daemons – splynx_radd and freeradius. Both of them have different debugging and show different information.
Let’s start with splynx_radd debugging:

To enable debug mode of Splynx, connect via SSH to Splynx server and change the configuration file : /var/www/splynx/config/radius.p
hp
[debug] section enable should be changed to – “true”

To restart Radius server, enter command in SSH : service splynx_radd restart

Now we can check the debug file, again it’s accessible from CLI of Linux Splynx server:
/var/www/splynx/logs/radius/debug.log
The best way to check the file is command tail -f /var/www/splynx/logs/radius/debug.log

If splynx_radd debug doesn’t show us anything, we can try to run freeradius daemon in debug mode and see if any packets are received by
Radius server.

Run CLI commands :


service freeradius stop
freeradius -Xxxx

and check the CLI console output.

If you don’t see any debug messages when customer tries to connect to Mikrotik Router, it means that your router cannot send packets and
connect to Radius server at all. It means that you have to verify networking, routing and NAT settings of the network.

On Mikrotik Router there is also availability to run extended debug to see what exactly router is sending to Radius server:

Radius server customization


In Config Networking Radius is a field available for setting additional attributes.

Some attributes are configured by default, such as Framed-IP or Framed-Route, below is an example what happens if we define the router in
additional networks in Splynx service:

Splynx Radius server sends Framed-route attribute to the router and router creates IP route 192.168.102.16/30 with nex-hop ppp interface

We can assign the same way, for example, IPv6 prefix to PPP client using additional attribute Framed-IPv6-Prefix:
And the route is created for the IPv6 prefix to CPE of client:

Of course, this example is very simple and useless, because then Splynx will setup the same IPv6 prefix to all clients. We can tune it a bit and put
to the attribute the additional field that we have added to Splynx Internet services, called IPv6 prefix:
Then, define the IPv6 prefix in customer's services:

Then, we are adding the value of variable to attribute, variable for additional field IPv6 prefix is called service_attributes.ipv6_prefix:
It's possible even to check if the parameter exists - send it in Radius reply. If field in Splynx is empty, don't send it in Radius reply:

PPTP Connection between Splynx and Mikrotik


If Splynx and Mikrotik are in diferent networks, there is a solution to work as if they were in the same. The way to do it is throught a PPPTP tunel.

On Splinx:

First install pptp server.

sudo apt install pptpd


Then you have to add DNS servers. Set the command:

nano /etc/ppp/pptpd-options

change

#ms-dns 10.0.0.1

#ms-dns 10.0.0.2

by

ms-dns 8.8.8.8

ms-dns 8.8.4.4

After that you have to add pptp secrets. Set the command.

nano /etc/ppp/chap-secrets

Add users like in the next table.

# Secrets for authentication using CHAP


# client server secret IP addresses

user1 * user1-password *

user2 * user2-password *

Now allocate local and remote IP's.

nano /etc/pptpd.conf

Add / Edit.

localip X.X.X.X

remoteip X.X.X.X-X

And in that file:

nano /etc/sysctl.conf

Uncomment next line.

net.ipv4.ip_forward = 1

Charge changes:

sudo sysctl -p

Configure Firewall for IP Masquerading.

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Restart pptp daemon to apply changes.

sudo /etc/init.d/pptpd restart

On Mikrotik:

/interface pptp-client

add connect-to=localserverIP disabled=no name=pptp-out1 password=user1-password user=user1


Support, Tickets and Messages
Splynx is able to send different types of messages to customers. Email messages can be sent using SMTP server, SMS messages are sent via
SMS API gateways, Tickets are special types of messages which are updated from customer and administrator's side, News are messages which
are displayed in customer portal when he logs in.

Description of each section you can find at following links:

Email messages

SMS messages

Tickets

News

Email messages

Messages' option in Support Messages allows you to send an email to the customer directly from Splynx using different templates and attaching
financial or other documents.

It is necessary to configure email first in Config Main Configuration Mail before sending email to the customer. More information about email
configuration is here - Email config.

To create an email click on Create in Support Messages. The window will pop-up with the following fields:

ID - ID of the customer. It has given by the system in a sequential order


Login - user login
Status - there are New, Active, Inactive, Blocked statuses of the customer
Type of billing - Recurring payments or Prepaid options
Full name - full name of the customer
Email - email of the customer
Phone number - phone number of the customer
Date added - date customer was added
Category - could be Private person or Company
Partner - partner, service provider of the customer
Location - location of the customer
Tariff plans - all available tariff plans in Internet, Voice, Custom services
Service - Internet service, Voice service and Custom service
Send to - the options are: Email, Customer portal, Customer portal & Email, SMS
Subject - Subject of the email
Message - Body of the message
Templates - Templates of Customer portal and Mail templates can be used.
Attachments - individual attachments
Attach financial documents - Invoices, Proforma Invoices and Payments from Splynx.

It is not necessary to fill in all fields to send an email to the customer. The easiest way is to enter customer's ID, choose option Send to, Subject a
nd write a message. You can choose a body message from templates or write a particular text. You can also write your own message and save it
as a new template by clicking on Save as new. You can attach financial documents of the customer (invoices, proforma invoices and payments
receipts).

You can check your message before sending by clicking on Preview option at the bottom of the page.
When you click on Send icon the window will appear with the confirmation details of the recipient.

If you click on Send as test the window will pop-up, where customer's ID have to be entered.
There is an option of mass sending, for example, you can choose particular recipients by Partner or Location.

If you choose the sending option as Sent to Customer portal or Customer Portal & email, customer will be able to read an email in his portal in Me
ssages section, where all incoming emails will be shown.

By clicking on View
the email will show up with attachment enclosed.

All emails have been sent will be possible to check in Support Messages History. You can sort them by their status (Any, New, Processing, Sent,
Cancelled, Removed, Sent with error) or period of time (Today, Yesterday, Last 7 days, This month, Last month, Custom Range).

By clicking on actions

you'll be able to see customers' list (in case of mass sending it will be a full list with customers' names), view email and delete it.
It is also possible to check all recipients list by their IDs and Email addresses in Administration Logs Email, where you can set a particular period,
type of email message or status.

SMS messages
To send messages via BulkSMS service (bulksms.com, bulksms.co.za), configure values:

URL:
https://bulksms.2way.co.za/eapi/submission/send_sms/2/2.0

POST:
username=&password=&message=%MESSAGE%&msisdn=%TO%&concat_text_sms_max_parts=4

and you will get a successful response:


0|IN_PROGRESS|

It is necessary to configure SMS first in Config Main Configuration SMS before sending SMS to the customer. More information about SMS
configuration you can find on our tutorial page - SMS config.

To create an SMS click on Create in Support Messages. The window will pop-up with the following fields:

ID - ID of the customer. It has given by the system in a sequential order.


Login - user login
Status - there are New, Active, Inactive, Blocked statuses of the customer
Type of billing - Recurring payments or Prepaid options
Full name - full name of the customer
Email - email of the customer
Phone number - phone number of the customer
Date added - date customer was added
Category - could be Private person or Company
Partner - partner, service provider of the customer
Location - location of the customer
Tariff plans - all available tariff plans from Internet, Voice, Custom services
Service - Internet service, Voice service and Custom service
Send to - the options are: Email, Customer portal, Customer portal & Email, SMS
Subject - Subject of the email
Message - Body of the message
Templates - Templates of Customer portal and Mail templates can be used.
Attachments - individual attachments
Attach financial documents - Invoices, Proforma Invoices and Payments from Splynx.

It is not necessary to fill in all fields to send SMS to the customer. The easiest way is to enter customer's ID, choose option Send to, Subject and
write a SMS message. You can choose a body message from templates or write a particular text. You can also write your own message and save
it as a new template by clicking on Save as new.

You can check your SMS message before sending by clicking on Preview option at the bottom of the page.
When you click on Send tab, the window will appear with the confirmation details of the recipient.

If you click on Send as test the window will pop-up, where customer's Phone number have to be entered.
There is an option of SMS mass sending, for example, you can choose particular recipients by Partner or Location.

All SMS and emails have been sent will be possible to check in Support Messages History. You can sort them by their status (Any, New,
Processing, Sent, Cancelled, Removed, Sent with error) or period of time (Today, yesterday, Last 7 days, This month, Last month, Custom Range
).
By clicking on actions

you'll be able to see customers' list (in case of SMS mass sending it will be a full list with customers' names), view SMS message and delete it.
It is also possible to check recipients list by their IDs and Phone numbers in Administration Logs SMS, where you can set a particular period, type
of SMS or status (New, Sending, Sent, Error, Expired).

Tickets
In Splynx billing system both administrators and customers can submit tickets.

Administrators

Once you've connected to Splynx as an administrator:


To create a ticket click on Support Tickets New & opened and then click on Create ticket at the top-right corner of the screen.

In a new window will be possible to create a ticket by filling in following fields:

Customer - which customer is ticket open for


Assign to - who you want to assign the ticket to
Subject - write the subject of the ticket
Priority - it can be Minor, Major, Critical
Status - it can be New, In process, Closed
Message - write the message body
Template - option for selecting and loading tickets templates.
File - possibility to attach a file
Location - choose location if necessary.

Option Hidden

allows you to hide ticket from a customer.

It is possible to create a new field in the ticket. Information about adding custom fields is available here - Additional fields. Remember,
that in order to see the new field in the main table, you should enable it by clicking on icon

below the table.


The created ticket will be visible in the New and opened tickets table. It is even possible to filter the ticket by Period, Customer and Assi
gned to.
After the creation, it is possible to edit the ticket, mark as unread or close the ticket with the actions

You can also add a message and change the status on "in process".

Once the ticket has been resolved, you can change the status on "closed" and close the ticket. Every closed ticket is shown in Support
Tickets List of closed.
Customers

Once you've connected to Splynx as a customer on Customer Portal:

In the tickets' table every ticket associated to the customer is shown. To create a ticket click on Support Tickets and click on Create
ticket.
A window will pop up and it will be possible to create a ticket by filling in following fields:

Subject - the subject of the ticket


Priority - it can be: Minor, Major, Critical
Message - the message
File - possibility to attach a file

After the ticket is created, it is possible to view the ticket or close it with the actions

When the ticket is viewed, it is possible to add a message.


Once the ticket has been resolved, it is possible to change the status on "closed" or reopen it again with the action

Information about tickets configuration can be found here - Support.

News
News feature will help you to provide your customer an updated information on services or some business aspects of your company.

To create News go to Support News and click on Add News on the top right of the table.

"Create news" window will show up, where you will be able to fill in Title and Description field, choose the correct date, select Partners and
location if necessary, and write a text of the news.
The editing option of the text allows you to edit or format the text, insert URL links and images.

For example, you can insert URL link to redirect customers to your company's website to get more information about particular topic. To do so you
simply need to highlight the word or phrase, which will be linked to a webpage, click on
icon in the edition field under the text and enter URL. Then submit and save it.

After news are created it will be possible to edit or delete them with

icons in Actions section.

It is also possible to sort the news by the Partner or Location.

With the help of icon

at the bottom left of the table you can print or copy the list of the news or save it in PDF or SCV format. By clicking on icon
you will choose columns to be displayed in the news table by drag &dropping them.

Customers will be able to see the news on Customers Portal on their Dashboard. By clicking on the Title of the news they will read them and by
clicking on interactive link they will be transferred to a webpage if needed.
It is important to enable option Show portal news in Config Portal Dashboard in Splynx, so customers will be able to see the news.

Administration
Administration settings are divided into 3 main sections with its subcategories: Splynx, Logs and Information. Please, follow the links below to find
tutorial page about first two parts of Administration:

1. SPLYNX

Administrators
Partners
Locations

2. LOGS

Operations
Files
Email
SMS
Sessions
API
Change statuses & plans
Pending statuses & services

Main
There are 4 subcategories in Main section (Splynx) in Administration settings.

Please, follow the links below to find tutorial page about three parts of Main configuration, such as:

Administrators
Partners
Locations

Admins and permissions


Administrators' table in Logs shows a full list of all administrators using Splynx, their admin login, full name, role, phone number and other
information.

It is possible to choose administrators to display by their partners.


You can print, copy or save the list of admins in PDF and CSV file formats by clicking on

icon below the table. It is also possible to select columns to be displayed in the table by clicking on

below the table.


1. To add an administrator, click on Add icon in the top right corner and window will pop up with the next fields to fill up:
Admin login - Login of the administrator
Password - Password of the administrator
Two-factor authentication - disabled or enabled
Full name - Full name of the administrator
Email - Email of the administrator
Phone - Phone number of the administrator
Timeout - Timeout
Role - Roles you can assign to administrator: Administrator, Customer Creator, Financial Manager, Manager, Super Administrator
Router access (radius) - default permissions: None, Read, Write, Full
Partner - Partner

2. To edit the administrator, click on edit icon

in Actions section of the table. The edit window will pop up, where you can make changes if needed.
3. To change permissions for the new administrator, click on

icon in Actions column. The window will show up, where you will be able to check and change all administrator's permissions.

Main fields for changes will be:

Dashboard
Tariff plans
Customers
Finance
Networking
Support
Administration
Config

By clicking on each field you will be able to change particular permissions for different subcategories of that field.

4. To delete the administrator, click on

icon in Actions' column.

It is possible to see all operations of each Administrator by clicking on Administration Logs Operations. If you click on

icon in Details column you will be able to see details of each operation:
There is a way to limit the access to information for admins in Splynx by selecting only one partner, so administrator will be able to operate with all
information associated with one particular partner. Click on Edit icon

in Action column and window will pop-up, where it will be possible to choose one partner or option Any.

You can also change permissions for adding, editing or deleting partner (s) for the particular administrator by clicking on icon
in Actions column. In a window poped-up click on Administration section, enable or disable Partner and choose additional permissions of the
Partner you'd like to assign to the administrator.

Partners
A partner in Splynx is basically a service provider or any subprovider of the service. Partners logs' table shows a list of all Partners with number of
customers assigned to them and number of online customers. If you click on each number in the Customers' column, the full list of customers
associated with the Partner will show up.
If it is a long list of customers and you have to check them by particular status you can use a filter in the top right corner of the window.

Another way to filter or search customers who belong to the same Partner is by clicking on Partner tab in Customers Search.
When you choose preferred partner, the list of customers associated with him, will appear. The table will contain information about name of the
customer, his phone number, Internet, Voice and Custom plans, etc. The columns to display in the table can be selected and customized with the
button

below the table.


It is possible to add a new partner here by clicking on Add in the top right corner of the table.
And it is also possible to edit the partner's name by clicking on Edit icon

in Actions column.

There are some other aspects of Partners' configuration that have to be mentioned here:

1. Not only Customers can be assigned to the particular Partner, but also Routers and Tariff plans.

In Networking Routers List you can check the full list of Routers and filter their view by a Partner. If you'd like to change or add a partner to the
particular router you have to click on it in Title column or click on Edit

in Actions column.
The window will appear, where you can make changes:

The same procedure is with Tariff Plans. When you click on Tariff plans Internet a full list of Internet Tariff Plans will appear, where you can filter
their view by a Partner. If you'd like to change or add a partner to the particular Tariff Plan you have to click on it in Title column or click on icon Ed
it

in Actions column.
The window will appear, where you can make changes:

2. There is a way to limit the access to information for admins in Splynx by selecting only one partner, so administrator will be able to operate with
all information associated with one particular partner. You can find this option in Administration Administrators. Click on icon
in Action column and window will pop-up, where it will be possible to select one partner or option Any.

You can also change permissions for adding, editing or deleting partner (s) for the particular administrator by clicking on icon

in Actions column. In a window poped-up click on Administration section enable Partner and select permissions to add, edit or edit Partner.
3. It is possible to set up a commission for the partner from each payment made by customers for their services. You can set it up in Config
Finance Template Values. In Templates Values in the top right corner choose an appropriate Partner and in Partner percent field fill in
percentage of Partner's commission.
After commission has set up, you will be able to check the amount of it paid to the partner in Finance Invoices. At the top side of the window choo
se an appropriate Partner (with Period of time and Payment Status, if necessary) and below the list of Invoices you will see the "Totals" table,
showing total amount paid and amount of commission for the partner.
Locations
Locations logs' table shows a list of all Locations with a number of customers attached to them and number of online customers. If you click on
each number in the Customers' column, the full list of customers associated with that location will show up.

If it is a long list of customers and you have to check customers by particular status you can use filter by clicking on a status below the table.

It is possible to add a new location here by clicking on Add on the top right of the table.
You can also edit Location by clicking on Edit icon

in Actions column.

Logs
There are 8 type of logs in Administration section:
Operations
Files
Email
SMS
Sessions
API
Change statuses & plans
Pending statuses & services
Operations
Operations logs' table contains detailed information about all operations were running in a Splynx for a particular period of time by all
administrators. The table displays date and time of the operation, admin's name, description of the operation, its results and details.

By clicking on

icon in Details column it will be possible to check operations details such as: Date, Time, Name of the Administrator, IP, Operation's description,
Result and Attributes.
At the top-right corner of the screen there are options of filtering operations by Period of time, Administrator or Type of the operation.

With the help of the icon


at the bottom left of the table you can print or copy the list of the operations or save it in PDF or SCV format. By clicking on icon

you will choose columns to be displayed in the table by drag &dropping them.

Files

The table in Administration Logs Files contains a list of log files with their possible description and size.
To view particular log file click on View icon

in the Actions' column.

Email
Email logs' table show a list of emails has been sent for a some period of time. It contains information about customer's ID, email of the recipient,
type of the message and its status (new, sending, sent, error, expired), added time and sent time and details.

At the top-right corner there is a filter can be set to choose particular emails. You can select viewing emails by specific Period of time, Type of
message (for example, Message, Test mail, Ticket notification, Monitoring notification etc.) and Status (New, Sending, Sent, Error, Expired).

You can view the message by clicking on icon

in Details column.

SMS
SMS logs' table shows a list of SMS messages has been sent for a some period of time. It contains information about customer's ID, phone
number of the recipient, type of the message, its status (new, sending, sent, error, expired), added time and sent time, and details.
There is a filter at the top-right corner of the screen can be set to choose particular emails. You can choose to display SMS messages by specific
Period of time, Type of message (for example, Message, Test, Add-on, Monitoring etc.) and Status (New, Sending, Sent, Error, Expired).

You can also view the SMS message details by clicking on icon

in Details column.

Sessions
Here you can find all sessions of subscribers. PPPoE, DHCP or static sessions are stored there

We can display all the sessions in one table:


We can also apply the search and select particular session from certain period for one IP. Here it shows that in May, 2017 IP 192.168.102.5 was
used by ppp user Alex:

API

Changes of statuses/plans
Changes of statuses\plans logs table displays information about all changes of statuses (for example, from new to active, from blocked to active,
from active to blocked status etc.) for a particular period of time. Here you can also check administrator's name who changed the status or plan.
It is possible to choose to display changes of statuses&plans by particular period of time or by administrator.

You can also check the Customer's Information by clicking on his ID in Customer's column and view the Tariff plan information by clicking on it in
Plan's Column.
With the help of the icon

at the bottom left of the table you can print or copy the list of the news or save it in PDF or SCV format. By clicking on icon

you will choose columns to be displayed in the table by drag &dropping them.
Pending statuses/plans
Pending statuses\plans logs tables shows the list of statuses or plans with forthcoming changes. It could be, for example, when customer's status
is set to be changed on a particular day or new service will be activated on a specific day.

Pending statuses section displays date of change, customer's ID and status (new, activate, blocked, inactive). To view Customer's information
you can click on customer's ID.

Pending services section displays date of change, description of the service, its price, type and plan. To view Service plan information you can
click on a name of the plan in a Plan's column of the table.

1. How to set up pending change of status

To set up a pending change of status for a customer click on Calendar icon next to the Status

in Customer's Information window. Then set the date when status will be changed and choose the appropriate status and save changes.
After changes will be saved the Calendar icon next to the Status will change its colour

. And you will be able to check the pending status in Administration Logs Pending statuses\plans.

2. How to set up pending change of service

To set up a pending change of service go to Customers View Services, select a service you'd like to add, and click on icon

.
Then, choose the plan and fill up the rest of fields in open window if needed: Quantity, Unit, Price, Dates, Status, Voice device, Phone. You can
also turn on a Discount option here, so customer will be charged discounted price for the service. Set up the start date for the service. If it is any
further date you can choose a pending status for the service until that date. On a planned start date of the service it status will be automatically
changed on active.

If you click on Edit icon

you will see current and pending status of the service, which can be changed if needed.
After service has been added it will be possible to check it in in Administration Logs Pending statuses\plans (if starts date differs from today's
date and it has pending status).

Configuration
Global configuration settings are divided into 7 main sections with its subcategories, such as: System and Main configuration, Finance and
Network configuration, Voice processing, Integrations and Tools.

Please, follow the links below to find tutorial page about each part of Configuration:

System

Main configuration

Finance configuration

Network configuration

Voice processing

Integrations

Tools
System
In System configuration of Splynx you can add and set Additional Fields parameters, manage Custom Translations, use File manager to upload
an image file ( for e.g., for invoices template or logo) and also add Templates you'll need to work with.

Please, follow the links below to find tutorial page about each part of System Configuration:

Additional fields

Custom translations

File manager

Templates

Variables for templates


Additional fields
To add additional field click on Config menu System Additional fields

. Select the module where you'd like to add an additional field and click on

at the top-right corner of the screen.

You can add an additional custom fields to all modules in Splynx:

Administrators
Partners
Location
Customers
API keys
Internet plans
Voice plans
Custom plans
Routers
Voice devices
Monitoring
IPv4 and IPv6 Networks
Services (Internet, Voice, Custom)
Invoices
Tickets
Messages
News
Customer documents etc.

To add a new custom field:

First of all, you should select the Module where you will add the field (at the top-right corner of the screen) and then click on

A window will pop up and it will be possible to create an additional field. In this example a Contract ID is shown - an additional field for the
Customers module.
Required - impossible to save without filling in this field.
Unique - unique value for this field.
Show in the list - shows in the list of the selected module as a column.
Add - add to the entry of every module.
Searchable - searchable.
Set default value for - set as a default value for every field.

The new created field will be possible to see it in the Additional Field table and in Customer Information view:
You can edit or delete a new additional field by clicking on Edit icon

or Delete icon

in "Action" section of the table.


In next example a "Service Location" is shown - an additional field for the Customers module.
Custom translations

Custom translations enable you to make your own translation of Splynx system available for you and your customers in Customer Portal. Custom
translation can be done in any language. To start translation click on Config SystemCustom translations.
Choose a language for translation.

There are two ways of translation: by key words and by categories.

1. Translation by key words.

To start a translation choose a language first and click on Add icon at the top-right corner of the screen. The window will pop up where
you will type a key word for searching in the "Message" field. This word will appear in all categories it's been used.
Choose a word from particular category to translate, write its new meaning in the "Translation" field and save it.

After saving the new translated word will appear in the "Custom translations" table.
2. Translation by categories.

To start a translation choose a language first and a category you'd like to change word in and then click on "Load messages" option at
the top-right corner of the screen.

The window will appear with warning that all existing translates in that category will be overwritten.

Click on "Load" to see a list of all translations in that particular category.


To change or edit translation click on Edit icon

in Actions section of the table and write correct meaning into Translation field.

Here you can also use a Search option to find a particular word in that category. For example, if we will look for a word "Invoice" in
Administration category, the system will give us a following result:

File manager
File manager in Config System can be used mainly for adding an image file in templates and also for adding\changing a logo in Admin page or
Customer portal in Splynx.
1. How to create/ change logo in your Splynx installation.

First of all upload your Logo (image file) in Splynx admin panel in section: Config System File Manager.

Uploaded file will appear in the list of files in File manager table.
You can edit a file or delete it by clicking on icons

and

in Actions section of the table.

Second step is to copy a Public link by clicking on Info icon

.
Then go to Config Main Preferences and insert a link to the Administration portal logo field or Customers portal logo field.

Save changes, refresh the page and new logo will appear.
2. How to add an image file to templates.

You can add an image to your templates.

Please note, that for adding image file to internal templates you will have to copy a Link for templates and for external templates (e.g. Customer
portal template) the public link will be copied.

First of all upload your Logo (image file) in Splynx admin panel in section: Config System File Manager.
Copy a Public link by clicking on Info icon

in Action section of the table.

Then, go to Config System Templates and select the template you'd like to add an image.
Click on Edit icon

and insert a link in a code message field.

Click on Support Messages to send message to the customer: choose the customer and option Sent to Customer portal or Email, load
"Customer portal example" from templates and send it.
In Customer portal customer will see the following message:

Templates
Splynx has set of templates that are used in different parts of the system. Email messages, Invoice PDFs, SMS messages, Document templates
etc.

Categories of templates

Customer portal – messages sent to customer portal


Invoice PDF – Invoices (customer billing)
Mail – messages sent to email
SMS – messages sent to SMS
Documents – Documents (located on customer)
Cards – Generation cards (prepaid, refill)
Payment calendars – payment calendars (customer billing)
Payment receipts – receipts for payments (customer billing)
Request PDF – proforma invoices – requests (customer billing)
Reminder mail – reminder mail notification (customer billing)
Reminder SMS – reminder sms notification (customer billing)
Finance exports – Export invoices, requests, payments on Finance part
Let's open Invoice PDF template:

Add a new template


How to add a new template:
Edit
When you edit or change the template, Splynx displays you HTML editor:

Delete
You can always delete the template:

Values for templates

We recommend to create one test template in customer documents and enter the following values to get list of variables for section of Splynx that
you need to use.

For example, let's create a test template and dump all variables of customer:
And then we can get the list of variables:
["id"]=> string(2) "50"
["billing_type"]=> string(7) "prepaid"
["partner_id"]=> string(1) "4"
["location_id"]=> string(1) "1"
["added_by"]=> string(5) "admin"
["added_by_id"]=> string(1) "1"
["login"]=> string(6) "000050"
["category"]=> string(6) "person"

For example, If we need to use the value login of customer inside invoice PDF, just type:

some HTML code {{ login }} continues HTML code

Please find the list of most used variables here - Variables for templates.

There are dump commands for different Splynx sections below:

Basic system values:

{{ dump(loader.values) }}

Customer's information:

{{ dump(loader.customer) }}

General information:

{{ dump(loader.info) }}

Customer's services:

{{ dump(loader.services) }}

Get all Internet services that are Active:

{{ dump(loader.getServicesByTypeAndStatus('internet', 'active')) }}

Billing information:

{{ dump(loader.billing) }}

Partner:

{{ dump(loader.partner) }}

Transactions:
{{ dump(loader.transactions) }}

Invoices variables:

{{ dump(loader.invoices) }}

Invoice items:

{% for invoice in loader.getInvoices() %}


Invoice {{ invoice.number}} items:
{{ dump(invoice.items) }}
{% endfor %}
{{ dump(loader.invoices) }}

Pro-formas:

{{ dump(loader.requests) }}

Payments:

{{ dump(loader.payments) }}

Attached documents:

Invoices:
{{ dump(loader.getAttachedInvoices) }}
Pro-formas:
{{ dump(loader.getAttachedRequests) }}
Payment receipts:
{{ dump(loader.getAttachedReceipts) }}

Example of usage:

{% set attached_invoices = loader.getAttachedInvoices %}


{% for current in attached_invoices %}
Invoice number: {{ current.number }} - sum: {{ current.total }} <br>
{% endfor %}

Twig (engine)
In all templates we use twig engine, please find the documentation.
Variables for templates
There is list of all variables which used in templates. So you can use them in your custom templates.

Basic system values:

{{ dump(loader.values) }}
result will be array of company fields:

object(models\common\finance\TemplateValues)#226 (30) {
["id"]=> string(2) "13"
["invoice_template_id"]=> string(1) "5"
["request_template_id"]=> string(2) "14"
["receipt_template_id"]=> string(2) "34"
["reminder_mail_template_id"]=> string(2) "15"
["reminder_sms_template_id"]=> string(2) "16"
["company_name"]=> string(33) "Private Company Internet Ltd."
["street_1"]=> string(47) "56, Adamause str."
["street_2"]=> string(0) ""
["zip"]=> string(6) "568749"
["city"]=> string(8) "Yamayka"
["country"]=> string(5) "Gonduras"
["email"]=> string(20) "office@privatecompany.com"
["phone"]=> string(14) "8 500 600 8526"
["company_id"]=> string(21) "K683621TP2398723321"
["company_vat"]=> string(0) ""
["vat_percent"]=> string(7) "20.0000"
["bank_account"]=> string(0) ""
["bank_name"]=> string(0) ""
["bank_id"]=> string(0) ""
["bank_address"]=> string(0) ""
["splynx_url"]=> string(44) "https://privatecompany/admin/login"
["partner_percent"]=> string(4) "0.00"
["deleted"]=> NULL
["_relations":"db\Record":private]=> array(0) { }
["connected_models":"db\Record":private]=> NULL
["_oldAttributes":protected]=> array(23) {
some old attributes ...
}
["_errors":"base\Model":private]=> NULL
["_additionalAttributes":protected]=> array(0) { }
["_isAdditionalAttributesLoaded":protected]=> bool(false)
}

Customer's information:
{{ dump(customer) }}
result will be array of customer fields:

array(38) {
["id"]=> string(1) "4"
["billing_type"]=> string(7) "prepaid"
["partner_id"]=> string(2) "13"
["location_id"]=> string(1) "3"
["added_by"]=> string(5) "admin"
["added_by_id"]=> string(1) "1"
["login"]=> string(11) "qwerty"
["category"]=> string(6) "person"
["password"]=> string(11) "ZaXsCdVfBg"
["name"]=> string(12) "Qwert Ytrewq"
["email"]=> string(19) "qwerty@gmail.com"
["phone"]=> string(10) "132456789"
["street_1"]=> string(57) "Long Island str., 526/4"
["zip_code"]=> string(0) "48567"
["city"]=> string(0) "Malibu"
["status"]=> string(6) "active"
["date_add"]=> string(10) "2016-05-21"
["last_online"]=> string(19) "2017-06-01 11:41:01"
["last_update"]=> string(19) "2017-05-01 14:10:50"
["internet_tariffs"]=> NULL
["voice_tariffs"]=> NULL
["custom_tariffs"]=> NULL
["services_internet_router_id"]=> NULL
["services_internet_sector_id"]=> NULL
["services_internet_login"]=> NULL
["services_internet_ipv4"]=> NULL
["services_internet_ipv4_route"]=> NULL
["services_internet_mac"]=> NULL
["services_voice_phone"]=> NULL
["services_voice_voice_device_id"]=> NULL
["services_internet_start_date"]=> NULL
["services_internet_end_date"]=> NULL
["services_voice_start_date"]=> NULL
["services_voice_end_date"]=> NULL
["services_custom_start_date"]=> NULL
["services_custom_end_date"]=> NULL
["deleted"]=> string(1) "0"
["additional_attributes"]=> array(10) {
["some_additional_field"]=> string(0) "some additional field"
}
}

General information:
{{ dump(loader.info) }}
result will be array of customer's information fields:

object(models\common\customers\CustomerInfo)#226 (12) {
["customer_id"]=> string(1) "4"
["birthday"]=> string(0) ""
["passport"]=> string(0) ""
["company_id"]=> string(0) ""
["vat_id"]=> string(0) ""
["deleted"]=> NULL
["_relations":"db\Record":private]=> array(0) { }
["connected_models":"db\Record":private]=> NULL
["_oldAttributes":protected]=> array(5) {
some old attributes ...
}
["_errors":"base\Model":private]=> NULL
["_additionalAttributes":protected]=> array(0) { }
["_isAdditionalAttributesLoaded":protected]=> bool(false)
}

Get all Internet services that are Active:

{{ dump(loader.getServicesByTypeAndStatus('internet', 'active')) }}
result will be array of service fields:

array(1) {
[0]=> object(models\common\customers\ServicesInternet)#235 (47) {
["type"]=> string(8) "internet"
["router_id"]=> string(1) "0"
["login"]=> string(11) "qwerty_login"
["password"]=> string(11) "qwert_pass"
["sector_id"]=> string(1) "0"
["taking_ipv4"]=> string(1) "0"
["ipv4"]=> string(0) ""
["ipv4_pool_id"]=> string(1) "0"
["taking_ipv6"]=> string(1) "0"
["ipv6"]=> string(0) ""
["ipv6_pool_id"]=> string(1) "0"
["mac"]=> string(0) ""
["port_id"]=> string(1) "0"
["ipv4_route"]=> string(0) ""
["ipv6_route"]=> string(0) ""
["update_online_tariff":"models\common\customers\ServicesInternet":private
]=> bool(false)
["_is_password_changed":"models\common\customers\ServicesInternet":private
]=> bool(false)
["parent_id"]=> string(1) "0"
["customer_id"]=> string(1) "4"
["tariff_id"]=> string(3) "206"
["description"]=> string(9) "Internet tariff - 30Mb"
["quantity"]=> string(1) "1"
["unit"]=> string(0) ""
["unit_price"]=> string(9) "100"
["start_date"]=> string(10) "2017-01-16"
["end_date"]=> string(10) "0000-00-00"
["discount"]=> string(1) "0"
["discount_percent"]=> string(4) "0.00"
["discount_start_date"]=> string(10) "0000-00-00"
["discount_end_date"]=> string(10) "0000-00-00"
["discount_text"]=> string(0) ""
["status"]=> string(6) "active"
["status_new"]=> string(0) ""
["old_tariff_id"]=> NULL
["planned_date"]=> NULL
["validate_login"]=> bool(true)
["skip_some_validations"]=> bool(false)
["id"]=> string(4) "83"
["ips_to_remove":"db\ActiveTable":private]=> array(0) { }
["relatedItems":protected]=> array(0) { }
["deleted"]=> string(1) "0"
["_relations":"db\Record":private]=> array(0) { }
["connected_models":"db\Record":private]=> NULL
["_oldAttributes":protected]=> array(32) {
some old attributes ...
}
}

Billing information:

{{ dump(loader.billing) }}
result will be array of billing fields:

object(models\common\customers\CustomerBilling)#226 (36) {
["customer_id"]=> string(1) "4"
["enabled"]=> string(1) "1"
["type"]=> string(1) "1"
["deposit"]=> string(8) "758.0000"
["billing_date"]=> string(1) "1"
["billing_due"]=> string(2) "15"
["grace_period"]=> string(2) "10"
["make_invoices"]=> string(1) "1"
["auto_pay_invoices_from_deposit"]=> string(0) ""
["payment_method"]=> string(1) "1"
["min_balance"]=> string(6) "0.0000"
["request_auto_enable"]=> string(0) ""
["request_auto_day"]=> string(1) "1"
["request_auto_period"]=> string(1) "0"
["reminder_enable"]=> string(1) "1"
["reminder_day_1"]=> string(1) "2"
["reminder_day_2"]=> string(1) "8"
["reminder_day_3"]=> string(2) "20"
["reminder_payment"]=> string(0) ""
["reminder_payment_value"]=> string(6) "0.0000"
["reminder_payment_comment"]=> string(0) ""
["reminder_type"]=> string(1) "0"
["billing_person"]=> string(0) ""
["billing_street_1"]=> string(0) ""
["billing_zip_code"]=> string(0) ""
["billing_city"]=> string(0) ""
["request_auto_type"]=> string(1) "1"
["request_auto_next"]=> string(10) "0000-00-00"
["partner_id"]=> NULL ["deleted"]=> string(1) "0"
["_relations":"db\Record":private]=> array(0) { }
["connected_models":"db\Record":private]=> NULL
["_oldAttributes":protected]=> array(29) {
some old attributes ...
}
["_errors":"base\Model":private]=> NULL
["_additionalAttributes":protected]=> array(0) { }
["_isAdditionalAttributesLoaded":protected]=> bool(false)
}

Partner:
{{ dump(loader.partner) }}
result will be array of partner fields:

object(models\admin\administration\Partners)#226 (11) {
["id"]=> string(2) "13"
["name"]=> string(14) "Partner West"
["ips_to_remove":"db\ActiveTable":private]=> array(0) { }
["relatedItems":protected]=> array(0) { }
["deleted"]=> string(1) "0"
["_relations":"db\Record":private]=> array(0) { }
["connected_models":"db\Record":private]=> NULL
["_oldAttributes":protected]=> array(3) {
["id"]=> string(2) "13"
["name"]=> string(14) "Partner West"
["deleted"]=> string(1) "0"
}
["_errors":"base\Model":private]=> NULL
["_additionalAttributes":protected]=> array(1) {
["code"]=> string(4) "EUR"
}
["_isAdditionalAttributesLoaded":protected]=> bool(true) }

Transactions:
{{ dump(loader.transactions) }}
result will be array of transactions fields:

array(3) {
[158]=> object(models\common\finance\Transactions)#226 (32) {
["id"]=> string(4) "158"
["customer_id"]=> string(1) "4"
["type"]=> string(6) "credit"
["quantity"]=> string(1) "1"
["unit"]=> string(0) ""
["price"]=> string(9) "1033.8500"
["tax_percent"]=> string(6) "0.0000"
["total"]=> string(9) "1033.8500"
["date"]=> string(10) "2017-05-11"
["category"]=> string(1) "3"
["description"]=> string(11) "Credit Card"
["period_from"]=> string(10) "0000-00-00"
["period_to"]=> string(10) "0000-00-00"
["service_id"]=> string(1) "0"
["payment_id"]=> string(3) "366"
["invoice_id"]=> string(1) "0"
["invoiced_by_id"]=> string(1) "0"
["comment"]=> string(15) "Pay by Credit Card"
["to_invoice"]=> string(1) "0"
["service_type"]=> string(8) "internet"
["source"]=> string(6) "manual"
["balance"]=> NULL
["total_with_tax"]=> NULL
["ips_to_remove":"db\ActiveTable":private]=> array(0) { }
["relatedItems":protected]=> array(0) { }
["deleted"]=> string(1) "0"
["_relations":"db\Record":private]=> array(0) { }
["connected_models":"db\Record":private]=> NULL
["_oldAttributes":protected]=> array(22) { [
some old attributes ...
}
["_errors":"base\Model":private]=> NULL
["_additionalAttributes":protected]=> array(0) { }
["_isAdditionalAttributesLoaded":protected]=> bool(false)
}
[681]=> object(models\common\finance\Transactions)#224 (32) {
The same attributes
}
[985]=> object(models\common\finance\Transactions)#223 (32) {
The same attributes
}

Invoices variables:
{{ dump(loader.invoices) }}
result will be array of invoices variables fields:

array(1) { [685]=> object(models\common\finance\Invoices)#226 (29) {


["id"]=> string(4) "685"
["customer_id"]=> string(1) "4"
["date_created"]=> string(10) "2017-05-31"
["real_create_datetime"]=> string(19) "2017-06-01 00:00:13"
["date_updated"]=> string(10) "2017-06-01"
["date_payment"]=> string(10) "2017-05-31"
["date_till"]=> string(10) "2017-06-15"
["use_transactions"]=> string(1) "1"
["note"]=> string(0) ""
["memo"]=> string(0) ""
["number"]=> string(12) "201713000183"
["total"]=> string(8) "533.6000"
["payment_id"]=> string(1) "0"
["payd_from_deposit"]=> string(1) "1"
["status"]=> string(4) "paid"
["mark"]=> NULL
["recalculated"]=> bool(false)
["noCache"]=> bool(false)
["is_sent"]=> string(1) "0"
["disable_cache"]=> NULL
["ips_to_remove":"db\ActiveTable":private]=> array(0) { }
["relatedItems":protected]=> array(0) { }
["deleted"]=> string(1) "0"
["_relations":"db\Record":private]=> array(0) { }
["connected_models":"db\Record":private]=> NULL
["_oldAttributes":protected]=> array(17) {
some old attributes ...
}
}

Invoice items:

{% for invoice in loader.getInvoices() %} ...


{% for invoice in loader.getInvoices() %}
Invoice {{ invoice.number}} items:
{{ dump(invoice.items) }}
{% endfor %}
{{ dump(loader.invoices) }}

result will be array of tariff field and invoices fields:

Invoice 201713000183 items:


array(1) {
[0]=> array(12) {
["id"]=> string(4) "948"
["invoice_id"]=> string(4) "684"
["pos"]=> string(1) "0"
["description"]=> string(9) "Internet tariff - 30Mb"
["quantity"]=> string(1) "1"
["unit"]=> string(0) ""
["price"]=> string(8) "464.0000"
["tax"]=> string(7) "15.0000"
["period_from"]=> string(10) "2017-05-14"
["period_to"]=> string(10) "2017-05-31"
["transaction_id"]=> string(4) "984"
["deleted"]=> string(1) "0"
}
}
array(1) {
[948]=> object(models\common\finance\Invoices)#280 (29) {
["id"]=> string(4) "948"
["customer_id"]=> string(1) "4"
["date_created"]=> string(10) "2017-05-31"
["real_create_datetime"]=> string(19) "2017-06-01 00:00:13"
["date_updated"]=> string(10) "2017-06-01"
["date_payment"]=> string(10) "2017-05-31"
["date_till"]=> string(10) "2017-06-15"
["use_transactions"]=> string(1) "1"
["note"]=> string(0) ""
["memo"]=> string(0) ""
["number"]=> string(12) "201713000183"
["total"]=> string(8) "533.6000"
["payment_id"]=> string(1) "0"
["payd_from_deposit"]=> string(1) "1"
["status"]=> string(4) "paid"
["mark"]=> NULL
["recalculated"]=> bool(false)
["noCache"]=> bool(false)
["is_sent"]=> string(1) "0"
["disable_cache"]=> NULL
["ips_to_remove":"db\ActiveTable":private]=> array(0) { }
["relatedItems":protected]=> array(0) { }
["deleted"]=> string(1) "0"
["_relations":"db\Record":private]=> array(0) { }
["connected_models":"db\Record":private]=> NULL
["_oldAttributes":protected]=> array(17) {
some old attributes ...
}
}
}

Pro-formas:

{{ dump(loader.requests) }}
result will be array of pro-forma fields:

array(1) {
[2]=> object(models\common\finance\Requests)#226 (23) {
["id"]=> string(1) "2"
["customer_id"]=> string(1) "4"
["date_created"]=> string(10) "2017-06-07"
["real_create_datetime"]=> string(19) "2017-06-07 14:56:25"
["date_updated"]=> string(10) "2017-06-07"
["date_payment"]=> string(10) "0000-00-00"
["date_till"]=> string(10) "2017-06-22"
["number"]=> string(10) "2017000002"
["total"]=> string(8) "180.0000"
["payment_id"]=> string(1) "0"
["status"]=> string(8) "not_paid"
["is_sent"]=> string(1) "0"
["note"]=> string(4) "Note"
["memo"]=> string(4) "Memo"
["ips_to_remove":"db\ActiveTable":private]=> array(0) { }
["relatedItems":protected]=> array(0) { }
["deleted"]=> string(1) "0"
["_relations":"db\Record":private]=> array(0) { }
["connected_models":"db\Record":private]=> NULL
["_oldAttributes":protected]=> array(15) {
some old attributes ...
}
["_errors":"base\Model":private]=> NULL
["_additionalAttributes":protected]=> array(0) { }
["_isAdditionalAttributesLoaded":protected]=> bool(false)
}
}

Payments:
{{ dump(loader.payments) }}
result will be array of payment fields:

array(1) {
[366]=> object(models\common\finance\Payments)#226 (28) {
["id"]=> string(3) "366"
["customer_id"]=> string(1) "4"
["invoice_id"]=> string(1) "0"
["request_id"]=> string(1) "0"
["transaction_id"]=> string(4) "2400"
["payment_type"]=> string(2) "10"
["receipt_number"]=> string(13) "2017-10-00011"
["date"]=> string(10) "2017-05-13"
["real_create_datetime"]=> string(19) "2017-05-13 09:19:02"
["amount"]=> string(9) "1033.8500"
["comment"]=> string(15) "Pay by Bank Transfer"
["is_sent"]=> string(1) "1"
["field_1"]=> string(0) ""
["field_2"]=> string(10) "UNIC00032"
["field_3"]=> string(10) "UNIC00032"
["field_4"]=> string(13) "Payment: null"
["field_5"]=> string(19) "Bank Statement: 23"
["note"]=> string(0) ""
["memo"]=> string(0) ""
["ips_to_remove":"db\ActiveTable":private]=> array(0) { }
["relatedItems":protected]=> array(0) { }
["deleted"]=> string(1) "0"
["_relations":"db\Record":private]=> array(0) { }
["connected_models":"db\Record":private]=> NULL
["_oldAttributes":protected]=> array(20) {
some old attributes ...
}
["_errors":"base\Model":private]=> NULL
["_additionalAttributes":protected]=> array(0) { }
["_isAdditionalAttributesLoaded":protected]=> bool(false)
}
}

Attached documents:
Invoices: {{ dump(loader.getAttac ...
Invoices:
{{ dump(loader.getAttachedInvoices) }}
Pro-formas:
{{ dump(loader.getAttachedRequests) }}
Payment receipts:
{{ dump(loader.getAttachedReceipts) }}

result will be array of attached documents fields:

array(1) {

And now, you can see examples how to use variables in templates:

Hello!

This is example template. We use Twig as template engine!


You can use some variables in templates.
For example to get customer name use {{ customer.name }},
customer login - {{ customer.login }}.

{% set billing_custom = loader.billing %}

Hello {{ customer.name}},
your deposit is {{ billing_custom.deposit }} EUR,
we strongly recommended to refill it.
{{ App.t('common', 'Hello') }} {{ customer.name }},
We would like to welcome you as a Super ISP!
Your Billing date will be {{ loader.billing.billing_date }} of every month.

There is no fixed length contract and you will be billed 1 month in


advance.
Your customer reference number is {{ loader.customer.id }}
The e-mail address to where your invoices will be sent is : {{
loader.customer.email }}
Your Wifi password is: {{ loader.customer.additionalAttributes.wifi_pass }}

To download your invoices, view payments, create support tickets, see your
usage statistics, use our customer self service portal my.splynx.com using
username {{ loader.customer.login }} and {{ loader.customer.password }} as
your password.

Our phone numbers in case you have not saved them yet,

1234567890
1234567890

office@superisp.com

Main configuration
In main part of Splynx configuration is possible to select default site (Customer or Administrator portal), logo of Customer and Administration
portal, System Language. You can configure here Localization and Finance format settings, Login and Graph parameters for customers, Email
and SMS settings, Support Tickets and Customer Portal parameters. Cards parameters and Logrotate can also be configured here.

Please, follow the links below to find tutorial page about every single part of Main configuration:

Preferences

Localization

Customers

Email config

SMS config

Support

Portal

Cards

Logrotate
Preferences
Basic settings of Administration and Customer portal can be configured in Config Main Preferences.
Following parameters can be set here:

Site by default - select site where user will be redirected (Administration or Customer portal)
Administration portal - create or change a Logo in Administration portal
Customer portal - create or change a Logo in Customer portal

Information about creating and changing a logo of Admin or Customer portal you can find here - File manager.
Localization
It is possible to configure Localization and Finance format settings in ConfigMainLokalization.
The following parameters can be set here:

Language

System language - select system language, after save it and refresh a page.

Localization settings

Date format - choose a date format (MM-DD-YYYY, DD/MM/YYYY, YYYY/MM/DD etc.).


Time format - choose time format (12 or 24 hours)
With seconds - enable or disable option to show time format with seconds

Number format:

Decimals - choose decimals for numbers if needed from 0 to 4


Decimals separator - choose decimals separator (. , )
Thousands separator - choose thousands separator if needed (, . ')
Finance format settings

Currency - write the preferred currency


Currency display option - choose the currency display option (None, Before, Before with space, After with space)
Tax name - write your country tax name
Tax decimals - choose tax decimals if needed (0, 2, 4)
Decimals - choose decimals if needed from 0 to 4
Decimals separator - choose decimals separator (. , )
Thousands separator - choose thousands separator if needed (, . ')

Customers
Customer settings such as login settings, customers limit in search, statistics graphs settings can be configured in Config Main Customers.
The following parameters can be configured here:

Login

Can change login - with enabled option will be possible to change login during adding a new customer. With option disabled login will
be automatically generated when you'll be adding a new customer.

Characters for generation - add characters which will be used for login and password generation (e.g. capital, small letters, numbers)
Show button "Generate" - Enabled option will show button

for generating customer login in Customers Add.


Login pattern - create login pattern. Could be vars: {id}, {email}, {phone}, {partner_id}, {location_id}, {rand_string}, {rand_number}, {year},
{month}, {day}, {next}

Others

Show customers limit - enter amount of customers which will be shown in search
Statistics graphs in - choose graphs in Bytes(Bps) or Bits(bps)

Email config
To configure email sending click on ConfigMainMail.
You should set the mail parameters:

Email address

Sender's name - name of the sender


Sender's email - email of the sender
Admin email - email of the administrator
Enable mail sending - select

on when is desirable to send email from pool


Send to - If value is set all (!) emails will be send to this address
Copy email - If value is set copy of all emails will be send to this address(s). You can use many addresses separated by comma
Days to expire - how many days the server will try to send the email

Transport

Transport type - select sending protocol

SMTP config

Host - SMTP server name


Port - SMTP port
Verify SSL certificate - you can select in on or off with

Encrypted - select encrypted protocol


Use authentication - you can use SMTP authentication on or off with

Username - your username


Password - your password
Header key - custom header key
Header value - custom header value

Sendmail config

Path - Path to sendmail


Params - Params for sendmail

Test

Email - Enter email for testing if necessary.


We strongly advice to use an Email Delivery Service such as https://www.sparkpost.com/
SMS config
Splynx ISP Framework supports sending of notifications and reminders to customers via SMS. For the configuration of SMS gateway you need to
find a local SMS gateway and set up Splynx to work with that getaway.

To configure SMS sending in Splynx click on ConfigMainSMS.


You can set here the following SMS parameters:

Main

Gateway URL - insert URL for sending SMS


Params - Params for request of sending SMS (use patterns %TO% and %MESSAGE% for relevant values).
Method - choose method to call gateway (POST or GET)
Enable SMS sending - enable this option

when is desirable to send SMS from pool


Debug - you can enable debug to log file
Successful response - you can text here to check response from gateway
Days to expire - choose how many days server will try to send the email

For example, we will use https://www.smsapi.com as a service to send SMS. So we should register there, after that we can access the
dashboard:
And now, we have to see API documentation:
As you can see in previous screenshot, in "params" it used "password" in MD5-format. To receive that password we have to go https://www.smsa
pi.com in dashbord and set API password:

Everything is ready to configure Splynx system. All data: Gateway URL, Params and Method we take from "API documentation".

Let's start:
Field Params should be:

Params
username=insert_smsapi.com_username&password=insert_password_in_MD5_format
&from=Info&to=%TO%&message=%MESSAGE%

Field Successful response should be "OK:", as you can see on next screenshot, when we received response from smsapi-system.

Then, click "Run test" button and see "Test result".

Test

Phone - you can add here a phone number to run a test

If everything is Ok, click "Save" button to save SMS-configuration.


That is all. System is fully configured. And now let's see an example, how to send SMS to the current customer. Open customers list, choose
some customer and check his phone number:

Then, we will create SMS message:


after that we can preview message and send it:
The same information you can also find in our video tutorial - https://splynx.com/235/configure-sms-in-ispframework/.

Support
To configure your ticketing system click on Config Main Support.
The support is divided into four areas:

1 - Tickets

View ticket in modal window - It is possible to choose to see the ticket in modal window by enabling this option.

Send emails - It is possible to send an email notification every time when the ticket is updated by turning this option on
Copy email - you can use an additional email in Copy email if you want to add a Carbon Copy.
Send notifications to admin panel (if it's online) - if option is enabled, notifications will be send to admin panel.

The mail configuration is explained in Email config.

2 - Ticket statuses

It is possible to create new statuses by clicking on the plus above the table.

A window will pop up where you will write a Title of the new status. For every status you can define a label with a different color: Default, Primary,
Success, Warning, Danger, Info.

You can edit or delete existing statuses be clicking on

and

option in the "Actions" column of the table.


3 - Ticket assigments

When customer has created the ticket, it is possible to auto assign the ticket to a particular administrator on default.

4 - Ticket templates

You can set parameters of ticket templates here.


Portal
To configure Customer portal click on Config Main Portal. Portal configuration includes following parts:

1. Main - configuration of customer's authentication, password, ways of resetting password and languages in Customer Portal.

In main part is possible to configure:

Languages - here you can select languages for your Customer Portal
Authentication field - here you can select a way of customer's authentication such as Email or Login
Reset password - here you can enable or disable option of resetting password for Customer Portal
Type of resetting password - select the method of resetting password via SMS or Email
Template for email message - you can choose a template of email for resetting password
Text for SMS message - here you can enter the text for SMS messages.

2. Menu - configuration of main modules to be displayed in Customer portal. You can choose from Statistics, Services, Finance, Messages,
Tickets, Documents, Profile, About, News.

3. Dashboard - configuration of items to be shown on a Customer Dashboard. Here you can enable option Show Portal News and the last
three portal news will be shown on a customer dashboard.

You can select following items to be displayed on Customer Dashboard: Balance, New Tickets, New Messages, Unpaid Invoices, Unpaid
Proforma Invoices.

Below is an example of Customer account in portal with all items selected to be displayed in Side menu and Balance, New Messages, Unpaid
Invoices selected to be displayed on a Dashboard.

4. Profile - configuration of customer profile which will give customer option to view his contact information or to edit it. To be able to edit and
save changes customer can be asked for his current password. You should enable an option "Ask Password" for that.
Profile information includes:

Login
Name
Email
Phone
Street
ZIP
City
Password

For each of these items you can choose an action customer can do with it: View or Edit.

Items you've selected as just to be viewed in Customer Account will have dimmed fields and items which customer can change will be with white
fields.
5. Statistics - configuration of statistic items to be shown in Customer portal.

You can enable here following features:

Show graph - enabled option will show a Bandwidth usage graph in Customer portal
Show FUP statistics - enabled option will show details of FUP statistics
Show current limits - enabled option will show current speed limits information
Show hard limits - enabled option will show hard limits information
Show sessions statistics - enabled option will show details of session statistics

6. Services - configuration of services and service fields to be displayed in Customer portal. Here you can also enable an option showing
how many days left until the end of the service.

For each type of service you can select fields to display:

Internet Service - Customer ID, Price, Login, Radius IPv6, Change plan, Description, Start date, IPv4, Type of Connection, Password
changed, Plan, End date, Test, Stop/Active service, Status.
Voice Service - Customer ID, Price, Phone, Status, Description, Start date, Stop/Active service, Plan, End date, Change plan.

Custom Service - ID, Price, New, Stop/active service, Description, Start date, USD/year, Change plane, Plan, End date, TEST field,
Status.

Some fields need to be explained more detailed:

Password changed - enabled option will let customer change password for his service. Customer will be able to change password by
clicking on icon

in Actions section of the table in Services.

Change plan - enabled option will let customer to apply for a plan changing via Customer portal by sending a request to technical support
. When option is enabled customer will see an icon

in Actions in Services. By clicking on that icon a window "Change plan" will appear where customer will choose an option Manual change
request.

The window "Create ticket" will appear where customer will choose Priority of the ticket (Minor, Major, Critical) and write a short message.
Customer can also upload a file by clicking on icon Upload

below the text message.

7. Finance - configuration of financial items to be displayed in Customer portal such as: Invoices, Payments, Proforma Invoices and
Transactions, and Payment methods available for Customer, for example, Refill cards.

8. Additional attributes in profile - configuration of additional attributes to be seen in Customer portal, for example, GPS, Contract ID, Bank
Account etc. For each of these items you can choose an action customer can do with it: View or Edit. Items you've selected just to be viewed in
Customer Account will have dimmed fields and items customer can change will be with white fields.
For example, you'd like to add a Customer's bank account as additional attribute to the Customer portal and you'd also like to give customer the
right to edit his account number. In that case, as soon as you will select options View and Edit in Bank account field in Configuration, customer will
be able to see that attribute in his Profile in Customer portal and change it.

Information about configuring Additional fields in Splynx can be found here - Additional fields.

Cards
To configure cards in Spynx click on Config Main Cards.
The following parameters can be set here:

Length

Code length - enter the length of card code


Password length - enter the length of card password

Characters

Characters for generation - enter here characters which will be used for cards generation (numbers, small/capital letters etc.).

Logrotate
To configure Log rotation click on Config Main Logrotate.
Here you'll be able to select a period of time for storing the following logs in Splynx:

Logrotate

Store admin logs


Store API logs
Store customer statistics
Store cards statistics

The period of time for logs storing can be 1 month, 6 months, 1 year, 2 years, 3 years. It is also possible to choose an option "Don't delete" here.

Finance configuration
Finance module and its correct configuration is important part of Splynx billing system. Finance global configuration enables you to set automation
of financial processes in Splynx, Paring, Notification and Reminders settings, configure Template values and Payment accounts with Payment
methods. In Finance settings you can configure billing settings and define parameters for Invoices, Proforma Invoices and Receipts.

Please, follow the links below to find tutorial page about every single part of Finance configuration:

Automation

Finance settings

Pairing

Notifications
Payment methods

Transaction categories

Reminders

Template values
Automation

To eliminate financial errors and delays from manual processes in Splynx you can configure a finance automation in Config Finance Automation.
Please note, these will be global settings.

You can configure here the following parameters of automation:

Finance automation

Enable automatic issuing - option for automatic issuing Invoices, Transactions, Proforma Invoices.
Waiting for confirmation (days) - set the date for confirmation of automatic issuing invoices. If you don't confirm issuing during set number
of days, invoices will be auto generated the next day. The options for choosing confirmation days are: 0, 3, 5, 10, 15, 20, 25 days.
Set date to finance elements - here you can set the date of transactions and invoices issuing. It can be a billing day or the real date of
issuing. For example, the billing day is on 1st day of the month and you have set 3 days as a waiting for confirmation. In that case the
invoice can be dated on a billing day regardless confirmation days or the real date of issuing: maximum on 4th day of the month (if you
won't confirm issuing and invoices will be auto generated the next day).
Dashboard notification - with this option enabled you will be notified on Dashboard about confirmation on a billing day.
Allow saving preview in future - with this option enabled preview of invoices issued for upcoming month(s) will be saved (Finance History
).
Automatic blocking

Enable process Billing Due - enabling this process will lead to blocking non-paying customers on their billing due date and when their
deposit is less then minimum deposit allowed.
Enable process Grace Period - with this option customers will be in inactive status by the end of Grace period and when their deposit is
less then minimum deposit allowed.

Send reminders

Enable process Reminder #1 - with that option enabled Reminder #1 will be sent to customer on a day set in Reminder settings.
Enable process Reminder #2 - with that option enabled Reminder #2 will be sent to customer on a day set in Reminder settings.
Enable process Reminder #3 - with that option enabled Reminder #3 will be sent to customer on a day set in Reminder settings.

Finance settings
To set global financial settings for new customers or update existing customers go to Config Finance Settings.
It is possible to set here global parameters for the following important parts of financial module:

I. Billing settings - Recurring type of billing is set by default in Splynx global configuration.

Billing Enabled - enable / disable billing for the customer.


Period - it can be prepaid or postpaid, which means in Prepaid Mode recurring Invoices can be issued up to 5 months in advance and in
Postpaid Mode Invoices will be generated after services usage.
Payment Method - choose a Payment Method for recurring payment, such as Cash, Bank Transfer, Credit Card, PayPal, Refill Card,
BrainTree and others.
Billing day - when the customer will be charged. It is a day of Invoice generating.
Billing due - the last day when customer have to make a payment before get blocked. For example, we choose 1st day of the month as a
billing day and 15th day of the month as Billing due day, which means that Invoice will be generated on 1st day of the month and if
customer don't make a payment until 15th day of the month, the next day he will be in blocked status. Even though customer will have
blocked status, his services will be still accounted.
Grace Period - when the customer's services will be disabled: time when customer will have inactive status. For e.g. it could be 10 days,
which means after 10th day customer's status will be automatically changed for inactive and his services won't be accounting.
Minimal balance - defines the customer balance in Recurring payment and is set by default to "0" in Global configuration, but it is possible
to change here according your needs.
Work with - you can choose from two options: work with balance or customer's deposit.

II. Invoices settings -

Create Invoices (after To charge) - with this option enabled Invoices will be issued automatically after charging the customer.
Auto pay Invoices from deposit - you can enable this option if customers' payments are regularly made from their deposit.
Invoice number pattern - you can set up an Invoice number pattern here.
Invoice cache - with option enabled all changes made will be visible only in new invoices, old Invoices will remain without changes.

III. Proforma Invoice settings - settings for auto generating Proforma Invoices. In our billing system Proforma Invoice can be used as a request
of payment in advance. For example, it can be created 1 month before the occuring payment, so you will see if customer is able to pay the
Proforma Invoice. When proforma invoice is created, the customer’s balance hasn't changed. The main reason for this billing approach is to
prevent the payment of VAT tax for non-paying customers. If the customer pays the amount specified in the Proforma Invoice PDF, the company
can issue a tax Invoice.
Enable Auto Proforma Invoices - with this option enabled Proforma Invoices will be issued automatically
Day of generating Auto Proforma Invoices - choose the day for automatic issuing Proforma Invoices
Type - choose for how many months in advance Proforma Invoice will be generated.
Create Proforma Invoices for - there are 2 options here: create pro forma invoice for current month and for the next month.
Proforma Invoice number pattern - create a Proforma Invoice number pattern here.

IV. Receipt settings -

Receipt number pattern - create a payment receipt number pattern here.


Pairing
Before processing Bank statements their Paring parameters should be defined. The bank statement processing feature lets
you reconcile payments receivable with invoices issued by paring them, so it can proceed multiple payments.

To configure Paring click on Config Finance Pairing.

Here you will define parameters to pair Bank statement with Invoice or Proforma Invoice: Global #1 or # 2 parameters with Invoice or Proforma
Invoice parameters.
As Global parameters # 1 and # 2 for paring you can choose:

None
Customer ID
Customer login
Customer Birthday\ Firm ID
Bank Account
Canfone Account
Connected by

In our example we selected Customer ID as a Global # 1 parameter:

As Invoice parameter for pairing you can choose:

None
Invoice number
Invoice ID
Bank Account
Canfone Account
Connected by
Contract ID

In our example we choose Invoice number:


You can choose the following Proforma Invoice parameters:

None
Proforma Invoice number
Proforma Invoice ID
Bank Account
Canfone Account
Connected by
Contract ID

In our example we define Proforma Invoice number as its parameter for paring:

Now, after defining Paring parameters you can process bank statements. Information about it you can find in our tutorial page - Bank statement
processing.

Notifications
To set up Notifications click on Config Finance Notifications.
There are two main types of Notifications which can be configured here: Notifications of created Invoice, Proforma Invoice or Payment and Prepai
d Notifications.

Notifications of created Invoice, Proforma Invoice or Payment

When Invoice, Profoma Invoice or Payment will be created customer will receive a notification by email with its attachment.

1. Invoices Notifications

You can define here the following parameters of Invoices notifications:

Automatically send notification after creating - enable/ disable the option of sending notifications automatically after creating the Invoice.
Subject - write the subject of notification message.
Template - choose the template for notification message.
Delay in sending - choose in how many hours notification will be sent after Invoice creation. The options are: in 1, 3, 6, 12, 24, 48, 72
hours.
Working days - select days of week when Notification will be sent. It will be sent after selected delay in hours on the first working day and
hour.
Working time - select working hours for the notification sending. Notification will be sent after selected delay in hours on the first working
day.

2. Proforma Invoices Notifications


The following parameters of Proforma Invoices Notifications can be set here:

Automatically send notification after creating - enable/ disable the option of sending notifications automatically after creating the Proforma
Invoice.
Subject - write the subject of notification message.
Template - choose the template for notification message.
Delay in sending - choose in how many hours notification will be sent after creation of Proforma Invoice. The options are: in 1, 3, 6, 12,
24, 48, 72 hours.
Working days - select days of week when Notification will be sent. It will be sent after selected delay in hours on the first working day and
hour.
Working time - select working hours for the notification sending. Notification will be sent after selected delay in hours on the first working
day.

3. Payments Notifications

The following parameters of Proforma Invoices Notifications can be set here:

Automatically send notification after creating - enable/ disable the option of sending notifications automatically after creating the
Payment.
Subject - write the subject of notification message.
Template - choose the template for notification message.
Delay in sending - choose in how many hours notification will be sent after the Payment creation. The options are: in 1, 3, 6, 12, 24, 48,
72 hours.
Working days - select days of week when Notification will be sent. It will be sent after selected delay in hours on the first working day and
hour.
Working time - select working hours for the notification sending. Notification will be sent after selected delay in hours on the first working
day.
Attach receipt - you can enable or disable option to attach receipt.

Prepaid Notifications

Prepaid Notifications are the same as Payment Reminders. The only difference is that Prepaid Notifications are used in Prepaid Billing and Pa
yment Reminders in Recurring billing. Prepaid Notification is an email, SMS or email+SMS prompt sent to customers to notify them about their
low balance and remind them to make a payment.
The following parameters of Prepaid Notifications #1, #2 and # 3 can be configured here:

Hour of sending - choose the hour when Prepaid notification will be sent.
Send notification - enable\ disable option of sending Prepaid notification
Days before blocking - choose and write how many days will be left until blocking the customer
Send to - select the sending option of prepaid notification: Mail, SMS or Mail+SMS. Information about configuring SMS can be found in
our tutorial page - SMS config.
Subject - write the subject of Notification message.
Mail Template - choose template for the mail notification.
SMS Template - choose template for the SMS notification.

If customer has Prepaid type of billing he will also be notified about his current balance in Customer Portal Services.

Below is an example of notification for the customer in blocked status with minus deposit on his account:
This is an example of active customer's notification in Customer portal after he made a payment by cash:

Admin portal: Payment's been received:

Customer portal: customer can check his current deposit and how many days he can pay for services:
Payment methods
To check your Payment Methods click on Config Finance Payment Methods.
Payment methods listed here are set by default. When you install a new Payment Modul it will automatically appear here.

You can add a new Payment method manually by clicking Add icon

at the top-right corner of the screen. The window will pop-up where you will write the name of the Payment Method and enable the option " Active"
.
After adding a new Payment method it will appear in each customer Billing settings in Customers View Billing Billing overview.

It is possible to Edit (Rename) or Delete Payment methods by clicking on icons

and

in Actions section of the table.


Transaction categories
To check all Transaction categories in Splynx click on Config Finance Transaction categories.

Transaction categories listed here are set by default:


You can add a new Transaction category manually by clicking on Add icon at the top-right corner of the screen:

You can also correct the name of the Transaction category or delete it by clicking on

or

icons in Actions column of the table:


On the list of particular customer's transactions in Customers View Billing Transactions the category of every transaction made by this customer
will be seen:

If you will create any new transaction manually for the customer you can also choose its category:
Reminders
Payment Reminders are the same as Prepaid Notifications. The only difference is that Payment Reminders are used in Recurring billing and P
repaid Notifications in Prepaid Billing. Payment reminder is an email, SMS or email+SMS prompt sent to customers to make them pay for their
due or overdue invoice.

To set up sending Payment Reminders go to Config Finance Reminders.

You can choose Partner before setting Reminders at the top-right corner of the screen:
The following Reminders settings can be configured here:

Enable Reminders - enable or disable automatic reminders sending.


Message type - choose message type for sending reminders: Mail, SMS, Mail+SMS. Information about configuring SMS you can find in
our tutorial page - SMS config.
Hour of sending - choose time for sending reminder
Reminder #1 day - select in how many days you'd like the First Reminder to be sent.
Subject #1 - type a subject for the 1st Reminder
Reminder #2 day - select in how many days you'd like the Second Reminder to be sent.
Subject #2 - type a subject for 2dReminder
Reminder #3 day - select in how many days you'd like the Third Reminder to be sent.
Subject #3 - type a subject for 3d Reminder
Attach unpaid invoices with reminders to email - choose this option to attach unpaid invoices to email.
All 3 dates selected for reminders sending will be displayed in the "Calendar" next to "Reminders settings". In our example we chose 5 days for
the Reminder #1, 10 days for the Reminder #2 and 15 days for the Reminder #3. That means reminders will be sent on 6th, 16th and 31th of May
accordingly.

Template values

You can set Template values for each Partner in Configuration Finance Template Values.

At the top-right corner of the "Template values" screen you will choose a Partner:
As a reminder, you can add or edit partner in Splynx in Administration Partners.

More information about creating or editing a new partner you can find on our tutorial page - Partners.

You can define the following Template values for each Partner:

Company name - write the name of the company


URL of billing (Splynx) - insert URL of Splynx billing system if needed
Street, ZIP Code, City, Country - fill in the partner's address
Email - you can provide and email of the partner
Phone - provide phone number of the partner
Company ID - you can provide the partner's company ID if needed
VAT number - you can write VAT number of the partner's company
VAT % - you can write a VAT percentage
Bank Account, Bank name, Bank Address - you can provide partner's bank account details, such as Bank account, Bank name and
address
Partner percent (%) - here you can define a commission for the partner from each payment made by customers for their services. More
information about commission for the Partner can be found here - Partners.
Invoice PDF Template - choose the template for Invoice PDF for the partner
Proforma Invoice PDF Template - choose the template for Proforma Invoice PDF
Payment receipt Template - choose the template for the Payment receipt
Reminder Mail Template - choose the template of email reminder
Reminder SMS Template - choose the template of SMS reminder

Information about configuring Templates can be found in our tutorial page - Templates.

Network configuration
In network configuration tab you can find the following categories:

Radius

Mikrotik API

IPv4 address management

CPE

FUP

Network weathermap editor

Monitoring config

Radius

To configure the Radius Server click on Config Networking Radius.

These are Rejected IP addresses which ranges you can modify:


Reject IP 0 - Reject IP range when user not found (real).
Reject IP 1 - Reject IP range when user is blocked, not active or not in system.
Reject IP 2 - Reject IP range when user has negative balance or filter is applied.
Reject IP 3 - Reject IP range when user has wrong MAC address (if enabled) or other error.
Reject IP 4 - Reject IP range when user has entered wrong password.

Select the NAS type you are going to use and click on Load. You can use one by default or create a new NAS type. Information about NA
S type creation is available here.

A new configuration box will appear:


Allow no deposit - Allow ballance with minus.
Allow without IP/MAC - If enabled, don't need to set IP and MAC.
Inverse rate limit - Change rate limit of upload by upload and vice versa.
Inverse accounting -
Accounting interval (in sec) - Set time to update accounting.
Customer attributes field -
Plan attributes field -
Rate-Limit attributes -
Customer Block - Set blocking type.
CoA Block attributes -
CoA Restore attributes -
Cards Rate-Limit attributes -
Radius incoming port - Set port for incoming.
FUP CoA Rate-Limit attributes -

FUP Block - Set FUP blocking type.


FUP CoA Block attributes -
FUP CoA Restore attributes -
Use reject IP [0-4] - Enable to use the IP's 0-4 explained in first step.
Reject [0-4] Attribute -
Error session time limit -
Use admin login - Enable, allows to log on router with administrator credentials
Attribute for Read Group -
Attribute for Write Group -
Attribute for Full Group -
There are two buttons at the bottom to Restart radius and Clear all online sessions.

MikroTik API

To configure MikroTik API click on Config Networking MikroTik API.

Choose if 1KB is 1000 or 1024 bytes:

Check if the Debug is enable or disable for MikroTik API, set number of attempts and Timeout in seconds:

Then configure Accounting:

Write log file for accounting - Write log file for accounting (recommended only for debug purpose).
Min bytes for accounting - Gather stats if "in + out" traffic is larger than (bytes).
Max timeout - Set timeout.
Max session time - Divide big sessions to smallest one every (hours).
RRD enable - Enable write to RRD files (for graphs).
RRD cached enable - Enable rrdcached (speed up rrd writing).

Configure simple shaping:

Reverse In/Out - Enable if you want to change upload by download and vice versa.
Queue type for dowload - Set queue dowload type.
Queue type for upload - Set queue upload type.

Configure PCQ shaping:

Shaping in - Chain where the rules are created.


Shaping out - Chain where the rules are created.
Routing in - Set type of routing in.
Routing out - Set type of routing out.
For radius - If yes, rules will be made for all plans (but without address-list, and without aggregation in plans).
Connection mark - Enable connection mark.

IPv4

To configure some features of IPv4 click on Config Networking IPv4:


There are two options here:

Performance - If you need to work with big networks, divide it for smaller (for list).
Assign static IP - Enable that option to allow assigning IP from pool as static.
CPE

FUP
FUP settings are configurable in Config Networking FUP:

There are following FUP settings here to configure:

Customer additional field -You can select customer additional field here. If additional field is set and is integer from 1 to 28 (or -1), it will
be used for resetting instead of other values. Use -1 value to disable reset limits.
Monthly reset prepaid limits - Set the day when prepaid limits will be reseted.
Monthly reset recurring limits - Set the day when recurring limits will be reseted.
Weekly limit reset - Choose Sunday or Monday to reset limits weekly.

NAS types
To configure NAS types click on Config Networking NAS types.

It is possible here to edit default ones or create new.

You can write the name of new NAS type and enable MikroTik API.
IP Network categories
You can edit or add new Network categories by clicking on Config Networking IP Network Categories.

Click on

to edit existing one or click on Add to create a Network category:

The window will pop-up where you can write the name of category.
IP Host categories
To configure IP Host categories click on Config Networking IP Host categories:

It is possible to add, edit or delete IP Host categories here:


When you edit existing IP Host category you can change the name of Category, Icon and used colour:

You can see available icons and its names on this web.

Click on one:

And write in Icon field the red text between commas:

Monitoring config
To configure Monitoring click on Config Networking Monitoring.
There you can:

1. Add new Producers by adding their names.

You can also edit or delete Producer here by clicking on icons

and

:
2. Add new Device types:

You can also edit or delete them here by clicking on icons

and

3. Create Groups for custom notifications:


Group - Set name of group.
Administrators for notifications - Choose administrators who will recieve notificaitons.
Notifications to Splynx - Enable Splynx notifications.
Notifications to email - Enable email notifications.
Notifications via sms - Enable sms notifications.

Network Weathermap Editor


To create a new map open editor tool in Splynx Config Networking Network Weathermap:

.
Choose the name for new MAP and create it. New map "map1" was created and it's empty now:

You need to have a device added. Weathermaps work with equipment which is added to Networking Monitoring. So, to get some visualisation of
the network we need to add devices to Monitoring and configure their SNMP OIDs for interface traffic, CPU etc.. Once devices are added, we can
create a node clicking on Add Node, and then click somewhere on map.
To configure node settings click on the node. There you can set position, label, which device it is, graphs and the icon.

Then we can add a link between two nodes clicking on Add Link:
Click on the link to configure it:
It's posible to add graphs of link and view them hovering the mouse on the link. To add graphs go to Networking Monitoring List and select the
device you want to add graphs:

Then, write the label name, and select router and parameter you want to visualize:
Then you can see graphs going to Networking Network Weathermap and hovering on devices or links, as it's shown in the following screenshot:

To view the legend click on Position Lengend and then click somewhere on the map. The legend will appear.
Also it's posible to edit Map Properties and Map Style, where we can change some settings:
Voice processing
Voice processing allows administrator to upload different CDR files for Voip, Mobile or landline voice services. Splynx processes the CDR files
and send calls to customer's statistics. So transaction is created from the voice statistics and one common invoice can be created for Internet,
Voice and other services. Please note that for CDR processing CDR should include the final price of each single call or SMS or data unit. It
means that you should upload already rated CDR files.

Please follow the documentation sections to know more:

CDR Import

CDR History

Categories
CDR Import
You can import CDR from your bank to create transactions on customers. You should make the import from administrator portal. At first, you must
have voice plans or create it, an then add them to customers. To import CDR click on Config and in the box Voice click on CDR import.
File - Select the CDR.csv
Delimiter - Select if you want to delimite the data with Tabulator, Comma, Semicolon or Auto detect
First row contains names - Enable if your CDR contains row names
Voice Type - Select Data, Message or Mixed
Handler - You can use the Base handler or an other personalized for your services.
Period for transactions

You can see the loaded data with calls and their information. Select fields to correct and make sure that they correspond with data below them.

After that you can preview the Import.


Check it and then click on Import.

Now you can check generated transaction.


Also you can charge the transaction and generate the invoice.

Select the period to preview and click on To charge.

After charging the invoice is available and you can download it as PDF.
In the window statistics you can see information about the service.
CDR History
In CDR history you can see different CDR processes.

Go to Config menu and click on CDR History.

There is a list of CDR processes here. By clicking on file you will dowload it. You can also get the information on transactions and imported calls
here or delete it.
Categories
It is possible to edit Splynx Categories making them customizable.

For that, go to menu Config and in the Voice box, click on Categories.

You will see there default categories which you can edit, delete or add a new category.
You can check new category in the transactions of customers.

Integrations

Main modules
To configure Main Modules you'd like to use in Splynx go to Configuration Integrations Main Modules.
These are Main Modules of Splynx which can be enabled or disabled according your needs of system usage:

Tariffs
Internet
Voice
Custom
FUP

Customers

Vouchers

Finance

Transactions
Invoices
Proforma Invoices
Payments
History & Preview
Bank Statements
Refill cards

Networking

CPE
IPv6 Networks

Support

Tickets

For example, you will not use Proforma Invoice Module and Bank statement Module in Finance section. Disable these modules here, refresh the
page and they will automatically disappear from the Splynx Side Menu:
Install module

Modules list

Hooks
Hook is a method of augmenting or altering the behavior of a page or application with custom callbacks. These callbacks may be maintained,
modified, and managed by third-party users and developers who may not necessarily be affiliated with the originating application (Splynx). For
example, we show how to use hook and send email.

To send notification on some action from Splynx you can use hooks (Config Integrations Hooks).

Attention!!! beginning from Splynx v.1.3


First of all, you have to know how does it work. "Hook" is listening to event you choose and if it done, it runs script you wrote in "path"-field. By the
way, hook can send data-array that call this event. Let's create a new hook:
Before creating hook you have to put php-script in home-folder and give permissions 755:

chmod 755 script-file.php

And now, simple script - how to send email notification. Of course, you can use your own script that do something else.
#!/usr/bin/php

<?php

/* * don`t edit this block !!!! */


// Define STDIN
defined('STDIN') OR define('STDIN', fopen('php://stdin', 'r'));

// Get all data. Its is in JSON so we must decode it


$data = fgets(STDIN);

// Decode JSON
$data = json_decode($data, true);

/* * to send email edit this block */


$model = print_r($data,1); //print data-array
//send email
$to = "mail_box_to@semple.com" ; //set your email
$subject = "Splynx test send-mailer";
$message = "{$model} \n Customer \"{$data['attributes']['name']}\" was created {$data['date']} by
{$data['source']}";
$headers = "From: Admin <mail_box_from@semple.com>\r\n";

mail($to, $subject, $message, $headers);

So, when a new customer will be created, we will receive an email:


Attention!!!
To send email we used mail-server - Sendmail, and by default it send email only in local-network. So, if you want to send an email to "the world",
you have to reconfigure sendmail.
Run this command

sudo dpkg-reconfigure exim4-config

and use this manual - https://www.digitalocean.com/community/tutorials/how-to-install-the-send-only-mail-server-exim-on-ubuntu-12-04

Custom named queue

Attention!!! beginning from Splynx v 2.0

Starting version 2.0 you can use custom named queue. To do this select hook type "Queue" and enter your queue name.
Example PHP script (based on BunnyPHP) to work with messages from custom named queue:
<?php

use Bunny\Channel;
use Bunny\Async\Client;
use Bunny\Message;
use React\EventLoop\Factory;

require '../vendor/autoload.php';

$connectOptions = [
'host' => '127.0.0.1',
'port' => 5672,
'vhost' => '/',
'user' => 'guest',
'password' => 'guest',
];

$loop = Factory::create();
(new Client($loop))->connect()->then(function (Client $client) {
return $client->channel();
})->then(function (Channel $channel) {
return $channel->queueDeclare('hooks2', false, true, false, false)->then(function () use ($channel) {
return $channel;
});
})->then(function (Channel $channel) {
echo ' [*] Waiting for messages. To exit press CTRL+C', "\n";
$channel->consume(
function (Message $message, Channel $channel, Client $client) {
echo " [x] Received ", $message->content, "\n";
},
'hooks2'
);
});
$loop->run();

Attention: you must use same parameters when declaring queue as in example because this parameters use Splynx when adding message to
RabbitMQ!

You will get string like this: {"type":"","call":"","data":{"source":"admin","model":"models\\admin\\administration\\Locations","action":"get_list","date":


"2017-09-20","time":"14:38:12","administrator_id":"1","customer_id":null,"result":"success","attributes":{"id":null,"name":null},"attributes_additional"
:[],"changed_attributes":null,"extra":null,"errors":null,"ip":"192.168.77.233"}}

Use function json_decode to decode it and use received data for your purposes.

Tools

Import
When you are migrating to Splynx, Import of customer database is probably needed. We provide the service of Import as a part of support for paid
licenses, but you can also check how the Import is implemented in our system. Upload a csv/excel file, define columns as fields in the system and
click upload, that’s all!

How to import Customer Database is also shown in our video tutorial - https://splynx.com/165/import-and-export-customers/.
For the mass activation of customer services after the Import, please follow the guide - https://www.youtube.com/watch?v=9bQL6EyV230.
Export
In case, if we need to export our customers, let’s use other feature, called “Export”. Choose your delimiter and click on Export button, it was never
such easy before.
How to export and update Customer Database is shown in our video tutorial - https://www.youtube.com/watch?v=LbDj8zmeF-Y.

How to export customers from MikroTik is shown in this video - https://www.youtube.com/watch?v=FzOZnqhPt8E.


Activate services

Invoices cache

Adminer

Add-ons, Modules
Below you can find description and configuration guides for the following add-ons:

Cashdesk module

Google maps add-on

Quickbooks accounting

Xero accounting

Ofipro contabilidad (Spanish)

FCC 477 export

Baicells LTE

Electronic signatures with Signaturit

Social and Self Registration

Cashdesk module
Cashdesk is a Splynx module for processing payments. Administrator can create users of cashdesk and provide them access to the module. User
is not able to change and view any customer’s data, except his name/company name, invoice numbers and actual balance. The cashdesk can be
used by accountants, who doesn’t have to get access to Splynx, but only process the incoming payments. It can be also used by resellers.
Reseller will see only his customers and is able to enter payments to Splynx when he receives money from customer.
The first step for Cashdesk activation is installation. It’s performed by two following commands in Linux CLI where Splynx is installed:

apt-get update
apt-get install splynx-cashdesk

To create a cashdesk user it’s needed to create an administrator and define him permissions to Splynx access. He can have some permissions to
access Splynx or he can get 0 permission level and access Cashdesk only:
When the Cashdesk is installed, it’s available on “http://yoursplynxurl/cashdesk”.
The first screen is a login page:

Cashdesk user has logged, he can search customers based on customer’s name, login or number of invoice.
After entering the invoice number or customer name in search field, Cashdesk displays customer information about his balance and unpaid
invoices.

When we entering a payment we can choose the invoice which will be marked as paid.

When the payment has beed added, it appears in Splynx as a new transaction and also as a payment with comment, entered in Cashdesk.

All payments of the user “Casher” can be found in History section of Cashdesk.
Google maps add-on
To install google maps addon please enter the command:

apt-get update

apt-get install splynx-google-maps

After installation, the new GPS will appear in each client information tab:

If address in Street field of Splynx is correct, then by clicking the View/Street button open the Google Map add-on and place the pointer to the
right place.
Click Save button, and GPS coordinates will be saved in Splynx

When module is installed, in Customer menu appears sub-menu Maps, where we can find all our customers, their login, name and status.

It's possible to open a map in new window, display customers with partner or location filter:
Quickbooks accounting
The installation of Add-on is performed with two commands:

apt update

apt install splynx-quickbooks

After installation, the QuickBooks addon appears on Splynx under Finance menu:

We need to get a Quickbooks Online account to start the integration.


When the account is created and Splynx Quickbooks Add-on is installed on Splynx server, we can start syncing it together.

First of all, we need to connect Add-on to our Quickbooks account:


Click on "Here" link and follow to QB login page:

Whent it's connected, Add-on shows connected message

Now we need to setup few things in CLI of Linux server where Splynx is running.

Open file /var/www/splynx/addons/quickbooks/config/params.php and set the correct URL, Sandbox = false and your country code:
Now we can add Taxes in Quickbooks, set Payment Methods and sync it with Splynx server:
Splynx add-on displays the Tax codes that we need to put again to

/var/www/splynx/addons/quickbooks/config/params.php
The same thing is with Payment types:
When this is done, we can sync our customers from Splynx to Quickbooks or match existing clients in databases:
We can check if all clients were pushed to QuickBooks:
To sync Invoices and Payment on the fly we need to enable WebHooks inside Splynx settings, please open menu Config Hooks:

Now we are ready to issue Invoices in Splynx and process Payments. This information will be sent to QB online immediately. All changes are also
synced immediately between two systems.

Let's issue 3 invoices in Splynx:


Got it, they are moved to Quickbooks as well!

We can open the Invoice in Splynx and see that it has a QB ID that identifies it in QuickBooks software:
After processing payment in Splynx, information is also moved to Quickbooks. Let's pay 2 invoices in Splynx:

Payments are sent to QuickBooks in few seconds:


Of course, all information is set in correct accounts in Accounting part of QB and Taxes are also calculated properly:

Xero accounting
Splynx is able to sync Customers, Invoices and Payments with Xero accounting software - https://www.xero.com

The logic of the process is:

1. Splynx synchronizes the customer database with Xero


2. Splynx issues invoices/charges customer on Billing day
3. All invoices generated in Splynx are pushed to Xero
4. Payments are processed in Splynx (Cash, Paypal, Bank statement processing, Debit orders, Authorize.net, Credit cards)
5. Payments are pushed from Splynx to Xero and invoices in Xero are marked as paid

To setup Splynx and Xero integration we have to go through several steps.

Before all else, we need to install the Splynx Xero module:

apt-get update
apt-get install splynx-xero-addon

Then, first step is to create account in Xero (if you don't have one already):

When account is created, we need to activate Xero API, which is located at https://app.xero.com/Application/

Splynx is used as a Private application and we need to take a public key from Splynx and copy it to X509 Public key field to Xero Application
settings.

It's located on Linux Splynx server, path /var/www/splynx/addons/splynx-xero-addon/config/certs, file public.crt:


Copy and paste it into Xero Application window:

Xero creates Consumer Key and Consumer Secret, which we copy and paste into Splynx file path
/var/www/splynx/addons/splynx-xero-addon/config/params.php:
After these steps, Xero module should appear in Finance tab of Splynx and it should show us Xero module interface, where we can start syncing
plans, customers and taxes:
Synchronizing of Taxes and Tariff plans

Sales Tax or VAT depends on a country and it is different. In Splynx each plan has a tax field called VAT. Tax value in Splynx should correspond
with Sales Tax in Xero. For example, if we have a Sales Tax 0%, we can leave Xero default settings, in case when Tax is different, we should
change it or add more taxes in Xero. Taxes in Xero are located in Settings Tax rates:

We change it to 21%, because the local tax of testing company is 21%:


Then, it's important to verify, if Taxes are loaded properly in Splynx Xero module:

When Tariff plans are defined in Splynx, it creates services in Xero accordingly. Important is to define correct Sales Account number in Splynx
plans. Xero has the list of all accounts according to the country where software is used. For example, Sales account for all sales in our example is
400, so it's needed to enter to Splynx plans value 400 in Sales Account field:
Let's match all plans (internet, voice and custom) to Sales account 400:

When taxes are ready, next step is to synchronize all Splynx plans with Xero services. Example of Internet plans sync is below:
Voice plans sync:

As soon as we synchronize all plans, Xero ID should appear in Tariff Plan settings in Splynx:
Pushing customers from Splynx to Xero and vice versa.

After clicking Sync button Splynx customer accounts will be created in Xero:
Xero view:

Also, there is a way how to push existing customers from Xero to Splynx, or match entries in Xero with existing accounts in Splynx:
Invoice and Payment synchronization with Xero

Splynx generates invoices for all customers with enabled billing engine accordingly to their Billing day. If billing day is set as 1, invoice to customer
will be created on 1st day of the month. If, for example, Billing day is 15, Splynx will generate invoice on 15th day of the month for the period:
15th - 14th of the next month. Splynx is able to charge customers in advance or charge for services already provided. All invoices are sent from
Splynx to Xero during 1 hour of creation. Here are invoices generated in Splynx:

They are also created automatically in Xero:


Invoices in Splynx and Xero contain the same information. The PDF design can also be exactly the same, numbering sale as well:

When payment arrives to Splynx, we also send it to Xero and mark Xero invoices as paid:
Xero view of paid invoices:

To sync Invoices and Payment on the fly we need to enable WebHooks inside Splynx settings, please open menu Config Hooks:
Video:

Ofipro contabilidad (Spanish)


##

Instalación del módulo


##

Para poder trabajar con Ofipro deberemos añadir un nuevo campo "id_ofipro". Para ello, vamos a Configuración Campos adicionales y lo
añadimos. Dado que es un campo necesario para poder hacer las exportaciones, podemos establecerlo como requerido. También es necesario
que los clientes tengan un DNI real.

Una vez creado este campo, podemos pasar a las exportaciones. Vamos a Finanzas Facturas y seleccionamos el periodo de las facturas que
queremos exportar y tras esto pulsamos en exportar.
Seleccionamos tipo de exportación ID Externo y como ID externo splynx-ofipro y pulsamos en exportar.

Si todos los datos están correctos, se completará la exportación y nos dará en el historial el mensaje Listo.. entonces lo descargamos para pasar
a la importación en ofipro.
Una vez descargardo, extraemos los ficheros en una carpeta.

Y ahora pasamos a abrir Ofipro. En primer lugar deberemos añadir si no esta previamente añadida una serie que corresponda con la de las
facturas de splynx, en nuestro caso la seria I.
Tras esto pasamos a la importación pulsando en utilidades, importar datos en formato XML, seleccionamos la carpeta y pulsamos en importar.
Si todo se ha importado correctamente aparecerá una imagen como la siguiente. Si no saldrán los diferentes errores que deberemos corregir.
Una vez importado, no solo se importan las facturas sino que la primera vez también se importan los clientes y los artículos(tarifas).
FCC 477 export
"FCC 477 export" is a Splynx module which is used to generate reports for Federal Communications Commission (USA) - https://www.fcc.gov/.

To install "FCC 477 export" add-on please enter the command:

apt-get update

apt-get install splynx-fcc-export

After installation in menu Administration you will see a new icon:


There you have to choose "Partners" and click "Load"-button:

If everything is correct, you will see the result and export buttons as on the screenshot below:
Baicells LTE
Baicells LTE is a Splynx add-on which is supporting Baicells equipments. Using this software you can:

add Baicells-system;
create and manage SIM-cards, which use Baicells-system;
assign SIM-cards via customer's internet services.

Attention! This add-on is prepaid, so if you haven't bought it and install, you will only see a message as on the screenshot:
To install "Baicells LTE" add-on please enter the command:

apt-get update

apt-get install splynx-baicells-lte

After installation in menu Networking you will see new icons: LTE systems and LTE Configs. First of all, you should create a new LTE system:
After you've created LTE system, you can create SIM-cards for that system. In order to do this you should go to Networking LTE Config and
create cards (manually or using import):
And now you can create Internet service for customers. Open Customer Services and create new Internet service:
When customer uses LTE IMSI, you can check IMSI list in special bookmark:
Troubleshooting! If something is wrong with add-on, please, check WebHooks inside Splynx settings menu: Config Hooks, it should be enabled:

Signaturit
Signaturit is a Splynx add-on which allows you to complete any signing processes in business with legally binding eSignature.

Attention! "Splynx-Signaturit" add-on will work in next Splynx version 2.0.

1.To install "Splynx-Signaturit" add-on please enter the command:

% sudo apt install splynx-signaturit


2. To configure add-on "Splynx-Signaturit" you should get "Access token" from http://app.signaturit.com:

3. Then check your setup in admin-panel:

Config -> System -> Signaturit Config

4. To be able to send document to the customer you should generate templates from SignaturIt (1) or Splynx (3) or upload them (2) from
computer:
4.1. To generate document from SignaturIt-template you have to prepare its template in SignaturIt-templates:
And add at least one field in Config SignaturIt Config Template:

Then you can send it:


Your signature:
4.2. To upload the document from PC click on "Upload" icon and in a window poped-up choose the file you'd like to be uploaded:
Then click on icon "Send to signature" and “Send”.

Your signature:
4.3. To generate document from Splynx-template you should prepare its template in Splynx-> Config->Templates:
Example of the generated document from Splynx-template:
Then click on icon "Send to signature", write Subject, and click “Send”

Signature:
5. At the end you can download the signed document:
Social and Self Registration

“Social Registration” is a Splynx add-on which allows your customers to register and manage the account on the Splynx-portal.

Attention! "Social Registration" add-on will work in Splynx version 2+.

1. To install "Social Registration" add-on please enter the command:

% sudo apt-get update


% sudo apt install splynx-social-registration

1.1. Login to the Splynx-portal via social networks appears on the portal page:
1.2. To configure “Social Registration” you must enable or disable social-networks
in /var/www/splynx/addons/splynx-social-registration/config/params.php (enter “true” for enable, or “false” for disable):

and check button “Enable” entry-point in Splynx-admin — Config — Modules list — splynx_addon_social_registration (Edit):
Default, area button’s social-networks is enabled.

2. Create and enable API-apps in Google+, Facebook, and Twitter.

2.2. Before you can integrate Google Sign-In into your Splynx-site, you must have a Google API Console project. In the project, you create a
client ID, which you need to call the sign-in API.

To create a Google API Console project and client ID, follow these steps:

2.2.1. Go to the Google API Console (https://console.developers.google.com/projectselector/apis/library).

2.2.2. From the project drop-down, select an existing project, or create a new one by selecting Create a new project.
2.2.3. In the sidebar under "APIs & Services", select Credentials, then select the OAuth consent screen tab.

2.2.3.1. Choose an Email Address, specify a Product Name, and press Save.
2.2.4. In the Credentials tab, select the Create credentials drop-down list, and choose OAuth client ID.
2.2.5. Under Application type, select Web application.

Register the origins from which your app is allowed to access the Google APIs, as follows. An origin is a unique combination of protocol,
hostname, and port.

In the Authorized JavaScript origins field, enter the origin for your app. You can enter multiple origins to allow for your app to run on different
protocols, domains, or subdomains. You cannot use wildcards. In the example below, the second URL could be a production URL.

https://splynx.domainname.com

The Authorized redirect URI field does not require a value. Redirect URIs are not used with JavaScript APIs.
http://splynx.youdomain.com/register/site/auth?authclient=google

http://splynx.youdomain.com/register/login/auth?authclient=google

https://splynx.youdomain.com/register/site/auth?authclient=google

https://splynx.youdomain.com/register/login/auth?authclient=google

Press the Create/Save button.


If you get an error message, then copy “error” URI (1), and add it to “Authorized redirect URIs” list in “Client ID for Web application”.

2.2.6. From the resulting OAuth client dialog box, copy the Client ID . The Client ID lets your app access enabled Google APIs.

2.2.7. And, finally, turn on the Google+ API (https://console.developers.google.com/apis/library/plus.googleapis.com):


(Google doc - https://developers.google.com/identity/sign-in/web/devconsole-project)

2.3. For integrate Facebook Login into your Splynx-site, you must have a Facebook API

2.3.1 Go to developers console https://developers.facebook.com/apps, and

2.3.2 Create App


2.3.3. In “Select a product” select “Facebook Login” (click in “Set Up”)

2.3.4. In section Facebook Login — Settings, must enter “Valid Oauth redirect URIs”:

http://splynx.youdomain.com/register/site/auth?authclient=facebook
http://splynx.youdomain.com/register/login/auth?authclient=facebook
https://splynx.youdomain.com/register/site/auth?authclient=facebook
https://splynx.youdomain.com/register/login/auth?authclient=facebook

Click button “Save changes”

2.3.5. And from App Settings — Basic copying “App ID” and “App Secret” for paste in params.php
(/var/www/splynx/addons/splynx-social-registration/config/params.php).

Click button “Save changes”

2.3.6. Enable App as “Public”


(Facebook doc - https://developers.facebook.com/docs/facebook-login)

2.4.1. For integration Twitter, go to page Application Management - https://apps.twitter.com/

and Create New App:

2.4.2. Enter application Name, Description, Website, Callback URL (http://splynx.youdomain.com/register/login/auth?authclient=twitter), and click
button “Create your Twitter application”:
2.4.3. From tab “Keys and Access Tokens” copying “Consumer Key (API Key)” and “Consumer Secret (API Secret)” to paste in config-file
/var/www/splynx/addons/splynx-social-registration/config/params.php:
3. Login customer to Splynx-portal

3.1. Login with Facebook

If people aren't logged into Facebook, they'll first be prompted to log in and then move on to logging in to Splynx-portal:

3.2. Login with Google+


If people aren't logged into Google+, they'll first be prompted to log in and then move on to logging in to Splynx-portal:

3.3. Login with Twitter

If people aren't logged into Twitter, they'll first be prompted to log in and then move on to logging in to Splynx-portal:
4. Information about social-network is stored in Customer / Information / Additional information in the field “Social ID”:
5. Additionally, we made it possible for our customers to self-register:
5.1. To enable “Registration” (self-registration customers) you must “enable” form
in /var/www/splynx/addons/splynx-social-registration/config/params.php (enter “true” for enable, or “false” for disable):

5.2. For visible button “Registration” you must enable entry-point in Splynx-admin — Config — Modules list — splynx_addon_social_registration
(Edit):
Default, button self-registration is disabled.

5.3. Rigistration customers begins from page “Rigistration”:


Customer must choice internet tariff-plan, enter e-mail, password, full name and address, and press button “Sign In”.

Payment systems
Splynx software can be connected to different Payment Gateways. Subscribers then are able to pay their invoices using Credit cards or their
Payment system accounts.

Below is a list of supported and integrated Payment Gateways. By clicking on Payment Gateway link, you will be redirected to documentation
page describing how to install and use Gateway with Splynx.

Authorize.net
Bitpay, bitcoin payments

Braintree payments

Gocardless.com

Paypal payments

Paypal rb (recurring billing) payments

Payfast.co.za payments

SEPA debit orders

SEPA debit order in Spanish

Stripe

IPpay

Pesapal

Paystack

Wepay (recurring billing) payments

Authorize.net
Authorize.net is a Splynx add-on. It uses to synchronize customers, invoices and payments with Authorize.net payment gateway - https://www.aut
horize.net.

To install Authorize.net add-on use next commands:

apt-get update
apt-get install splynx-authorizenet

After installation you have to configure params.php in /var/www/splynx/addons/splynx-authorizenet/config - folder. Look at the
screenshot:
How to find "API Login ID" and "Transaction Key" is described on support page - https://support.authorize.net/authkb/index?page=content&id=A5
76&actp=search&viewlocale=en_US&searchid=1495101520432

After that, customers can pay their invoices and refill balances using Authorize.net system. They will see a new button To Pay as on the
screenshot:
To refill balance customers can use the link - “http://yoursplynxurl/authorizenet”, where they have to enter registration details for the first time:

On portal main page, customers can also see the list of non-paid invoices and "Pay" button near each invoice:
Braintree payments
Braintree is a Splynx add-on. It allows to charge customer's credit cards via Braintree payment gateway - https://www.braintreepayments.com.

Add-on can work with different credit cards, if cards are saved, then addon allows to charge all customers using Direct debit order.

To install splynx-braintree-rb add-on, use following commands:

apt-get update
apt-get install splynx-braintree-rb

After installation you have to configure params.php in /var/www/splynx/addons/splynx-braintree-rb/config - folder. Look at the
screenshot:
Where:

Public key: user-specific public identifier


Private key: user-specific secure identifier that should not be shared – even with us!
Merchant ID: a unique identifier for your gateway account, which is different than your merchant account ID.

Login to your Account in https://www.braintreegateway.com/ and:

Select menu Account / My User


API Keys, Tokenization Keys, Encryption Keys
Click “View Authorizations”
After that, customers can pay their invoices and refill balances using Braintree system. They will see a new button "To pay" as on the screenshot:

Customers can save pay-card details for the next payments:

To refill balance customers can use the link - “http://yoursplynxurl/braintree-rb”, and also they can set to remember pay-card:
At last, you can charge all customers using one button! Go to Finance Invoices, set period and click "Charge" as on the screenshot:
Gocardless.com

Gocardless.com is a Splynx add-on. It uses to synchronize customers, invoices and payments with Gocardless.com payment software - https://go
cardless.com/. Customers using Gogardless.com can pay your invoices through banks or you can charge your customers bank accounts by debit
orders.

To install Gocardless.com add-on, use following commands:

apt-get update
apt-get install splynx-gocardless-rb

We changed configuration method at this Add-on. Now it will be using GUI. After installation GoCardless add-on, you will see a message:

So, now, open a new tab in browser and paste URL - 'YourSplynxUrl/gocardless/welcome':
Please, check your Splynx URL and click button 'Link Splynx with GoCardless'. You will be redirect to registration page GoCardless:

And now, enter your registration data in registration form and click 'Connect' button. If everything is correct, you will be redirected to finish-page:
After that customers have to enter registration details in current fields in new Tab - "Gocardless" Main menu "Finance" as on the screenshot:

That is all settings.

Now, customers will see a new icon in Invoices list:


and can click to receive a payment:
After some time (https://gocardless.com/direct-debit/timings/) we can see the payment in portal and admin-side, as on screenshots:
Also, customer can refill balance using link - “http://yoursplynxurl/gocardless-rb”:

Besides, you can charge all customers, using one button! Go to Finance Invoices, set the period and click "Charge" as at screenshot:
Next one option, you can sync all customer, just follow steps below:

open Config / Integrations / GoCardless :


then select Payment method, Partner and click export button:

You will receive customers list in csv-file. After that you should open dashboard on https://gocardless.com/ and upload csv-file, as on next
screenshots:
Now, all customers from list receive mails and will have to authorise:
Paypal payments
You can receive payments via PayPal using Splynx. Splynx generates invoices for services that are sent to customer’s email and to Splynx portal.
From Splynx portal customer can pay the invoice using Paypal.

When customer clicks the PayPal button and applies to pay now, he is transferred to the PayPal page to make the payment.
Customers can also add a credit card on PayPal payment webpage, if they don’t have a PayPal account.
After payment has made, the invoice is marked as paid, transaction in Splynx is created and customer’s balance is changed.

There are several steps needed to configure Splynx PayPal add-on:

1. Install the add-on with commands:

apt-get update

apt-get install splynx-paypal

2. Activate developer’s tool in your PayPal account.


Get the access to your business PayPal account on website https://developer.paypal.com

ClientID and ClientSecret are the values Splynx needs. Click on Add new Rest API application, call it Splynx.

Then, you can find ClientID and Secret on the page of application. Important is to choose “Live” version, because it shows values for test Sandbox
account by default.

When you got the ClientID and Secret, you can put it to Splynx server and connect Splynx with PayPal.

3. Configure Splynx to work with your PayPal account.


Connect to Splynx server via SSH and edit file params.php located at /var/www/splynx/addons/splynx-paypal/config.

‘splynx_url’ => ‘http://yoursplynxURL/’

‘clientId’ => ‘YOURPAYPALID’

‘clientSecret’ => ‘YOURPAYPALSECRET’

Paypal RB (Recurring Billing) payments


Install the add-on with commands:

apt update

apt install splynx-paypal-rb

After installation you have to configure params.php in /var/www/splynx/addons/splynt-paypal-rb/config - folder. Look at the
screenshot:

Settings are complete.

And now the customer can add his payment card to the portal page:
To do so he should login to his PayPal account and click on [ Agree & Confirm ].
That is all. Client's configuration is completed.
At last, you can charge all customers using one button! Go to Finance Invoices, set period and click "Charge" as on the screenshot:
Payfast.co.za payments
Payfast is a Splynx add-on. It uses to synchronize customers, invoices and payments with Payfast accounting software - https://www.payfast.co.z
a.

We developed two different add-ons for using this payment system: splynx-payfast and splynx-payfast-rb. First add-on - splynx-payfast
is using for payments which proceed only in PayFast system. Second add-on can work with different credit-cards using PayFast.

WARNING! PayFast makes use of ports 80, 8080, 8081 and 443 only. So Splynx_url have to be on the same ports!
splynx-payfast

To install splynx-payfast add-on, use next commands:

apt-get update
apt-get install splynx-payfast

After installation you have to configure params.php in /var/www/splynx/addons/splynx-payfast/config - folder. Look at the
screenshot:

Merchant details

NAME DESCRIPTION

merchant_id The Merchant ID as given by the PayFast system. Used to uniquely identify the receiving account. This can be found on the
merchant’s settings page.

merchant_key The Merchant Key as given by the PayFast system. Used to uniquely identify the receiving account. This provides an extra
level of certainty concerning the correct account as both the ID and the Key must be correct in order for the transaction to
proceed. This can be found on the merchant’s settings page.

After that, customers can pay their invoices and refill balances using PayFast system. They will see a new button to pay as on the screenshot:
And they can also refill balance using link - “http://yoursplynxurl/payfast”.

splynx-payfast-rb

And now it is time of splynx-payfast-rb. To install splynx-payfast-rb add-on, use next commands:

apt-get update
apt-get install splynx-payfast-rb

As in previous add-on, after installation you have to configure param.php in /var/www/splynx/addons/splynx-payfast-rb/config -


folder. Look at the screenshot:
Now customers will see another button to pay as on the screenshot:
To refill balance customers can use the link - “http://yoursplynxurl/payfast-rb”, where they have to enter registration details for the first time:

SEPA debit orders


SEPA is a European standard for bank payments. You can install SEPA add-on and charge your customer via Direct debit orders.

1. SEPA Installation

The Installation is pretty simple:

apt-get update

apt-get install splynx-sepa


When addon is installed, please change the configuration that is located at
/var/www/splynx/system/external_handlers/finance/export/splynx-sepa-export/config.php

<?php
return array(
'iban_field' => 'bank_account',
'id_prefix' => '',// bank contact ID prefix : ES12500 example (before company VAT ID)
'mandate_date' => '2009-10-31',
'customers_country' => 'ES',
'add_addresses' => false,
'description' => 'Invoice #',
'bic' => '' // please set your BIC
);

The fields we need to change are:

'iban_field' => 'bank_account'. This is the additional field in customer, that stores IBAN number.

In example below we create the field and add IBAN of the customer there, then we insert field's name in 'iban_field' configuration:
Also, we add the Swift code of our bank and Contract ID that is provided by our Bank to configuration:
2. SEPA - generate the XML for bank

When SEPA add-on is installed and configured and all customers have the IBAN numbers set, we can issue Invoices and send them to Sepa
export XML file.

First of all, open the Invoices tab and click on Export:

Choose the Period of Invoices, Unpaid Invoices and you can also select Type of Payment (Bank transfer in this case).

Select the External handler Splynx-sepa-export and confirm the export:


By opening a second tab Export history you can see all errors in generation or download ready XML files.

In this example we have an error:

By clicking on icon Download we can get an error description file and open it in Notepad:
In our example it says one of our customers has empty IBAN in his information tab. After fixing it and re-submitting the export we will find the
correct status in Export history:

SEPA XML file is ready for downloading and sending to Bank for further processing and charging subscribers:
The line <ReqdColltnDt>2017-06-01</ReqdColltnDt> says when Bank should charge the customer. By default we put there the date of XML
generation. It can be changed in XML file before sending.

3. SEPA - mark invoices as paid

When Bank confirms that file is correct and charges subscribers, we can import XML file back to Splynx in section Finance Bank Statements
Process.

It will mark all invoices as paid and will create payments and payment transactions.

So, upload the file back:

And confirm the processing of payments:


As you can see now the file's been processed well, 3 payments that we've sent to the bank are in the system and invoices are marked as paid.

4. SEPA - process the return file from bank with non-payers

Sometimes customer doesn't have funds on his bank account. In that case Bank sends you XML file back with returns. It will contain data about
customers Bank was not able to charge. You can import this file to Splynx as well, and then paid invoices of non-payers will become unpaid
again. So you can charge them next month and include the fee for failed charge.

The handler to choose is SEPA XML returns:


Please watch the video tutorial below to see how it works online:

SEPA debit orders in Spanish


SEPA es un estándar Europeo para los pagos bancarios. Puede instalar el complemento SEPA y cargar a sus clientes pedidos de débito directo.

.1 Instalación de SEPA

La instalación es bastante simple:

apt-get update

apt-get install splynx-sepa


Cuando el complemento está instalado, cambie la configuración que se encuentra en
/var/www/splynx/system/external_handlers/finance/export/splynx-sepa-export/config.php

<?php
return array(
'iban_field' => 'bank_account',
'id_prefix' => '',// bank contact ID prefix : ES12500 example (before company VAT ID)
'mandate_date' => '2009-10-31',
'customers_country' => 'ES',
'add_addresses' => false,
'description' => 'Invoice #',
'bic' => '' // please set your BIC
);

Los campos que necesitamos cambiar son:

'iban_field' => 'bank_account'. Este es el campo adicional en el cliente, que almacena el número IBAN.

En el ejemplo siguiente creamos el campo y agregamos el IBAN del cliente, luego ponemos el nombre del campo a la configuración 'iban_field':
Además, añadimos el código Swift de nuestro banco a la configuración y el ID de Contrato que nos proporciona nuestro Banco:
2. SEPA - Generar el XML para el banco

Cuando el complemento SEPA está instalado y configurado y todos los clientes tienen los números IBAN establecidos, podemos emitir las
facturas y enviarlas al archivo XML de exportación Sepa.

En primer lugar, abra la pestaña Facturas y haga clic en Exportar:

Elija el Periodo de Facturas, Facturas no pagadas y también puede seleccionar Tipo de Pago (Transferencia bancaria en este caso).

Seleccione el controlador externo Splynx-sepa-export y confirme la exportación:


Al abrir la segunda pestaña de Historial de exportación, puede ver todos los errores en la generación o descarga de archivos XML.

En este ejemplo tenemos un error:

Al hacer clic en el icono Descargar, podemos obtener un archivo de descripción del error y abrirlo en el Bloc de notas:
En nuestro ejemplo, dice que uno de nuestros clientes tiene vacío el IBAN en su ficha de información. Después de completarlo y volver a enviar
la exportación, encontraremos el estado correcto en el historial de exportación:

El archivo SEPA XML está listo para ser descargado y enviado al Banco para el procesamiento y cobro de abonados:
La línea <ReqdColltnDt>2017-06-01</ReqdColltnDt> indica cuándo el Banco debe cobrar al cliente. Por defecto ponemos allí la fecha de
generación XML. Se puede cambiar dentro del archivo XML antes de enviarlo.

3. SEPA - Marcar las facturas como pagadas

Cuando el banco confirme que el archivo es correcto y cobre a los abonados, podemos importar el archivo XML de nuevo a Splynx en la sección
Finanzas Declaraciones bancarias Proceso.

Marcará todas las facturas como pagadas y creará pagos y transacciones de pago.

Por lo tanto, subir el archivo de nuevo:

Y confirmar el procesamiento de los pagos:


Como se puede ver ahora el archivo se ha procesado correctamente, los 3 pagos que hemos enviado al banco están en el sistema y las facturas
se marcan como pagadas.

4. SEPA - Procesar el archivo de devolución del banco con los impagos

A veces el cliente no tiene fondos en su cuenta bancaria. En este caso, el banco devuelve el archivo XML con devoluciones. Tendrá datos sobre
los clientes a los que el banco no pudo cobrar. Usted también puede importar este archivo a Splynx, y entonces las facturas pagadas de los
impagos serán pagadas otra vez, usted puede cargarlas el próximo mes e incluir la tarifa para la carga fallada.

El ID a elegir es SEPA XML (Returns):

Video tutorial :
Bitpay bitcoin payments
Bitpay is a Splynx add-on. It allows to refill balance and pay invoices via Bitpay payment gateway - https://bitpay.com.

To install splynx-bitpay add-on, use following commands:

apt-get update
apt-get install splynx-bitpay

After installation you have to configure params.php in /var/www/splynx/addons/splynx-bitpay/config - folder. Look at the
screenshot:

To receive "Pairing Code", please open your Bitpay dashboard Payment Tools, choose Manage API Tokens and create New Token, like on the
screenshot:
Important!!! Then you have to reconfigure add-on:

dpkg-reconfigure splynx-bitpay

If everything is Ok, you will see message about it:

After that customers can pay their invoices and refill balances using Bitpay system. They will see a new button "Pay" on Dashboard:
and new icon in Invoices as on a screenshot:
Then you will be redirected to Bitpay-page:
If your payment was successful, the status of invoice will be "Paid".

To refill balance customers can use the link - “http://yoursplynxurl/bitpay” where they have to enter Amount of payment and click "Pay":

Stripe online payments


Stripe is a Splynx add-on. It's used to synchronize customers, invoices and payments with Stripe payment gateway - https://stripe.com.
To install Stripe add-on use next commands:

apt-get update
apt-get install splynx-stripe

After installation you have to configure params.php in /var/www/splynx/addons/splynx-stripe/config - folder. Look at the
screenshot:

Then customers have to add a credit card:


Now customers can pay their invoices using stripe.com system in Finance / Invoices:
If everything went well, you will see status of invoice as "Paid" (in portal and in admin):
Besides that, you can charge all customers, using one button! Go to Finance Invoices, set the period and click "Charge" as on a screenshot:
IPpay by Convergence
IPpay is a Splynx add-on. It's used to synchronize customers, invoices and payments with IPpay payment gateway - http://www.converge-tech.co
m/IPPay-s/1821.htm.

To install IPpay add-on use next commands:

apt-get update
apt-get install splynx-ippay
After installation you have to configure params.php in /var/www/splynx/addons/splynx-ippay/config - folder. Look at the screenshot:

Then customers have to add a credit card:


Now customers can pay their invoices using IPpay system in Finance / Invoices:
If everything went well, you will see status of invoice as "Paid" (in portal and in admin):

On a portal dashboard customers can also see the list of non-paid invoices and "Pay" button near each invoice:
To refill balance customers can use the link - “http://yoursplynxurl/ippay”, where they have to enter Amount of payment and click "Add":
Besides that, you can charge all customers using one button! Go to Finance Invoices, set the period and click "Charge" as on a screenshot:
Pesapal
Pesapal is a Splynx add-on. It's used to synchronize customers, invoices and payments with Pesapal Payment Gateway - https://www.pesapal.co
m/.

To install Pesapal add-on use following commands:

apt-get update
apt-get install splynx-pesapal

After installation you have to configure params.php in /var/www/splynx/addons/splynx-pesapal/config - folder. Look at the
screenshot:
Consumer Secret and Consumer Key can be taken from Pesapal dashboard:
Now customers can pay their invoices using Pesapal system in Finance / Invoices:
If everything went well, you will see status of invoice as "Paid" (Portal and Admin).

To refill balance customers can use the link - “http://yoursplynxurl/pesapal”, where they have to enter registration details for the first time:

On Portal main page customers can also see the list of non-paid invoices and "Pay" button near each invoice:
Paystack
Paystack is a Splynx add-on. It's used to synchronize customers, invoices and payments with Paystack payment gateway - https://paystack.com/.

To install Paystack add-on use following commands:

apt-get update
apt-get install splynx-paystack

After installation you have to configure params.php in /var/www/splynx/addons/splynx-paystack/config - folder. Look at the
screenshot:
Public and secret keys can be taken from Paystack dashboard:
Now customers can pay their invoices using Paystack system in Finance / Invoices:
If everything went well, you will see status of invoice as "Paid" (portal and admin):

Besides that, you can charge all customers, using one button! Go to Finance Invoices, set the period and click "Charge" as on a screenshot:
Wepay (recurring billing) payments
Install the add-on with commands:

apt update
apt install splynx-wepay-rb

You need to register in http://wepay.com/register


After confirming the e-mail address, create app
You have to configure params.php in /var/www/splynx/addons/splynt-wepay-rb/config - folder. Look at the screenshot:
Settings are complete.

The customer then simply registers (once) his credit card in portal and pays the invoices:
At last, you can charge all customers using one button! Go to Finance Invoices, set period and click "Charge" as on the screenshot:
SagePay Pay now

apt install splynx-sagepay

SagePay Direct Debit

apt install splynx-sagepay-direct-debit

You might also like