Интеграция C# BusyLight с 3CX

Мы используем 3CX на работе, и теперь у всех есть Kuando Busylights UC Omega. Для этого Busylight мы используем этот плагин, который мой менеджер по работе нашел на github. Поэтому у меня есть небольшая задача от нее адаптировать код для работы немного по-другому. Мне пришлось изменить мигающий красный свет при получении вызова на обычный красный свет (без мигания) в дополнение к удалению воспроизводимой мелодии при вызове. Теперь меня попросили попробовать внести еще одно изменение: когда кто-то не участвует в вызове, его Лампа должна становиться зеленой только в том случае, если статус профиля "доступен". Во всех остальных случаях лампа должна оставаться красной.

Теперь проблема, которую я имею, состоит в плохой Документации API 3CX, которую я нашел. Я знаю, что мне нужно работать со следующими методами: MyPhonePlugins.UserProfileStatus.ProfileId или же MyPhonePlugins.ProfileExtendedStatusChangedEventArgs.ProfileId чтобы получить правильное целое число соответствующего статуса профиля.

Я пытался изменить следующую функцию: public void CallHandlerOnOnCallStatusChanged(object sender, CallStatus callInfo) {} в файле Class1.cs. Я изменил содержание else if (callInfo.State == CallState.Ended) {} заявление от

else if (callInfo.State == CallState.Ended) {
    frm.busylight.Light(Busylight.BusylightColor.Green);
}

в

else if (callInfo.State == CallState.Ended) {
    int profileStatus = MyPhonePlugins.UserProfileStatus.ProfileId;
    if( profileStatus == 1) {
        frm.busylight.Light(Busylight.BusylightColor.Green);
    } else {
        frm.busylight.Light(Busylight.BusylightColor.Red);
    }
}

Когда я пытаюсь скомпилировать этот код, я получаю код ошибки CS0120 в Microsoft Visual Studio и следующее описание: Ссылка на объект требуется для нестатического поля, метода или свойства 'UserProfileStatus.ProfileId'

Тем не менее я никогда не писал код на C#, но я получил некоторые знания о Java и JavaScript. Что похоже на C#.

0 ответов

Другие вопросы по тегам