Context
A customer-service interface must reflect what the telephony system is actually doing. In HelloURA, operator sessions, SIP registration, microphone access, and call audio have separate lifecycles. Progressive campaigns add another challenge: distributing work according to team capacity.
My contribution
I worked across the web experience and the services supporting operations, bringing together campaigns, operator state, and real-time communication. I also worked on audio-device behavior and call transitions to keep the interface consistent during reconnections and shutdowns.
How it works
- The operator starts a session and prepares the devices and permissions required for browser-based calls.
- The SIP client confirms registration before telephony is considered available; signaling and media follow their own states.
- The progressive campaign distributes contacts according to team availability and capacity.
- Real-time events update the interaction and its records, while shutdown releases resources associated with the session.
Technical decisions
Separate session, signaling, and audio
Being connected to the application does not mean telephony is registered or media is ready. Representing these conditions separately enables specific feedback and prevents call controls from promising a state that does not exist.
Contain events from old sessions
Callbacks can arrive after an operator ends or replaces a session. Tying updates to the correct lifecycle prevents late events from changing a new call or restoring controls that were already closed.
What I learned
Browser telephony requires thinking beyond the screen: permissions, hardware, connectivity, and timing all participate in the flow. Explicit states and careful resource cleanup make failures easier to understand for both operators and engineers.
Limits and next steps
- The public capture contains an illustrative demonstration; it does not represent a real call or expose customer contacts.
- Call volumes, measured availability, and commercial results are not presented.
Credits
Developed at PuggyWare in collaboration with the team.
