2017-11-21 2 views
0

Lync 2013을 사용하고 websocket을 통해 서버와 통신하고 알림을받는 내 응용 프로그램입니다. 이러한 알림은 Json 형식이므로 문자열을 추출하도록 변환합니다. 문자열은 전화 번호이며 내 연락처 중 하나가 자신의 이름을 표시하기 위해 동일한 전화 번호인지 테스트하려고합니다.ContactEndpoint 전화, Lync 2013

내 If는 항상 "거짓"입니다. >를 사용하고 DisplayName의 값 (문자열로 전화 번호)을 추출하려고했지만 어떻게해야할지 몰랐습니다. 이것은 내 코드입니다.

foreach (var group in client.ContactManager.Groups) 
       { 
        foreach (Contact contact in group) 
        { 

         List<object> endpoints = (List<object>)contact.GetContactInformation(ContactInformationType.ContactEndpoints); 
         List<object> phoneNumbers = endpoints.Cast<object>().Where<object>(N => ((ContactEndpoint)N).Type == ContactEndpointType.HomePhone || 
                   ((ContactEndpoint)N).Type == ContactEndpointType.MobilePhone || 
                   ((ContactEndpoint)N).Type == ContactEndpointType.WorkPhone || 
                   ((ContactEndpoint)N).Type == ContactEndpointType.OtherPhone).ToList(); 

         if (phoneNumbers.ToList().Contains(call.caller)) 
         { 
          MessageBox.Show(contact.GetContactInformation(ContactInformationType.DisplayName).ToString()); 
         } 
        } 
       } 
+0

나는 해결책을 찾았다 고 생각합니다. foreach는 (PHONENUMBERS에 var에 PHONENUMBER) \t \t \t \t \t \t \t { \t \t \t \t \t \t \t \t 경우 (== "내 전화 번호를 수신"((ContactEndpoint) PHONENUMBER) .DisplayName.ToString()) \t \t \t \t \t \t \t \t { \t \t \t \t \t \t \t \t \t MessageBox.Show (Contact.GetContactInformation (ContactInformationType.DisplayName) .ToString()); \t \t \t \t \t \t \t \t} \t \t \t \t \t \t \t은} –

답변

0

당신은 전화의 URL로 포맷 number에 의해 직접 접촉의 연락처 관리자에게 문의 할 수 있습니다. 예 : "el : 12345678"

예 :

var contact = client.ContactManager.GetContactByUri("tel:" + call.caller); 
+0

오, 아주 쉽게 그리고 그것을 잘 작동합니다. 추신 : 나는 "GetContactByUri"라는 방법이 전화를 통해서가 아니라 그 uri (주소)에 의해서만 접촉을 검색하는 데 사용된다고 생각했습니다. 고마워요 –

+0

전화 번호 형식에 관한 다른 질문이 있습니다. 내 경우 call.caller는 항상 '33123456789'형식이지만 숫자의 연락처가 '+33123456789'또는 '0033123456789'형식 인 경우 내 연락처를 찾을 수 없습니다. 나는 첫 번째 형식의 숫자를 가져 와서이 "{"caller ":"33172387760 ","callers ": ["+ 33123456789 ","0033123456789 ",]}와 같은 Json을 반환하는 DLL을 가지고 있지만 GetContactByUri는 논의. 내가 어떻게 할 수 있니? –

+0

Skype의 기본 번호 형식은 E164이므로 실제로는 E164 번호가 포함 된 tel를 만드는 것이 좋습니다. "tel : +123456789". 다른 어떤 "넘버"도 통과시키지 않으면 어쨌든 시스템에서 다이얼 플랜을 올바르게 설정했다고 가정하고 E164로 변환하려고합니다. 그래서 엄지 손가락의 규칙은 E164 번호가 있으면 사용하고, 그렇지 않으면 다른 번호를 사용하십시오. –

관련 문제