1. 18 Sep, 2015 1 commit
    • Alexandre Lision's avatar
      compilation: fix warnings · 8d9028f6
      Alexandre Lision authored
      Add override marker to explicit from where functions come from
      
      Issue: #80598
      Change-Id: I957afd713de22016220786145471d87c211064c8
      8d9028f6
  2. 11 Sep, 2015 1 commit
    • Stepan Salenikovich's avatar
      im: use pjsip api to create and parse messages · b7ee00ee
      Stepan Salenikovich authored
      This supports both simple and multipart content types.
      
      *WARNING* the daemon API has not changed; however the previous
      implementation was not RFC compliant and thus messages sent from or
      received by a previous version of the daemon will not be interpreted
      correctly. Additionally the behaviour of the API has slightly changed.
      It will no longer split multiple message pairs received in the
      map<string, string> into multiple, separate SIP messages if they do not
      all fit into one. If there is only one pair in the map, then a message
      with a single content-type will be created and sent. If multiple pairs
      exist, then a multipart/mixed type message will be created. If the
      created message is too large to be sent, then no parts will be sent.
      
      Support for storing the URI of the original sender is dropped for now as it
      was not being used by the clients and the implementation was buggy.
      
      The APIs for creating XML recipient lists as defined by RFC 5365 remains
      but is no longer used for now.
      
      Issue: #79657
      Change-Id: I2b00cbd797fbb423ee0a7eb24748d2362e9f9ff8
      Signed-off-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      b7ee00ee
  3. 02 Sep, 2015 1 commit
  4. 19 Aug, 2015 1 commit
    • Guillaume Roguez's avatar
      sipcall: factorize pjsip_inv_end_session calls · b4be5352
      Guillaume Roguez authored
      Ending an INVITE session follows a specific scheme on Ring.
      This patch factorize all pjsip_inv_end_session calls to having
      one point to implement INVITE termination.
      By this way we fix also non consistent termination over the code.
      
      Issue: #79075
      Change-Id: Icf6d56caedf75c128ad967ed89d1bacb19696a40
      b4be5352
  5. 17 Aug, 2015 1 commit
    • Guillaume Roguez's avatar
      call factory: fix callMap used key · 951a307b
      Guillaume Roguez authored
      At creation, calls were badly tracked into call map due to wrong
      key used (was the account type string).
      Changed for the LINK_TYPE (it's the same for Ring and SIP call).
      
      This fix a bug when getCall<SIPCall> is used for fetching
      Ring AND SIP calls (was return only SIP, never RING calls).
      
      Issue: #79075
      Change-Id: I50428ce00d16cafdf1d33e39acc59a452d0c312a
      951a307b
  6. 10 Aug, 2015 1 commit
    • Guillaume Roguez's avatar
      ringaccount: register a public address at ICE creation · e4cdde22
      Guillaume Roguez authored
      This patch tries to solve a situation where one peer has
      a TURN server registered but the other peer doesn't have
      any NAT traversal systems.
      To solve that we use a recent OpenDHT API that returns
      a list of public IP discovered during DHT transferts.
      The most seen address is used to register a new relflective
      candidate, coupled to an existing and registered host address.
      It's port is stolen, but as this candidate is added after
      ICE initialization, the candidate is not used for negotiation.
      This is mosly a PJSIP hack as we use an implementation details.
      
      Issue: #78582
      Change-Id: Ic16527f04b4e07905c405d8681223a02fee16d55
      e4cdde22
  7. 22 Jul, 2015 2 commits
    • Guillaume Roguez's avatar
      media: refactor live bitrate change · ad477a2f
      Guillaume Roguez authored
      This refactoring improves user experience, fix an issue and simplify code.
      
      - less exposed "internal" stuff (RTP sequence value)
      - don't expose internal business logic to upper layers.
      - remove uneeded full media restart: only media_encoder is restarted
      - fixed non protected shared access to codec isRunning value causing
        a race condition on access and good design practices violation
        (tight coupling between unrelated classes).
      
      Refs #77483
      
      Change-Id: Idb1e3940601ff0d483e7721f627a0c8dd766f844
      ad477a2f
    • 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
  8. 15 Jul, 2015 2 commits
    • Emmanuel Lepage Vallee's avatar
      instantmessages: Support multi payload messaging · b8968cff
      Emmanuel Lepage Vallee authored
       * A new signal to receive multiple payloads
       * Send the message as both html and text
       * Parse MIME format to extract all payloads
       * Send messages with multiple payloads
      
      WARNING: This commit break the API
      
      To restore the old behavior, users of sendTextMessage should
      use the "text/plain" MIME type.
      
      Refs #77651
      
      Change-Id: Ic20c0cea48ba5d7ec625e69cd87eeffc1fdbe759
      b8968cff
    • Éloi Bail's avatar
      daemon: change bitrate in live · 3939750f
      Éloi Bail authored
      If user changed codec parameters such as bitrate using dbus API, audio and
      video codec will be automatically restart with up-to-date parameters.
      
      Audio and video ports previously negotiated on the previous media session will
      stay the same. In order to avoid dropped framed, RTP sequence number from
      previous session will be reused. Thus new session will use continuous sequence
      number.
      
      Refs #77483
      Change-Id: Idce0f8b3a0537f0db6def054cfdb8765440d2cd7
      3939750f
  9. 26 Jun, 2015 1 commit
  10. 21 Apr, 2015 1 commit
    • Éloi Bail's avatar
      daemon: implement media muting · c3a19140
      Éloi Bail authored
      Simple muting implementation per call and media, eg : audio, video.
      When a media is muted, black frames are sent in case of video.
      Null samples are sent in case of audio.
      
      In order to enhance bandwidth saving, a re-invite could be done
      in a next version to properly stop muted media processing.
      
      Refs #66722
      Refs #69846
      
      Change-Id: I9f03a7de77a6df3a3396197b9d966004300ebfcc
      Signed-off-by: Guillaume Roguez's avatarGuillaume Roguez <guillaume.roguez@savoirfairelinux.com>
      c3a19140
  11. 24 Mar, 2015 2 commits
  12. 20 Mar, 2015 1 commit
  13. 19 Mar, 2015 2 commits
  14. 06 Mar, 2015 2 commits
  15. 04 Mar, 2015 1 commit
  16. 26 Feb, 2015 2 commits
  17. 25 Feb, 2015 3 commits
  18. 23 Feb, 2015 1 commit
  19. 21 Feb, 2015 1 commit
  20. 27 Jan, 2015 1 commit
    • Stepan Salenikovich's avatar
      daemon: add upnp support · 7649d5be
      Stepan Salenikovich authored
      New settings in daemon preferences to use UPnP, default false.
      Currently opens ports for SIP and ip2ip accounts and their calls.
      Opens ports negotiated by SDP sesssion.
      Tries to open ports for ICE candidates and adds ICE candidates
      with the public IP to help ICE negotiation.
      Added miniupnpc to contrib and patched to be able to generate just
      a static lib.
      Supports multiple clients on the same UPnP router. Will select a
      different port at random if the desired port is already taken by
      another client.
      
      Refs #63247
      Refs #63303
      
      Change-Id: I00ae79bc3a24d3e54513a6d299fd9b6a70bcc3c2
      7649d5be
  21. 26 Jan, 2015 2 commits
    • Guillaume Roguez's avatar
      daemon: namespace cleanup · 09a04cd3
      Guillaume Roguez authored
      - all the code moved under the ring namespace, or a sub-namespace,
      exception of ring_api.cpp as exporting a C accessible API.
      - fixed namespaces hierarchy.
      - removed forbiden usage of using-declaration.
      
      Refs #64647
      
      Change-Id: I23fdeca1252150d490828c1ce907097f17e1d41c
      09a04cd3
    • Guillaume Roguez's avatar
      daemon: remove CCRTP deadcode · dab31d9b
      Guillaume Roguez authored
      Refs #64668
      
      Change-Id: Icbdc1e0a7692b7fd44c82ffb789e8932fa2ffdbb
      dab31d9b
  22. 09 Jan, 2015 2 commits
  23. 19 Dec, 2014 1 commit
  24. 17 Dec, 2014 1 commit
  25. 15 Dec, 2014 1 commit
  26. 03 Dec, 2014 1 commit
  27. 02 Dec, 2014 1 commit
  28. 01 Dec, 2014 1 commit
  29. 07 Oct, 2014 1 commit
  30. 06 Oct, 2014 1 commit
    • Adrien Béraud's avatar
      sip: transport refactoring · 82a0e238
      Adrien Béraud authored
      SIPTransport now represents a SIP transport.
      The old SIPTransport class becomes SIPTransportBroker.
      Makes every sip call have its own transport, to allow IP2IP calls
      using TLS.
      
      Refs #53057
      Change-Id: I6ae8e1a4c681c6f4f5887772f5b852bd440df13f
      82a0e238