The actual packet definitions for lamp on and off are in the AVMCI.AVD file for this integration. That file defines the send and receive strings that are valid, so every packet to/from the PBX will have an entry in that file.
Unity will not do anything with an on code received from the PBX because there's nothing in the incoming packet section of the AVMCI.AVD file that would match.
If the sub page in the SA and the physical state of the lamp don't match, it could be because you need to run optimizer on exchange, there could be other sources lighting the lamp that unity isn't aware of (like the packets you're seeing from the PBX), or you could have unity attempting to light lamps for virtuals (extensions that don't exist in the phone system) which could cause the PBX to ignore lamp codes from unity due to too many invalid lamp requests.
Scott Morgan
Cisco Systems TAC