예제 #1
0
        private void initAuthentication(string username, string password, string server, int port, string agent, string version)
        {
            t_config = new LCSipTransports()
            {
                udp_port  = -1,
                tcp_port  = -1,
                dtls_port = -1,
                tls_port  = -1
            };
            t_configPtr = Marshal.AllocHGlobal(Marshal.SizeOf(t_config));
            Marshal.StructureToPtr(t_config, t_configPtr, false);

            linphone_core_set_sip_transports(linphoneCore, t_configPtr);
            linphone_core_set_user_agent(linphoneCore, agent, version);

            identity = "sip:" + username + "@" + server;
            server   = "sip:" + server + ":" + port.ToString();

            auth_info = linphone_auth_info_new(username, null, password, null, null, null);
            linphone_core_add_auth_info(linphoneCore, auth_info);

            proxy_cfg = linphone_core_create_proxy_config(linphoneCore);
            linphone_proxy_config_set_identity(proxy_cfg, identity);
            linphone_proxy_config_set_server_addr(proxy_cfg, server);
            linphone_proxy_config_enable_register(proxy_cfg, true);
            linphone_core_add_proxy_config(linphoneCore, proxy_cfg);
            linphone_core_set_default_proxy_config(linphoneCore, proxy_cfg);
        }
예제 #2
0
파일: Linphone.cs 프로젝트: prakash3129/CM
        public void CreatePhone(string username, string password, string server, int port, string agent, string version)
        {
            //#if (TRACE)
            //linphone_core_enable_logs (IntPtr.Zero);
            //#else
            //linphone_core_disable_logs ();
            //#endif

            running = true;
            registration_state_changed = new LinphoneCoreRegistrationStateChangedCb(OnRegistrationChanged);
            call_state_changed         = new LinphoneCoreCallStateChangedCb(OnCallStateChanged);
            vtable = new LinphoneCoreVTable()
            {
                global_state_changed       = IntPtr.Zero,
                registration_state_changed = Marshal.GetFunctionPointerForDelegate(registration_state_changed),
                call_state_changed         = Marshal.GetFunctionPointerForDelegate(call_state_changed),
                notify_presence_received   = IntPtr.Zero,
                new_subscription_requested = IntPtr.Zero,
                auth_info_requested        = IntPtr.Zero,
                call_log_updated           = IntPtr.Zero,
                message_received           = IntPtr.Zero,
                is_composing_received      = IntPtr.Zero,
                dtmf_received              = IntPtr.Zero,
                refer_received             = IntPtr.Zero,
                call_encryption_changed    = IntPtr.Zero,
                transfer_state_changed     = IntPtr.Zero,
                buddy_info_updated         = IntPtr.Zero,
                call_stats_updated         = IntPtr.Zero,
                info_received              = IntPtr.Zero,
                subscription_state_changed = IntPtr.Zero,
                notify_received            = IntPtr.Zero,
                publish_state_changed      = IntPtr.Zero,
                configuring_status         = IntPtr.Zero,
                display_status             = IntPtr.Zero,
                display_message            = IntPtr.Zero,
                display_warning            = IntPtr.Zero,
                display_url   = IntPtr.Zero,
                show          = IntPtr.Zero,
                text_received = IntPtr.Zero,
            };
            vtablePtr = Marshal.AllocHGlobal(Marshal.SizeOf(vtable));
            Marshal.StructureToPtr(vtable, vtablePtr, false);

            linphoneCore = linphone_core_new(vtablePtr, null, null, IntPtr.Zero);

            coreLoop = new Thread(LinphoneMainLoop);
            coreLoop.IsBackground = false;
            coreLoop.Start();

            t_config = new LCSipTransports()
            {
                udp_port  = LC_SIP_TRANSPORT_RANDOM,
                tcp_port  = LC_SIP_TRANSPORT_RANDOM,
                dtls_port = LC_SIP_TRANSPORT_RANDOM,
                tls_port  = LC_SIP_TRANSPORT_RANDOM
            };
            t_configPtr = Marshal.AllocHGlobal(Marshal.SizeOf(t_config));
            Marshal.StructureToPtr(t_config, t_configPtr, false);
            linphone_core_set_sip_transports(linphoneCore, t_configPtr);

            linphone_core_set_user_agent(linphoneCore, agent, version);

            callsDefaultParams = linphone_core_create_default_call_parameters(linphoneCore);
            linphone_call_params_enable_video(callsDefaultParams, false);
            linphone_call_params_enable_early_media_sending(callsDefaultParams, true);

            identity    = "sip:" + username + "@" + server;
            server_addr = "sip:" + server + ":" + port.ToString();

            auth_info = linphone_auth_info_new(username, null, password, null, null, null);
            linphone_core_add_auth_info(linphoneCore, auth_info);

            proxy_cfg = linphone_core_create_proxy_config(linphoneCore);
            linphone_proxy_config_set_identity(proxy_cfg, identity);
            linphone_proxy_config_set_server_addr(proxy_cfg, server_addr);
            linphone_proxy_config_enable_register(proxy_cfg, true);
            linphone_core_add_proxy_config(linphoneCore, proxy_cfg);
            linphone_core_set_default_proxy(linphoneCore, proxy_cfg);
        }
