-
Notifications
You must be signed in to change notification settings - Fork 14
Open
Labels
Description
The current SIP implementation has a few weak points, namely:
- session state: absolutely inaccurate and obscure, does not consider REGISTER, is set at various places, etc.
- request-handling: currently all requests are standalone, with no connection to a session/etc.
- local user agent: initially set to local user and device, switching to another user (e.g. for registration) not clearly structured/tested
- only one action possible: if program registers to a server, it can't invite anyone
- multi-destination: feature to add multiple destinations partly added, won't work at all, since implementation aims at a single destination
Rewrite to fix this:
- Add SIPCallflow which handles all requests/responses, until the call-flow is ended
- Add subclasses for call-flows such as registration (including refreshment, deregistration), invitation (session-establishment, ..., up to closing), handling OPTIONS-requests, ...
- Make sure call-flows and can coexist (e.g. refreshing registration and handling session, or handling session and answering to OPTIONS-request)
- remove code supporting multi-destination add correct support for multiple destinations with distinction, where a single destination/multiple destinations is/are required
- Overhaul check for valid headers/SIP-URIs, IP-addresses