2017-07-28 46 views
0

我是UCMA Bot開發的新手。我開始使用UCMA 5.0 SDK中提供的示例應用程序(名爲BuildaBot)開展工作。我無法設置application endpoint。我爲這個Bot創建了專用的SkypeforBusiness ID。這是在我的組織雲中創建的。我在我們的內部部署服務器上部署了代碼。 我將如何爲我的Skype ID集成我的代碼。如何將UCMA代碼指向專用Skype for Business ID

我發現在UCMA 5.0 SDK的其他QuickSamples中,他們使用Userendpoint。我可以在App.config中使用Skype ID(Bot的一個),並且應用程序在本地運行。在生產場景中,針對許多用戶使用Bot的情況下,可以使用Userendpoint嗎?

回答

0

首先你需要了解的各類應用程序,您可以用UCMA寫:

  1. Trusted Server Applications
  2. Client Applications

信任的服務器應用程序

這種類型的UCMA的應用程序是最強大的,你可以使用ApplicationEndpoints或UserEndpoints(通過模擬)。它們只能在特定的預設機器(應用程序池)上運行。因此,設置爲運行可信服務器應用程序要比客戶端應用程序高出很多並且更加困難。受信任的服務器應用程序不需要任何用戶名或密碼,它們使用數字證書進行設置(可能發生的另一個安裝問題是分揀出正確的證書)。這意味着使用UserEndpoints在運行後模仿用戶非常容易。

客戶端應用程序

UCMA客戶端應用程序只能使用UserEndpoint的。對於客戶端應用程序使用用戶端點,它必須知道他們希望使用的用戶的用戶名/密碼的詳細信息。它們也不像受信任的服務器應用程序UserEndpoint那樣「可信」(儘管您可能永遠不需要額外的權限)。

這兩種應用程序類型都可以做同樣的事情,所以它主要歸結爲運行需求。

接下來,你需要了解兩種類型的端點是:

ApplicationEndpoint

應用程序端點只能由受信任的服務器應用程序使用。對應用程序端點(客戶端訪問許可證)也沒有CAL要求。不需要CAL可能是走這條路線的主要原因。

UserEndpoint

用戶端點是通過AD集成一個標準的Lync用戶設置,因此通常有每AD用戶UserEndpoint。 UserEndpoint需要分配某種CAL。根據所需功能,可以選擇「免費」CAL許可證或不同級別的付費CAL許可證。

這兩種端點類型都只是SIP端點,您可以使用它們做同樣的事情。所以你可以用任何一個寫一個bot。我的猜測是使用ApplicationEndpoint的可信應用程序,只是因爲您不需要在應用程序端點上支付CAL費用,並且可以根據需要創建/使用盡可能多的應用程序端點。同樣創建應用程序端點(我發現)比創建AD用戶還要容易。

+0

Hi @ShanePowell,謝謝你的回覆。我想用UserEndPoint使用Client應用程序。所以我會在app.config中提供我的Bot的ID。你能幫助我理解這個代碼如何知道一個人什麼時候對機器人進行ping命令。這個初始消息實例如何?我是Bot編程新手,沒有Console應用程序結構的經驗。 –

+0

UCMA是一個SIP端點庫。因此,所有交互都位於「SIP」消息傳遞層中。這個API公開了各種更高層次的構造,比如Presence,Calls等。你需要通過「ping」來查找你的意思的例子。沒有「平」這樣的東西......我不知道你想要你的「機器人」做什麼。您可以接聽電話並提供IVR類型的回覆...您可以撥打電話並執行自動類型的操作。您可以像B2BBC一樣使用B2BCall支持,您可以支持IM消息。所有這些都是不同的...所以你需要更具體。 –

+0

Hi @Shane。對不起,我評論不清楚。我想要開始我的開發的一切就是,如果有人向我的Bot ID發送「Hi」消息,我希望我的Bot回覆。你能幫我一些示例代碼。 –

0

它不太可能通過互聯網找到UCMA的現成代碼。經過很多工作,我想到了我的問題的答案。 對於其他參考,我在這裏更新它。

如何創建UCMA使用者端點

  1. 獲得一個專用的SFB編號(如[email protected]),這將作爲機器人。
  2. 在App.config中,提供運行示例所需的Bot參數(值)。

    <appSettings> 
    Provide the FQDN of the Microsoft Lync Server-->  
    <add key="ServerFQDN" value="" /> 
    
    <!--The user name of the user(BOT) that the sample logs in as --> 
    <add key="UserName" value="" /> 
    
    <!--The user domain of the user(BOT) that the sample logs in as --> 
    <add key="UserDomain" value="" /> 
    
    <!--The user URI of the user(BOT) that the sample logs in as, in the format sip:[email protected]> 
    <add key="UserURI" value="sip:[email protected]" /> 
    
    <!--The user URI of the user(BOT) that the sample logs in as--> 
    <add key="UserPwd" value="" /> 
    
    </appSettings> 
    
  3. 在Program.cs中,將這些在下面的代碼。這將建立用戶端點。這意味着,您已將BOT ID映射到應用程序,現在您的應用程序將可用於該Bot ID。

    using System.Configuration; 
    using System.Collections.Concurrent; 
    using Microsoft.Rtc.Collaboration; 
    using Microsoft.Rtc.Signaling; 
    
    namespace Bot 
    { 
    public class Program 
    { 
    private static string sipaddress = ConfigurationManager.AppSettings["UserURI"]; 
    private static string username = ConfigurationManager.AppSettings["UserName"]; 
    private static string password = ConfigurationManager.AppSettings["UserPwd"]; 
    private static string domain = ConfigurationManager.AppSettings["UserDomain"]; 
    
    CollaborationPlatform _platform; 
    UserEndpoint _endpoint; 
    
    static void Main(string[] args) 
    { 
    var platformSettings = new ClientPlatformSettings(userAgent, SipTransportType.Tls); 
        _platform = new CollaborationPlatform(platformSettings); 
    
        UserEndpointSettings settings = new UserEndpointSettings(sipaddress); 
        settings.Credential = new System.Net.NetworkCredential(username, password, domain); 
        settings.AutomaticPresencePublicationEnabled = true; 
    
        _endpoint = new UserEndpoint(_platform, settings); 
        }}} 
    

而且你必須代碼,以接收消息和回覆消息。

相關問題