コード例 #1
0
        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();
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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();
        }
コード例 #4
0
        /////////////////////////////////////////////////////////////////////////////////////
        /// 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);
            }
        }
コード例 #5
0
 /////////////////////////////////////////////////////////////////////////
 #region Constructor
 public static CBuddyList getInstance()
 {
     if (_instance == null)
     {
         _instance = new CBuddyList();
     }
     return(_instance);
 }
コード例 #6
0
ファイル: phonebook.cs プロジェクト: AngieToro/sipek
 public static CBuddyList getInstance()
 {
     if (_instance == null)
       {
     _instance = new CBuddyList();
       }
       return _instance;
 }
コード例 #7
0
ファイル: menus.cs プロジェクト: erdincay/sipek-1
        bool deleteLink_Softkey(int keyId)
        {
            CBuddyList.getInstance().deleteRecord(BuddyId);
            CBuddyList.getInstance().save();

            _controller.previousPage();
            return(true);
        }
コード例 #8
0
        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();
            }
        }
コード例 #9
0
        private void ShutdownVoIP()
        {
            if (IsInitialized)
            {
                SipekResources.CallLogger.save();
                CBuddyList.getInstance().save();
            }
            SipekResources.Configurator.Save();

            // shutdown stack
            SipekResources.CallManager.Shutdown();
        }
コード例 #10
0
        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();
        }
コード例 #11
0
        /// <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++;
                }
            }
        }
コード例 #12
0
        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;
            }
        }
コード例 #13
0
ファイル: menus.cs プロジェクト: erdincay/sipek-1
        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;
        }
コード例 #14
0
 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();
         }
     }
 }
コード例 #15
0
        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;
        }
コード例 #16
0
ファイル: menus.cs プロジェクト: erdincay/sipek-1
        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);
        }
コード例 #17
0
ファイル: menus.cs プロジェクト: erdincay/sipek-1
        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();
        }
コード例 #18
0
ファイル: menus.cs プロジェクト: erdincay/sipek-1
        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();
        }
コード例 #19
0
ファイル: menus.cs プロジェクト: erdincay/sipek-1
        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();
        }
コード例 #20
0
ファイル: menus.cs プロジェクト: erdincay/sipek-1
        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);
        }
コード例 #21
0
        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);
        }