A non-transitory computer readable medium having a computer program stored thereon, the computer program defining a method configured to facilitate establishment of a real-time communication (RTC) connection between an RTC client and an RTC server in which a application layer gateway (ALG) firewall has no knowledge of a proprietary RTC signaling protocol usable by the RTC client and the RTC server to exchange proprietary RTC signaling to negotiate which ports of the ALG firewall are needed for data packets to be exchanged via the RTC communication connection, the proprietary RTC signaling having at least one standardized message element, wherein exchanging of signaling protocol variations takes place as part of an upgrade procedure from a Hypertext Transfer Protocol (HTTP) connection to a WebSockets connection, the method comprising:
- the ALG firewall dynamically opening and closing the ports for the RTC communication connection in response to detection of the ports of the ALG firewall that were negotiated as required for the data packets to be exchanged between the RTC server and the RTC client via the at least one standardized message element of the proprietary RTC signaling protocol utilized by the RTC client and the RTC server during the negotiating.