1. Sep 27, 2023
  2. Sep 14, 2023
    • Andrea Gianarda's avatar
      In the call parameters, there are 2 ways of setting the from address · 2dc884fb
      Andrea Gianarda authored
      when initiating a call;
      - from header
      - account
      These 2 parameters are dependent from each other which makes tricky for
      the core to know exactly which account to use and the correct from
      address.
      In most scenarios, the from address is the account's identity address
      but it is not always the case such as in the case of a direct call.
      Moreover, the account cannot be always deduced in a straightforward
      matter such as if the core has no default account (but it is registered
      with one or more accounts) and the call parameters have not set one.
      
      The algorithm for choosing an account is the following:
      1) search in the call parameters
      2) get the default account
      3) look up for the best guessed account based on the from (if known) or
         to address
      
      The algorithm for known the from address is the following:
      1) look for the from header in the call parameters
      2) look up for the identity address of the account (if known)
      3) get the core primary account
      
      Set Ik SDP attribute based on the account used for a call
      
      Use account set in the call parameters before retrieving the NAT policy.
      It may happen that a call session is buuild without passing an account
      and in such a case, the SDK will do its best to get one
      2dc884fb
  3. Aug 04, 2023
    • Andrea Gianarda's avatar
      Implement conference broadcast feature. · 32f4c5a3
      Andrea Gianarda authored
      It allows the organizer to choose whether participant are speakers or
      listener in a conference.
      For scheduled conferences, if a participant is not in the list of
      allowed participants, he/she will have its role set to listener (i.e
      audio stream will be sendonly from the server side and recvonly on the
      client side).
      
      Non scheduled conferences will have the organizer and participants to be
      speakers.
      
      The dynamic change of a participant role is not supported yet once the
      conference is started but it may be done prior to it by updating the
      conference informations
      32f4c5a3
  4. Jul 24, 2023
    • Andrea Gianarda's avatar
      Implement changes in the SIP signaling to enable encrypted conferences: · 647631fa
      Andrea Gianarda authored
      - a RecvOnly audio stream with content DTX and the participant label for each participant of the conference. A secured conference will have N audio streams (1 sendrecv for the local participant and N-1 recvonly for the other participants)
      - add security level to the conference parameters
      - pass security level information to the conference server
      - add encryption information to the database table storing conferences
      - pass security level down to MSAudioConference and MSVideoConference objects
      - add extra video stream for encrypted conference in active speaker layout
      647631fa
  5. May 31, 2023
  6. May 12, 2023
  7. May 05, 2023
  8. Mar 29, 2023
    • Andrea Gianarda's avatar
      Address refactoring: · 4f0ee26a
      Andrea Gianarda authored
      - Delete classes IdentityAddress and ConferenceAddress
      - Make Address a derived class of HybridObject
      - Use smart pointer for objects of Address type whenever they need to be handled by the applications
      4f0ee26a
  9. Feb 22, 2023
  10. Dec 13, 2022
    • Andrea Gianarda's avatar
      Configure video stream using negotiated media description · a6fae535
      Andrea Gianarda authored
      Handle dial out conference while there is already an ongoing conference:
      - the conference server will always initiate call in dial out conferences if there is no one yet established
      - clients that are already in a conference call will reject any new incoming call from the same conference server with a 486 Busy Here
      
      If a participant requests a video stream of another participant whose video direction is inactive or recvonly, then the conference server will reply with an inactive stream
      Remove label and ssrc from participants whose video is disabled
      Do not send separate notifys for changes of an ssrc and media capability or availability changes
      a6fae535
  11. Oct 27, 2022
  12. Oct 25, 2022
  13. Oct 10, 2022
  14. Sep 28, 2022
  15. Sep 20, 2022
  16. Sep 08, 2022
  17. Aug 25, 2022
    • Andrea Gianarda's avatar
      Rework send invitation API: do not give chat room params but a boolean stating... · e592f839
      Andrea Gianarda authored
      Rework send invitation API: do not give chat room params but a boolean stating whether the chat room should be encrypted or not
      
      Add ICS cancel/update capability.
      -> Update: participants already invited receive an ICS with the same UID and the sequence incremented by one when the information up to date
      -> Cancel: participants that are no longer part of the conference, receive such ICS
      
      In order to globally cancel a conference, an admin can send an INVITE to the conference with an empty list of participants
      
      time SDP field (t=) is used to know whether the INVITE isaiming at joining a conference or update it:
      - if t=0 0, the client wishes to join a conference
      - if t!=0 0, the client wishes to update the informations of a conference (subject, start time, duration, participants)
      e592f839
  18. Jul 25, 2022
  19. Jul 22, 2022
  20. Jun 17, 2022
  21. May 09, 2022
    • Andrea Gianarda's avatar
      Implement audio video conferencing dial-out if conference must immediately... · 25f49693
      Andrea Gianarda authored
      Implement audio video conferencing dial-out if conference must immediately start (start time in SDP is 0)
      - the body of the INVITE sent out by the server has three parts:
        - SDP
        - resource list with the list of participants
        - SIP frag with the organizer of the conference
      
      Move resource list and sip frag parsing function to the factory
      
      Always clear devices when destroying participant
      
      Change RTP port range of lise_rc
      
      Do not move from transition call state (Updating, Pausing, Resuming) if there are updates yet to be accepted
      
      Set participant device state to Left when receiving a NOTIFY to inform the core that he/she has definitiely left the conference
      
      Improve conference documentation:
      - linphone_conference_get_participant_list and linphone_conference_get_participants do not include the local participant (me)
      - linphone_conference_get_me() returns the local participant
      25f49693
  22. Apr 14, 2022
  23. Mar 31, 2022
  24. Feb 25, 2022
  25. Feb 24, 2022
  26. Feb 04, 2022
    • Andrea Gianarda's avatar
      Implement client driven conference: · 2d8ed028
      Andrea Gianarda authored
      - clients send a reINVITE with the desired stream based on their choice of layout upon reception of:
        - full notify state
        - participant added
        - participant removed
      - change of layout (via conference params update or setLayout method) triggers a reINVITE from the client with the new desired streams
      - server sends reINVITEs to clients only to notify them that they joined a conference. If the client calls a conference URI, no reINVITE from the server is sent
      
      Add conference available media changed callback
      Conference layout renaming: None -> Legacy
      Add linphone_core_create_conference_params_2 in order to create conference parameters from an existing set
      Split local conference tester to speed up test run
      Rename testers Audio Conference (Basic) -> Audio Video Conference (Basic) and Audio Conference (Advanced) -> Audio Conference
      Add media direction to string function
      2d8ed028
  27. Jan 24, 2022
  28. Jan 06, 2022
    • Andrea Gianarda's avatar
      Rework how participant are added to a conference when they dial a focus uri. · 38cbc33d
      Andrea Gianarda authored
      The conference server tries to add them as soon as possible (i.e. in the IncomingReceived call state). At this stage the participant device is in state ScheduledForJoining.
      Once the call reaches the StreamsRunning state, the participant device state will move to Joining is ICE is disable. Otherwise, the server will wait for the ICE reINVITE before changing the participant state.
      The server also sends out an update in order to offer the right streams based on the chosen layout.
      The participant device state will ultimately move to Present once the client accepted the server offer and the other participant are notified of the addition of the participant device.
      38cbc33d
  29. Dec 03, 2021
    • Andrea Gianarda's avatar
      Conference participant NOTIFY: · 26317522
      Andrea Gianarda authored
      - participant added to conference -> onParticipantAdded
      - participant removed from conference -> onParticipantRemoved
      - participant device added to conference -> onParticipantDeviceAdded
      - participant device removed from conference -> onParticipantDeviceRemoved
      - participant temporarely leavy conference -> onParticipantLeft
      - participant rejoins conference -> onParticipantJoined
      
      Verify behaviour when a participant removes video from a video conference
      26317522
  30. Dec 01, 2021
    • Andrea Gianarda's avatar
      Conference establishment on a server: · f543865c
      Andrea Gianarda authored
      - allow remote to schedule a conference on a server
      - start and end time are passed as the values of the active time attribute in the SDP invite
      - an ICS is sent to all participants to be able to join the conference by dialling the focus address
      f543865c
  31. Nov 29, 2021
  32. Nov 25, 2021
    • Andrea Gianarda's avatar
      Support for difference conference layouts (Legacy, active speaker and grid): · cc39aefb
      Andrea Gianarda authored
      - create video stream to send and receive participant minatures
      - add support for multiple video stream in SDP
      - add label to stream to allow unique link between it and each participant in a conference
      
      Correctly set stream direction in NOTIFY based on information gathered from SDP only
      Deny subscription if conference event package is disabled
      Clean up of main-db.cpp
      cc39aefb
  33. Aug 20, 2021
  34. Jun 29, 2021
  35. Jun 22, 2021
  36. Jun 14, 2021
  37. Jan 22, 2021