private void buttonSendIM_Click(object sender, EventArgs e) { if (BuddyId == -1) { return; } // get buddy data form _buddyId CBuddyRecord buddy = CBuddyList.getInstance()[BuddyId]; if (buddy != null) { // Invoke SIP stack wrapper function to send message SipekResources.Messenger.sendMessage(buddy.Number, textBoxChatInput.Text); richTextBoxChatHistory.Text += "(me) " + DateTime.Now; //Font orgfnt = richTextBoxChatHistory.Font; //Font fnt = new Font("Microsoft Sans Serif",16,FontStyle.Bold); //richTextBoxChatHistory.Font = fnt; richTextBoxChatHistory.Text += ": " + textBoxChatInput.Text; //richTextBoxChatHistory.Font = orgfnt; richTextBoxChatHistory.Text += Environment.NewLine; textBoxChatInput.Clear(); } }
private void MessageReceived(string from, string message) { // extract buddy ID string buddyId = parseFrom(from); // check if ChatForm already opened foreach (Form ctrl in Application.OpenForms) { if (ctrl.Name == "ChatForm") { ((ChatForm)ctrl).BuddyName = buddyId; ((ChatForm)ctrl).LastMessage = message; ctrl.Focus(); return; } } // if not, create new instance ChatForm bf = new ChatForm(SipekResources); int id = CBuddyList.getInstance().getBuddyId(buddyId); if (id >= 0) { //_buddyId = id; CBuddyRecord buddy = CBuddyList.getInstance()[id]; //_titleText.Caption = buddy.FirstName + ", " + buddy.LastName; bf.BuddyId = (int)id; } bf.BuddyName = buddyId; bf.LastMessage = message; bf.ShowDialog(); }
private void buttonOk_Click(object sender, EventArgs e) { CBuddyRecord record; if (BuddyId >= 0) { record = CBuddyList.getInstance().getRecord(BuddyId); CBuddyList.getInstance().deleteRecord(BuddyId); } else { if (textBoxNumber.Text.Length == 0) { return; } record = new CBuddyRecord(); } record.FirstName = textBoxName.Text; //record.LastName = _lname.Caption; record.Number = textBoxNumber.Text; record.PresenceEnabled = checkBoxPresence.Checked; CBuddyList.getInstance().addRecord(record); CBuddyList.getInstance().save(); Close(); }
///////////////////////////////////////////////////////////////////////////////////// /// Buddy List Methods #region Buddy List Methods private void UpdateBuddyList() { if (!IsInitialized) return; Dictionary<int, CBuddyRecord> results = CBuddyList.getInstance().getList(); listViewBuddies.Items.Clear(); foreach (KeyValuePair<int, CBuddyRecord> kvp in results) { string status = "?"; if (kvp.Value.PresenceEnabled) { switch (kvp.Value.Status) { case 0: status = "unknown"; break; case 1: status = "online"; break; case 2: status = "offline"; break; default: status = kvp.Value.StatusText; break; } } ListViewItem item = new ListViewItem(new string[] { kvp.Value.FirstName + kvp.Value.LastName, status, kvp.Value.StatusText }); item.Tag = kvp.Value; //item.BackColor = Color.Blue; listViewBuddies.Items.Add(item); } }
///////////////////////////////////////////////////////////////////////// #region Constructor public static CBuddyList getInstance() { if (_instance == null) { _instance = new CBuddyList(); } return(_instance); }
public static CBuddyList getInstance() { if (_instance == null) { _instance = new CBuddyList(); } return _instance; }
bool deleteLink_Softkey(int keyId) { CBuddyList.getInstance().deleteRecord(BuddyId); CBuddyList.getInstance().save(); _controller.previousPage(); return(true); }
private void toolStripMenuItemRemove_Click(object sender, EventArgs e) { if (listViewBuddies.SelectedItems.Count > 0) { CBuddyRecord item = (CBuddyRecord)listViewBuddies.SelectedItems[0].Tag; CBuddyList.getInstance().deleteRecord(item.Id); UpdateBuddyList(); } }
private void ShutdownVoIP() { if (IsInitialized) { SipekResources.CallLogger.save(); CBuddyList.getInstance().save(); } SipekResources.Configurator.Save(); // shutdown stack SipekResources.CallManager.Shutdown(); }
private void BuddyStateChanged(int buddyId, int status, string text) { CBuddyRecord record = CBuddyList.getInstance()[buddyId]; if (null == record) return; record.Status = status; record.StatusText = text; // update list... UpdateBuddyList(); }
/// <summary> /// /// </summary> private void UpdateCallRegister() { lock (this) { listViewCallRegister.Items.Clear(); // Update Dial field toolStripComboDial.Items.Clear(); Stack <CCallRecord> results = SipekResources.CallLogger.getList(); int cnt = 0; int dialedcnt = 0; foreach (CCallRecord item in results) { string duration = item.Duration.ToString(); if (duration.IndexOf('.') > 0) { duration = duration.Remove(duration.IndexOf('.')); // remove miliseconds } string recorditem = item.Number; CBuddyRecord rec = null; int buddyId = CBuddyList.getInstance().getBuddyId(item.Number); if (buddyId > -1) { string name = ""; rec = CBuddyList.getInstance()[buddyId]; name = rec.FirstName + " " + rec.LastName; name = name.Trim(); recorditem = name + ", " + item.Number; } else if (item.Name.Length > 0) { recorditem = item.Name + ", " + item.Number; } ListViewItem lvi = new ListViewItem(new string[] { item.Type.ToString(), recorditem.Trim(), item.Time.ToString(), duration }); lvi.Tag = item; listViewCallRegister.Items.Insert(cnt, lvi); // add item to dial combo (if dialed) if (item.Type == ECallType.EDialed) { toolStripComboDial.Items.Insert(dialedcnt++, item.Number); } // increase counter cnt++; } } }
private void ChatForm_Shown(object sender, EventArgs e) { // get buddy data form _buddyId CBuddyRecord buddy = CBuddyList.getInstance()[BuddyId]; if (buddy != null) { tabPageChat.Text = "Chat with " + buddy.FirstName; } else { tabPageChat.Text = "Chat with " + BuddyName; } }
public override void onEntry() { base.onEntry(); CBuddyRecord record = CBuddyList.getInstance().getRecord(BuddyId); if (record == null) { return; } _fname.Caption = record.FirstName; _lname.Caption = record.LastName; _number.Caption = record.Number; }
private void sendInstantMessageToolStripMenuItem_Click(object sender, EventArgs e) { if (listViewCallRegister.SelectedItems.Count > 0) { ListViewItem lvi = listViewCallRegister.SelectedItems[0]; CCallRecord record = (CCallRecord)lvi.Tag; int id = CBuddyList.getInstance().getBuddyId(record.Number); if (id > 0) { ChatForm bf = new ChatForm(SipekResources); bf.BuddyId = id; bf.ShowDialog(); } } }
private void BuddyForm_Activated(object sender, EventArgs e) { CBuddyRecord record = CBuddyList.getInstance().getRecord(BuddyId); if (record == null) { return; } textBoxName.Text = record.FirstName; //textBoxName.Caption = record.LastName; textBoxNumber.Text = record.Number; checkBoxPresence.Checked = record.PresenceEnabled; }
bool sendLink_Softkey(int keyId) { if (_buddyId == -1) { return(true); } // get buddy data form _buddyId CBuddyRecord buddy = CBuddyList.getInstance()[_buddyId]; if (buddy != null) { // Invoke SIP stack wrapper function to send message CCallManager.CommonProxy.sendMessage(buddy.Number, _editBox.Caption); } _controller.previousPage(); return(true); }
public override void onEntry() { if (_buddyId != -1) { // get buddy data form _buddyId CBuddyRecord buddy = CBuddyList.getInstance()[_buddyId]; if (buddy != null) { _titleText.Caption = buddy.FirstName + ", " + buddy.LastName; //_buddyName.Caption = buddy.Id; _textBox.Caption = buddy.LastMessage; } } base.onEntry(); }
public override void onEntry() { _list.removeAll(); Dictionary <int, CBuddyRecord> results = CBuddyList.getInstance().getList(); foreach (KeyValuePair <int, CBuddyRecord> kvp in results) { CLink recordLink = new CLink(kvp.Value.FirstName + " " + kvp.Value.LastName); recordLink.subItems[0] = kvp.Value.Id.ToString(); recordLink.Ok += new VoidDelegate(recordLink_Ok); recordLink.Softkey += new BoolIntDelegate(recordLink_Softkey); _list.add(recordLink); } base.onEntry(); }
public override void onEntry() { _buddyId = -1; // parse from string string buddykey = parseFrom(_fromString); int id = CBuddyList.getInstance().getBuddy(buddykey); if (id >= 0) { _buddyId = id; CBuddyRecord buddy = CBuddyList.getInstance()[_buddyId]; _titleText.Caption = buddy.FirstName + ", " + buddy.LastName; } _textBox.Caption = _textString; base.onEntry(); }
bool saveLink_Softkey(int keyId) { CBuddyRecord record; if (BuddyId >= 0) { record = CBuddyList.getInstance().getRecord(BuddyId); CBuddyList.getInstance().deleteRecord(BuddyId); } else { record = new CBuddyRecord(); } record.FirstName = _fname.Caption; record.LastName = _lname.Caption; record.Number = _number.Caption; CBuddyList.getInstance().addRecord(record); CBuddyList.getInstance().save(); _controller.previousPage(); return(true); }
private void MainForm_Load(object sender, EventArgs e) { LoadAudioValues(); // Register callbacks from callcontrol SipekResources.CallManager.CallStateRefresh += onCallStateChanged; SipekResources.CallManager.IncomingCallNotification += new DIncomingCallNotification(CallManager_IncomingCallNotification); // Register callbacks from pjsipWrapper //SipekFactory.getCommonProxy().CallStateChanged += onTelephonyRefresh; SipekResources.Messenger.MessageReceived += onMessageReceived; SipekResources.Messenger.BuddyStatusChanged += onBuddyStateChanged; SipekResources.Registrar.AccountStateChanged += onAccountStateChanged; SipekResources.StackProxy.MessageWaitingIndication += onMessageWaitingIndication; // Initialize and set factory for CallManager int status = SipekResources.CallManager.Initialize(); SipekResources.CallManager.CallLogger = SipekResources.CallLogger; if (status != 0) { (new ErrorDialog("Initialize Error", "Init SIP stack problem! \r\nPlease, check configuration and start again! \r\nStatus code " + status)).ShowDialog(); return; } // initialize Stack int t = SipekResources.Registrar.registerAccounts(); // Initialize BuddyList CBuddyList.getInstance().Messenger = SipekResources.Messenger; CBuddyList.getInstance().initialize(); ////////////////////////////////////////////////////////////////////////// // load settings this.UpdateCallRegister(); // Buddy list this.UpdateBuddyList(); this.UpdateAccountList(); // Set user status toolStripComboBoxUserStatus.SelectedIndex = (int)EUserStatus.AVAILABLE; // scoh::::03.04.2008:::pjsip ISSUE??? At startup codeclist is different as later // set codecs priority... // initialize/reset codecs - enable PCMU and PCMA only int noOfCodecs = SipekResources.StackProxy.getNoOfCodecs(); for (int i = 0; i < noOfCodecs; i++) { string codecname = SipekResources.StackProxy.getCodec(i); if (SipekResources.Configurator.CodecList.Contains(codecname)) { // leave default SipekResources.StackProxy.setCodecPriority(codecname, 128); } else { // disable SipekResources.StackProxy.setCodecPriority(codecname, 0); } } // timer tmr.Interval = 1000; tmr.Tick += new EventHandler(UpdateCallTimeout); }