public function connect_to_all_dcs_async(): \Generator
    {
        $this->datacenter->__construct($this, $this->settings['connection'], $this->settings['connection_settings']);
        $dcs = [];
        foreach ($this->datacenter->get_dcs() as $new_dc) {
            $dcs[] = $this->datacenter->dc_connect_async($new_dc);
        }
        yield $dcs;
        yield $this->init_authorization_async();
        $dcs = [];
        foreach ($this->datacenter->get_dcs(false) as $new_dc) {
            $dcs[] = $this->datacenter->dc_connect_async($new_dc);
        }
        yield $dcs;
        yield $this->init_authorization_async();
        if (!$this->phoneConfigWatcherId) {
            $this->phoneConfigWatcherId = Loop::repeat(24 * 3600 * 1000, [$this, 'get_phone_config_async']);
        }

        yield $this->get_phone_config_async();
        $this->logger->logger("Started phone config fetcher");
    }