zoukankan      html  css  js  c++  java
  • Lync2013的会话

    加入Lync2013会话的流程图如下所示:

    11111

    流程如下:

    1. 首先通过 LyncClient.GetClient() 来获取 lyncClient 的实例

    2. 给lyncClient.ConversationManager.ConversationAdded 注册委托事件,使lync应用程序发生 加入会话事件 时就会执行此委托事件。

    3.   用LyncClient.ConversationManager.AddConversation()创建一个会话。

    4. 在lyncClient.ConversationManager.ConversationAdded 的委托事件中,给e.Conversation.ParticipantAdded 【会话参与者加入事件】注册委托事件

    5. 在lyncClient.ConversationManager.ConversationAdded的委托事件中,给e.Conversation.StateChanged【会话状态改变事件】注册委托事件。

    6. 在lyncClient.ConversationManager.ConversationAdded的委托事件中,给在第三步已经创建好的一个会话实例用Conversation.AddParticipant(Contact)函数添加一个参与者。

    7. 在给会话添加参与者时,由于已经在第4步给 【会话参与者加入事件】 注册了委托事件,所以会触发e.Conversation.ParticipantAdded的委托事件。

    8. 在【会话参与者加入事件】的委托事件中,

    i. 检查创建的会话中 是否包括 ModalityTypes.InstantMessage【即时消息会话】 模式,用Conversation.Modalities.ContainsKey(ModalityTypes.InstantMessage)来判断。

    ii. 如果包括的话,给会话中的每个远程用户绑定【即时消息接收】委托事件,

    ((InstantMessageModality)e.Participant.Modalities[ModalityTypes.InstantMessage]).InstantMessageReceived += new EventHandler<MessageSentEventArgs>(InstantMessageReceived);

    iii. 并且给每个远程用户发送即时消息。先获取 InstantMessageModality 实例,此实例通过第3步创建的会话来获取,如下列代码来获取:

    InstantMessageModality imModality = (InstantMessageModality)Conversation.Modalities[ModalityTypes.InstantMessage];

    如果获取的InstantMessageModality实例中包含了发送即时消息的方法,即调用实例中的发送消息方法。代码如下所示:

    if (imModality.CanInvoke(ModalityAction.SendInstantMessage))
    
    {
    
    IAsyncResult asyncResult = imModality.BeginSendMessage(
    
    textMessage,
    
    SendMessageCallback,
    
    imModality);
    
    }
  • 相关阅读:
    PPT文档页数显示的增加和更新
    Android http超时选项的测试
    64位win7硬盘安装64位ubuntu 13.04
    为博客园添加目录的配置总结
    Android webview通过http get下载文件下载两次的问题及解决方法
    ubuntu12.04安装搜狗输入法和配置
    samsung Galaxy s2(GT i9100g )刷机升级至4.4小记
    uva 11584 Partitioning by Palindromes
    uva 10534 Wavio Sequence
    poj 1185 炮兵阵地
  • 原文地址:https://www.cnblogs.com/poissonnotes/p/3024380.html
Copyright © 2011-2022 走看看