WinRb / Viewpoint

A Ruby client access library for Microsoft Exchange Web Services (EWS)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Get phone numbers from a "general" contact

icalvete opened this issue · comments

Hi,

I have some code like this...

#!/usr/bin/env ruby

require 'viewpoint'
include Viewpoint::EWS

endpoint = 'https://whatever/ews/exchange.asmx'
user = 'myuser'
pass = 'mypass'

ews_client= Viewpoint::EWSClient.new endpoint, user, pass
contacts = ews_client.search_contacts 'israel calvete'

I can see this on my rails app log

DEBUG  Viewpoint::EWS::SOAP::ExchangeWebService : Sending SOAP Request:
----------------
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2010"/>
  </soap:Header>
  <soap:Body>
    <ResolveNames xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" ReturnFullContactData="true">
      <UnresolvedEntry>israel calvete</UnresolvedEntry>
    </ResolveNames>
  </soap:Body>
</soap:Envelope>
----------------

DEBUG  Viewpoint::EWS::Connection : Received SOAP Response:
----------------
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <h:ServerVersionInfo xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" MajorVersion="14" MinorVersion="3" MajorBuildNumber="158" MinorBuildNumber="1" Version="Exchange2010_SP2"/>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <m:ResolveNamesResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseMessages>
  <m:ResolveNamesResponseMessage ResponseClass="Success">
    <m:ResponseCode>NoError</m:ResponseCode>
    <m:ResolutionSet TotalItemsInView="1" IncludesLastItemInRange="true">
      <t:Resolution>
        <t:Mailbox>
          <t:Name>Israel Calvete</t:Name>
          <t:EmailAddress>icalvete@ikusi.com</t:EmailAddress>
          <t:RoutingType>SMTP</t:RoutingType>
          <t:MailboxType>Mailbox</t:MailboxType>
        </t:Mailbox>
        <t:Contact>
          <t:DisplayName>Israel Calvete</t:DisplayName>
          <t:Culture>en-US</t:Culture>
          <t:GivenName>Israel</t:GivenName>
          <t:EmailAddresses>
            <t:Entry Key="EmailAddress1">X400:C=US;A= ;P=IKUSI;O=IKUSIMAIL;S=Calvete;G=Israel;</t:Entry>
            <t:Entry Key="EmailAddress2">SMTP:icalvete@ikusi.com</t:Entry>
          </t:EmailAddresses>
          <t:PhoneNumbers>
            <t:Entry Key="BusinessPhone">943447172</t:Entry>
            <t:Entry Key="HomePhone">985478425</t:Entry>
            <t:Entry Key="MobilePhone">689542185</t:Entry>
            <t:Entry Key="Pager">68451</t:Entry>
          </t:PhoneNumbers>
          <t:ContactSource>ActiveDirectory</t:ContactSource>
          <t:Surname>Calvete</t:Surname>
        </t:Contact>
      </t:Resolution>
    </m:ResolutionSet>
  </m:ResolveNamesResponseMessage>
</m:ResponseMessages>
    </m:ResolveNamesResponse>
  </s:Body>
</s:Envelope>
----------------

As you can see, there are come "PhoneNumbers" within the response but since search_contacts return an array of Types::MailboxUser I don't have access to those phones.

contacts.first.methods told me that before.

There is any way to get those phones?

I read the line 168 from https://github.com/WinRb/Viewpoint/blob/master/lib/ews/types/item_field_uri_map.rb, but I can't figure out how to use it ( Even is possible to use it with my purpose)

I think is only usefull with a folder with contacts instead "general" contatcs.

Although is no my goal, I have created I a contact in this folder. Anyway, an Viewpoint::EWS::Types::Contact don't have access to those phones.

Any idea?

Thanks in advance.