Solution Strategy
Overall Architecture
GOnnect follows a layered architecture pattern with clear separation of concerns:
Design Patterns
Singleton Pattern
Used for global managers that should have exactly one instance:
-
SIPManager- SIP stack management -
StateManager- Global application state -
AddressBookManager- Contact source management -
UISettings- UI configuration
Factory Pattern
Used for creating contact and calendar sources:
-
IAddressBookFactory- Contact source factory -
IDateEventFeederFactory- Calendar source factory
Technology Decisions
Why Qt/QML?
-
Cross-platform GUI framework
-
Declarative UI with QML
-
Strong C++ backend integration
-
Rich ecosystem of Qt modules
-
Active community and long-term support
Module Responsibilities
SIP Module
| Component | Responsibility |
|---|---|
SIPManager |
Central SIP stack management, account handling |
SIPCall |
Individual call state and media handling |
SIPCallManager |
Call lifecycle management |
SIPBuddy |
Contact buddy state tracking |
SIPAccount |
Account configuration and credentials |
Contacts Module
| Component | Responsibility |
|---|---|
AddressBookManager |
Contact source orchestration |
Contact |
Contact data model |
ContactModel |
QML contact list model |
AvatarManager |
Contact avatar handling |