Получение статуса Skype после завершения вызова
Я написал следующий код внутри функции, которая возвращает статус. Он работал нормально, но теперь он устанавливает статус, как только звонит по 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