A method for processing a signalling message in a Session Border Controller, the method comprising the steps of: receiving a definition of a first transcoding policy and receiving a definition of a second transcoding policy, wherein each of the policy definitions is defined by an administrator and specifies at least one rule for processing a codec list contained with the signaling message; receiving as said signalling message a first call offer, wherein the first call offer indicates an originator endpoint and an answerer endpoint determining whether the first transcoding policy is associated with the originator endpoint; responsive to the first transcoding policy being associated with the originator endpoint, applying the first transcoding policy to a first offer codec set in the first call offer to produce a second call offer containing a second codec set; the method further characterized by comprising the steps of: determining whether the second transcoding policy is associated with the answerer endpoint; responsive to the second transcoding policy being associated with the answerer endpoint, applying the second transcoding policy to the second codec set to produce a third call offer 9430) containing a third codec set; sending the third call offer to the answerer endpoint; receiving a first answer in response to the third call offer; comparing a first answerer codec set in the received first answer and the first offer codec set in the first call offer; and determining whether or not to perform transcoding based on a result of the comparison. receiving a definition of a first transcoding policy and receiving a definition of a second transcoding policy, wherein each of the policy definitions is defined by an administrator and specifies at least one rule for processing a codec list contained with the signaling message; receiving as said signalling message a first call offer, wherein the first call offer indicates an originator endpoint and an answerer endpoint determining whether the first transcoding policy is associated with the originator endpoint; responsive to the first transcoding policy being associated with the originator endpoint, applying the first transcoding policy to a first offer codec set in the first call offer to produce a second call offer containing a second codec set; the method further characterized by comprising the steps of: determining whether the second transcoding policy is associated with the answerer endpoint; responsive to the second transcoding policy being associated with the answerer endpoint, applying the second transcoding policy to the second codec set to produce a third call offer 9430) containing a third codec set; sending the third call offer to the answerer endpoint; receiving a first answer in response to the third call offer; comparing a first answerer codec set in the received first answer and the first offer codec set in the first call offer; and determining whether or not to perform transcoding based on a result of the comparison. determining whether the second transcoding policy is associated with the answerer endpoint; responsive to the second transcoding policy being associated with the answerer endpoint, applying the second transcoding policy to the second codec set to produce a third call offer 9430) containing a third codec set; sending the third call offer to the answerer endpoint; receiving a first answer in response to the third call offer; comparing a first answerer codec set in the received first answer and the first offer codec set in the first call offer; and determining whether or not to perform transcoding based on a result of the comparison.