У меня проблема с профилем роуминга в RTC.поэтому позвольте мне описать мою программу, чтобы лучше ее понять.
Я пишу базу Soft-Phone по протоколу sip, для использования Sip я решаю использовать библиотеку RTC для связи.Этот Soft-Phone прекрасно выполняет такие функции, как удержание, перенаправление, ответ, зависание и т. Д. Я использую C # и Interop.RTCCORELib dll
для RTC.после слишком долгого времени использования этого телефона с любым типом АТС-сервера, таким как (звездочка, звездочка и Elestisk), я столкнулся с загадочной проблемой в моем программном телефоне.
Проблема: при входе оператора и использовании телефона я создаю IRTCProfile2 Propety
для регистрации этого профиля на сервере.после того, как оператор перестал работать с телефоном, оператор закрыл телефон.В данный момент я запускаю метод отключения профиля на сервере.Я проверил профиль, и состояние профиля изменилось на «Незарегистрированный». Но пользователь sip все еще входит в систему на сервере .Я проверяю msdn и нахожу эту статью .
В этой статье описывается, как отключить профиль на сервере.и я делаю то же самое.Вот мой код:
public void unregisterProfile()
{
if (_rtcProvisioning.Profiles.Count > 0 &&
((IRTCProfile)_rtcProvisioning.Profiles[1]).State == RTC_REGISTRATION_STATE.RTCRS_REGISTERED)
{
_rtcProvisioning.DisableProfile(_rtcProfile);
_rtcPresence.DisablePresence();
_rtcClient.PrepareForShutdown();
Thread.Sleep(2000);
_rtcClient.Shutdown();
}
}
Также в этой статье говорится о вызове IRTCClientPresence2.DisablePresence
метода.
Итак, какое решение?какие-нибудь советы?я что-то пропустил?