Description

In my use case exists

  1. pool of front-end proxies (all share some IPv4 address via AWS network load-balancer);
  2. pool of backend registrars.

I must:

  1. send keepalive messages to endpoints when used INVITE, REGISTRAR, SUBSCRIBE methods via all possible transports (UDP/TSP/TLS/WS/WSS/SCTP) (like nat_keepalive function of nat_traversal module). Internally store record for this SIP URI with flag ka_dynamic and Record-Route headers from 180, 183, 200 responses as Route;
  2. send keepalive messages on predefined SIP URI (like ka_add_destination of keepalive module). Internally store record for this SIP URI with flag ka_static and manually defined Route value;
  3. when keepalive for cases above is failed, then added record into arrays:
    a. ka_invite_failed;
    b. ka_registrar_failed;
    c. ka_supscribe_failed;
    d. ka_invite_succcess;
    e. ka_registrar_success;
    f. ka_supscribe_success;
  4. need to trigger even route function with initialized xavp params of
    a. of SIP URI endpoints;
    b. relevant array ID;
    c. dynamic or static flag of SIP URI record;
    d. Record-Route of SIP URI record;
    5.If we have arrays for multiple arrays, then the event router function called multiple times.
  5. the time period for event route calls must be configurable via module settings;
  6. when executed event route I want to have abbility
    a. send a new registration message to the registrar node using saved Route header when OPTION is successful for the statically defined SIP URI;
    a. send registration expiration message to the registrar node from received 200 response;
    b. send the clear subscription message to the node from received 200 response;

Actual observed behavior

In current implementation OPTIONS keepalive messages send from different modules

  1. usrloc;
  2. keepalive;
  3. nat_traversal;
  4. nathelper

All the above have limitations like:

  1. no TCP/TLS/WS/WSS transport support (nat_traversal, nathelper);
  2. no ability to define call event-route on failed (success) OPTIONS message (think all modules do not have such feature);
  3. no ability to check response code before enabling keepalive (nat_traversal);
  4. no ability to notify backend REGISTRAR/SUBSCRIPTION server (think all modules do not have such feature) about failed keepalive messages;

What is expected

From my of view required:

  1. some refactor of keepalive feature;
  2. merge code from different modules into one and make other modules dependent;
  3. implement the ability to notify backend REGISTRAR/SUBSCRIPTION servers of failed keepalive messages;
  4. implement the ability to emulate registration when OPTION message success to SIP URI. Required on SBC to emulate customer PBX registration.


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.