public double isLocalOrLongDistance(CallDetailRecords call_details)
        {
            double originate_number = call_details.getCallingParty();
            double recieve_number   = call_details.getRecievingParty();

            double payment  = 0;
            bool   is_local = true;
            double seconds  = call_details.getSeconds();

            int time_duration = call_details.getCallDuration();

            if ((int)originate_number / 10000000 == (int)recieve_number / 10000000) //local call
            {
                payment += isPeakForLocalCalls(call_details.getStartingTime(), time_duration, is_local) +
                           costForSeconds(call_details.getStartingTime(), time_duration, is_local, seconds);
            }
            else   //long distance call
            {
                payment += isPeakForLocalCalls(call_details.getStartingTime(), time_duration, false) +
                           costForSeconds(call_details.getStartingTime(), time_duration, false, seconds);
            }
            return(payment);
        }
 public void recordCallDetails(CallDetailRecords cdr_details)
 {
     callDetailsRecordMap.Add(unique_call_details, cdr_details);
     unique_call_details++;
 }