static void Main(string[] args) { long field1 = 1; long field2 = 2; long field3 = 55; Cdr d = new Cdr(); d.setInteger(field1, 123); Console.WriteLine(d.toString()); d.setString(field2, "Hello"); d.setString(field3, "World"); Console.WriteLine(d.toString()); Console.WriteLine(d.getInt32(field1)); Console.WriteLine(d.getString(field3)); // this should be a string try { Console.WriteLine(d.getInt32(3)); } catch (Exception e) { Console.WriteLine(e); } Console.WriteLine("done"); }
public override void onModifyAck(ulong seqno, Cdr msg) { this.logger.log(LogSeverity.level.INFO, "onModifyAck msg..."); this.logger.log(LogSeverity.level.INFO, msg.toString()); // cancel order String orderId = msg.getString(codecBinding.OrderID); Cdr cancel = new Cdr(); cancel.setString(codecBinding.OriginalClientOrderID, "myorder1"); cancel.setString(codecBinding.ClientOrderID, "myorder2"); cancel.setString(codecBinding.OrderID, orderId); cancel.setInteger(codecBinding.InstrumentID, 133215); // VOD.L cancel.setInteger(codecBinding.Side, 1); cancel.setString(codecBinding.RfqID, "XXXX"); cancel.setInteger(codecBinding.ReservedField1, 0); cancel.setInteger(codecBinding.ReservedField2, 0); if (!this.gwc.sendCancel(cancel)) { this.logger.log(LogSeverity.level.INFO, "failed to send cancel myorder1..."); } }
public override void onLoggingOn(Cdr msg) { this.logger.log(LogSeverity.level.INFO, "session logging on..."); // set username and password msg.setString(codecBinding.UserName, this.username); msg.setString(codecBinding.Password, this.password); }
public override Loan GenerateInstrument() { var numPaymentsPerYear = (int)TradeInfo.Frequency.ToFrequency().CountPerYear(); var ppm = TradeInfo.AbsPrepaymentModel.ToEnumType <AbsPrepaymentModel>(); var dm = TradeInfo.AbsDefaultModel.ToEnumType <AbsDefaultModel>(); IMortgagePrepayment prepaymentModel; if (ppm == AbsPrepaymentModel.Psa) { prepaymentModel = new Psa(TradeInfo.PsaMultiplier, 0.06, 30, numPaymentsPerYear); } else if (ppm == AbsPrepaymentModel.Cpr) { prepaymentModel = new Cpr(TradeInfo.AnnualCprRate, numPaymentsPerYear); } else { prepaymentModel = new Psa(); } IMortgageDefault defaultModel; if (dm == AbsDefaultModel.Sda) { defaultModel = new Sda(TradeInfo.SdaMultiplier, TradeInfo.RecoveryRate, numPaymentsPerYear); } else if (dm == AbsDefaultModel.Cdr) { defaultModel = new Cdr(TradeInfo.AnnualCdrRate, numPaymentsPerYear, TradeInfo.RecoveryRate); } else { defaultModel = new Sda(); } var mortgageCalcMethod = TradeInfo.MortgageCalcMethod.ToEnumType <MortgageCalcMethod>(); return(new Loan(TradeInfo.StartDate.ToDate(), TradeInfo.MaturityDate.ToDate(), TradeInfo.FirstPaymentDate.ToDate(), TradeInfo.Notional, TradeInfo.NumOfPayment, TradeInfo.DayCount.ToDayCountImpl(), TradeInfo.Frequency.ToFrequency(), TradeInfo.Coupon, TradeInfo.ResetDate.ToDate(), TradeInfo.IsFloatingRate, string.IsNullOrEmpty(TradeInfo.IndexType) ? IndexType.None : TradeInfo.IndexType.ToIndexType(), TradeInfo.FloatingRateMultiplier, TradeInfo.Amortization.ToAmortizationType(), TradeInfo.Currency.ToCurrencyCode(), mortgageCalcMethod == MortgageCalcMethod.Simple ? new SimpleMortgageCalculator(prepaymentModel, defaultModel) : (IMortgageCalculator) new MortgageCalculator(prepaymentModel, defaultModel), TradeInfo.TaxRate )); }
void createNewMonthlyCDRdb() { if (DateTime.Now.Day > 25 && DateTime.Now.Hour == 6 && DateTime.Now.Minute == 5) { try { Cdr.CreateDb(); } catch (Exception _ex) { TimokLogger.Instance.LogRbr(LogSeverity.Critical, "Housekeeper.createNewMonthlyCDRdb", "Create CdrDb, Exception: " + _ex); } } }
int parseCarrier(Cdr pCdr, out CarrierAcct pCarrierAcct, out CarrierRoute pCarrierRoute) { pCarrierAcct = null; pCarrierRoute = null; if (pCdr.CarrierAcctId == 0) { T.LogRbr(LogSeverity.Error, "BillingService.parseCarrier:", "Carrier NOT FOUND, CarrierAcctId=0"); return(1); } try { pCarrierAcct = CarrierAcct.Get(pCdr.CarrierAcctId); if (pCarrierAcct == null) { return(1); } if (CarrierAcct.NumberOfCallsCounter.ContainsKey(pCarrierAcct.Id)) { if (CarrierAcct.NumberOfCallsCounter[pCarrierAcct.Id] > 0) { T.LogRbr(LogSeverity.Debug, "BillingService.parseCarrier:", string.Format("Calls LIMIT stat, CarrierAcct={0}, NumberOfCalls={1}", pCarrierAcct.Id, CustomerAcct.NumberOfCallsCounter[pCarrierAcct.Id])); CarrierAcct.NumberOfCallsCounter[pCarrierAcct.Id] -= 1; } } //-- get carrier route pCarrierRoute = CarrierRoute.Get(pCdr.CarrierAcctId, pCdr.CarrierBaseRouteId); if (pCarrierRoute == null) { T.LogRbr(LogSeverity.Error, "BillingService.parseCarrier:", string.Format("Route NOT FOUND, CarrierAcctId={0}, CarrierBaseRouteId={1}, DestNumber={2}", pCarrierAcct.Id, pCdr.CarrierBaseRouteId, pCdr.DestNumber)); return(1); } pCdr.CarrierRouteName = pCarrierRoute.Name; //-- get term ep var _termEP = (new RoutingService()).GetTermEP(pCdr.TermIP, pCdr.Duration); if (_termEP == null) { T.LogRbr(LogSeverity.Error, "BillingService.parseCarrier:", string.Format("TermEP NOT FOUND={0}", pCdr)); pCdr.TermEPId = 0; return(1); } pCdr.TermEPId = _termEP.Id; } catch (Exception _ex) { T.LogRbr(LogSeverity.Error, "BillingService.parseCarrier:", string.Format("Exception:\r\n{0}", _ex)); return(1); } return(0); }
public static bool Consume(string pFilePath) { bool _result; try { _result = Cdr.DeserializeAndImport(pFilePath); TimokLogger.Instance.LogRbr(LogSeverity.Status, "R_Cdr.Consume", string.Format("Finished, File={0}", pFilePath)); } catch (Exception _ex) { TimokLogger.Instance.LogRbr(LogSeverity.Status, "R_Cdr.Consume", string.Format("File={0}, Exception:\r\n{1}", pFilePath, _ex)); return(false); } return(_result); }
static bool rerateCDR(CDRViewRow_Base pCdrViewRow, IBackgroundWorker pBackgroundWorker) { try { var _customerAcct = CustomerAcct.Get(pCdrViewRow.Customer_acct_id); if (_customerAcct == null) { pBackgroundWorker.ReportStatus(string.Format("ERROR! CustomerAcct NOT FOUND, {0}", pCdrViewRow.Customer_acct_id)); return(false); } var _customerRoute = CustomerRoute.Get(_customerAcct.ServiceId, _customerAcct.RoutingPlanId, pCdrViewRow.Customer_route_id); if (_customerRoute == null) { pBackgroundWorker.ReportStatus(string.Format("ERROR! CustomerRoute NOT FOUND, {0}", pCdrViewRow.Customer_route_id)); return(false); } var _carrierAcct = CarrierAcct.Get(pCdrViewRow.Carrier_acct_id); if (_carrierAcct == null) { pBackgroundWorker.ReportStatus(string.Format("ERROR! CarrierAcct NOT FOUND, {0}", pCdrViewRow.Carrier_acct_id)); return(false); } var _carrierRoute = CarrierRoute.Get(_carrierAcct.Id, pCdrViewRow.Carrier_route_id); if (_carrierRoute == null) { pBackgroundWorker.ReportStatus(string.Format("ERROR! CarrierRoute NOT FOUND, {0}", pCdrViewRow.Carrier_route_id)); return(false); } var _cdr = new Cdr(pCdrViewRow); _customerAcct.RateCall(_customerRoute, ref _cdr); pCdrViewRow.Customer_duration = _cdr.CustomerDuration; pCdrViewRow.Price = _cdr.CustomerPrice; _carrierAcct.RateCall(_carrierRoute, ref _cdr); pCdrViewRow.Carrier_duration = _cdr.CarrierDuration; pCdrViewRow.Cost = _cdr.CarrierCost; } catch (Exception _ex) { pBackgroundWorker.ReportStatus(string.Format("Exception! {0}", _ex.Message)); TimokLogger.Instance.LogRbr(LogSeverity.Critical, "CdrExportController.rerate", string.Format("Exception:\r\n{0}", _ex)); return(false); } return(true); }
string getCustomerRouteMinutesSummary(DateTime pDate) { var _sb = new StringBuilder(); var _customerRouteMinutesSummaries = Cdr.GetCustomerRouteMinutesSummaries(TimokDate.ParseToShortTimokDate(pDate)); _sb.Append("Inbound Country Summary (Minutes)\r\n"); _sb.Append("-------------------------------------------------------\r\n"); decimal _totalMinutes = 0; foreach (var _routeMinutesSummary in _customerRouteMinutesSummaries) { _sb.Append(_routeMinutesSummary.Name + ":" + "\t\t\t" + _routeMinutesSummary.Minutes.ToString("0.00") + "\r\n"); _totalMinutes = decimal.Add(_totalMinutes, _routeMinutesSummary.Minutes); } _sb.Append("\r\n" + "Total Minutes:\t\t" + _totalMinutes.ToString("0.00") + "\r\n\r\n"); return(_sb.ToString()); }
int parseCustomer(Cdr pCdr, out CustomerAcct pCustomerAcct, out CustomerRoute pCustomerRoute) { var _result = 0; pCustomerAcct = null; pCustomerRoute = null; try { pCustomerAcct = pCdr.CustomerAcctId > 0 ? CustomerAcct.Get(pCdr.CustomerAcctId) : CustomerAcct.Get(pCdr.DNIS); if (CustomerAcct.NumberOfCallsCounter.ContainsKey(pCustomerAcct.Id)) { if (CustomerAcct.NumberOfCallsCounter[pCustomerAcct.Id] > 0) { T.LogRbr(LogSeverity.Debug, "BillingService.parseCustomer:", string.Format("Calls LIMIT stat, CustomerAcct={0}, NumberOfCalls={1}", pCustomerAcct.Id, CustomerAcct.NumberOfCallsCounter[pCustomerAcct.Id])); CustomerAcct.NumberOfCallsCounter[pCustomerAcct.Id] -= 1; } } //-- get customer route pCustomerRoute = CustomerRoute.Get(pCustomerAcct.ServiceId, pCustomerAcct.RoutingPlanId, pCdr.CustomerBaseRouteId); if (pCustomerRoute == null) { T.LogRbr(LogSeverity.Debug, "BillingService.parseCustomer:", string.Format("Didn't find CustomerRoute by CustomerRouteId={0}", pCdr.CustomerBaseRouteId)); try { pCustomerRoute = CustomerRoute.Get(pCustomerAcct.ServiceId, pCustomerAcct.CallingPlanId, pCustomerAcct.RoutingPlanId, pCdr.DestNumber); } catch { } if (pCustomerRoute == null) { T.LogRbr(LogSeverity.Debug, "BillingService.parseCustomer:", string.Format("Didn't find CustomerRoute by ServiceId={0}, CallingPlanId={1}, DestNumber={2}", pCustomerAcct.ServiceId, pCustomerAcct.CallingPlanId, pCdr.DestNumber)); return(++_result); } } } catch (RbrException _ex) { T.LogRbr(LogSeverity.Error, "BillingService.parseCustomer:", string.Format("Exception:\r\n{0}", _ex.Message)); return(1); } catch (Exception _ex) { T.LogRbr(LogSeverity.Error, "BillingService.parseCustomer:", string.Format("Exception:\r\n{0}", _ex)); return(1); } return(_result); }
/// <summary> /// ---------------------------------------------------------------------------------------- /// </summary> public bool CallComplete(string pGuid, string pCallId, string pCdr) { var _result = 0; Cdr _cdr = null; try { var _currentNode = new CurrentNode(); if (_currentNode.IsSIP) { logger.LogRbr(LogSeverity.Status, CALL_COMPLETE_LABEL, string.Format("Request: Cdr={0}|{1}", pCallId, pCdr)); } _cdr = new Cdr(pGuid, pCdr, false); var _billingService = new BillingService(configuration, logger); _result = _billingService.ProcessCallComplete(_cdr); _result += _cdr.Insert(); if (_currentNode.IsSIP) { logger.LogRbr(LogSeverity.Status, CALL_COMPLETE_LABEL, string.Format("Response: {0}", _result == 0)); } } catch (RbrException _rbrex) { logger.LogRbr(LogSeverity.Error, CALL_COMPLETE_LABEL, string.Format("RbrException, from: {0}, {1}", _rbrex.Source, _rbrex.Message)); } catch (Exception _ex) { logger.LogRbr(LogSeverity.Critical, CALL_COMPLETE_LABEL, string.Format("Exception:\r\n{0}", _ex)); } finally { if (_cdr != null) { cdrAggrExporter.OnCallComplete(_cdr); } } return(_result == 0); }
string getEndpointAsrSummary(DateTime pDate) { var _sb = new StringBuilder(); var _endpointASRList = Cdr.GetTermEndpointsASR(TimokDate.ParseToShortTimokDate(pDate)); _sb.Append("\r\nTerminating TG ASR (All/Connected)\r\n"); _sb.Append("-------------------------------------------------------\r\n"); var _totalCalls = 0; var _totalConectedCalls = 0; foreach (var _endpointASR in _endpointASRList) { _sb.Append(_endpointASR.Alias); _sb.Append(" [TG" + _endpointASR.EndpointId + "]:" + "\t\t\t" + calculateTotalASR(_endpointASR.Calls, _endpointASR.ConnectedCalls) + "\t\t\t(" + _endpointASR.Calls + "/" + _endpointASR.ConnectedCalls + ")\r\n"); //_sb.Append(" [TG" + _endpointAsr.EndpointId + "]:" + "\t\t\t" + _endpointAsr.Asr.ToString("0%") + "\t\t\t(" + _endpointAsr.Calls + "/" + _endpointAsr.ConnectedCalls + ")\r\n"); _totalCalls += _endpointASR.Calls; _totalConectedCalls += _endpointASR.ConnectedCalls; } _sb.Append("\r\n" + "Total:\t\t\t" + calculateTotalASR(_totalCalls, _totalConectedCalls) + "\t\t\t(" + _totalCalls + "/" + _totalConectedCalls + ")\r\n"); return(_sb.ToString()); }
static void Main(string[] args) { Cdr d = new Cdr(); d.setString(codecBinding.MessageType, "A"); d.setString(codecBinding.UserName, "username"); d.setString(codecBinding.Password, "password"); d.setString(codecBinding.NewPassword, "password1"); d.setInteger(codecBinding.MessageVersion, 0); Console.WriteLine(d.toString()); CodecFactory cf = new CodecFactory(); Codec lseCodec = cf.getCodec("lse"); Neueda.Codecs.Buffer b = lseCodec.encode(d); Console.WriteLine(b); Cdr decoded = lseCodec.decodeBuffer(b).getCdr(); Console.WriteLine(decoded.toString()); }
private void GetRecordDataByEmpid(string empid) { if (object.Equals(iconnection, null)) { //以后加入log功能 throw new Exception("实例化接口失败!"); } string sql = @"select t.id, t.name, t.create_tiem, t.data_id from rcd_inpatient_record t where t.inpatient_record_set_id = (select b.id from rcd_inpatient_record_set b where b.inpatient_id = (select a.id from vhis_inpatientinfo a where a.empi_id = '{0}'))"; sql = string.Format(sql, empid); DataSet dtSet = new DataSet(); DataTable dtTabel = new DataTable(); dtSet = iconnection.ExcuteQuerySql(sql); if (object.Equals(dtSet, null) && dtSet.Tables.Count > 0) { dtTabel = dtSet.Tables[0] as DataTable; List <Cdr> cdrList = new List <Cdr>(); for (int i = 0; i < dtTabel.Rows.Count; i++) { Cdr cdrinfo = new Cdr(); DataRow dtR = dtTabel.Rows[i]; cdrinfo.RecordId = dtR[0].ToString(); cdrinfo.RecordName = dtR[1].ToString(); } //dtConfirmExec.PrimaryKey = new DataColumn[] { dtConfirmExec.Columns["EXEC_SQN"] }; } }
public override void onOrderAck(ulong seqno, Cdr msg) { this.logger.log(LogSeverity.level.INFO, "onOrderAck msg..."); this.logger.log(LogSeverity.level.INFO, msg.toString()); // get order id from ack String orderId = msg.getString(codecBinding.OrderID); // send modify Cdr modify = new Cdr(); modify.setString(codecBinding.OriginalClientOrderID, "myorder"); modify.setString(codecBinding.ClientOrderID, "myorder1"); modify.setString(codecBinding.OrderID, orderId); modify.setInteger(codecBinding.InstrumentID, 133215); // VOD.L modify.setInteger(codecBinding.OrderQty, 2000); modify.setInteger(codecBinding.OrderType, 2); modify.setDouble(codecBinding.LimitPrice, 1234.56); modify.setInteger(codecBinding.Side, 1); modify.setString(codecBinding.Account, "account"); modify.setInteger(codecBinding.ExpireDateTime, 0); modify.setInteger(codecBinding.DisplayQty, 0); modify.setDouble(codecBinding.StopPrice, 0.0); modify.setInteger(codecBinding.PassiveOnlyOrder, 0); modify.setInteger(codecBinding.ClientID, 1234); modify.setInteger(codecBinding.MinimumQuantity, 0); modify.setInteger(codecBinding.PassiveOnlyOrder, 0); modify.setInteger(codecBinding.ReservedField1, 0); modify.setInteger(codecBinding.ReservedField2, 0); modify.setInteger(codecBinding.ReservedField3, 0); modify.setInteger(codecBinding.ReservedField4, 0); if (!this.gwc.sendModify(modify)) { this.logger.log(LogSeverity.level.ERROR, "failed to send modify"); } }
/// <summary> /// ---------------------------------------------------------------------------------------- /// </summary> public int ProcessCallComplete(Cdr pCdr) { //-- Get OrigEP var _origEP = Endpoint.Get(pCdr.OrigIP); if (_origEP == null) { T.LogRbr(LogSeverity.Critical, "ProcessCallComplete:", string.Format("Endpoint NOT FOUND, IP={0}", pCdr.OrigIP)); return(1); } pCdr.OrigEPId = _origEP.Id; //-- Remove prefix and '011' from destination number if (_origEP.WithPrefixes) { pCdr.PrefixIn = _origEP.GetPrefixIn(pCdr.DestNumber); if (pCdr.PrefixIn.Length > 0) { pCdr.DestNumber = pCdr.DestNumber.Substring(pCdr.PrefixIn.Length); } } pCdr.LocalNumber = pCdr.DestNumber; if (pCdr.DestNumber.StartsWith(AppConstants.ZeroOneOne)) { pCdr.DestNumber = pCdr.DestNumber.Substring(3); } //-- get carrier acct, termEp and route int _result = 0; CarrierRoute _carrierRoute = null; CarrierAcct _carrierAcct = null; if (_result == 0) { _result = parseCarrier(pCdr, out _carrierAcct, out _carrierRoute); } //-- Get CustomerAcct and route CustomerRoute _customerRoute = null; CustomerAcct _customerAcct = null; if (pCdr.CustomerAcctId > 0 || pCdr.DNIS > 0) { _result = parseCustomer(pCdr, out _customerAcct, out _customerRoute); if (_customerRoute != null) { pCdr.CountryCode = _customerRoute.CountryCode; pCdr.CustomerRouteName = _customerRoute.Name; pCdr.LocalNumber = pCdr.DestNumber.Substring(_customerRoute.CountryCode.ToString().Length); } } else { _result++; } //-- extract prefix-out if (_carrierAcct != null && !string.IsNullOrEmpty(_carrierAcct.PrefixOut)) { pCdr.PrefixOut = _carrierAcct.PrefixOut; } else if (_customerAcct != null && !string.IsNullOrEmpty(_customerAcct.PrefixOut)) { pCdr.PrefixOut = _customerAcct.PrefixOut; } //-- do rating, debiting if (_carrierAcct != null && _customerAcct != null && pCdr.Duration > 0 && _result == 0) { _result += _carrierAcct.RateCall(_carrierRoute, ref pCdr); _result += _customerAcct.RateCall(_customerRoute, ref pCdr); if (_customerAcct.IsPrepaid) { _customerAcct.Debit(pCdr.CustomerPrice); } } //-- always do Retail RetailAcct and SubAcct status needs to be reset to 'Active' var _retailAcct = RetailAccount.Get(_customerAcct, pCdr, configuration, T); if (_retailAcct != null && _customerRoute != null) { _result += _retailAcct.Rate(_customerRoute, ref pCdr); if (_retailAcct.IsPrepaid && pCdr.RetailPrice > decimal.Zero) { _retailAcct.Debit(pCdr.RetailPrice, pCdr.UsedBonusMinutes); } } //-- Write to text file if (configuration.Main.LogCdrToFile) { _result += dualFileWriter.WriteLine(pCdr.Export()); } return(_result); }
/// <summary> /// Returns a record from the CDR table /// </summary> /// <param name="nodeId">Id of Node</param> /// <param name="chanId">Id of Channel</param> /// <returns>CDR data record</returns> public Cdr GetRecord(int nodeId, string chanId) { var cdr = new Cdr(); using (var connection = new NpgsqlConnection(Setup.ConnectionStringVoipTest)) { using (var command = new NpgsqlCommand()) { command.CommandText = @"SELECT id, sqltime, yatetime, billid, chan, host(address), port, caller, callername, called, status, reason, ended, gateway_account_id, gateway_ip_id, customer_ip_id, gateway_price_per_min, gateway_price_total, gateway_currency::TEXT, gateway_price_id, customer_price_per_min, customer_price_total, customer_currency::TEXT, customer_price_id, dialcode_master_id, node_id, billed_on, gateway_id, customer_id, format, formats, rtp_address, sqltime_end, tech_called, rtp_port, trackingid, billtime, ringtime, duration, direction::TEXT, cause_q931, routing_waiting_time, routing_processing_time, error, cause_sip, sip_user_agent, sip_x_asterisk_hangupcause, sip_x_asterisk_hangupcausecode, responsetime, rtp_packets_sent, rtp_octets_sent, rtp_packets_received, rtp_octets_received, rtp_packet_loss, rtp_forward FROM cdr WHERE node_id = @nodeid AND chan = @chan AND sqltime > NOW() - INTERVAL '3 hours';"; command.Connection = connection; command.CommandType = System.Data.CommandType.Text; command.Parameters.Add("nodeid", NpgsqlDbType.Integer).Value = nodeId; command.Parameters.Add("chan", NpgsqlDbType.Text).Value = chanId; try { connection.Open(); using (var reader = command.ExecuteReader()) { if (reader.HasRows) { int i = -1; reader.Read(); cdr.Id = reader.GetInt64(++i); cdr.SqlTime = reader.GetTimeStamp(++i).ToDateTime(); cdr.YateTime = reader.GetDecimal(++i); cdr.BillId = reader.GetString(++i); cdr.Chan = reader.GetString(++i); cdr.Address = reader.GetString(++i); cdr.Port = reader.GetInt32(++i); cdr.Caller = reader.GetString(++i); cdr.Callername = reader.GetString(++i); cdr.Called = reader.GetString(++i); cdr.Status = reader.GetString(++i); cdr.Reason = reader.GetString(++i); cdr.Ended = reader.GetBoolean(++i); if (!reader.IsDBNull(++i)) { cdr.GatewayAccountId = reader.GetInt32(i); } if (!reader.IsDBNull(++i)) { cdr.GatewayIpId = reader.GetInt32(i); } if (!reader.IsDBNull(++i)) { cdr.CustomerIpId = reader.GetInt32(i); } if (!reader.IsDBNull(++i)) { cdr.GatewayPricePerMin = reader.GetDecimal(i); } if (!reader.IsDBNull(++i)) { cdr.GatewayPriceTotal = reader.GetDecimal(i); } if (!reader.IsDBNull(++i)) { cdr.GatewayCurrency = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.GatewayPriceId = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.CustomerPricePerMin = reader.GetDecimal(i); } if (!reader.IsDBNull(++i)) { cdr.CustomerPriceTotal = reader.GetDecimal(i); } if (!reader.IsDBNull(++i)) { cdr.CustomerCurrency = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.CustomerPriceId = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.DialcodeMasterId = reader.GetInt32(i); } cdr.NodeId = reader.GetInt32(++i); if (!reader.IsDBNull(++i)) { cdr.BilledOn = reader.GetTimeStamp(i).ToDateTime(); } if (!reader.IsDBNull(++i)) { cdr.GatewayId = reader.GetInt32(i); } if (!reader.IsDBNull(++i)) { cdr.CustomerId = reader.GetInt32(i); } if (!reader.IsDBNull(++i)) { cdr.Format = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.Formats = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.RTPAddress = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.SqlTimeEnd = reader.GetTimeStamp(i).ToDateTime(); } if (!reader.IsDBNull(++i)) { cdr.TechCalled = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.RTPPort = reader.GetInt32(i); } if (!reader.IsDBNull(++i)) { cdr.TrackingId = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.BillTime = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.Ringtime = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.Duration = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.Direction = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.CauseQ931 = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.RoutingWaitingTime = reader.GetInt32(i); } if (!reader.IsDBNull(++i)) { cdr.RoutingProcessingTime = reader.GetInt32(i); } if (!reader.IsDBNull(++i)) { cdr.Error = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.CauseSIP = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.SIPUserAgent = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.SIPXAsteriskHangupCause = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.SIPXAsteriskHangupCauseCode = reader.GetString(i); } if (!reader.IsDBNull(++i)) { cdr.ResponseTime = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.RTPPacketsSent = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.RTPOctetsSent = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.RTPPacketsReceived = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.RTPOctetsReceived = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.RTPPacketLoss = reader.GetInt64(i); } if (!reader.IsDBNull(++i)) { cdr.RTPForward = reader.GetBoolean(i); } } } } catch { throw; } finally { connection.Close(); } } } return(cdr); }
public override void onCancelRejected(ulong seqno, Cdr msg) { this.logger.log(LogSeverity.level.INFO, "onCacnelRejected msg..."); this.logger.log(LogSeverity.level.INFO, msg.toString()); }
public override void onLoggedOff(ulong seqno, Cdr msg) { this.logger.log(LogSeverity.level.INFO, "session logged off..."); }
public override void onAdmin(ulong seqno, Cdr msg) { this.logger.log(LogSeverity.level.INFO, "onAdmin msg..."); this.logger.log(LogSeverity.level.INFO, msg.toString()); }