Как перенаправить вызов в Asterisk (AsterNET lib) на другое расширение из программного обеспечения
Я тестирую библиотеку.NET AsterNET с помощью программы winforms VB.net. Моя цель проста, я нахожусь на активном вызове и хочу перевести его на другой добавочный номер. Мое приложение уже перечисляет все доступные добавочные номера (используя команду Asterisk CLI), из которых пользователь выберет добавочный номер, на который он хочет передать вызов.
На Github я нашел некоторый пример кода C#, который я перевел на VB.net для целей моего эксперимента. Я размещаю свой код VB.net ниже:
Public Sub TransferCall (FromChan As String, ToChan As String, вывод в виде ListBox) Если manager.IsConnected = False, тогда ConnectNow() End If
output.Items.Clear() ' This will redirect the call on the Exten 1 channel to channel on Exten 2 Dim ra As New RedirectAction ' Assign the channel that will be redirected TO ra.Channel = AddChannelPrefix(FromChan) output.Items.Add("REDIRECT: Destination Channel " & ra.Channel & " assigned...") ' Now, assign the extension that will be redirected FROM : Destination extension ra.Exten = FromChan output.Items.Add("REDIRECT: Origin Channel " & ra.ExtraChannel & " assigned...") ' Now, assign an EXTRA (second) channel that will be redirected ra.ExtraChannel = AddChannelPrefix(ToChan) output.Items.Add("REDIRECT: Destination Channel " & ra.ExtraChannel & " assigned...") ' Now, assign the CONTEXT that will be redirected TO ra.Context = "outbound-test" ' Set the priority ra.Priority = 1 ' Now we will try to implement the ACTUAL transfer Action and consume its response Try output.Items.Add("PERFORMING REDIRECT OF CALL FROM " & FromChan & " TO " & ToChan & "...") Dim mr As ManagerResponse = manager.SendAction(ra, 10000) output.Items.Add("Response: " & mr.Response) output.Items.Add("Message: " & mr.Message) Catch ex As Exception output.Items.Add("Error Transferring Call from " & FromChan & " to " & ToChan & ":" & ex.Message) End Try End Sub
Как видите, я создал Sub, который должен выполнять эту работу. Я даю ему канал, который в данный момент активен (канал FROM), и даю ему строку с номером добавочного номера, на который я хочу перевести этот активный вызов (номер TO). Объект listbox просто предоставлен, чтобы дать мне некоторый вывод в реальном времени, когда что-то происходит.
Эффект: активный вызов отключается и переадресация не происходит.
Что я делаю неправильно?