1. 02 Aug, 2019 1 commit
    • Eden Abitbol's avatar
      upnp: support libupnp and libnatnatpmp simultaneously · 60515d89
      Eden Abitbol authored
      Update libupnp to version 1.8.4.
      
      For windows, the IPV6 preprocessor must be undefined. Or else
      libupnp won't initialize. Added visual studio 2017 support
      via one patch for windows that also combines previous windows
      patches.
      
      UPnPController: Class that the jami classes use to control the
      opening and closing of ports. Every  service has it's own upnp
      controller. The controller does it's actions by using the upnp
      context class. Also refactored the functions used to add
      mappings. Instead of using two different functions with
      different types of parameters, we now use one function with
      parameters that have default values. The logic stays the same
      but the function call is more clear.
      
      UPnPContext: Class that holds a (linked) list of discovered IGDs
      and their corresponding protocols (which discovered them).
      Whenever the controller wants to add or remove a mapping, the
      context picks a valid IGD in it's list and uses the correct
      protocol to complete the required action. This class also has
      the ability to swap protocols for an IGD that was discovered
      by more then one protocol.
      
      UPnPProtocol: Virtual base class that defines the functions
      needed by the context to use the corresponding protocol.
      
      PUPnP: UPnPProtocol derived class that represents a upnp client
      that uses the portable upnp library (libupnp). Every time the
      client discovers a new IGD it uses a callback to add it to the
      context's main IGD linked list. It also has an internal list of
      IGDs that it discovered. Added features to this class include:
      	- IGD event subscription.
      	- Use UpnpInit2 function instead of deprecated UpnpInit
      	  function. It's also supposed to support IPv6.
      
      NatPmp: UPnPProtocol derived class that represents a upnp client
      that uses the NAT-PMP library (libnatpmp). Unlike libupnp,
      libnatpmp only supports discovering one IGD. Also uses callbacks
      to add the IGD it finds to the context's main IGD class.
      
      Also inclided debug warning prints whenever a controller opens
      and closes the ports. That way we can keep track of whenever
      the application opens and closes ports on the internet
      gateway device.
      
      Gitlab: #96
      
      Change-Id: I199271edac2c6d93dc60c24e2e2aefe36de7950c
      60515d89
  2. 11 Jun, 2019 2 commits
  3. 23 Apr, 2019 1 commit
  4. 03 Apr, 2019 1 commit
  5. 02 Apr, 2019 2 commits
  6. 02 Jan, 2019 1 commit
  7. 26 Oct, 2018 1 commit
  8. 07 Jun, 2018 1 commit
  9. 06 Jun, 2018 1 commit
    • Sébastien Blin's avatar
      sipaccountbase: add getLastMessages() · 6fc81302
      Sébastien Blin authored
      Because a client can receives messages before a client is ready to
      receive it and because the daemon does not store any message, we
      should have, like calls or file transfers, have a method to get
      these messages.
      
      So, this patch introduces a new method which gives the ability to
      retrieve messages since the daemon has been launched. To do that,
      when the daemon will receives a new message, it will store this
      message into a queue (limited to 1000 messages) and save the
      related timestamp. When the client is ready it can call getLastMessages
      with its last known timestamp. This method will return all messages
      received after this timestamp.
      
      Note: the perfect way to do that is to store messages directly in
      the daemon not clients. We also need some synchronization processes.
      
      Change-Id: Iceb1654088a843f9be5b4a47bcc23201e9b38c01
      6fc81302
  10. 18 Mar, 2018 1 commit
  11. 31 Jan, 2018 1 commit
    • Adrien Béraud's avatar
      Ringaccount: add support for DHT proxy and push notifications · c5e74abe
      Adrien Béraud authored
      * Bump restbed for OpenDHT, update patch and add patch to react
        to timeout and socket closed in restbed.
      * Bump OpenDHT to support push notifications
      * Add DRing APIs to support setting a client push notification token
        and to retransmit push notifications to dring
      * Implement proxy support in RingAccount
      
      Change-Id: I8d3a02cf54a9666a94ab992ee3fa2958e82aa7ad
      c5e74abe
  12. 23 Jan, 2018 1 commit
  13. 22 Jan, 2018 1 commit
  14. 05 Jan, 2018 1 commit
    • Guillaume Roguez's avatar
      data transfer: first implementation · 755347dd
      Guillaume Roguez authored
      First implementation of Reliable Data Transfer feature in Ring.
      
      This implementation is a draft, comes with a Python script
      tools/dringctrl/sendfile.py to play with and doesn't
      implement all the API as described into "datatransfer: API proposal"
      commit.
      This version uses TLS over TCP-TURN sockets to encrypt data.
      
      Transfers require a TURN server with TCP peer connections
      as described by the RFC-6062.
      
      Testing: Currently only sendFile API is implemented and data are
      saved into a temporary file saved in "/tmp/ring_XXXXXX",
      where XXXXXX are replace by mkstemp() command.
      
      Change-Id: I5b8f48432edd58df5046e368a99f58ea44046dcd
      Reviewed-by: default avatarOlivier Soldano <olivier.soldano@savoirfairelinux.com>
      755347dd
  15. 18 Dec, 2017 1 commit
  16. 04 Dec, 2017 1 commit
  17. 22 Jun, 2017 1 commit
    • Guillaume Roguez's avatar
      upnp: do not enable if not used · e54bb48c
      Guillaume Roguez authored
      upnp is always activated even if no account uses it.
      
      Here we refactoring its creation and availability checks.
      This also removes an atomic_bool that gives no true conccurent
      protection as it protects itself, but not multiple accesses
      to upnp_ member.
      
      Change-Id: Ibf6aaee54077867cdf3029fd51ef6cae0b7488c1
      e54bb48c
  18. 08 Feb, 2017 1 commit
  19. 05 Jan, 2017 1 commit
  20. 12 Oct, 2016 1 commit
    • Adrien Béraud's avatar
      multi-device: initial implementation · 1dccd81b
      Adrien Béraud authored
      * generate device certificate
      * generate encrypted archive including:
       - Account certificate
       - Generated Ethereum key
      * adds "signed receipt" to the account configuration
      * adds mechanism to export/import account over the DHT
      
      Change-Id: Iac77f990b094c3405785fb0df41bc8a993995a26
      Tuleap: #938
      1dccd81b
  21. 05 Oct, 2016 1 commit
    • Guillaume Roguez's avatar
      account: delete filesystem traces of an account · 8619027f
      Guillaume Roguez authored
      This patch adds a new virtual API to Account, flush(),
      that does nothing by default. Concrete classes may overload it
      when it's needed to remove filesystem entries created by them.
      
      Then this patch adds also overloads of this method in SIPAccountBase and
      RingAccount to delete all files added by these account classes.
      
      Finaly, the removeAccount() external API calls flush by default, but
      internal calls do not, to keep a conservative behaviour
      and not destroying account files due to yml parsing errors.
      
      Change-Id: I52c4e225f4d41f0e3d74f63838e56a769011b58e
      Tuleap: #988
      8619027f
  22. 08 Aug, 2016 1 commit
    • atraczyk's avatar
      daemon: avoid intrin.h conflict on Windows · c221eb0e
      atraczyk authored
      The Microsoft compiler will include the common header <intrin.h>
      regardless of the use of quotes. The file "intrin.h" should be renamed,
      and all references to it changed, as well as defining the UNUSED macro
      to nothing on the Windows platform.
      
      Change-Id: Id04d36e70d149746be8d78eed09aa963514b2810
      Tuleap: #801
      c221eb0e
  23. 22 Jul, 2016 1 commit
    • Stepan Salenikovich's avatar
      add connectivityChanged API · 20f40205
      Stepan Salenikovich authored
      This allows the clients to notify the daemon when the conenctivity
      (ie: network status) has changed. The daemon will then try to detect
      the new IGD (UPnP) and re-connect all enabled accounts.
      
      Change-Id: I5c8fc57f75e48d86eda5d195b0586c61a26134ad
      Tuleap: #841
      20f40205
  24. 30 Jun, 2016 1 commit
    • Guillaume Roguez's avatar
      removing IAX account and libiax dependency · 36e857fc
      Guillaume Roguez authored
      This patch removes all IAX account code and libiax dependency in contrib.
      References in documentation have also been removed where needed.
      
      Change-Id: Ifff23725ccf7e1a6820dbc6f57256138a0fca042
      Tuleap: #813
      36e857fc
  25. 13 Apr, 2016 1 commit
  26. 27 Mar, 2016 1 commit
    • aviau's avatar
      fixed typos · 3b767168
      aviau authored
      Fixes spelling-error-in-binary lintian warning
      
      Tuleap: #350
      Change-Id: I014ebe76e71f9bae247d4d0726fd3e6cbe6459f2
      3b767168
  27. 09 Mar, 2016 1 commit
  28. 18 Feb, 2016 1 commit
  29. 04 Dec, 2015 1 commit
    • Guillaume Roguez's avatar
      im: normalize call/account instant-messaging API's · 27565853
      Guillaume Roguez authored
      WARNING: API changes
      
      This patch makes code common for IM send/receive message API's
      between call and account classes.
      
      Multi-part messages is supported for :
      - SIPAccount
      - SIPCall (any SIP like account)
      
      RingAccount supports only Single-part messages yet.
      
      Change-Id: Ic65425cd95f02f89f03dd6ea2a9c4a10bb233859
      Tuleap: #157
      27565853
  30. 28 Oct, 2015 1 commit
    • Adrien Béraud's avatar
      accounts: add API-controlable "active" property · 6d7d0737
      Adrien Béraud authored
      * add "active" runtime property to accounts
      * accounts can only be used when active
      * "active" state is not persistans
      * add "active" state to volatile properties map
      * add setAccountActive API
      * "active" is the default state (backward compatibility)
      
      The active state can be used to manage runtime states
      defining if an account should be used (e.g. on Wifi/3G etc.)
      
      Tuleap: #9
      Tuleap: #42
      Change-Id: Ie3b3aaadea6e43237fc22f6a1f96de8cbfe2bd95
      6d7d0737
  31. 02 Oct, 2015 1 commit
  32. 21 Sep, 2015 1 commit
    • Guillaume Roguez's avatar
      update Copyright header · 5236ab05
      Guillaume Roguez authored
      - remove OpenSSL exception
      - fix Savoir-faire Linux naming
      - fix common Author: representation
      
      Issue: #80663
      Change-Id: I6c3b2ca1ed48ed474a0ecd5a30fe793526e11b00
      5236ab05
  33. 06 Aug, 2015 1 commit
  34. 22 Jul, 2015 2 commits
    • Guillaume Roguez's avatar
      account: fix parseInt template · c382a7e4
      Guillaume Roguez authored
      Incorrect template function prototype.
      Error introduced by commit 8700cae2.
      
      Issue: #76374
      Change-Id: I18509836d4dab2f14a650a3a6a420133fb201679
      c382a7e4
    • Guillaume Roguez's avatar
      call: states refactoring · 4d3c4439
      Guillaume Roguez authored
      This is a major patch about refactoring all CallState/ConnectionState
      over call and subclasses.
      Please read carefully this message, it's about how to use the code.
      
      First, this patch brings a central way to store both Call class states
      members: only Call::setState() (and overloaded) has to be used now.
      
      De-facto we use it to emit to the client the StateChange call signal,
      and remove this emit spread over the code. A check is also made
      to not emit it if the resulting client state doesn't change for
      the given CallState/ConnectionState input pair.
      So using this signal elsewhere is stricly forbidden now.
      
      Then, a code cleanup has been made to had missing setState() calls
      and check the global business logic about these states changes.
      I hope this cleanup is correct (almost as good as before).
      
      State transaction logic is, as before, checked by Call::validTransition.
      Please modify it if state machine needs to be changed.
      Also modify Call::getStateStr() to implements daemon->client
      translated state machine.
      
      Note: no API changes in this patch. Only behavior changes.
      
      Refs #76646
      
      Change-Id: Iecaedc2cad89b9afdc886f978bbf5f247cbe36bb
      Signed-off-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      4d3c4439
  35. 30 Jun, 2015 2 commits
  36. 15 May, 2015 1 commit
    • Guillaume Roguez's avatar
      ice: implement TURN/STUN servers options · a0d2e366
      Guillaume Roguez authored
      This patch modifies the internal IceTransport API.
      We now use a IceTransportOptions to select ICE options.
      STUN/TURN servers are modified using this options struture.
      
      Refs #72663
      
      Change-Id: I35106000d803c1374f97ce89e7b895faf1e97b77
      a0d2e366