/// <summary>
        /// Create the XML needed to submit Charge request in order to charge a subscriber for a service
        /// We used here the StringBuilder object instead of XML DOM in order to get better performance
        /// </summary>
        /// <param name="TimeStamp">date  time in DDMMYYYYHHMMSS format </param>
        /// <param name="SubsIdType">may be MSISDN or XID or IP</param>
        /// <param name="SubsID">value must be according to SubsIdType</param>
        /// <param name="ServiceCode">Service code</param>
        /// <returns>Request XML</returns>
        
private string MakeChargeXml(string TimeStamp, string SubsIdType, string SubsID, string ServiceCode)
        {
            StringBuilder sb 
= new StringBuilder();
            
sb.Append("<MSG>");
            
sb.Append("<HEADER>");
            
sb.Append("<ACTION>Request</ACTION>");
            
sb.Append("<ACTION_TYPE>Send</ACTION_TYPE>");
            
sb.AppendFormat("<MSG_ID>{0}</MSG_ID>", Guid.NewGuid().ToString("N"));
            
sb.AppendFormat("<TRANSACTION_TS>{0}</TRANSACTION_TS>", TimeStamp);
            
sb.Append("</HEADER>");
            
sb.Append("<BODY>");
            
sb.Append("<REQUEST_TYPE>Charging</REQUEST_TYPE>");
            
sb.Append("<REQUEST_METHOD>Charge</REQUEST_METHOD>");
            
sb.AppendFormat("<SUBS_ID_TYPE>{0}</SUBS_ID_TYPE>", SubsIdType);
            
sb.AppendFormat("<SUBSCRIBER_ID>{0}</SUBSCRIBER_ID>", SubsID);
            
sb.AppendFormat("<SERVICE_CODE>{0}</SERVICE_CODE>", ServiceCode);
            
sb.Append("<REQUEST_PARAMS>");
            
sb.Append("<CHARGING_PARAMETER>");
            
sb.Append("<ITEMS>1</ITEMS>");
            
sb.Append("</CHARGING_PARAMETER>");
            
sb.Append("</REQUEST_PARAMS>");
            
sb.Append("</BODY>");
            
sb.Append("</MSG>");            
            return 
sb.ToString();
        
}