Получение статуса Skype после завершения вызова - PullRequest
0 голосов
/ 27 апреля 2018

Я написал следующий код внутри функции, которая возвращает статус. Он работал нормально, но теперь он устанавливает статус, как только звонит по Skype. Таким образом, для каждого вызова устанавливается статус «Маршрутизация», а не «Отклонено», «Отменено», «Завершено» и т. Д. Я хочу получить окончательный статус вызова. Кроме того, как мне сделать остальную часть кода, пока вызов не закончится. Я также хотел бы получить продолжительность вызова, но прямо сейчас она устанавливает ее на ноль, потому что следующие строки кода выполняются, как только вызов сделан. Я использую Skype4COM Lib . Вот код:

 Private Function placeSkypeCall(ByVal number As String, ByRef status As String)

    Dim oSkype = skype
    If Not oSkype.Client.IsRunning Then
        oSkype.Client.Start()
        System.Threading.Thread.Sleep(20000)
    End If

    ''Setting Necessary Constant Variables to interact with Skype object
    Dim cUserStatus_Offline = oSkype.Convert.TextToUserStatus("OFFLINE")
    Dim cUserStatus_Online = oSkype.Convert.TextToUserStatus("ONLINE")

    'Setting the user as online
    If cUserStatus_Offline = oSkype.CurrentUserStatus Then
        oSkype.ChangeUserStatus(cUserStatus_Online)
    End If

    'Setting an end user
    Dim oUser = oSkype.User(number)

    'placing the call
    Dim oCall = oSkype.PlaceCall(oUser.Handle)

    status = oSkype.Convert.CallStatusToText(oCall.Status)
    If status.ToString() = "Finished" Then
        status = "Success"
    ElseIf status.ToString() = "Refused" Then
        status = "Declined"
    ElseIf status.ToString() = "Cancelled" Then
        status = "Unanswered"
    End If

    Return status
End Function
...