Ejemplo n.º 1
0
        public LinphoneMessage parseMessage(IntPtr msg)
        {
            //time
            long     time           = CoreWrapper.linphone_chat_message_get_time(msg);
            DateTime formatted_time = new DateTime(1970, 1, 1, 0, 0, 0).AddSeconds(time);

            //+2 gmt
            formatted_time = formatted_time.AddHours(2);

            //message
            IntPtr text_pointer = CoreWrapper.linphone_chat_message_get_text(msg);

            byte[] bytes = Encoding.Default.GetBytes(Marshal.PtrToStringAnsi(text_pointer));
            string text  = Encoding.UTF8.GetString(bytes);

            //sender
            IntPtr address = CoreWrapper.linphone_chat_message_get_from_address(msg);
            string sender  = "Self";

            if (address != IntPtr.Zero)
            {
                IntPtr display_name = CoreWrapper.linphone_address_get_username(address);
                sender = Marshal.PtrToStringAnsi(display_name);
            }

            //Return the final product
            return(new LinphoneMessage(formatted_time, text, sender));
        }
Ejemplo n.º 2
0
        private string getSenderUsername(IntPtr message)
        {
            IntPtr address  = CoreWrapper.linphone_chat_message_get_from_address(message);
            IntPtr username = CoreWrapper.linphone_address_get_username(address);

            return(Marshal.PtrToStringAnsi(username));
        }
Ejemplo n.º 3
0
        public bool isSame(IntPtr chat_room_param)
        {
            IntPtr address      = CoreWrapper.linphone_chat_room_get_peer_address(chat_room_param);
            IntPtr display_name = CoreWrapper.linphone_address_get_username(address);
            string text         = Marshal.PtrToStringAnsi(display_name);
            string my_name      = this.getPeer();

            return(text.Equals(my_name));
        }
Ejemplo n.º 4
0
        public void sendMessage(string uri, string raw_message)
        {
            if (string.IsNullOrEmpty(uri))
            {
                throw new ArgumentNullException("uri");
            }

            if (raw_message.Length == 0)
            {
                return;
            }

            IntPtr chat_room = core_wrapper.getChatRoom(uri);
            IntPtr message   = CoreWrapper.linphone_chat_room_create_message(chat_room, raw_message);

            chat_room_handler.receiveMessage(uri.Split('@')[0].Split(':')[1], chat_room, message);
            CoreWrapper.linphone_chat_room_send_chat_message(chat_room, message);
        }
Ejemplo n.º 5
0
        public Phone(Account account)
        {
            this.chat_room_handler = new ChatRoomHandler();
            this.account           = account;

            this.core_wrapper = new CoreWrapper();
            linkRegistrationStateChangedEventBody();
            linkCallStateChangedEventBody();

            //Create body for message callbacks from core
            core_wrapper.MessageReceivedEvent += receiveMessage;

            //Create body for error callbacks from core
            core_wrapper.ErrorEvent += (call, message) =>
            {
                Console.WriteLine("Error: {0}!", message);
                if (coreErrorEvent != null)
                {
                    coreErrorEvent();
                }
            };
        }