Example #1
0
        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;
            }
        }
Example #2
0
File: Form1.cs Project: cnc123/opal
        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;
            }
        }
Example #3
0
        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;
            }
        }
Example #4
0
        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);
        }