In Voice over IP (VoIP) systems, calls are started, maintained, and ended using the Session Initiation Protocol (SIP). One of the SIP flaws is the lack of enough data to validate users, and its contents can be changed to fake the Caller Identification (CID). Fake CID can be used by hackers to trick receivers and obtain valuable materials. Existing solutions have a number of faults, including the use of more network resources, the use of insufficient data to identify fake CID, and high call setup delay for caller and callee during the validation process. This work presents an algorithm to enhance SIP protocol security to mitigate the flaws of the previous solutions that are used to address CID spoofing. By using the Media Access Control (MAC) address, the algorithm can validate the CID and warn the callee for the fake CID. The algorithm was developed and tested by using Mininet, Python based open source OpenFlow (POX) controller, SIPp simulator, Linphone softphone, and freePBX. All faked CID were detected and receivers were alerted on the linphone screen. Session setup delay obtained are within the 15.1 ms to 27.3 ms, which are within the acceptable Quality of Service (QoS) ranges.