Интеграция 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#.