`
somefuture
  • 浏览: 1090027 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

UCMA4中连接的建立

 
阅读更多

UCMA4初体验中说到了用UCMASampleHelper帮助建立连接,现在来看自己如何建立。

前文说到了,过程分四步:创建终端、认证终端、会话建立、连接建立。

1.UserEndpoint的构造方法只有一个:

public UserEndpoint(CollaborationPlatform platform, UserEndpointSettings settings);

 第一个参数是平台,第二个是配置。还记得UCMA对象基本都需要配置信息吗?而且一般都是第二个(最后一个)参数。我们先创建UserEndpointSettings的实例,UserEndpointSettings有四个构造方法,我们选择下面这个:

public UserEndpointSettings(string ownerUri, string serverName);

 也就是说“由谁登录,登录到哪”。然后指定它的两个属性:

using System.Net;
userEndpointSettings.AutomaticPresencePublicationEnabled = true;
userEndpointSettings.Credential = new NetworkCredential("i", "**", "ads.assk.com");

 AutomaticPresencePublicationEnabled设为true 能使对方跟踪你的状态信息。第二个是用来认证的信息,参数分别是用户名、密码、域。

然后来创建平台。CollaborationPlatform有三个构造方法:

public CollaborationPlatform(ClientPlatformSettings platformSettings);
public CollaborationPlatform(ProvisionedApplicationPlatformSettings platformSettings);
public CollaborationPlatform(ServerPlatformSettings platformSettings);

 我们传一个ClientPlatformSettings实例:

ClientPlatformSettings clientSettings = new ClientPlatformSettings("test", SipTransportType.Tls);

 SipTransportType有三个枚举值:None,Tcp,Tls。

然后终端就建好了:

UserEndpoint endPoint = new UserEndpoint(platform, userEndpointSettings);

 2.和服务器连接分两步:

endPoint.Platform.BeginStartup(CallStarttupComplete, endPoint);
endPoint.BeginEstablish(CallEstablishCompleted, endPoint);

 需要用线程信号控制一下,第一个执行完了才能执行第二个。

private void CallStarttupComplete(IAsyncResult result)
        {
            UserEndpoint userEndPoint = result.AsyncState as UserEndpoint;
            CollaborationPlatform collabPlatform = userEndPoint.Platform;
            {
                collabPlatform.EndStartup(result);
            }
        }
private void CallEstablishCompleted(IAsyncResult result)
        {
            {
                UserEndpoint messageCall = result.AsyncState as UserEndpoint;
                messageCall.EndEstablish(result);
                _callEstablishComplete.Set();
            }
        }

 3.开启会话前一篇文章说了,这里使用一下其他的构造方法:

ConversationSettings settings = new ConversationSettings();
settings.Priority = ConversationPriority.Normal;
settings.Subject = "Test 01.";
Conversation conversation = new Conversation(endPoint, settings);

 4.开始通信的连接建立也提过:

InstantMessagingCall imCall = new InstantMessagingCall(conversation);
imCall.BeginEstablish("sip:i@fd.com", null, null, CallEstablishCompleted, imCall);

 建立后才可以继续其他的操作,所以也要在这里暂停。

分享到:
评论
1 楼 somefuture 2014-08-25  
部分连接代码:
bool SignAndPrepare(string self, string account, string pswd)//self是你自己的邮箱,account和pswd是你的域帐号
        {
                IAsyncResult ar;
                Position = loc;
                userEndpointSettings = new UserEndpointSettings("sip:" + self);
                userEndpointSettings.AutomaticPresencePublicationEnabled = true;
                userEndpointSettings.Credential = new System.Net.NetworkCredential(account, pswd);
                ClientPlatformSettings clientSettings = new ClientPlatformSettings("test", SipTransportType.Tls);
                CollaborationPlatform platform = new CollaborationPlatform(clientSettings);
                ar = platform.BeginStartup(null, null);
                platform.EndStartup(ar);

                endPoint = new UserEndpoint(platform, userEndpointSettings);
                ar = endPoint.BeginEstablish(null, null);
                endPoint.EndEstablish(ar);
            return true;
        }
这样就登录到了服务器。然后开始找人。
void CreateAndConnect(string targetUri, UserEndpoint endPoint)//给出要连接人的地址和上一步连接时的endPoint
        {
                IAsyncResult ar;
                TargetLyncUser = "sip:" + targetUri;
                ConversationSettings settings = new ConversationSettings();
                settings.Priority = ConversationPriority.Normal;
                Conversation conversation = new Conversation(endPoint, settings);
                InstantMessagingCall imCall = new InstantMessagingCall(conversation);
                ar = imCall.BeginEstablish(TargetLyncUser, new ToastMessage("new message."), null, null, null);
                imCall.EndEstablish(ar);
         }

相关推荐

    UcmaRuntime 2.0

    在深入了解UcmaRuntime 2.0之前,我们首先需要明白它在Exchange 2010中的角色。UcmaRuntime,全称是统一通信托管应用程序运行时,是Microsoft Lync Server(现在称为Skype for Business Server)和Exchange Server...

    微软UC互动机器人 入门篇,代码简洁明了

    4. **身份验证**:了解UCMA中的身份验证机制,如证书和凭据的使用。 5. **事件驱动编程**:UCMA基于事件模型,你需要学习如何编写响应特定事件的代码。 6. **API使用**:熟悉UCMA SDK提供的类库,如`...

    ucma.rar_Windows编程_Unix_Linux_

    标题中的"ucma.rar"可能是指一个压缩包文件,它包含有关Windows编程、Unix和Linux的知识资源。在描述中提到的“Cleanup events not yet reported to the user”可能是指程序在运行过程中产生的清理事件,这些事件...

    TangramUCMA开发应用指南

    UCMA应用提供对 Microsoft Lync Server增强状态信息、即时消息、电话、视频呼叫和音频/视频会议的访问和控制能力。它可用于开发机器人自动回复应用,后台控制发起IM或语音会话,消息推送机制等。 TangramUCMA 是...

    Lync Department Contact Manager 4:Lync Server 2010/2013 的联系人管理器-开源

    在压缩包中,"LDCM 4.0.exe.Config"是应用程序的配置文件,包含了程序运行所需的环境设置、数据库连接信息等关键参数。"LDCM 4.0.exe"则是LDCM 4的可执行文件,用户可以直接运行此文件来启动应用程序。 总的来说,...

    统一通信托管API4.0核心的安装,故障提示解决办法

    4. 安装过程中,系统可能需要你确认某些操作,如添加或修改注册表项,或者安装其他依赖组件。根据提示进行操作。 5. 安装完成后,你可以选择立即重启计算机以使更改生效,但根据描述中的信息,这一步似乎不是必要的...

    Lync Department Contact Manager 4:Lync Server 2010/2013的联系人管理器-开源

    在提供的压缩包文件中,"LDCM 4.0.exe.Config"是应用程序的配置文件,包含了程序运行所需的环境设置和配置参数,如数据库连接信息、日志级别等。而"LDCM 4.0.exe"则是LDCM 4的可执行文件,双击即可启动程序,开始...

    UCWABot:通过DirectLine连接到BotFramework的UCWA 2.0示例

    您可以使用UCMA来实现它,也可以使用此存储库中的代码进行小规模入门。BotFramework的UCWA 2.0示例这是UCWA 2.0和Bot Framework Direct Line的组合示例。 有关UCWA SDK的详细信息,请参见库。 有关“直线”的详细...

    Exchange 2003迁移Exchange 2016实施步骤

    - **Exchange 2016 CU4 安装**:安装 Exchange 2016 Cumulative Update 4 版本。 - **证书配置**:为 Exchange 2016 配置所需的 SSL 证书。 - **虚拟目录配置**:配置必要的虚拟目录。 - **发送/接收连接器配置**:...

    信息技术架构图.pptx

    活动大咖 乐打卡 红包 相亲大会 积分 乐审批 文档库 DLMS证明预约 日程 证明速递 会议室预定 乐认证 摇一摇 红包大战2017 签证查询 UCMA Outlook 统计 信息技术架构图全文共2页,当前为第1页。 DMZ/US PC端 FastDFS ...

    Conference_reg-Listview.rar_IP电话/视频会议_C#_

    C#中实现这一功能可能需要借助第三方库,如Microsoft的统一通信客户端API (UCMA) 或OpenTok这样的API服务。 在C#编程中,实现这样的系统可能包括以下几个关键部分: 1. 数据模型:创建类来表示会议记录,包括时间、...

    voip_protocols.rar_通讯编程文档_WINDOWS_

    - **SIP(Session Initiation Protocol)**:用于建立、修改和终止多媒体会话,如音频、视频通话。 - **H.323**:由ITU-T制定的多媒体通信标准,适用于IP、ISDN、PSTN等多种网络环境。 - **RTP(Real-time ...

    Unified Communications Managed API version 1.0

    provides technical information about the Unified Communications Managed API version 1.0 SDK. It is intended for application developers who are interested in creating and deploying SIP-based ...

Global site tag (gtag.js) - Google Analytics