Пример #1
0
        //-------------------------- Private ---------------------------------------------
        List <LegOut> getLegOutOptions(CustomerAcct pCustomerAcct, string pDestNumber, IEnumerable <TerminationInfo> pTermInfoList, int pTimeLimit)
        {
            var _legOutOptions = new List <LegOut>();

            foreach (var _termInfo in pTermInfoList)
            {
                var _destNumber = rewriteDestNumber(pCustomerAcct, _termInfo.TermCarrier.IntlDialCode, _termInfo.TermCarrier.PrefixOut, _termInfo.TermCarrier.Strip1Plus, pDestNumber);

                var _customHeader = string.Empty;
                if (_termInfo.TermCarrier.PartnerName.IndexOf(AppConstants.IMT) > 0)
                {
                    _customHeader = pCustomerAcct.PartnerName.Substring(0, pCustomerAcct.PartnerName.Length > 48 ? 48 : pCustomerAcct.PartnerName.Length);
                    _customHeader = Configuration.Instance.Main.CustomHeaderSourceName + _customHeader;
                }

                var _timeLimit = pTimeLimit;
                if (pTimeLimit > _termInfo.TermCarrier.MaxCallLength)
                {
                    _timeLimit = _termInfo.TermCarrier.MaxCallLength;
                    TimokLogger.Instance.LogRbr(LogSeverity.Status, "RbrDispatcher.Authorize", string.Format("Max Call Time Limited by CarrierAcctId={0}, TimeLimit={1}", _termInfo.TermCarrier.Id, _timeLimit));
                }

                var _legOut = new LegOut {
                    DestNumber         = _destNumber,
                    DestIPAndPort      = _termInfo.TermEP.IPAddressRangeAndPort,
                    CarrierBaseRouteId = _termInfo.TermRoute.BaseRouteId,
                    CarrierAcctId      = _termInfo.TermCarrier.Id,
                    CustomHeader       = _customHeader,
                    TimeLimit          = _timeLimit
                };
                _legOutOptions.Add(_legOut);
            }
            return(_legOutOptions);
        }
Пример #2
0
        public CallState OnConnecting(LegIn pLegIn, LegOut pLegOut)
        {
            cdrAggrExporter.OnCallSetup(string.Empty, pLegOut.CarrierAcctId,
                                        pLegOut.CarrierBaseRouteId,
                                        pLegIn.CustomerAcctId,
                                        pLegIn.CustomerRouteId,
                                        IPUtil.ExtractIPAddress(pLegIn.IPAndPort),
                                        IPUtil.ExtractIPAddress(pLegOut.DestIPAndPort));

            return(callStatistics.OnConnecting(pLegIn, pLegOut));
        }
Пример #3
0
 public void Set(LegOut pLegOut)
 {
     destIPAddress      = IPUtil.ExtractIPAddress(pLegOut.DestIPAndPort);
     carrierAcctId      = pLegOut.CarrierAcctId;
     carrierBaseRouteId = pLegOut.CarrierBaseRouteId;
 }