//-------------------------- 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); }
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)); }
public void Set(LegOut pLegOut) { destIPAddress = IPUtil.ExtractIPAddress(pLegOut.DestIPAndPort); carrierAcctId = pLegOut.CarrierAcctId; carrierBaseRouteId = pLegOut.CarrierBaseRouteId; }