原文地址:http://blog.greenl.ee/2012/02/22/conversation-objects-for/
为了让开发者尽情的扩展Lync的功能而无需了解SIP协议的本质,UCMA引入了很多抽象类,其中最常用的就是Conversation类。但是对于刚接触UCMA的开发者还有写迷惑,部分原因可能是当你要发送IM或者应答语音呼叫时它的目的不是显而易见的。
下面的代码对于UCMA开发者应该很熟悉:
Conversation conversation = new Conversation(_endpoint); AudioVideoCall avCall = new AudioVideoCall(conversation); avCall.BeginEstablish("sip:user@domain.local", null, OnCallEstablished, avCall); ...
想要创建一个Call对象却不提供Conversation对象是不可能的。所以问题就来了:Conversation对象到底是干嘛的?
答案和Lync的多方式通信有关。耶?你说的“多方式通信”是几个意思啊?当你和另一个哥们正在文字热聊却感觉不够过瘾,于是增加语音聊天到当前窗口中,这就是多方式通信。这样,当Lync给最初存在的会话,比如IM或者其他,发送一个新的 SIP INVITE信息时,里面会保护一个SIP头信息(称为Ms-Conversation-ID),类似于这样:
Ms-Conversation-ID: 2f1a99b1cf19081c425f09a8700679
如果你后来又增加了不同的方式,比如在语音 聊天中增加文件传输,Lync会在SIP INVITE消息中重新使用这个ID。这样这个ID就把不同的通信方式联系在了一起。
在UCMA中Conversation对象就是这样一个可以包含多方式通信的东西。换句话说,Conversation对象管理着一个或多个具有相同会话ID的Call 对象。
刚才的那个例子里,在创建了语音视频通信后如果还想增加文字方式,可以这样:
InstantMessagingCall imCall = new InstantMessagingCall(avCall.Conversation);
这会告诉UCMA你并没有新建一个独立的IM通信,相反你只是增加了IM方式。
希望我理清了Conversation对象的作用。
相关推荐
这篇PPT的学习教案主要围绕“Conversation”展开,讨论了社交艺术和对话能力的重要性。以下是相关知识点的详细说明: 1. **虚荣心与社交艺术**:课文指出,虚荣心虽然有时被视为负面的,但在社交艺术中,尤其是通过...
本资源摘要信息来自于《Business English Conversation商务英语对话.pdf》,其中包含了两则商务英语对话,分别是商务谈判和订单谈判。 商务谈判 在第一个对话中,Leslie 和 Paul 进行了一场商务谈判。Paul 想要...
Artificial Companion Conversation for Second Language,Chatbots Support Practice Using Conversation Analysis,2019
conversation. We propose a neural conversation model that aims to read and generate facial gestures alongside with text. This allows our model to adapt its response based on the “mood” of the ...
"Herb Sutter - Conversation经典对话系列"是一份珍贵的资源,汇集了他与同行、读者之间的精彩讨论,涵盖了C++语言的各个方面。这个系列共有59篇文章,每一篇都代表了一次深入的技术交流,最后一篇则作为作者的总结...
The conversation prism媒体格局图PPT.pptx,你可以自由地编辑格局图的每个元素,包括颜色和大小,同时,把文字内容修改为你自己的内容即可,方便使用,高效办公就这么简单。
1. English Conversation(英语对话)是指人们在日常生活中使用英语进行交流和沟通的过程。 描述中没有提供太多关于英语对话的信息,但我们可以从书的内容中了解到,英语对话包括了自我介绍、表达观点、描述人、...
总结来说,这篇文档探讨了社交艺术,尤其是对话中的关键在于理解虚荣心的作用、交谈能力的重要性以及成为一个出色交谈者的必备素质。它强调了人际交往在生活中的核心地位,并指出有效沟通对于个人影响力和幸福感的...
Conversation场景词汇.doc
google-actions-conversation-api 适用于Google Conversation API上的操作的Java POJO / DTO /域对象: :将此包含在您的项目中该工件在可用。 例子: <dependency> <groupId>com.macasaet.google.conversation</...
### 如何展开对话并交朋友——关键知识点概览 #### 标题与描述解析 - **标题**:“如何展开对话并交朋友”直接点明了本书的主题:教授读者如何有效地开始对话,并通过对话建立起友谊。 - **描述**:强调了本书将...
Conversation.txt
本书包括改善与企业合作的技巧。 目标是为您提供两项关键技能:发现业务需求和以一种使您能够收集准确而有用的信息的方式来管理对话。
Unit 7 Further listening Conversation.pk
藏经阁-Conversation as a platform 创新交互方式 Conversation as a platform 是指将对话作为一个平台,通过人工智能和机器学习技术来实现智能交互。该平台可以与各种设备和服务集成,提供了高度灵活和可扩展的...
"LCD TIME CONVERSATION"可能指的是关于LCD显示时间的讨论或对话,这可能涉及了LCD显示时间的原理、设计、编程或者故障排查等方面的知识。 在LCD显示器中,时间的显示通常依赖于内置的时钟芯片,例如RTC(Real-Time...
@ConversationScope 是 CDI 提供的一种作用域注解,它允许开发者在一次会话(conversation)期间保持对象的状态,这在处理多步骤的用户交互或者需要在多个请求之间保持数据的场景中非常有用。 VRaptor 4 是一个强大...
托福听力Conversation场景词汇集.doc
In received incoming call you may select handset or hand-free mode. And you may Change from Handset to hand free by pressing the HF key in conversation.
【标题】"PitchPerfect_ios_Conversation_converstaion_voice_" 暗示这是一款iOS平台上的应用程序,专门设计用于双人之间的语音对话记录。这款应用可能具有高质量的录音功能,以便用户可以方便地捕捉和保存他们的...