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; } }
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; } }
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; } }
static int InitialiseOPAL() { OpalMessageRef command; OpalMessageRef response; uint version; string OPALOptions = Opal_API.OPAL_PREFIX_H323 + " " + Opal_API.OPAL_PREFIX_SIP + " " + Opal_API.OPAL_PREFIX_IAX2 + " " + #if LOCAL_MEDIA Opal_API.OPAL_PREFIX_LOCAL + #else Opal_API.OPAL_PREFIX_PCSS + #endif " " + Opal_API.OPAL_PREFIX_IVR + " TraceLevel=4 TraceFile=debugstream"; /////////////////////////////////////////////// // Initialisation version = Opal_API.OPAL_C_API_VERSION; if (context.Initialise(OPALOptions, version) == version) { Console.WriteLine("Could not initialise OPAL{0}", Environment.NewLine); return(0); } #if NULL // Test shut down and re-initialisation context.ShutDown(); if (context.Initialise(OPALOptions, version) == version) { Console.WriteLine("Could not reinitialise OPAL{0}", Environment.NewLine); return(0); } #endif // General options command = new OpalMessageRef(Opal_API.OpalMessageType.OpalCmdSetGeneralParameters); //command.m_param.m_general.m_audioRecordDevice = "Camera Microphone (2- Logitech"; OpalParamGeneralRef m_general = command.GetGeneralParams(); m_general.AutoRxMedia = m_general.AutoTxMedia = "audio"; m_general.StunServer = "stun.voxgratia.org"; m_general.MediaMask = "RFC4175*"; #if LOCAL_MEDIA m_general.MediaReadData = MyReadMediaData; m_general.MediaWriteData = MyWriteMediaData; m_general.MediaDataHeader = (uint)Opal_API.OpalMediaDataType.OpalMediaDataPayloadOnly; #endif if ((response = MySendCommand(command, "Could not set general options")) == null) { return(0); } // Options across all protocols command = new OpalMessageRef(Opal_API.OpalMessageType.OpalCmdSetProtocolParameters); OpalParamProtocolRef m_protocol = command.GetProtocolParams(); m_protocol.UserName = "******"; m_protocol.DisplayName = "Robert Jongbloed"; m_protocol.InterfaceAddresses = "*"; if ((response = MySendCommand(command, "Could not set protocol options")) == null) { return(0); } command = new OpalMessageRef(Opal_API.OpalMessageType.OpalCmdSetProtocolParameters); m_protocol = command.GetProtocolParams(); m_protocol.Prefix = "sip"; m_protocol.DefaultOptions = "PRACK-Mode=0\nInitial-Offer=false"; if ((response = MySendCommand(command, "Could not set SIP options")) == null) { return(0); } return(1); }