示例#1
0
 public BComSipPeerResponse CreateSipPeer(BComSipPeerRequest request)
 {
     return(new HTTPS_Interface().CreateSipPeer(request));
 }
        private BComSipPeerResponse CreateNewPeerID(DataTable aviatorData)
        {
            // Create an HTTPS_ Interface.
            HTTPS_Interface httpsInterface = new HTTPS_Interface();

            // Create SipPeer Request
            BComSipPeerRequest request =
                new BComSipPeerRequest();

            request.SipPeer = new SipPeer();

            // Load the request.
            try
            {
                request.SiteID                = this.siteid.ToString();
                request.SipPeer.PeerName      = aviatorData.Rows[0]["BCOM_AcctName"].SafeToString();
                request.SipPeer.Description   = aviatorData.Rows[0]["AcctDescription"].SafeToString();
                request.SipPeer.IsDefaultPeer = "true";
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Failed loading Aviator data into order: " + ex.Message);
            }

            // Special load the voicehost
            string voicehostURL = string.Empty;

            if (aviatorData.Rows[0]["VoiceHost"].SafeToString() == "NATIONAL")
            {
                voicehostURL = Settings.VoiceHostNational;
            }
            else if (aviatorData.Rows[0]["VoiceHost"].SafeToString() == "CORE")
            {
                voicehostURL = Settings.VoiceHostCore;
            }
            else
            {
                throw new ApplicationException(
                          "Failed parsing VoiceHost indicator from Aviator: Value of '" + aviatorData.Rows[0]["VoiceHost"].SafeToString() + "'.");
            }
            request.SipPeer.VoiceHosts = new Host[] { new Host(voicehostURL) };

            // Send the request and get the response.
            BComSipPeerResponse peerResponse =
                httpsInterface.CreateSipPeer(request);

            // Did the request succeed?
            if (peerResponse.Status == "Success")
            {
                // Update Peer information.
                try
                {
                    this.db.UpdateSipPeersTable(request, peerResponse);
                }
                catch (Exception ex)
                {
                    throw new ApplicationException("Failed update the SipPeers table with the new account: " + ex.Message);
                }
            }

            // Return the response.
            return(peerResponse);
        }