private void Register_Click(object sender, EventArgs e) { if (m_opalContext != null) { Register.Enabled = false; host.Enabled = false; user.Enabled = false; password.Enabled = false; OpalMessagePtr msg = new OpalMessagePtr(OpalMessageType.OpalCmdRegistration); OpalParamRegistration reg = msg.GetRegistrationParams(); reg.protocol = "sip"; reg.hostName = host.Text; reg.identifier = user.Text; reg.password = password.Text; reg.timeToLive = 300; OpalMessagePtr result = new OpalMessagePtr(); if (m_opalContext.SendMessage(msg, result)) { m_registrationIdentifier = result.GetRegistrationParams().identifier; return; } MessageBox.Show("Could not start registration: " + result.GetCommandError(), "OPAL", MessageBoxButtons.OK); Register.Enabled = true; host.Enabled = true; user.Enabled = true; password.Enabled = true; } }
private void Initialise_Click(object sender, EventArgs e) { if (m_opalContext == null) { Initialise.Enabled = false; LogLevel.Enabled = false; LogFile.Enabled = false; StunServer.Enabled = false; m_opalContext = new OpalContext(); if (m_opalContext.Initialise(OPAL.OPAL_PREFIX_SIP + " " + OPAL.OPAL_PREFIX_PCSS + " --trace-level " + LogLevel.Value + " --output " + LogFile.Text) == 0) { MessageBox.Show("Failed to initialise", "OPAL", MessageBoxButtons.OK); } else { m_opalThread = new System.Threading.Thread(new System.Threading.ThreadStart(HandleOpalMessages)); m_opalThread.Start(); OpalMessagePtr msg = new OpalMessagePtr(OpalMessageType.OpalCmdSetGeneralParameters); OpalParamGeneral gen = msg.GetGeneralParams(); gen.natMethod = "STUN"; gen.natServer = StunServer.Text; gen.autoRxMedia = gen.autoTxMedia = "audio video"; gen.mediaMask = "!G.711*\n!H.263*"; // Kind of backwards, it's a mask with negative entries, so just get G.711/H.263 gen.videoOutputDevice = "MSWIN STYLE=0x50000000 PARENT=" + VideoDisplay.Handle + " X=0 Y=0 WIDTH=" + VideoDisplay.Width + " HEIGHT=" + VideoDisplay.Height; gen.videoPreviewDevice = "MSWIN STYLE=0x50000000 PARENT=" + VideoPreview.Handle + " X=0 Y=0 WIDTH=" + VideoPreview.Width + " HEIGHT=" + VideoPreview.Height; OpalMessagePtr result = new OpalMessagePtr(); if (!m_opalContext.SendMessage(msg, result)) { MessageBox.Show("Could not set general parameters: " + result.GetCommandError(), "OPAL", MessageBoxButtons.OK); } else { msg = new OpalMessagePtr(OpalMessageType.OpalCmdSetProtocolParameters); OpalParamProtocol proto = msg.GetProtocolParams(); proto.prefix = OPAL.OPAL_PREFIX_SIP; proto.interfaceAddresses = "0.0.0.0"; // All interfaces if (!m_opalContext.SendMessage(msg)) { MessageBox.Show("Could not set general parameters", "OPAL", MessageBoxButtons.OK); } else { Shutdown.Enabled = true; Register.Enabled = true; Call.Enabled = true; return; } } } Initialise.Enabled = true; LogLevel.Enabled = true; LogFile.Enabled = true; StunServer.Enabled = true; } }
static OpalMessageRef MySendCommand(OpalMessageRef command, string errorMessage) { OpalMessageRef response = new OpalMessageRef(); if (!context.SendMessage(command, response)) { return(null); } if (response.GetMessageType() != Opal_API.OpalMessageType.OpalIndCommandError) { return(response); } if (response.GetCommandError() == null || response.GetCommandError() == "\0") { Console.WriteLine("{0}.\n", errorMessage); } else { Console.WriteLine("{0}: {1}\n", errorMessage, response.GetCommandError()); } return(null); }
private void Initialise_Click(object sender, EventArgs e) { if (m_opalContext == null) { Initialise.Enabled = false; LogLevel.Enabled = false; LogFile.Enabled = false; StunServer.Enabled = false; m_opalContext = new OpalContext(); if (m_opalContext.Initialise(OPAL.OPAL_PREFIX_SIP + " " + OPAL.OPAL_PREFIX_PCSS + " --trace-level " + LogLevel.Value + " --output \"" + LogFile.Text + "\"") == 0) { MessageBox.Show("Failed to initialise", "OPAL", MessageBoxButtons.OK); } else { m_opalThread = new System.Threading.Thread(new System.Threading.ThreadStart(HandleOpalMessages)); m_opalThread.Start(); OpalMessagePtr msg = new OpalMessagePtr(OpalMessageType.OpalCmdSetGeneralParameters); OpalParamGeneral gen = msg.GetGeneralParams(); gen.natMethod = "STUN"; gen.natServer = StunServer.Text; gen.autoRxMedia = gen.autoTxMedia = "audio video"; gen.mediaMask = "!*uLaw*\n!*264-0\nH.263*"; // Kind of backwards, it's a mask with negative entries gen.mediaOptions = "video:Frame Width=640\nvideo:Frame Height=480\nvideo:Target Bit Rate=256000"; gen.audioPlayerDevice = "Default communications"; gen.audioRecordDevice = "Default communications"; gen.videoOutputDevice = "MSWIN STYLE=0x50000000 PARENT=" + VideoDisplay.Handle + " X=0 Y=0 WIDTH=" + VideoDisplay.Width + " HEIGHT=" + VideoDisplay.Height + " NO-MOUSE"; gen.videoPreviewDevice = "MSWIN STYLE=0x50000000 PARENT=" + VideoPreview.Handle + " X=0 Y=0 WIDTH=" + VideoPreview.Width + " HEIGHT=" + VideoPreview.Height + " NO-MOUSE"; gen.noMediaTimeout = 15000; OpalMessagePtr result = new OpalMessagePtr(); if (!m_opalContext.SendMessage(msg, result)) { MessageBox.Show("Could not set general parameters: " + result.GetCommandError(), "OPAL", MessageBoxButtons.OK); } else { msg = new OpalMessagePtr(OpalMessageType.OpalCmdSetProtocolParameters); OpalParamProtocol proto = msg.GetProtocolParams(); proto.prefix = OPAL.OPAL_PREFIX_SIP; proto.interfaceAddresses = "0.0.0.0"; // All interfaces proto.displayName = "OPAL C# Sample"; if (!m_opalContext.SendMessage(msg)) { MessageBox.Show("Could not set protool parameters", "OPAL", MessageBoxButtons.OK); } else { Shutdown.Enabled = true; Register.Enabled = true; Call.Enabled = true; return; } } } Initialise.Enabled = true; LogLevel.Enabled = true; LogFile.Enabled = true; StunServer.Enabled = true; } }
private void Initialise_Click(object sender, EventArgs e) { if (m_opalContext == null) { Initialise.Enabled = false; LogLevel.Enabled = false; LogFile.Enabled = false; StunServer.Enabled = false; m_opalContext = new OpalContext(); if (m_opalContext.Initialise(OPAL.OPAL_PREFIX_SIP + " " + OPAL.OPAL_PREFIX_PCSS + " --trace-level " + LogLevel.Value + " --output " + LogFile.Text) == 0) MessageBox.Show("Failed to initialise", "OPAL", MessageBoxButtons.OK); else { m_opalThread = new System.Threading.Thread(new System.Threading.ThreadStart(HandleOpalMessages)); m_opalThread.Start(); OpalMessagePtr msg = new OpalMessagePtr(OpalMessageType.OpalCmdSetGeneralParameters); OpalParamGeneral gen = msg.GetGeneralParams(); gen.natMethod = "STUN"; gen.natServer = StunServer.Text; gen.autoRxMedia = gen.autoTxMedia = "audio video"; gen.mediaMask = "!G.711*\n!H.263*"; // Kind of backwards, it's a mask with negative entries, so just get G.711/H.263 gen.videoOutputDevice = "MSWIN STYLE=0x50000000 PARENT=" + VideoDisplay.Handle + " X=0 Y=0 WIDTH=" + VideoDisplay.Width + " HEIGHT=" + VideoDisplay.Height; gen.videoPreviewDevice = "MSWIN STYLE=0x50000000 PARENT=" + VideoPreview.Handle + " X=0 Y=0 WIDTH=" + VideoPreview.Width + " HEIGHT=" + VideoPreview.Height; OpalMessagePtr result = new OpalMessagePtr(); if (!m_opalContext.SendMessage(msg, result)) MessageBox.Show("Could not set general parameters: " + result.GetCommandError(), "OPAL", MessageBoxButtons.OK); else { msg = new OpalMessagePtr(OpalMessageType.OpalCmdSetProtocolParameters); OpalParamProtocol proto = msg.GetProtocolParams(); proto.prefix = OPAL.OPAL_PREFIX_SIP; proto.interfaceAddresses = "0.0.0.0"; // All interfaces if (!m_opalContext.SendMessage(msg)) MessageBox.Show("Could not set general parameters", "OPAL", MessageBoxButtons.OK); else { Shutdown.Enabled = true; Register.Enabled = true; Call.Enabled = true; return; } } } Initialise.Enabled = true; LogLevel.Enabled = true; LogFile.Enabled = true; StunServer.Enabled = true; } }