<?php
$phone_ip = "IP_ADDRESS_OF_YEALINK_PHONE"; // Vervang dit met het IP-adres van je Yealink-telefoon
$api_url = "http://$phone_ip/YDM/"; // URL van de YDM API op de telefoon

// Maak een verzoek om de configuratiegegevens van de telefoon op te halen
$ch = curl_init($api_url . "config");

// Voer eventuele andere vereiste aanvullende headers of verificatie uit indien nodig

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

if ($response) {
    // Verkrijg de configuratiegegevens van de telefoon
    $config_data = json_decode($response, true);

    // Definieer de regex-patronen voor het identificeren van BLF-toetsen
    $pattern = '/^key\d+\.(type)=(blf)$/';

    foreach ($config_data as $key => $value) {
        if (preg_match($pattern, $key, $matches) && $matches[2] === 'blf') {
            // Vervang het toetstype "blf" door "speeddial"
            $new_key = preg_replace($pattern, '$1=speeddial', $key);
            $config_data[$new_key] = $value;
            unset($config_data[$key]);
        }
    }

    // Stuur de bijgewerkte configuratiegegevens terug naar de telefoon
    $ch = curl_init($api_url . "config");
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($config_data));

    // Voer eventuele andere vereiste aanvullende headers of verificatie uit indien nodig

    curl_exec($ch);
    curl_close($ch);

    echo "Toetsen bijgewerkt.";
} else {
    echo "Fout bij het ophalen van de configuratiegegevens.";
}
?>