The part that carries calls is now separate from the web pages, so updating the pages drops no calls.
Big change under the floorboards to close out the year. Pidgin Talk is now two programs: one carries the calls, the other serves the web pages.
Why bother
Because restarting or updating the web pages should never hang up on anyone. As one program, every update to a page meant a restart, and a restart meant every call in progress ended and every phone had to sign in again.
Now it cannot happen. The call service owns the phones and the calls. The web pages can be restarted, updated or even crash, and the calls carry on.
How they talk
The call service tells the web pages what is happening as it happens: who registered, which provider connected, what calls are up. The web pages keep their own copy of that picture and read from it, so a page never waits on the call service to load.
When you change something on a page, it is saved to the database and the call service is asked to read it again.
One new line on every page
Since the pages and the calls are now separate, every page says how the other half is doing.
When the call service is down
The pages stay usable. They say plainly, at the top, that the call service is not answering, statuses show as unknown, and anything you save is still saved. When the call service comes back it reads everything fresh.
What it buys later
Updates during business hours. Putting the two on separate machines if an office wants to. And one program that has a single job: never drop a call.
A year in
Mahalo for following along this first year. Calls go in, out and across the office, with hold, transfer and a log. Next year, real offices.