1. 12 Aug, 2019 1 commit
    • Sébastien Blin's avatar
      pjproject: fix crash if turn_alloc fails · 1a3ab76f
      Sébastien Blin authored
      Because the candidate is destroyed if turn_alloc fails, the
      candidate should be committed before turn_alloc and turn_create.
      
      Change-Id: I84f7a206ef42c2a21049d0bea135f5f60c92c0ad
      1a3ab76f
  2. 05 Aug, 2019 1 commit
  3. 03 Aug, 2019 2 commits
  4. 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
  5. 30 Jul, 2019 1 commit
  6. 25 Jul, 2019 2 commits
    • Adrien Béraud's avatar
      contrib: update vpx to v1.8.1 · 916a9a42
      Adrien Béraud authored
      Change-Id: If16f8afd654509e595b68388cdd0afa57b8debe3
      916a9a42
    • Sébastien Blin's avatar
      file transfer: use ICE code in more configurations · c413dc43
      Sébastien Blin authored
      + Public ips was not registered as a candidate. With this patch,
      negotiations via UPnP and TURN are made during the ICE negotiation.
      So, the fallback with the old code should not be used anymore for
      new versions.
      + Both peers negotiate the link at the same time. The speed of the
      negotiation is improved.
      + Fix PJ_EBUSY detection when using a TURN socket to transfer a
      file.
      
      Change-Id: I74fb313b9628d762a1ab0da05e3a18ea3691cb3d
      c413dc43
  7. 23 Jul, 2019 1 commit
  8. 17 Jul, 2019 1 commit
  9. 16 Jul, 2019 2 commits
  10. 15 Jul, 2019 1 commit
  11. 14 Jul, 2019 2 commits
  12. 12 Jul, 2019 1 commit
    • Sébastien Blin's avatar
      sip: negotiate both UDP and TCP for the control channel · 4bade6fa
      Sébastien Blin authored
      NOTE: SIP over TCP is disabled for now on Windows, waiting for
      TLS 1.3 support. To re-enable it, check the #ifdef _WIN32 in
      ice_transport.cpp
      
      Our pjsip version supports the RFC6544. With this patch, when
      starting a call, the daemon is using two ICE sessions for the SIP
      channel. One is negotiating a UDP socket, and the other a TCP socket
      and transmits both SDP on the DHT.
      
      If both negotiations succeed, TCP is prefered and will be used
      to transmit SIP messages and the VCard. This should solve the 30
      seconds timeout on bad networks.
      
      Note that the media channel is still using UDP to transmit audio
      and video.
      
      MAJOR CHANGE: the SIP channel use TLS on top of TCP, no DTLS,
      so the transport is considered as reliable.
      
      Also lot of changes in rfc6544.patch to link to rfc6062. The patch
      needs to be cleaned, cf TODO notes
      
      Also this seems to fix the ICE shutdown at the end of the call
      (after the IDLE Timeout)
      
      Change-Id: I01210da3abfcc448071268b4e1e38abdd58f9f05
      Gitlab: #103
      Gitlab: #108
      4bade6fa
  13. 10 Jul, 2019 1 commit
    • Kateryna Kostiuk's avatar
      ffmpeg: avfoundation patch · 5fdb9649
      Kateryna Kostiuk authored
      This patch fix large log output and slowdown for captured video
      caused by calling CMSampleBufferGetImageBuffer with no video frame.
      This could be fixed by bumping ffmpeg to
      02f65678ba9b5958cf53d1e5bc29939d941ad95f, but it cause other
      problems(crash when switching to screen sharing)
      
      Change-Id: I0dc33683f1e40ce151130774316892f7f4730f83
      5fdb9649
  14. 08 Jul, 2019 1 commit
  15. 02 Jul, 2019 1 commit
  16. 28 Jun, 2019 1 commit
  17. 26 Jun, 2019 1 commit
  18. 21 Jun, 2019 1 commit
  19. 20 Jun, 2019 2 commits
    • Sébastien Blin's avatar
      sip_transport: change idle_timeout to 10 seconds · 8b3399e8
      Sébastien Blin authored
      ICE sessions take a long time to be closed and keep alive packets
      are sent during 10 minutes. Change the timeout to close the session
      after 10 seconds.
      
      Change-Id: I7cd287551a9aa76b475cf765a941cc6bcb72f55b
      Gitlab: #108
      8b3399e8
    • Sébastien Blin's avatar
      sip: negotiate both UDP and TCP for the control channel · e83a1006
      Sébastien Blin authored
      NOTE: SIP over TCP is disabled for now on Windows, waiting for
      TLS 1.3 support. To re-enable it, check the #ifdef _WIN32 in
      ice_transport.cpp
      
      Our pjsip version supports the RFC6544. With this patch, when
      starting a call, the daemon is using two ICE sessions for the SIP
      channel. One is negotiating a UDP socket, and the other a TCP socket
      and transmits both SDP on the DHT.
      
      If both negotiations succeed, TCP is prefered and will be used
      to transmit SIP messages and the VCard. This should solve the 30
      seconds timeout on bad networks.
      
      Note that the media channel is still using UDP to transmit audio
      and video.
      
      MAJOR CHANGE: the SIP channel use TLS on top of TCP, no DTLS,
      so the transport is considered as reliable.
      
      Also lot of changes in rfc6544.patch to link to rfc6062. The patch
      needs to be cleaned, cf TODO notes
      
      Also this seems to fix the ICE shutdown at the end of the call
      (after the IDLE Timeout)
      
      Change-Id: I55c5f51377fd8787bc951d6d282eec46f8eaf977
      Gitlab: #103
      Gitlab: #108
      e83a1006
  20. 14 Jun, 2019 1 commit
  21. 12 Jun, 2019 2 commits
  22. 07 Jun, 2019 3 commits
  23. 04 Jun, 2019 2 commits
  24. 30 May, 2019 1 commit
    • Sébastien Blin's avatar
      contrib: bump pjproject · ebb5e5c1
      Sébastien Blin authored
      Now that RFC6062 is merged upstream, we can remove the patch from
      our stack. The API changed a bit, so this patch also updates
      turn_transport.cpp to follow changes
      
      Change-Id: If6e0bae8280d586b2e5fcb0babe83df8127789b6
      ebb5e5c1
  25. 28 May, 2019 1 commit
    • Sébastien Blin's avatar
      pjproject: remove redefinitions from rules.mak · 5b6063dc
      Sébastien Blin authored
      This also solves calls via TURN. In fact the redefinition in
      rules.mak leads to a difference between the internal offsets
      in pjproject and the daemon. So, structures passed to pjsip are
      incorrect.
      
      Change-Id: I50261781511b11cffd9441e825d8edb09256f3e0
      Gitlab: #105
      5b6063dc
  26. 24 May, 2019 1 commit
  27. 02 May, 2019 1 commit
  28. 01 May, 2019 1 commit
  29. 30 Apr, 2019 1 commit
  30. 29 Apr, 2019 2 commits