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)); }
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)); }
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)); }
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); }
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(); } }; }