RTC에서 프로필 로밍에 문제가 있습니다. 그래서 그것을 더 잘 이해할 수있는 프로그램을 설명하겠습니다.RTC를 사용하여 서버의 프로필을 비활성화 하시겠습니까?
나는 Sip 프로토콜을 사용하여 SIP 프로토콜에 Soft-Phone 기반을 작성합니다. RTC 라이브러리를 사용하여 통신을 결정했습니다. 이 소프트 폰은 홀드, 리다이렉트, 응답, 끊어짐 등의 기능을 완벽하게 수행합니다. RTC에는 C# 및 Interop.RTCCORELib dll
을 사용합니다. 너무 많은 시간 (별표, 별표 창 및 Elestisk) 같은 PBX 서버의 모든 유형이 전화를 사용하여 나는 내 소프트 폰에서 신비한 문제에 직면했다.
문제점 : 운영자 로그인 및 전화를 사용하여 난 서버에이 정보를 등록 IRTCProfile2 Propety
를 생성한다. 운영자는 전화로 그의/그녀의 작품을 마친 후, 전화를 끊습니다. 이 순간 나는 서버에서 프로필을 비활성화하는 방법을 실행합니다. 프로필을 확인하고 프로필 상태가 "등록되지 않음"으로 변경되었습니다. 그러나 sip 사용자는 여전히 서버에 로그인합니다. 나는 msdn을 확인하고 이것을 article으로 찾는다.
이 기사에서는 서버에서 프로필을 비활성화하는 방법에 대해 설명합니다. 나는 이것을 똑같이한다. 여기에 내 코드가있다 :
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
메서드를 호출한다.
그래서 어떤 해결책이 있습니까? 어떤 팁? 내가 뭐 놓친 거 없니?
@Rev '_rtcProvisioning.DisableProfile (_rtcProfile);'에 대한 실제 호출이 완료 되었습니까? –
@Rev COM Interop를 수행 한 이후로 내 배열 매핑이 꺼져있어 오랜 시간이 걸렸지 만, Count [0]가 0보다 큰 경우 Profiles [0]가 아닌 [0]이 아닌 상태를 확인하기위한 올바른 요소입니다. –
첫 번째 예,이 줄 이후에 cuz'_rtcProfile state'가 변경됩니다. 둘째 : 그렇게 생각합니다. profiles [1]은 if 조건에서만 사용하고'_rtcProfile'은 서버에 등록 된 동일한 객체이며이 객체는 disable 메소드로갑니다. – Rev