TOP prio for Patrick Reichel – Minimum means: the smallest possible solution to address the topic to let the customer create it's own contracts while connecting a fresh modem on the CMTS. Goal should be to have a basic demo running in March.
Work flow goes like
Unregistered CMs + CPEs
Customer A buys Cable Modem. Connects CM to our system (CMTS + NMS Prime) – without prior registration in NMS Prime.
- Afterwards the CM gets online in a new unregistered pool.
- Afterwards the CPE get a IP in a private unregistered pool – default route should be NMS Prime Server. The pool will only have access to NMS Prime Server
Landing Page
- Customer A open browser and is automatically pushed towards NMS Prime Landing Page – this should be solvable with a captive portal approach like using firewalld and http – e.g. https://projectzme.wordpress.com/2012/03/19/captive-portal-using-php-and-iptables-firewall-on-linux/
Firewalld redirects all HTTP traffic to its on IP maybe with special port. On this port is a apache is listening with a default redirect to /nmsprime/otc/Contract/create
Contract create – /nmsprime/otc/Contract/create
A simple create page which allows the Customer to setup there contract page
Notice that we need to setup only Name and address for the customer for now (we are talking about free internet access – SEPA will be a later step)
Notice that we are working on a separate DB called nmsprime_otc – for this and further purpose checkout: https://github.com/schmto/nmsprime/tree/feature/otc-start Branch.
I guess its best advice to read through all my commits on this branch and skip the latest ones, where i'm connecting OTC with CCC. This is not required now and brings some risks! So just re-branch some commits before.
For now we are only looking for a otc/contract/create page! Nothing more! Nothing fancy! Style is not important for now!
- Customer can create his own contract
Parse Modem
Create some kind of php function or command which will
parse client (private NAT) IP like
$_SERVER['REMOTE_ADDR'] or $_SERVER['CLIENT_IP_ADDRESS'] or ...
- and parse in dhcpd lease file the "option agent.remote-id", which is the CM MAC of the client who is adding the contract
Straight fast forward Adding
For a first MVP just provide a artisan or native php function, which will. Maybe this could run in observer after otc/contract/create
- check if new Modem MAC is not forgiven now – otherwise show error
- Create the new Contract in NMS Prime DB (maybe add some kind of special flag in DB to easily parse OTC added contracts later)
- Create the modem behind new Contract
- Add a Item with open ERZNET tarif (1M free)
- show success message to user and advice to restart modem and PC.
- wait 10s and call forced reboot of modem
Note on Workflow:
ERZNET will daily walk through the new openERZNET auto added contracts and delete non-sense Contracts. We will see how long this will work!