[OpenSIPS-Devel] [OpenSIPS/opensips] 3df4c3: rtpengine: only maintain 1 node per unique URL

Răzvan Crainea noreply at github.com
Thu Nov 3 13:12:53 UTC 2022


  Branch: refs/heads/master
  Home:   https://github.com/OpenSIPS/opensips
  Commit: 3df4c3f51cf05f545f7d9e11021d1074f4b77cf3
      https://github.com/OpenSIPS/opensips/commit/3df4c3f51cf05f545f7d9e11021d1074f4b77cf3
  Author: John Burke <john at voxtelesys.net>
  Date:   2022-04-18 (Mon, 18 Apr 2022)

  Changed paths:
    M modules/rtpengine/rtpengine.c

  Log Message:
  -----------
  rtpengine: only maintain 1 node per unique URL


  Commit: 952f38fadd2d4a0b12c33a0f5ac85c39e5550116
      https://github.com/OpenSIPS/opensips/commit/952f38fadd2d4a0b12c33a0f5ac85c39e5550116
  Author: John Burke <john at voxtelesys.net>
  Date:   2022-04-18 (Mon, 18 Apr 2022)

  Changed paths:
    M modules/rtpengine/rtpengine.c

  Log Message:
  -----------
  rtpengine: remove unused variable


  Commit: 11291e68e04cbe9149d8faf78437318784cf5c41
      https://github.com/OpenSIPS/opensips/commit/11291e68e04cbe9149d8faf78437318784cf5c41
  Author: John Burke <john at voxtelesys.net>
  Date:   2022-04-18 (Mon, 18 Apr 2022)

  Changed paths:
    M modules/rtpengine/rtpengine.c

  Log Message:
  -----------
  rtpengine: add helper functions for freeing a specific rtpengine set and node

This commit is in preparation of socket management refactoring


  Commit: 1fe179e3c386b0cdc7f45827f8ec709906d37fcb
      https://github.com/OpenSIPS/opensips/commit/1fe179e3c386b0cdc7f45827f8ec709906d37fcb
  Author: John Burke <john at voxtelesys.net>
  Date:   2022-04-18 (Mon, 18 Apr 2022)

  Changed paths:
    M modules/rtpengine/rtpengine.c

  Log Message:
  -----------
  rtpengine: add helper function for disconnecting rtpengine socket(s)

This commit is in preparation of socket management refactoring


  Commit: 06393852f724d3a95d2a578f99c7c8e61eb85f72
      https://github.com/OpenSIPS/opensips/commit/06393852f724d3a95d2a578f99c7c8e61eb85f72
  Author: John Burke <john at voxtelesys.net>
  Date:   2022-04-18 (Mon, 18 Apr 2022)

  Changed paths:
    M modules/rtpengine/rtpengine.c

  Log Message:
  -----------
  rtpengine: remove rtpengine probing from SIP procs

Probing is now done exclusively by timer workers and by `rtpengine_reload` mi command.


  Commit: 1eac7851871a64d938209cc0d1a2a843df88818c
      https://github.com/OpenSIPS/opensips/commit/1eac7851871a64d938209cc0d1a2a843df88818c
  Author: John Burke <john at voxtelesys.net>
  Date:   2022-04-18 (Mon, 18 Apr 2022)

  Changed paths:
    M modules/rtpengine/rtpengine.c

  Log Message:
  -----------
  rtpengine: ensure new elems are initialized in sockets array


  Commit: 9001bafcd2f895222e08399e45086efa7709d456
      https://github.com/OpenSIPS/opensips/commit/9001bafcd2f895222e08399e45086efa7709d456
  Author: John Burke <john at voxtelesys.net>
  Date:   2022-04-18 (Mon, 18 Apr 2022)

  Changed paths:
    M modules/rtpengine/rtpengine.c
    M modules/rtpengine/rtpengine.h

  Log Message:
  -----------
  rtpengine: enhancement of set/node management

This commit has several enhancements:
1. Introduce reload types via MI command `rtpengine_reload type=soft|hard`.
  - Hard reload: all nodes are disconnected and all sockets are rebuilt per process. This is the default behavior, and is the behavior that existed before this commit.
  - Soft reload: nodes stored in the database are compared (based on URL) to nodes stored in memory. If the node exists in memory, then the existing node is reused (including all sockets and disabled state). If the node does not exist in memory, then it is added to the set and sockets are built per process. Remaining nodes are removed from the set and sockets are destroyed, as they have no associated database record.
2. Introduce version history for shared set list. This is needed after allowing soft reloads to prevent race conditions, as sockets are maintained per process while the set list is maintained in shared memory.
3. During a `rtpengine_reload`, the write lock is released before probing nodes.  Depending on the set size and node status, probing can be a timely task. By releasing the write lock, we free up the SIP procs to access the shared set list.


  Commit: 096bc7504d03587e1235b93a5b598c1f270b40ea
      https://github.com/OpenSIPS/opensips/commit/096bc7504d03587e1235b93a5b598c1f270b40ea
  Author: John Burke <john at voxtelesys.net>
  Date:   2022-04-18 (Mon, 18 Apr 2022)

  Changed paths:
    M modules/rtpengine/doc/rtpengine_admin.xml

  Log Message:
  -----------
  rtpengine: update `rtpengine_reload` docs


  Commit: 2a1b57d3746190a27922c0f6d68acb351aa09f78
      https://github.com/OpenSIPS/opensips/commit/2a1b57d3746190a27922c0f6d68acb351aa09f78
  Author: John Burke <john at voxtelesys.net>
  Date:   2022-04-18 (Mon, 18 Apr 2022)

  Changed paths:
    M modules/rtpengine/rtpengine.c

  Log Message:
  -----------
  rtpengine: bring master up-to-date with socket refactor


  Commit: cbf236073d4ba2df40f209ceb8e71c69e8b3eb80
      https://github.com/OpenSIPS/opensips/commit/cbf236073d4ba2df40f209ceb8e71c69e8b3eb80
  Author: Răzvan Crainea <razvan at opensips.org>
  Date:   2022-11-03 (Thu, 03 Nov 2022)

  Changed paths:
    M modules/rtpengine/doc/rtpengine_admin.xml
    M modules/rtpengine/rtpengine.c
    M modules/rtpengine/rtpengine.h

  Log Message:
  -----------
  Merge pull request #2612 from john08burke/rtpengine_socket_refactor

rtpengine: enhancement of set/node management


Compare: https://github.com/OpenSIPS/opensips/compare/e8939c685e65...cbf236073d4b



More information about the Devel mailing list