Skip to content

v0.23.0

Compare
Choose a tag to compare
@emiago emiago released this 08 Sep 12:28
· 68 commits to main since this release

Highlights

  • Decoupling dialog from caching struct DialogServer DialogClient by adding DialogUA struct and simplifying API. This allows now dialog to be extended and wrapped with caller caching. DialogServer and DialogClient maybe moved only for TESTS in future and DialogUA will provide handing Invites and dialog creation
  • Testing coverage increased to 50.1 *.
  • We are forcing IPV4 either on default IP resolving and also on DNS lookups. DNS lookups need to have exported filtering mechanism in future release
  • Client have now Do request same like std http.Client. This allows caller not to deal with transaction and just have request/reply
  • Dialog Client Server now have Do and TransactionRequest that comply to RFC better as Dialogs need more to comply versus standard Request. It is recomended now to use DialogUA and sub sessions when have to deal with INVITE requests.
  • SIP URI is now more generic (Adds SCHEME detection) to allow custom uri conversions like tel: #114
  • BREAKING CHANGE: CANCEL handling was complex with Dialog. Now Transaction Layer and Dialog handles this correctly without need to have additional logic on caller. ServerTransaction.Cancels and ClientTransaction.Cancel is removed and everything is handled by transaction layer. In cases of statefull proxy this may be exposed for better control. For now it is expected that cancel terminates transaction and then proxy should terminate other end.
    Per RFC CANCEL only makes sense for INVITE and this is provided with dialog management when canceling WaitAnswer.

What's Changed

New Contributors

Full Changelog: v0.22.1...v0.23.0