Torna al Thread
Imports Asterisk.NET.FastAGI
Imports Asterisk.NET.Manager
Public Class frmInformazioni
Public x_max As Integer
Public y_max As Integer
Public c_aperte As Integer 'finestre di comunicazione chiamata aperte
Public t_aperte As Integer 'finestre di visualizzazione telecamera aperte
'EVENTO DA PASSARE AL THREAD
Public evento As Asterisk.NET.Manager.Event.DialEvent
'QUESTA DICHIARAZIONE E' QUELLA CHE SERVE PER EFFETTUARE LA CONNESSIONE E SPECIFICANDO WITHEVENTS
'PERMETTE DI INTERCETTARE TUTTI GLI EVENTI DAL PROTOCOLLO AGI DI ASTERISK PER CREARE FACILMENTE APPLICAZIONI
'INTERFACCIABILI CON TUTTI I CENTRALINI BASATI SU ASTERISK
'SARETE ALTRESI' FACILITATI DAL FATTO CHE OGNI EVENTO DEL CENTRALINO VI VERRA' INVIATO NELLA FINESTRA DI
'DEBUG DEL VISUAL STUDIO. IN MODO DA POTER FACILMENTE CAPIRE QUALI SONO LE VARIABILI DA UTILIZZARE
Public WithEvents dam As New AsteriskManager("IP DI ASTERISK", "PORTA DA USARE", "USER", "PASSWORD")
Private Sub frmInformazioni_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TROVO L'ANGOLO IN BASSO A DESTRA DELLO SCHERMO
x_max = Screen.PrimaryScreen.WorkingArea.Width - 10
y_max = Screen.PrimaryScreen.WorkingArea.Height - 10
c_aperte = 1
t_aperte = 1
Try
dam.Login() 'effettua il login ad ASTERISK
Application.DoEvents()
Catch ex As Exception
'IN CASO DI ERRORE [:?]
dam.Logoff()
MsgBox(ex.Message, MsgBoxStyle.Critical, "ERRORE VOIP")
Me.Close()
Application.DoEvents()
Application.Exit()
End Try
End Sub
Private Sub dam_Dial(ByVal sender As Object, ByVal e As Asterisk.NET.Manager.Event.DialEvent) Handles dam.Dial
evento = e
Dim t As New Threading.Thread(AddressOf mostrafinestra)
t.Start()
Application.DoEvents()
End Sub
Private Sub mostrafinestra()
Application.DoEvents()
Dim x As New frmAvviso
x.Top = y_max - (x.Height * c_aperte)
x.Left = x_max - x.Width
c_aperte += 1
x.txt_Chiamato.Text = evento.Destination
x.txt_ChiamanteNumero.Text = evento.CallerId
x.txt_ChiamanteNome.Text = evento.CallerIdName
x.TopMost = True
x.Show()
Application.DoEvents()
Threading.Thread.Sleep(4000)
x.Close()
If c_aperte > 0 Then
c_aperte -= 1
End If
Application.DoEvents()
x = Nothing
End Sub
End Class