Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overhaul SIP implementation #75

Open
doe300 opened this issue Jun 20, 2016 · 0 comments
Open

Overhaul SIP implementation #75

doe300 opened this issue Jun 20, 2016 · 0 comments

Comments

@doe300
Copy link
Owner

doe300 commented Jun 20, 2016

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant