1. A method of distributing telecommunications functionality across multiple heterogeneous domains within a telecommunications system, comprising: determining policy-charging capabilities of a first telecommunications domain exposing a first public interface for communicating with the first telecommunications domain; determining policy-charging capabilities of a second telecommunications domain exposing a second public interface for communicating with the second telecommunications domain; determining policy-charging requirements required for a communication; partitioning the policy-charging requirements into a first group and a second group based on the determined policy-charging capabilities of the first and second telecommunications domains; sending a first message including the first group of policy-charging requirements to the first public interface; and sending a second message including the second group of policy-charging requirements to the second public interface.