Как использовать BeginSignIn или как войти в Skype для бизнеса для совершения автоматического телефонного звонка с помощью PowerShell

Я нашел ЭТО ссылка, показывающая, как войти в Skype/Lynk с помощью C#. Я также нашел образец решения Visual Studio в папке C:\Program Files (x86)\Microsoft Office 2013\LyncSDK\samples\AudioVideoConversation\AudioVideoConversation.sln, который вы получите при установке Lynk 2013 SDK. После успешного создания этого проекта в Visual Studio вы можете совершать телефонные звонки из Skype для бизнеса.

Я разрабатываю сценарий PowerShell для автоматических телефонных звонков путем перевода кода в этом проекте .Net в PowerShell, однако не уверен, как успешно перевести это в PowerShell. Я застрял на первом шаге, чтобы войти в Lynk через код PowerShell.

Add-Type -Path "C:\Program Files (x86)\Microsoft Office 2013\LyncSDK\Assemblies\Desktop\Microsoft.Lync.Model.dll"

$LC = [Microsoft.Lync.Model.LyncClient]::GetClient()

$obj = [System.Object]::new()
$iP = [System.IntPtr]::new(1)
$acb = [System.AsyncCallback]::new($obj,$iP)

$LC.BeginSignIn("[email protected]","contoso\sshahoo",'P@ssw0rd', $acb, $obj)

Может кто-нибудь поделиться, как подключиться к Skype для бизнеса с помощью PowerShell и сделать телефонный звонок?


person SavindraSingh    schedule 19.07.2018    source источник


Ответы (1)


После некоторых исследований и кодирования я теперь могу войти в Skype для бизнеса с помощью события нажатия кнопки и начать телефонный звонок. Ниже код, если кому интересно:

    private void btnCall_Click(object sender, EventArgs e)
    {
        //if this client is in UISuppressionMode...
        if (client.InSuppressedMode && client.State == ClientState.Uninitialized)
        {
            //...need to initialize it
            try
            {
                client.BeginInitialize(this.ClientInitialized, null);
            }
            catch (LyncClientException lyncClientException)
            {
                Console.WriteLine(lyncClientException);
            }
            catch (SystemException systemException)
            {
                if (LyncModelExceptionHelper.IsLyncException(systemException))
                {
                    // Log the exception thrown by the Lync Model API.
                    Console.WriteLine("Error: " + systemException);
                }
                else
                {
                    // Rethrow the SystemException which did not come from the Lync Model API.
                    throw;
                }
            }
        }
        else //not in UI Suppression, so the client was already initialized
        {
            //registers for conversation related events
            //these events will occur when new conversations are created (incoming/outgoing) and removed
            //client.ConversationManager.ConversationAdded += ConversationManager_ConversationAdded;
            //client.ConversationManager.ConversationRemoved += ConversationManager_ConversationRemoved;

            //sign-in or contact selection
            SignInToLync();
        }
        SendLyncCall("+6512345678", "Hello, I am calling regarding an open ticket");
    }

    LyncClient client = LyncClient.GetClient();
    private void SignInToLync()
    {
        try
        {
            client.BeginSignIn("[email protected]", "[email protected]", "Pass@1234", HandleEndSignIn, null);
        }
        catch (LyncClientException lyncClientException)
        {
            Console.WriteLine(lyncClientException);
        }
        catch (SystemException systemException)
        {
            if (LyncModelExceptionHelper.IsLyncException(systemException))
            {
                // Log the exception thrown by the Lync Model API.
                Console.WriteLine("Error: " + systemException); 
            }
            else
            {
                // Rethrow the SystemException which did not come from the Lync Model API.
                throw;
            }
        }
    }
person SavindraSingh    schedule 03.08.2018