:param external_port: (int) external port to listen on
        :param protocol:      (str) 'UDP' | 'TCP'
        :return: (int) <internal port>, (str) <lan ip>, (bool) <enabled>, (str) <description>, (int) <lease time>

async def get_specific_port_mapping(self, external_port: int, protocol: str) -> Dict:
        """
        :param external_port: (int) external port to listen on
        :param protocol:      (str) 'UDP' | 'TCP'
        :return: (int) <internal port>, (str) <lan ip>, (bool) <enabled>, (str) <description>, (int) <lease time>
        """

        try:
            result = await self.gateway.commands.GetSpecificPortMappingEntry(
                NewRemoteHost='', NewExternalPort=external_port, NewProtocol=protocol
            )
            if result and isinstance(self.gateway.commands.GetSpecificPortMappingEntry, SOAPCommand):
                return {k: v for k, v in zip(self.gateway.commands.GetSpecificPortMappingEntry.return_order, result)}
        except UPnPError:
            pass
        return {}