我真的是没有办法了,有没有ms的内部人士帮帮忙
LCS使用RTC API 发送IM消息:我想编一个客户端给公司内部msn发信息.服务器上装了live communitions server(最新的)
客户端:
我装了RtcApiSdk1.2和RtcApiSdk1.3
请安装同时1.2和1.3 ,安装完后的MSI包之后,我也运行了下面的文件要运行
    :\Program Files\RTC Client API v1.2 SDK\INSTALLATION\RtcApiSetup.exe
    :\Program Files\RTC Client API v1.3 SDK\INSTALLATION\RtcApiSetup.exe
    :\Program Files\RTC Client API v1.3 SDK\INSTALLATION\RtcSxSPolicies.msic#类:using System;
using System.Collections.Generic;
using System.Text;namespace CMS.LCSLib
{
    public class RTCClass
    {                    private static void  createEnableProfile(RTCCORELib.RTCClient objRTCClient, string account, string password, string uri, string addr, string domain)
        {
            string s = "";
            s += "<provision key=\"{566E246F-9978-4434-83BF-3E47BCCFF466}\" name=\"" + domain + "\">";
            s += "<user account=\"" + account + "\" password=\"" + password + "\" uri=\"" + uri + "\" />";
            s += "<sipsrv addr=\"" + addr + "\" protocol=\"tcp\" role=\"proxy\">";
            s += "<session party=\"first\" type=\"pc2pc\" />";
            s += "<session party=\"first\" type=\"pc2ph\" />";
            s += "<session party=\"first\" type=\"im\" />";
            s += "</sipsrv>";
            s += "<sipsrv addr=\"" + addr + "\" protocol=\"tcp\" role=\"registrar\" />";
            s += "</provision>";
            
            RTCCORELib.IRTCProfile2 objProfile;//
            RTCCORELib.IRTCClientProvisioning2 objProvisioning;//            try
            {
                objProvisioning = (RTCCORELib.IRTCClientProvisioning2)objRTCClient;                objProfile = (RTCCORELib.IRTCProfile2)objProvisioning.CreateProfile(s);                //EnableProfile
                objProvisioning.EnableProfile(objProfile, 0xF);
                //g_objProvisioning.EnableProfileEx(g_objProfile, 0x0000000F, 0x0000000F);
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("LCSClass", ex.ToString());
            }
            return ;        }        public static void SendMessage(string strDestURI)
        {
            string account = @"ptr\yaomingchen"; //ptr域名,yaomingchen用户
            string password = "test"; //test为密码
            string uri = "sip:[email protected]"; //发信息的人
            string addr = "103.52.121:5060";
            string domain = "ptr";
            string strMsgHeader = null;
            string strMsg = "Main Message";
            int lCookie = 0;
            string strDestName = null;            SendMessage(account, password, uri, addr, domain,
                 strMsgHeader, strMsg, lCookie, strDestURI, strDestName);
            return;
        }        public static void SendMessage(string account, string password, string uri, string addr, string domain,
            string strMsgHeader, string strMsg, int lCookie, string strDestURI, string strDestName)
        {
            try
            {
                RTCCORELib.RTCClient objRTCClient;//            
                RTCCORELib.IRTCSession objSession;
                //RTCCORELib.IRTCParticipant g_objParticipant;                //'RTCClient needs to be initialized before any other method can be called on it.
                objRTCClient = new RTCCORELib.RTCClient();
                objRTCClient.Initialize();                //createProfile & EnableProfile
                createEnableProfile(objRTCClient, account, password, uri, addr, domain);                //'Create an IM session.
                objSession = objRTCClient.CreateSession(RTCCORELib.RTC_SESSION_TYPE.RTCST_MULTIPARTY_IM, null, null, 0);                //'Add a participant to the IM session.
                //g_objParticipant = g_objSession.AddParticipant(strDestURI, strDestName);
                objSession.AddParticipant(strDestURI, strDestName);                //'Send a message.
                objSession.SendMessage(strMsgHeader, strMsg, lCookie);
                //g_objSession.SendMessage(null, strMsg, 0);
            }
            catch (Exception ex)
            {
                System.Diagnostics.EventLog.WriteEntry("LCSClass", ex.ToString());
            }
        }
    }
}编写完编译为xxx.dll,我加入一个windows项目中,windows项目中有一个按钮的事件:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Try
            Dim o As New CMS.LCSLib.RTCClass
            'o.SendMessage("ptr\yaomingchen", "yaomingchen", "sip:[email protected]", "10.3.52.121:5060", "ptr", Nothing, "test1111111", 0, "sip:[email protected]", Nothing)            o.SendMessage("sip:[email protected]")            MsgBox("OK")
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
End SubSendMessage的两个方法,我全试过了,全发不出去,也不报任何错误信息.我不知道是什么原因.
参考:
http://cleo.cnblogs.com/articles/307148.html

解决方案 »

  1.   

    巧了.我也在用lcs .不过刚刚开始,还没到开发阶段.多多交流.///*************************///
    这两年来慢慢习惯了光说不练
    ///*************************///
      

  2.   

    基本没做过LCS开发。
    侠客你上面不是有记录到日志中吗?看看出了什么问题。如果日志中没有记录,再检查下("ptr\yaomingchen", "yaomingchen", "sip:[email protected]", "10.3.52.121:5060", "ptr", Nothing, "test1111111", 0, "sip:[email protected]", Nothing)这句,如果这个串没问题,还有可能是版本的问题。
    关于LCS开发的问题,可以去office开发中心或office专家组的站点问一问。
    也可以联系http://blog.joycode.com/kaneboy/ 他这方面认识的人很多。
      

  3.   

    我也遇到了类似问题,在应用(exe)里很正常,一编译为dll就不行了,我把所有安全策略都删了,把匿名用户升级为管理员了,也不行 。
    我在想,如果说操作系统级的安全已经没问题了,那问题就处在第三方平台上的安全问题了 
    也许是用户安全性继承的问题 
    昨天晚上在家看了很多安全性继承的解决办法,都没有合适的,我的第三方平台是exchange
      

  4.   

    private void button1_Click(object sender, EventArgs e)
            {
                try
                {              //CMS.LCSLib.RTCClass o = new CMS.LCSLib.RTCClass();
                  CMS.LCSLib.RTCClass.SendMessage("[email protected]", "123456", "sip:[email protected]", "10.0.0.15:5060", "tcp", null, "test1111111", 0, "sip:[email protected]", null);            //o.SendMessage("sip:[email protected]")            MessageBox.Show("OK");
                }
            catch ( Exception ex)
                {
                MessageBox.Show(ex.Message);
            }