Trigger: get computer name or user name (Firebird 3.0)

I created a trigger to control qty_on_hand value:

SET TERM ^ ;
CREATE OR ALTER TRIGGER TR_PARTS_QOH_LOG FOR PARTS
ACTIVE AFTER UPDATE POSITION 0
AS
  DECLARE VARIABLE USER_IP CHAR(15);
BEGIN
 
  IF (NEW.QTY_ON_HAND <> OLD.QTY_ON_HAND) THEN
  BEGIN
    USER_IP = rdb$get_context('SYSTEM', 'CLIENT_ADDRESS');
 /* enter trigger code here */
    INSERT INTO PARTS_QOH_LOG (LOG_ID,
                          PART_NO,
                          USER_ID,
                          USER_IP,
                          TIME_STAMP,
                          OLD_QOH,
                          NEW_QOH)
    VALUES (CURRENT_TRANSACTION,
          OLD.PART_NO,
          CURRENT_USER,
          :USER_IP,
          CURRENT_TIMESTAMP,
          OLD.QTY_ON_HAND,
          NEW.QTY_ON_HAND);
    END
END^
SET TERM ; ^

My problem: current_user is always SYSDBA, USER_IP is always null.

How to get PC name instead of IP address?

I have current user logged in Delphi application. How to update current_user value?

Thanks, Fred