Eyepea / aiosip

SIP support for AsyncIO (DEPRECATED)
Apache License 2.0
82 stars 41 forks source link

Move dialplan logic fully into Application, remove dialog router #74

Closed vodik closed 6 years ago

vodik commented 6 years ago

Putting this up for feedback. I know you guys have been kinda busy, so take your time, still a few things left to do:

The PR removes the dialog router. I plan to move everything to using an iterator based API.

In order to do this, I created a new Request class to represent a new potential dialog. This now fed to the callbacks registered in the dialplan, and give them room to either reject or accept traffic. Should it be accepted, a Dialog is returned.

This returned dialog object should now behave exactly like the client side dialog, meaning future messages on that dialog should be read out by iterating (enabling re-REGISTER support, for example).

This breaks two features, authentication (can be retrofitted in, just haven't yet), and proxying.

Proxying will probably need a completely new implementation that's built around coroutines and iterators instead of routing hooks.

codecov-io commented 6 years ago

Codecov Report

Merging #74 into master will decrease coverage by 0.73%. The diff coverage is 80.35%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #74      +/-   ##
==========================================
- Coverage   70.48%   69.74%   -0.74%     
==========================================
  Files          15       15              
  Lines        1484     1494      +10     
  Branches      263      262       -1     
==========================================
- Hits         1046     1042       -4     
- Misses        333      342       +9     
- Partials      105      110       +5
Impacted Files Coverage Δ
aiosip/dialplan.py 60% <ø> (-26.67%) :arrow_down:
aiosip/peers.py 68.29% <100%> (+1.27%) :arrow_up:
aiosip/dialog.py 74.76% <100%> (-1.08%) :arrow_down:
aiosip/transaction.py 61.71% <100%> (-0.36%) :arrow_down:
aiosip/application.py 70.28% <79.24%> (+3.24%) :arrow_up:
aiosip/utils.py 64.1% <0%> (-5.13%) :arrow_down:
... and 1 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 83f986a...735fa28. Read the comment docs.

ludovic-gasc commented 6 years ago

It's OK for me.

vodik commented 6 years ago

Even though the test code got more complicated (for now), its also a net code reduction!

vodik commented 6 years ago

Merging so I can get the last big thing done - INVITE