Skip to content

Overhaul SIP implementation #75

@doe300

Description

@doe300

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions