Skype for Business for Android 图标

Skype for Business 在线状态、邮箱与呼叫路由 API

Microsoft Corporation · 通讯协作

Skype for Business for Android 是微软面向企业的即时通讯与会议客户端,也是组织在 Skype for Business Server 或 Office 365 上运行的 Lync / SfB 体系的手机端。用工作 SIP 地址或 Microsoft 365 账号经 Azure AD 登录后,主界面提供即时消息、带彩色在线状态(空闲、忙碌、请勿打扰、离开、马上回来、下班)的联系人列表、可一键入会的日程会议、PSTN 拨号盘、呼叫转移与同时振铃、由 Exchange 支撑的联系人名片,以及可把留言打到座机播放的语音邮件收件箱。在混合或本地池中,IT 管理的员工仍把它当作桌面电话替代与门厅会议客户端,与继任者 Microsoft Teams 以及 Zoom 同处职场通话赛道。目前主要用户仍集中在美国、德国与印度的企业。

Exchange 人物名片为人员选择器能解析到的每位同事带上 personaId 与 imAddressSipUri,本人在线状态行则发布 publishableState 与 personalNote。邮箱日历条目补充 onlineMeetingExternalLink、myResponseType 与 pstnBestAvailableNumber;已安排的 UCWA 会议加上 automaticLeaderAssignment、phoneUserAdmission 与 lobbyBypassForPhoneUsers。呼叫路由记录暴露 routingMode、forwardCustomTarget、simuRingCustomTarget 与 activePeriod,团队呼叫成员再给出 isTeamCallEnabled 与 isDelegationEnabled。语音邮件条目带有 senderTelephoneNumber、attachmentDurationInSeconds 与 canPlayOnPhone。

前台控制台在转接 PSTN 之前拼接这些通讯录与在线状态字段,房间面板无需输入会议号即可消费入会链接,语音运维审计仍把个人 mobilePhone 打到工作时间之外的转发目标。租户管理员对 policiesHash、各条 settingId 与租户 statementUrl 做哈希,以捕捉 Android 策略的静默漂移。openData Studio 把这一接口面变成可调用的开放数据。

应用截图

  • Skype for Business for Android 应用截图 1
  • Skype for Business for Android 应用截图 2
  • Skype for Business for Android 应用截图 3
  • Skype for Business for Android 应用截图 4
  • Skype for Business for Android 应用截图 5
  • Skype for Business for Android 应用截图 6
  • Skype for Business for Android 应用截图 7
  • Skype for Business for Android 应用截图 8

API 端点一览

以下端点与请求/响应示例均依据应用界面推导重构,为示意说明,并非实际抓包。

  • 签发 Azure AD OAuth 访问令牌

    POST /v1/identity/sessions opendata

    在登录返回 authorityUrl、resourceUrl 与 userId 之后,签发应用按三种资源受众(SFB、EWS、GRAPH_API)拆分使用的 Azure AD 访问令牌。

    认证方式: 令牌端点本身无需鉴权。应用随后把返回的 access_token 以 Authorization: Bearer 附在 Graph、邮箱与 UCWA 调用上。区域 Azure AD 权威按登录租户选择。

    • token_type
    • access_token
    • refresh_token
    • expires_in
    • ext_expires_in
    • client_id
    • grant_type
    • scope
    • authorityUrl
    • resourceUrl
    • userId
    POST /v1/identity/sessions HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    
    client_id=<client-id>&grant_type=refresh_token&refresh_token=<refresh-token>&scope=uc.sessions mailbox.calendar directory.people
    {
      "token_type": "Bearer",
      "access_token": "<jwt>",
      "refresh_token": "<refresh-token>",
      "expires_in": 3599,
      "ext_expires_in": 3599
    }
  • 读取租户隐私声明 URL

    GET /v1/tenant/privacy opendata

    在 Graph 拿到 Azure AD 令牌后,加载当前登录租户的 privacyProfile.statementUrl,供应用内隐私页展示。

    认证方式: Authorization: Bearer <access_token>,受众为 Graph 资源。

    • value
    • privacyProfile
    • statementUrl
    • contactEmail
    GET /v1/tenant/privacy HTTP/1.1
    Authorization: Bearer <graph-access-token>
    Accept: application/json
    {
      "value": [
        {
          "privacyProfile": {
            "statementUrl": "https://privacy.example.com/statement",
            "contactEmail": "[email protected]"
          }
        }
      ]
    }
  • 拉取 Android 端 Office 云策略

    GET /v1/device/policies opendata

    返回租户下发到 Android 版 Skype for Business 的 Office 云策略包,含 SDK 存为 checkinIntervalMin 的 checkin-interval 响应头。

    认证方式: Authorization: Bearer <office-access-token>。同时发送 Device-Name 与 SDK-Version 请求头。

    • policiesHash
    • value
    • id
    • policyType
    • priority
    • policiesPayload
    • allowOverride
    • app
    • class
    • enabled
    • key
    • settingId
    • name
    • platform
    • type
    • value
    • valueName
    • version
    • minVersion
    • maxVersion
    • isVersionNeutral
    • docVersion
    • checkinIntervalMin
    GET /v1/device/policies HTTP/1.1
    Authorization: Bearer <office-access-token>
    Device-Name: Pixel 8
    SDK-Version: 1.0
    {
      "policiesHash": "a1b2c3d4",
      "value": [
        {
          "id": "policy-android-sfb",
          "policyType": 1,
          "priority": 100,
          "policiesPayload": [
            {
              "allowOverride": false,
              "app": "SkypeForBusiness",
              "class": "CloudPolicy",
              "enabled": true,
              "key": "DisableFileTransfer",
              "settingId": "sfb.filetransfer.disabled",
              "name": "Disable file transfer",
              "platform": "Android",
              "type": "bool",
              "value": "true",
              "valueName": "Enabled",
              "version": "1.0",
              "minVersion": "6.0",
              "maxVersion": "99.0",
              "isVersionNeutral": "false",
              "docVersion": "1"
            }
          ]
        }
      ]
    }
  • 读取 Office 漫游设置(SOAP)

    POST /v1/prefs/roaming:read opendata

    通过 SOAP 读取当前登录用户的 Office 漫游 SettingData(Id、Knowledge、Value),在 Microsoft 365 客户端之间同步。

    认证方式: 面向 Office 漫游资源的 Azure AD 令牌。SOAPAction 为 ReadSettings。区域漫游主机按登录租户选择。

    • Identity
    • Generation
    • Id
    • Knowledge
    • Context
    • Value
    • Settings
    • SettingData
    • SettingInfo
    • ReadSettingErrors
    • ErrorCode
    • Message
    POST /v1/prefs/roaming:read HTTP/1.1
    Content-Type: application/json
    Authorization: Bearer <office-access-token>
    
    {
      "Identity": "[email protected]",
      "Generation": 2,
      "Settings": [
        {"SettingInfo": {"Id": "1067", "Knowledge": "-1"}}
      ]
    }
    {
      "Generation": 2,
      "Settings": [
        {
          "SettingData": {
            "SettingInfo": {"Id": "1067", "Knowledge": "3", "Context": null},
            "Value": "<OfficeTheme>Colorful</OfficeTheme>"
          }
        }
      ],
      "ReadSettingErrors": null
    }
  • 写入 Office 漫游设置(SOAP)

    POST /v1/prefs/roaming:write opendata

    通过 SOAP 写入单条 Office 漫游 SettingData(Id、Knowledge、Value),成功时返回 WriteSettingResult.ResultCode 1001。

    认证方式: 面向 Office 漫游资源的 Azure AD 令牌。SOAPAction 为 WriteSettings。区域主机与读取调用相同。

    • Identity
    • Generation
    • Id
    • Knowledge
    • Value
    • Settings
    • SettingData
    • SettingInfo
    • Results
    • ResultCode
    • WriteSettingResult
    POST /v1/prefs/roaming:write HTTP/1.1
    Content-Type: application/json
    Authorization: Bearer <office-access-token>
    
    {
      "Identity": "[email protected]",
      "Generation": 2,
      "Settings": [
        {
          "SettingData": {
            "SettingInfo": {"Id": "1067", "Knowledge": "3"},
            "Value": "<OfficeTheme>Colorful</OfficeTheme>"
          }
        }
      ]
    }
    {
      "Generation": 2,
      "Results": [
        {
          "ResultCode": "1001",
          "SettingInfo": {"Id": "1067", "Knowledge": "4", "Context": null}
        }
      ]
    }
  • UCWA / Skype for Business 自动发现

    GET /v1/uc/discover?address={sipUri} opendata

    按 SIP URI 解析租户的 UCWA 应用入口(ucwa / ucwaUrl)以及内外部自动发现根,供原生栈打开 UC 会话。

    认证方式: 主机查找无需鉴权。后续 user 资源需要 SFB 受众的 Bearer 令牌。TLS 栈把预期的自动发现名视为可信的 UC 入口。

    • sipuri
    • sipdomain
    • ucwa
    • ucwaInternal
    • externalUcwa
    • intADRoot
    • extADRoot
    • clienttelemetryurl
    • ucwaUrl
    • ucwaCorrelationId
    • ucwaTimestamp
    GET /v1/uc/discover?address=sip:[email protected] HTTP/1.1
    Accept: application/json
    {
      "sipuri": "sip:[email protected]",
      "sipdomain": "example.com",
      "ucwa": "https://uc.example.com/v1/uc/sessions/",
      "ucwaInternal": "https://uc-internal.example.com/v1/uc/sessions/",
      "externalUcwa": "https://uc.example.com/v1/uc/sessions/",
      "intADRoot": "https://uc-internal.example.com/v1/uc/root",
      "extADRoot": "https://uc.example.com/v1/uc/root",
      "clienttelemetryurl": "https://telemetry.example.com/v1/collect",
      "ucwaUrl": "https://uc.example.com/v1/uc/sessions/",
      "ucwaCorrelationId": "6b2e1c90-9b11-4d2e-a7c4-0f8e6b1d2a33",
      "ucwaTimestamp": "2026-10-10T14:02:11Z"
    }
  • 创建 UCWA 应用会话

    POST /v1/uc/sessions opendata

    在 UCWA 池上注册此 Android 端点(userAgent、endpointId、culture),返回原生栈用于 me、people、communication 与 onlineMeetings 的 application _links。

    认证方式: Authorization: Bearer <access_token>,受众为 SFB 资源。主机来自自动发现返回的 ucwa URL(在线、中国与德国租户各自解析到对应池)。

    • userAgent
    • endpointId
    • culture
    • _links
    • self
    • me
    • people
    • communication
    • onlineMeetings
    POST /v1/uc/sessions HTTP/1.1
    Authorization: Bearer <sfb-access-token>
    Content-Type: application/json; charset=utf-8
    
    {
      "userAgent": "Skype for Business Android/6.39.0.23",
      "endpointId": "c0a1e2b3-4d5e-6789-abcd-ef0123456789",
      "culture": "en-US"
    }
    {
      "culture": "en-US",
      "userAgent": "Skype for Business Android/6.39.0.23",
      "endpointId": "c0a1e2b3-4d5e-6789-abcd-ef0123456789",
      "_links": {
        "self": {"href": "/v1/uc/sessions/112"},
        "me": {"href": "/v1/uc/sessions/112/me"},
        "people": {"href": "/v1/uc/sessions/112/people"},
        "communication": {"href": "/v1/uc/sessions/112/communication"},
        "onlineMeetings": {"href": "/v1/uc/sessions/112/meetings"}
      }
    }
  • 将端点登记为可用(makeMeAvailable)

    POST /v1/uc/sessions/{sessionId}/availability opendata

    在创建应用会话之后向 UCWA makeMeAvailable 资源发 POST,使该 Android 端点上线接收 IM 与电话音频;若提交 phoneNumber 失败则去掉手机号重试。

    认证方式: Authorization: Bearer <access_token>,受众为 SFB 资源。可用性 POST 在 sessions 资源返回 makeMeAvailableRelativeUrl 之后执行。

    • signInAs
    • supportedModalities
    • phoneNumber
    • makeMeAvailableRelativeUrl
    POST /v1/uc/sessions/112/availability HTTP/1.1
    Authorization: Bearer <sfb-access-token>
    Content-Type: application/json
    
    {
      "signInAs": "Online",
      "supportedModalities": ["Messaging", "PhoneAudio"],
      "phoneNumber": "+14255550123"
    }
    {
      "status": "success",
      "signInAs": "Online",
      "supportedModalities": ["Messaging", "PhoneAudio"],
      "phoneNumber": "+14255550123"
    }
  • 解析 Exchange EWS 地址(GetUserSettings)

    POST /v1/mailbox/locate opendata

    通过 SOAP 自动发现邮箱的 InternalEwsUrl / ExternalEwsUrl(以及 UM 语音邮件 URL),供后续通讯录搜索、人物名片、日历与 PlayOnPhone 调用。

    认证方式: SOAP GetUserSettings。后续邮箱调用使用 SFB/EWS Bearer 令牌或本地 Exchange 凭据。客户端还会用 SIP URI 探测根定位器。

    • Mailbox
    • InternalEwsUrl
    • ExternalEwsUrl
    • InternalUMUrl
    • ExternalUMUrl
    • useLiveId
    • useOAuth
    POST /v1/mailbox/locate HTTP/1.1
    Content-Type: application/json
    Authorization: Bearer <ews-access-token>
    
    {
      "Mailbox": "[email protected]",
      "RequestedSettings": ["InternalEwsUrl", "ExternalEwsUrl", "InternalUMUrl", "ExternalUMUrl"]
    }
    {
      "Mailbox": "[email protected]",
      "InternalEwsUrl": "https://mail.example.com/mailbox",
      "ExternalEwsUrl": "https://mail.example.com/mailbox",
      "InternalUMUrl": "https://mail.example.com/mailbox/voicemail",
      "ExternalUMUrl": "https://mail.example.com/mailbox/voicemail",
      "useLiveId": false,
      "useOAuth": true
    }
  • 搜索 Exchange 通讯录(FindPeople)

    POST /v1/directory/people:search osint

    把人员选择器的关键字搜索发到 Exchange FindPeople,返回用于联系人名片的人员行。

    认证方式: Authorization: Bearer <access_token>,受众为 EWS 资源(Office 365);本地部署则使用登录横幅收集的 Exchange 凭据。SOAP 操作为 FindPeople。

    • personaId
    • displayName
    • email
    • title
    • imAddressSipUri
    • changeKey
    • phoneNumberTypes
    • phoneNumberValues
    • QueryString
    POST /v1/directory/people:search HTTP/1.1
    Authorization: Bearer <ews-access-token>
    Content-Type: application/json
    
    {
      "QueryString": "alex",
      "MaxEntriesReturned": 25,
      "Offset": 0
    }
    {
      "people": [
        {
          "personaId": "AAMkAGI2...",
          "displayName": "Alex Rivera",
          "email": "[email protected]",
          "title": "Product Manager",
          "imAddressSipUri": "sip:[email protected]",
          "changeKey": "EQAAABYAAA...",
          "phoneNumberTypes": ["Business", "Mobile"],
          "phoneNumberValues": ["+14255550100", "+14255550123"]
        }
      ]
    }
  • 加载 Exchange 人物名片(GetPersona)

    POST /v1/directory/people/{personaId} osint

    用户打开联系人名片时,用 FindPeople 返回的 personaId 灌入单条 Exchange persona。

    认证方式: Authorization: Bearer <access_token>,受众为 EWS 资源;或本地 Exchange 凭据。SOAP 操作为 GetPersona。

    • personaId
    • displayName
    • email
    • title
    • imAddressSipUri
    • changeKey
    • phoneNumberTypes
    • phoneNumberValues
    POST /v1/directory/people/AAMkAGI2 HTTP/1.1
    Authorization: Bearer <ews-access-token>
    Content-Type: application/json
    
    {
      "personaId": "AAMkAGI2..."
    }
    {
      "personaId": "AAMkAGI2...",
      "displayName": "Alex Rivera",
      "email": "[email protected]",
      "title": "Product Manager",
      "imAddressSipUri": "sip:[email protected]",
      "changeKey": "EQAAABYAAA...",
      "phoneNumberTypes": ["Business"],
      "phoneNumberValues": ["+14255550100"]
    }
  • 列出邮箱日历会议(FindItem)

    POST /v1/mailbox/calendar:list opendata

    分页读取会议页签渲染的当前邮箱日历,含日历条目属性中解析出的 Skype 入会链接与 PSTN 拨入号。

    认证方式: 邮箱登录之后,使用受众为 EWS 资源的 Authorization: Bearer <access_token>。SOAP 操作为针对日历文件夹的 FindItem。

    • subject
    • start
    • end
    • location
    • organizer
    • organizerEmail
    • onlineMeetingExternalLink
    • onlineMeetingInternalLink
    • onlineMeetingConfLink
    • requiredAttendees
    • optionalAttendees
    • myResponseType
    • isAllDayEvent
    • pstnBestAvailableNumber
    • pstnPostDialString
    POST /v1/mailbox/calendar:list HTTP/1.1
    Authorization: Bearer <ews-access-token>
    Content-Type: application/json
    
    {
      "StartDate": "2026-10-10T00:00:00Z",
      "EndDate": "2026-10-17T00:00:00Z"
    }
    {
      "items": [
        {
          "subject": "Platform standup",
          "start": "2026-10-10T15:00:00Z",
          "end": "2026-10-10T15:30:00Z",
          "location": "Conf Room 4",
          "organizer": "Alex Rivera",
          "organizerEmail": "[email protected]",
          "onlineMeetingExternalLink": "https://meet.example.com/example/alex.rivera/ABC123",
          "onlineMeetingInternalLink": "sip:[email protected];gruu;opaque=app:conf:focus:id:ABC123",
          "onlineMeetingConfLink": "conf:sip:[email protected];gruu;opaque=app:conf:focus:id:ABC123",
          "requiredAttendees": ["[email protected]"],
          "optionalAttendees": [],
          "myResponseType": "Accept",
          "isAllDayEvent": false,
          "pstnBestAvailableNumber": "+14255551999",
          "pstnPostDialString": ",,123456#"
        }
      ]
    }
  • 发布自己的在线状态与个人备注

    POST /v1/uc/me/presence osint

    发布当前用户的 PublishableState(Free、Busy、BeRightBack、DoNotDisturb、Away、Offwork、Reset)与 personalNote,同事端显示为在线状态圆点。

    认证方式: Authorization: Bearer <access_token>,受众为 SFB 资源,范围绑定自动发现得到的 ucwaUrl。UC 会话持有该 application。

    • availability
    • publishableState
    • personalNote
    • activity
    • deviceType
    • ucSipUri
    • displayName
    • title
    • company
    • office
    • location
    • noteType
    • lastActivityTime
    POST /v1/uc/me/presence HTTP/1.1
    Authorization: Bearer <sfb-access-token>
    Content-Type: application/json
    
    {
      "availability": "Busy",
      "publishableState": "PublishableStateBusy",
      "personalNote": "In a customer call"
    }
    {
      "availability": "Busy",
      "publishableState": "PublishableStateBusy",
      "personalNote": "In a customer call",
      "activity": "in-a-call",
      "deviceType": "Mobile",
      "ucSipUri": "sip:[email protected]",
      "displayName": "Alex Rivera",
      "title": "Product Manager",
      "company": "Example Corp",
      "office": "Redmond 18",
      "location": "Building 18",
      "noteType": "Personal",
      "lastActivityTime": 1760104800
    }
  • 列出 UCWA 团队成员与待处理联系人

    GET /v1/uc/me/team osint

    读取当前用户的 UCWA 团队呼叫成员与待处理联系人邀请,供同时振铃到团队以及人员选择器使用。

    认证方式: Authorization: Bearer <access_token>,受众为 SFB 资源。待处理邀请走同级待处理联系人资源。

    • teamMembers
    • pendingContacts
    • ucSipUri
    • displayName
    • availability
    • deviceType
    • isTeamCallEnabled
    • isDelegationEnabled
    GET /v1/uc/me/team HTTP/1.1
    Authorization: Bearer <sfb-access-token>
    Accept: application/json
    {
      "teamMembers": [
        {
          "ucSipUri": "sip:[email protected]",
          "displayName": "Sam Lee",
          "availability": "Available",
          "deviceType": "Desktop"
        }
      ],
      "pendingContacts": [
        {
          "ucSipUri": "sip:[email protected]",
          "displayName": "Jordan Patel"
        }
      ],
      "isTeamCallEnabled": true,
      "isDelegationEnabled": false
    }
  • 读取并启用呼叫路由配置

    GET /v1/uc/me/routing opendata

    读取当前用户的呼叫转移 / 同时振铃策略(委托、语音信箱、自定义 SIP 目标、团队振铃),呼叫转移设置页写入这些字段。

    认证方式: Authorization: Bearer <access_token>,受众为 SFB 资源,绑定 ucwaUrl 上的 application。

    • routingMode
    • forwardCustomTarget
    • simuRingCustomTarget
    • activePeriod
    • lineUri
    • callBackNumber
    • workPhone
    • mobilePhone
    • homePhone
    • otherPhone
    • isCallForwardingAllowed
    • isCallForwardAllowedToVoicemail
    • isCallForwardAllowedToDelegates
    • isCallForwardAllowedToCustomTarget
    • isSimultaneousRingAllowed
    • isSimultaneousRingAllowedToTeam
    • isSimultaneousRingAllowedToDelegates
    • isDelegationEnabled
    • isTeamCallEnabled
    GET /v1/uc/me/routing HTTP/1.1
    Authorization: Bearer <sfb-access-token>
    Accept: application/json
    {
      "routingMode": "FwdMode_CustomTarget",
      "forwardCustomTarget": "sip:[email protected]",
      "simuRingCustomTarget": null,
      "activePeriod": "ActivePeriod_Workinghours",
      "lineUri": "tel:+14255550100",
      "callBackNumber": "+14255550123",
      "workPhone": "+14255550100",
      "mobilePhone": "+14255550123",
      "homePhone": "",
      "otherPhone": "",
      "isCallForwardingAllowed": true,
      "isCallForwardAllowedToVoicemail": true,
      "isCallForwardAllowedToDelegates": true,
      "isCallForwardAllowedToCustomTarget": true,
      "isSimultaneousRingAllowed": true,
      "isSimultaneousRingAllowedToTeam": false,
      "isSimultaneousRingAllowedToDelegates": true,
      "isDelegationEnabled": true,
      "isTeamCallEnabled": false
    }
  • 列出我的在线会议

    GET /v1/uc/meetings opendata

    列出用户已安排的 UCWA 在线会议(myOnlineMeetings / myAssignedOnlineMeeting),入会按钮与大厅控制依赖这些记录。

    认证方式: Authorization: Bearer <access_token>,受众为 SFB 资源。会议管理器上的 rel 名为 myOnlineMeetings(及 myAssignedOnlineMeeting)。

    • onlineMeetingRel
    • subject
    • onlineMeetingExternalLink
    • onlineMeetingInternalLink
    • organizer
    • automaticLeaderAssignment
    • phoneUserAdmission
    • lobbyBypassForPhoneUsers
    • entryExitAnnouncement
    GET /v1/uc/meetings HTTP/1.1
    Authorization: Bearer <sfb-access-token>
    Accept: application/json
    {
      "meetings": [
        {
          "onlineMeetingRel": "OnlineMeetingRelmyOnlineMeetings",
          "subject": "Weekly ops",
          "onlineMeetingExternalLink": "https://meet.example.com/example/alex.rivera/WKLY01",
          "onlineMeetingInternalLink": "sip:[email protected];gruu;opaque=app:conf:focus:id:WKLY01",
          "organizer": "Alex Rivera",
          "automaticLeaderAssignment": "SameEnterprise",
          "phoneUserAdmission": "Enabled",
          "lobbyBypassForPhoneUsers": "Disabled",
          "entryExitAnnouncement": "Enabled"
        }
      ]
    }
  • 列出 Exchange 语音邮件

    POST /v1/mailbox/voicemail:list opendata

    分页读取语音邮件页渲染的当前邮箱 VoiceMail 文件夹,含主叫 PSTN/SIP 身份以及应用内播放器用的附件时长。

    认证方式: Authorization: Bearer <access_token>,受众为 EWS 资源;或本地 Exchange 凭据。SOAP 为针对 VoiceMail 特殊文件夹的 FindItem,随后 GetItem / GetAttachment 取音频。

    • key
    • subject
    • normalizedSubject
    • ucSubject
    • dateTimeReceived
    • senderTelephoneNumber
    • pstnCallbackTelephoneNumber
    • sipUri
    • attachmentDurationInSeconds
    • messageIsRead
    • itemImportanceLevel
    • itemSensitivityLevel
    • body
    POST /v1/mailbox/voicemail:list HTTP/1.1
    Authorization: Bearer <ews-access-token>
    Content-Type: application/json
    
    {
      "folder": "voicemail",
      "shape": "IdOnly"
    }
    {
      "items": [
        {
          "key": "AAMkAGI2...",
          "subject": "Voice Mail from +14255550123",
          "normalizedSubject": "Voice Mail from +14255550123",
          "ucSubject": "Missed call",
          "dateTimeReceived": "2026-10-10T13:41:02Z",
          "senderTelephoneNumber": "+14255550123",
          "pstnCallbackTelephoneNumber": "+14255550123",
          "sipUri": "sip:[email protected]",
          "attachmentDurationInSeconds": 18,
          "messageIsRead": false,
          "itemImportanceLevel": "Normal",
          "itemSensitivityLevel": "Normal",
          "body": "You have a new voice mail."
        }
      ]
    }
  • 在电话上播放语音邮件(PlayOnPhone)

    POST /v1/mailbox/voicemail/{itemKey}/play opendata

    让 Exchange 拨打 DialString 并播放所选语音邮件(PlayOnPhone),语音邮件行在 canPlayOnPhone 为真时提供该操作。

    认证方式: Authorization: Bearer <access_token>,受众为 EWS 资源。SOAP 操作为 PlayOnPhone;取消走同一邮箱条目上的 cancelPlayOnPhone。

    • playOnPhoneId
    • itemKey
    • DialString
    • canPlayOnPhone
    • isPlayOnPhonePending
    POST /v1/mailbox/voicemail/AAMkAGI2/play HTTP/1.1
    Authorization: Bearer <ews-access-token>
    Content-Type: application/json
    
    {
      "itemKey": "AAMkAGI2...",
      "DialString": "+14255550100"
    }
    {
      "playOnPhoneId": "NwAAAA==",
      "itemKey": "AAMkAGI2...",
      "dialString": "+14255550100",
      "canPlayOnPhone": true,
      "isPlayOnPhonePending": true
    }
  • 提交 Send-a-Smile / BRB 诊断报告

    POST /v1/diagnostics/reports opendata

    为用户提交的 Send-a-Smile / BRB 报告打开诊断容器,返回 ContainerID 与客户端用来上传日志的 SharedAccessSignature。

    认证方式: JSON 正文携带 ClientID=sfb_android 与 SkypeAuthToken。后续日志上传使用与 ContainerID 一起返回的 SharedAccessSignature;之后的释放调用释放该 blob。

    • ReportTitle
    • ReportDescription
    • CategoryName
    • ClientID
    • ClientVersion
    • MSAlias
    • UploadID
    • SkypeAuthToken
    • SystemInfo
    • ContainerID
    • SharedAccessSignature
    POST /v1/diagnostics/reports HTTP/1.1
    Content-Type: application/json
    
    {
      "ReportTitle": "Call drop after hold",
      "ReportDescription": "Audio modality dropped when resuming from hold",
      "CategoryName": "Calling",
      "ClientID": "sfb_android",
      "ClientVersion": "6.39.0.23",
      "MSAlias": "[email protected]",
      "UploadID": "c0a1e2b3-4d5e-6789-abcd-ef0123456789",
      "SkypeAuthToken": "<brb-token>",
      "SystemInfo": "Android 14; Pixel 8"
    }
    {
      "ContainerID": "brb-6b2e1c90",
      "SharedAccessSignature": "https://storage.example.com/brb-6b2e1c90?<sas>"
    }

数据类别

  • OAuth 令牌
  • 租户隐私资料
  • Office 云策略
  • 漫游设置
  • UCWA 自动发现
  • 通讯录人员
  • Exchange 人物
  • 日历会议
  • 在线状态
  • 呼叫路由
  • 在线会议
  • 诊断报告
  • 语音邮件
  • UCWA 应用会话
  • EWS 自动发现
  • 团队成员
  • 端点可用性

数据使用场景与案例

  • 实时通讯录与在线状态叠加

    内部人员目录把 FindPeople 的 personaId、displayName、imAddressSipUri 与 phoneNumberValues 和本人的 PublishableState、personalNote 拼接起来,前台控制台在转接 PSTN 电话前就能看到谁是 Free、Busy 或 DoNotDisturb。

  • 会议室一键入会面板

    房间面板读取邮箱 FindItem 中的 onlineMeetingExternalLink、start/end 与 pstnBestAvailableNumber,再对照 myOnlineMeetings 的 automaticLeaderAssignment,走廊屏无需输入会议号即可一键加入下一场 Skype 会议。

  • 下班后呼叫路由审计

    语音运维夜间拉取 routingMode、forwardCustomTarget、simuRingCustomTarget 与 activePeriod,标出仍在 ActivePeriod_Workinghours 之外转发到个人 mobilePhone 的邮箱。

  • 租户策略漂移核对

    合规机器人对 OCPS 的 policiesPayload(settingId、enabled、value)以及 Graph 的 privacyProfile.statementUrl 做哈希,在 Skype for Business Android 策略悄悄关掉文件传输或改写隐私文案时告警。

常见问题

Skype for Business for Android 如何鉴权?

工作账号登录后,Azure AD 按三种资源受众签发访问令牌:SFB 用于 UCWA 会话,EWS 用于邮箱,GRAPH_API 用于租户隐私资料。本地池仍接受邮箱登录横幅上收集的 Exchange 凭据。

能拿到哪些通讯录、日历与语音邮件字段?

通讯录搜索与人物名片返回 personaId、displayName、email、title、imAddressSipUri 与电话。日历行包含 subject、start、end、organizerEmail、onlineMeetingExternalLink 以及 PSTN 拨入(pstnBestAvailableNumber、pstnPostDialString)。语音邮件条目另有 senderTelephoneNumber、attachmentDurationInSeconds 与 canPlayOnPhone。

能否读取在线状态与呼叫转移?

可以。本人在线状态资源发布 PublishableState(Free、Busy、BeRightBack、DoNotDisturb、Away、Offwork)以及 personalNote。呼叫路由设置返回 routingMode、forwardCustomTarget、simuRingCustomTarget、activePeriod、lineUri 以及 isCallForwardAllowed* / isSimultaneousRingAllowed* 标志。团队呼叫成员另有 isTeamCallEnabled 与 isDelegationEnabled。

Office 云策略从哪里来?

Android 客户端用 Bearer 令牌拉取云策略包,解析 policiesHash 以及每条 settingId、enabled、value。漫游 SettingData(Id、Knowledge、Value)则经 SOAP 从 Office 漫游服务读取。

与 Skype for Business for Android 相似的应用

  • Microsoft Teams — Microsoft Teams 是微软 Microsoft 365 套件中的协作应用,提供工作区聊天、视频会议和文件存储,并作为 Skype for Business 的继任客户端取而代之。
  • Zoom Workplace — Zoom Workplace 是 Zoom Communications 的在线会议视频通话应用,免费套餐最多支持 100 人同时入会,单场限时 40 分钟。
  • Slack — Slack 是 Slack Technologies 的云端团队沟通平台,2021 年起归属 Salesforce,主要以面向企业的即时消息服务提供。
  • Cisco Webex — 思科旗下的 Webex 提供网络会议、视频会议与统一通信应用,产品包括 Webex Meetings、Webex Messaging 和 Webex Calling。
  • Google Meet — Google Meet 是谷歌的视频通信服务,与 Google Chat 一道取代了 Google Hangouts。
  • Google Chat — Google Chat 是谷歌 Workspace 的消息服务,支持私信、群聊以及可聊天、共享文件和分配任务的空间。
  • GoTo Meeting — GoTo Meeting 是 GoTo 面向商务的网络会议工具,可主持或加入线上会议、共享屏幕,并通过音视频沟通。

相关主题

  • Skype for Business API
  • Skype for Business Android 端点
  • UCWA 自动发现 ucwaUrl
  • Exchange FindPeople personaId
  • EWS 日历 onlineMeetingExternalLink
  • Skype for Business 在线状态 PublishableState
  • 呼叫转移 routingMode
  • Office 云策略 policiesHash
  • Skype for Business 语音邮件 canPlayOnPhone

需要集成这个 App 的数据 API?

我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。

  • 每个项目均签 NDA 与 SOW
  • 3–7 天交付
  • 验收通过后才付款
  • 仅在授权范围内作业

获取报价