Check the 3CX Activity Log right after a failed call. That should show the DID number being sent. It may be, that the number in the rules. is not an exact match with that number.
If there is no Activity Log regarding the call, then it is not being sent to you. That being the case, I would contact your provider, and have them trace the destination of the call.
Spoke to provider.. under sip trunk Type of authentication i changed it to register/Account based was on ip based(document i had showed this) . Now incoming calls come through.
Thank you everyone for the help!