Конфигурирование кэша сопоставителя Windows DNS

Существует специфическая проблема с аудио I / O и CallKit. Когда вы собираетесь получать входящий вызов, вы должны настроить аудио сеанс для вызовов VoIP, но не активировать его, просто установить категорию, режим и буфер.

Пример настройки аудиосеанса для CallKit входящего вызова:

func configureAudioSession() {
    let sharedSession = AVAudioSession.sharedInstance()
    do {
        try sharedSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
        try sharedSession.setMode(AVAudioSessionModeVoiceChat)
        try sharedSession.setPreferredIOBufferDuration(TimeInterval(0.005))
        try sharedSession.setPreferredSampleRate(44100.0)
    } catch {
        debugPrint("Failed to configure `AVAudioSession`")
    }
}

Затем, когда вы отвечаете на входящий вызов, CallKit активирует аудиосеанс для вас, и вы будете получить обратный вызов от CXProvider:

func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession) {
    // Start call audio I/O here
}

В этом обратном вызове делегата вы должны начать звук вызова, а не раньше. Если ввод / вывод аудио через WebRTC был запущен ранее, CallKit прервет его и звука не будет.

7
задан Jim Mischel 10 March 2009 в 15:29
поделиться

2 ответа

По умолчанию минимальный TTL для кэша составляет 1 день, я играл с ним, но по умолчанию я полагаю, что ключ реестра не там по умолчанию.

Это - ключ, который Вы ищете, по крайней мере, в XP:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNSCache\Parameters

Необходимо добавить DWORD MaxCacheTtl - Это изменит минимальный TTL для хранения в кэше сопоставителя.

Так как это принимает значение по умолчанию к 86 400 (значение находится в секундах, значение по умолчанию = 1 день), что-либо короче, чем это просто не кэшируется. При понижении его для высказывания 300, Вы видели бы тонны, более кэшируемый на клиенте.

0
ответ дан 7 December 2019 в 20:38
поделиться

Взлом, который можно использовать, должен добавить записи в файл hosts в Windows, который заставил бы его не сделать запросы DNS для всех записей в файле. Можно периодически затем запрашивать снова для проверки записей.

-1
ответ дан 7 December 2019 в 20:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: