Ejemplo n.º 1
0
        void manager_DialBegin(object sender, DialBeginEvent e)
        {
            string   srtAnumber = e.Attributes["destcalleridnum"].ToString();
            string   strBnumber = e.DialString;
            DateTime dtRingTime = e.DateReceived;
            string   sUnique    = e.DestUniqueId;

            this.Invoke((MethodInvoker) delegate
            {
                int index = this.dataGridView1.Rows.Add();
                this.dataGridView1.Rows[index].Cells["A number"].Value    = srtAnumber;
                this.dataGridView1.Rows[index].Cells["B number"].Value    = strBnumber;
                this.dataGridView1.Rows[index].Cells["B ring time"].Value = dtRingTime;
                this.dataGridView1.Rows[index].Cells["uniqueID"].Value    = sUnique;

                this.dataGridView1.Rows[index].HeaderCell.Value = String.Format("{0}", index + 1);

                //this.dataGridView1.Refresh();
            });

            return;
        }
Ejemplo n.º 2
0
        private async void Manager_DialBegin(object sender, DialBeginEvent e)
        {
            Console.WriteLine(e);
            var destinationNumber = e.DialString.Replace("@asterisk", "").Replace("810", "+");
            var callerNumber      = e.CallerIdNum.Replace("810", "+").Replace("@asterisk", "");



            string   bitrixInnnerPhone = string.Empty;
            string   crmNumber         = string.Empty;
            CallType callType          = CallType.Outgoing;
            bool     localCall         = destinationNumber.Length == 3 && callerNumber.Length == 3;

            if (localCall)
            {
                return;
            }

            bool incoming = destinationNumber.Length == 3;

            if (incoming)
            {
                bitrixInnnerPhone = destinationNumber;
                crmNumber         = callerNumber;
                callType          = CallType.Incoming;
            }
            else
            {
                bitrixInnnerPhone = callerNumber;
                crmNumber         = destinationNumber;
            }


            var result = await restApi.SearchCRM(crmNumber);

            var userId = await restApi.GetUserIdByInternalPhone(bitrixInnnerPhone);

            CallInfo obj = new CallInfo
            {
                DestinationNumber = destinationNumber,
                CallerNumber      = callerNumber,
                BitrixUserId      = userId,
                CallStatusCode    = (int)CallStatusCode.NOANSWER
            };

            keys.Add(e.UniqueId, obj);

            var contactExist = result.result.Any();

            obj.BitrixCallId = await restApi.ExternalCallRegister(new B24ExternalCallModel.ExternalCallDataModel
            {
                USER_PHONE_INNER           = crmNumber,
                USER_ID                    = userId,
                SHOW                       = 1,
                TYPE                       = (int)callType,
                CRM_CREATE                 = contactExist ? 0 : 1,
                CRM_ENTITY_TYPE            = contactExist ? result.result[0].CRM_ENTITY_TYPE : "CONTACT",
                CRM_ENTITY_ID              = contactExist ? result.result[0].CRM_ENTITY_TYPE : null,
                CALL_START_DATE            = obj.CallStartDate,
                PHONE_NUMBER               = crmNumber,
                PHONE_NUMBER_INTERNATIONAL = crmNumber
            });
        }