예제 #3
0
        public void CreatePhone(string username, string password, string server, int port, string agent, string version)
        {
            #if (TRACE)
            linphone_core_enable_logs (IntPtr.Zero);
            #else
            linphone_core_disable_logs ();
            #endif

            running = true;
            registration_state_changed = new LinphoneCoreRegistrationStateChangedCb(OnRegistrationChanged);
            call_state_changed = new LinphoneCoreCallStateChangedCb(OnCallStateChanged);
            vtable = new LinphoneCoreVTable()
            {
                global_state_changed = IntPtr.Zero,
                registration_state_changed = Marshal.GetFunctionPointerForDelegate(registration_state_changed),
                call_state_changed = Marshal.GetFunctionPointerForDelegate(call_state_changed),
                notify_presence_received = IntPtr.Zero,
                new_subscription_requested = IntPtr.Zero,
                auth_info_requested = IntPtr.Zero,
                call_log_updated = IntPtr.Zero,
                message_received = IntPtr.Zero,
                is_composing_received = IntPtr.Zero,
                dtmf_received = IntPtr.Zero,
                refer_received = IntPtr.Zero,
                call_encryption_changed = IntPtr.Zero,
                transfer_state_changed = IntPtr.Zero,
                buddy_info_updated = IntPtr.Zero,
                call_stats_updated = IntPtr.Zero,
                info_received = IntPtr.Zero,
                subscription_state_changed = IntPtr.Zero,
                notify_received = IntPtr.Zero,
                publish_state_changed = IntPtr.Zero,
                configuring_status = IntPtr.Zero,
                display_status = IntPtr.Zero,
                display_message = IntPtr.Zero,
                display_warning = IntPtr.Zero,
                display_url = IntPtr.Zero,
                show = IntPtr.Zero,
                text_received = IntPtr.Zero,
            };
            vtablePtr = Marshal.AllocHGlobal(Marshal.SizeOf(vtable));
            Marshal.StructureToPtr(vtable, vtablePtr, false);

            linphoneCore = linphone_core_new(vtablePtr, null, null, IntPtr.Zero);

            coreLoop = new Thread(LinphoneMainLoop);
            coreLoop.IsBackground = false;
            coreLoop.Start();

            t_config = new LCSipTransports()
            {
                udp_port = LC_SIP_TRANSPORT_RANDOM,
                tcp_port = LC_SIP_TRANSPORT_RANDOM,
                dtls_port = LC_SIP_TRANSPORT_RANDOM,
                tls_port = LC_SIP_TRANSPORT_RANDOM
            };
            t_configPtr = Marshal.AllocHGlobal(Marshal.SizeOf(t_config));
            Marshal.StructureToPtr (t_config, t_configPtr, false);
            linphone_core_set_sip_transports (linphoneCore, t_configPtr);

            linphone_core_set_user_agent (linphoneCore, agent, version);

            callsDefaultParams = linphone_core_create_default_call_parameters(linphoneCore);
            linphone_call_params_enable_video(callsDefaultParams, false);
            linphone_call_params_enable_early_media_sending(callsDefaultParams, true);

            identity = "sip:" + username + "@" + server;
            server_addr = "sip:" + server + ":" + port.ToString();

            auth_info = linphone_auth_info_new (username, null, password, null, null, null);
            linphone_core_add_auth_info (linphoneCore, auth_info);

            proxy_cfg = linphone_core_create_proxy_config(linphoneCore);
            linphone_proxy_config_set_identity (proxy_cfg, identity);
            linphone_proxy_config_set_server_addr (proxy_cfg, server_addr);
            linphone_proxy_config_enable_register (proxy_cfg, true);
            linphone_core_add_proxy_config (linphoneCore, proxy_cfg);
            linphone_core_set_default_proxy (linphoneCore, proxy_cfg);
        }