adding to Lync2010 : Enterprise Voice, Archiving Policy, Dial Plan, Voice Policy
This commit is contained in:
parent
e9d4b44fd1
commit
c41abafe5d
29 changed files with 1934 additions and 356 deletions
|
@ -454,3 +454,324 @@ GO
|
||||||
-- add Application Pools Restart Quota
|
-- add Application Pools Restart Quota
|
||||||
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (411, 2, 13, N'Web.AppPoolsRestart', N'Application Pools Restart', 1, 0, NULL, NULL)
|
INSERT [dbo].[Quotas] ([QuotaID], [GroupID], [QuotaOrder], [QuotaName], [QuotaDescription], [QuotaTypeID], [ServiceQuota], [ItemTypeID], [HideQuota]) VALUES (411, 2, 13, N'Web.AppPoolsRestart', N'Application Pools Restart', 1, 0, NULL, NULL)
|
||||||
GO
|
GO
|
||||||
|
|
||||||
|
-- Lync Enterprise Voice
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
ALTER TABLE [dbo].[LyncUserPlans] ADD
|
||||||
|
|
||||||
|
[RemoteUserAccess] [bit] NOT NULL DEFAULT 0,
|
||||||
|
[PublicIMConnectivity] [bit] NOT NULL DEFAULT 0,
|
||||||
|
|
||||||
|
[AllowOrganizeMeetingsWithExternalAnonymous] [bit] NOT NULL DEFAULT 0,
|
||||||
|
|
||||||
|
[Telephony] [int] NULL,
|
||||||
|
|
||||||
|
[ServerURI] [nvarchar](300) NULL,
|
||||||
|
|
||||||
|
[ArchivePolicy] [nvarchar](300) NULL,
|
||||||
|
[TelephonyDialPlanPolicy] [nvarchar](300) NULL,
|
||||||
|
[TelephonyVoicePolicy] [nvarchar](300) NULL
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
|
Go
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
DROP PROCEDURE GetLyncUserPlan;
|
||||||
|
|
||||||
|
DROP PROCEDURE AddLyncUserPlan;
|
||||||
|
|
||||||
|
DROP PROCEDURE UpdateLyncUserPlan;
|
||||||
|
|
||||||
|
DROP PROCEDURE DeleteLyncUserPlan;
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'DeleteLyncUserPlan')
|
||||||
|
BEGIN
|
||||||
|
EXEC sp_executesql N'CREATE PROCEDURE [dbo].[DeleteLyncUserPlan]
|
||||||
|
(
|
||||||
|
@LyncUserPlanId int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
-- delete lyncuserplan
|
||||||
|
DELETE FROM LyncUserPlans
|
||||||
|
WHERE LyncUserPlanId = @LyncUserPlanId
|
||||||
|
|
||||||
|
RETURN'
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'UpdateLyncUserPlan')
|
||||||
|
BEGIN
|
||||||
|
EXEC sp_executesql N' CREATE PROCEDURE [dbo].[UpdateLyncUserPlan]
|
||||||
|
(
|
||||||
|
@LyncUserPlanId int,
|
||||||
|
@LyncUserPlanName nvarchar(300),
|
||||||
|
@LyncUserPlanType int,
|
||||||
|
@IM bit,
|
||||||
|
@Mobility bit,
|
||||||
|
@MobilityEnableOutsideVoice bit,
|
||||||
|
@Federation bit,
|
||||||
|
@Conferencing bit,
|
||||||
|
@EnterpriseVoice bit,
|
||||||
|
@VoicePolicy int,
|
||||||
|
@IsDefault bit,
|
||||||
|
|
||||||
|
@RemoteUserAccess bit,
|
||||||
|
@PublicIMConnectivity bit,
|
||||||
|
|
||||||
|
@AllowOrganizeMeetingsWithExternalAnonymous bit,
|
||||||
|
|
||||||
|
@Telephony int,
|
||||||
|
|
||||||
|
@ServerURI nvarchar(300),
|
||||||
|
|
||||||
|
@ArchivePolicy nvarchar(300),
|
||||||
|
|
||||||
|
@TelephonyDialPlanPolicy nvarchar(300),
|
||||||
|
@TelephonyVoicePolicy nvarchar(300)
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
UPDATE LyncUserPlans SET
|
||||||
|
LyncUserPlanName = @LyncUserPlanName,
|
||||||
|
LyncUserPlanType = @LyncUserPlanType,
|
||||||
|
IM = @IM,
|
||||||
|
Mobility = @Mobility,
|
||||||
|
MobilityEnableOutsideVoice = @MobilityEnableOutsideVoice,
|
||||||
|
Federation = @Federation,
|
||||||
|
Conferencing =@Conferencing,
|
||||||
|
EnterpriseVoice = @EnterpriseVoice,
|
||||||
|
VoicePolicy = @VoicePolicy,
|
||||||
|
IsDefault = @IsDefault,
|
||||||
|
|
||||||
|
RemoteUserAccess = @RemoteUserAccess,
|
||||||
|
PublicIMConnectivity = @PublicIMConnectivity,
|
||||||
|
|
||||||
|
AllowOrganizeMeetingsWithExternalAnonymous = @AllowOrganizeMeetingsWithExternalAnonymous,
|
||||||
|
|
||||||
|
Telephony = @Telephony,
|
||||||
|
|
||||||
|
ServerURI = @ServerURI,
|
||||||
|
|
||||||
|
ArchivePolicy = @ArchivePolicy,
|
||||||
|
TelephonyDialPlanPolicy = @TelephonyDialPlanPolicy,
|
||||||
|
TelephonyVoicePolicy = @TelephonyVoicePolicy
|
||||||
|
|
||||||
|
WHERE LyncUserPlanId = @LyncUserPlanId
|
||||||
|
|
||||||
|
|
||||||
|
RETURN'
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'AddLyncUserPlan')
|
||||||
|
BEGIN
|
||||||
|
EXEC sp_executesql N'CREATE PROCEDURE [dbo].[AddLyncUserPlan]
|
||||||
|
(
|
||||||
|
@LyncUserPlanId int OUTPUT,
|
||||||
|
@ItemID int,
|
||||||
|
@LyncUserPlanName nvarchar(300),
|
||||||
|
@LyncUserPlanType int,
|
||||||
|
@IM bit,
|
||||||
|
@Mobility bit,
|
||||||
|
@MobilityEnableOutsideVoice bit,
|
||||||
|
@Federation bit,
|
||||||
|
@Conferencing bit,
|
||||||
|
@EnterpriseVoice bit,
|
||||||
|
@VoicePolicy int,
|
||||||
|
@IsDefault bit,
|
||||||
|
|
||||||
|
@RemoteUserAccess bit,
|
||||||
|
@PublicIMConnectivity bit,
|
||||||
|
|
||||||
|
@AllowOrganizeMeetingsWithExternalAnonymous bit,
|
||||||
|
|
||||||
|
@Telephony int,
|
||||||
|
|
||||||
|
@ServerURI nvarchar(300),
|
||||||
|
|
||||||
|
@ArchivePolicy nvarchar(300),
|
||||||
|
@TelephonyDialPlanPolicy nvarchar(300),
|
||||||
|
@TelephonyVoicePolicy nvarchar(300)
|
||||||
|
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IF (((SELECT Count(*) FROM LyncUserPlans WHERE ItemId = @ItemID) = 0) AND (@LyncUserPlanType=0))
|
||||||
|
BEGIN
|
||||||
|
SET @IsDefault = 1
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
IF ((@IsDefault = 1) AND (@LyncUserPlanType=0))
|
||||||
|
BEGIN
|
||||||
|
UPDATE LyncUserPlans SET IsDefault = 0 WHERE ItemID = @ItemID
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
|
||||||
|
INSERT INTO LyncUserPlans
|
||||||
|
(
|
||||||
|
ItemID,
|
||||||
|
LyncUserPlanName,
|
||||||
|
LyncUserPlanType,
|
||||||
|
IM,
|
||||||
|
Mobility,
|
||||||
|
MobilityEnableOutsideVoice,
|
||||||
|
Federation,
|
||||||
|
Conferencing,
|
||||||
|
EnterpriseVoice,
|
||||||
|
VoicePolicy,
|
||||||
|
IsDefault,
|
||||||
|
|
||||||
|
RemoteUserAccess,
|
||||||
|
PublicIMConnectivity,
|
||||||
|
|
||||||
|
AllowOrganizeMeetingsWithExternalAnonymous,
|
||||||
|
|
||||||
|
Telephony,
|
||||||
|
|
||||||
|
ServerURI,
|
||||||
|
|
||||||
|
ArchivePolicy,
|
||||||
|
TelephonyDialPlanPolicy,
|
||||||
|
TelephonyVoicePolicy
|
||||||
|
|
||||||
|
)
|
||||||
|
VALUES
|
||||||
|
(
|
||||||
|
@ItemID,
|
||||||
|
@LyncUserPlanName,
|
||||||
|
@LyncUserPlanType,
|
||||||
|
@IM,
|
||||||
|
@Mobility,
|
||||||
|
@MobilityEnableOutsideVoice,
|
||||||
|
@Federation,
|
||||||
|
@Conferencing,
|
||||||
|
@EnterpriseVoice,
|
||||||
|
@VoicePolicy,
|
||||||
|
@IsDefault,
|
||||||
|
|
||||||
|
@RemoteUserAccess,
|
||||||
|
@PublicIMConnectivity,
|
||||||
|
|
||||||
|
@AllowOrganizeMeetingsWithExternalAnonymous,
|
||||||
|
|
||||||
|
@Telephony,
|
||||||
|
|
||||||
|
@ServerURI,
|
||||||
|
|
||||||
|
@ArchivePolicy,
|
||||||
|
@TelephonyDialPlanPolicy,
|
||||||
|
@TelephonyVoicePolicy
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
SET @LyncUserPlanId = SCOPE_IDENTITY()
|
||||||
|
|
||||||
|
RETURN'
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
--
|
||||||
|
|
||||||
|
|
||||||
|
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type_desc = N'SQL_STORED_PROCEDURE' AND name = N'GetLyncUserPlan')
|
||||||
|
BEGIN
|
||||||
|
EXEC sp_executesql N'CREATE PROCEDURE [dbo].[GetLyncUserPlan]
|
||||||
|
(
|
||||||
|
@LyncUserPlanId int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
LyncUserPlanId,
|
||||||
|
ItemID,
|
||||||
|
LyncUserPlanName,
|
||||||
|
LyncUserPlanType,
|
||||||
|
IM,
|
||||||
|
Mobility,
|
||||||
|
MobilityEnableOutsideVoice,
|
||||||
|
Federation,
|
||||||
|
Conferencing,
|
||||||
|
EnterpriseVoice,
|
||||||
|
VoicePolicy,
|
||||||
|
IsDefault,
|
||||||
|
|
||||||
|
RemoteUserAccess,
|
||||||
|
PublicIMConnectivity,
|
||||||
|
|
||||||
|
AllowOrganizeMeetingsWithExternalAnonymous,
|
||||||
|
|
||||||
|
Telephony,
|
||||||
|
|
||||||
|
ServerURI,
|
||||||
|
|
||||||
|
ArchivePolicy,
|
||||||
|
TelephonyDialPlanPolicy,
|
||||||
|
TelephonyVoicePolicy
|
||||||
|
|
||||||
|
FROM
|
||||||
|
LyncUserPlans
|
||||||
|
WHERE
|
||||||
|
LyncUserPlanId = @LyncUserPlanId
|
||||||
|
RETURN'
|
||||||
|
END
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ALTER PROCEDURE [dbo].[GetLyncUserPlan]
|
||||||
|
(
|
||||||
|
@LyncUserPlanId int
|
||||||
|
)
|
||||||
|
AS
|
||||||
|
SELECT
|
||||||
|
LyncUserPlanId,
|
||||||
|
ItemID,
|
||||||
|
LyncUserPlanName,
|
||||||
|
LyncUserPlanType,
|
||||||
|
IM,
|
||||||
|
Mobility,
|
||||||
|
MobilityEnableOutsideVoice,
|
||||||
|
Federation,
|
||||||
|
Conferencing,
|
||||||
|
EnterpriseVoice,
|
||||||
|
VoicePolicy,
|
||||||
|
IsDefault,
|
||||||
|
|
||||||
|
RemoteUserAccess,
|
||||||
|
PublicIMConnectivity,
|
||||||
|
|
||||||
|
AllowOrganizeMeetingsWithExternalAnonymous,
|
||||||
|
|
||||||
|
Telephony,
|
||||||
|
|
||||||
|
ServerURI,
|
||||||
|
|
||||||
|
ArchivePolicy,
|
||||||
|
TelephonyDialPlanPolicy,
|
||||||
|
TelephonyVoicePolicy
|
||||||
|
|
||||||
|
FROM
|
||||||
|
LyncUserPlans
|
||||||
|
WHERE
|
||||||
|
LyncUserPlanId = @LyncUserPlanId
|
||||||
|
RETURN
|
||||||
|
GO
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -912,6 +912,15 @@ namespace WebsitePanel.EnterpriseServer {
|
||||||
this.RemoveFederationDomainCompleted(this, new RemoveFederationDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
this.RemoveFederationDomainCompleted(this, new RemoveFederationDomainCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/GetPolicyList", RequestNamespace = "http://tempuri.org/", ResponseNamespace = "http://tempuri.org/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public string[] GetPolicyList(int itemId, LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("GetPolicyList", new object[] {
|
||||||
|
itemId, type, name});
|
||||||
|
return ((string[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public new void CancelAsync(object userState) {
|
public new void CancelAsync(object userState) {
|
||||||
|
|
|
@ -3444,7 +3444,20 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@Conferencing", lyncUserPlan.Conferencing),
|
new SqlParameter("@Conferencing", lyncUserPlan.Conferencing),
|
||||||
new SqlParameter("@EnterpriseVoice", lyncUserPlan.EnterpriseVoice),
|
new SqlParameter("@EnterpriseVoice", lyncUserPlan.EnterpriseVoice),
|
||||||
new SqlParameter("@VoicePolicy", lyncUserPlan.VoicePolicy),
|
new SqlParameter("@VoicePolicy", lyncUserPlan.VoicePolicy),
|
||||||
new SqlParameter("@IsDefault", lyncUserPlan.IsDefault)
|
new SqlParameter("@IsDefault", lyncUserPlan.IsDefault),
|
||||||
|
|
||||||
|
new SqlParameter("@RemoteUserAccess", lyncUserPlan.RemoteUserAccess),
|
||||||
|
new SqlParameter("@PublicIMConnectivity", lyncUserPlan.PublicIMConnectivity),
|
||||||
|
|
||||||
|
new SqlParameter("@AllowOrganizeMeetingsWithExternalAnonymous", lyncUserPlan.AllowOrganizeMeetingsWithExternalAnonymous),
|
||||||
|
|
||||||
|
new SqlParameter("@Telephony", lyncUserPlan.Telephony),
|
||||||
|
|
||||||
|
new SqlParameter("@ServerURI", lyncUserPlan.ServerURI),
|
||||||
|
|
||||||
|
new SqlParameter("@ArchivePolicy", lyncUserPlan.ArchivePolicy),
|
||||||
|
new SqlParameter("@TelephonyDialPlanPolicy", lyncUserPlan.TelephonyDialPlanPolicy),
|
||||||
|
new SqlParameter("@TelephonyVoicePolicy", lyncUserPlan.TelephonyVoicePolicy)
|
||||||
);
|
);
|
||||||
|
|
||||||
return Convert.ToInt32(outParam.Value);
|
return Convert.ToInt32(outParam.Value);
|
||||||
|
@ -3467,7 +3480,20 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
new SqlParameter("@Conferencing", lyncUserPlan.Conferencing),
|
new SqlParameter("@Conferencing", lyncUserPlan.Conferencing),
|
||||||
new SqlParameter("@EnterpriseVoice", lyncUserPlan.EnterpriseVoice),
|
new SqlParameter("@EnterpriseVoice", lyncUserPlan.EnterpriseVoice),
|
||||||
new SqlParameter("@VoicePolicy", lyncUserPlan.VoicePolicy),
|
new SqlParameter("@VoicePolicy", lyncUserPlan.VoicePolicy),
|
||||||
new SqlParameter("@IsDefault", lyncUserPlan.IsDefault)
|
new SqlParameter("@IsDefault", lyncUserPlan.IsDefault),
|
||||||
|
|
||||||
|
new SqlParameter("@RemoteUserAccess", lyncUserPlan.RemoteUserAccess),
|
||||||
|
new SqlParameter("@PublicIMConnectivity", lyncUserPlan.PublicIMConnectivity),
|
||||||
|
|
||||||
|
new SqlParameter("@AllowOrganizeMeetingsWithExternalAnonymous", lyncUserPlan.AllowOrganizeMeetingsWithExternalAnonymous),
|
||||||
|
|
||||||
|
new SqlParameter("@Telephony", lyncUserPlan.Telephony),
|
||||||
|
|
||||||
|
new SqlParameter("@ServerURI", lyncUserPlan.ServerURI),
|
||||||
|
|
||||||
|
new SqlParameter("@ArchivePolicy", lyncUserPlan.ArchivePolicy),
|
||||||
|
new SqlParameter("@TelephonyDialPlanPolicy", lyncUserPlan.TelephonyDialPlanPolicy),
|
||||||
|
new SqlParameter("@TelephonyVoicePolicy", lyncUserPlan.TelephonyVoicePolicy)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,8 +53,11 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
|
||||||
|
|
||||||
List<string> resSettings = new List<string>(lyncSettings);
|
List<string> resSettings = new List<string>(lyncSettings);
|
||||||
|
|
||||||
ExtendLyncSettings(resSettings, "primarydomaincontroller", GetProviderProperty(organizationServiceId, "primarydomaincontroller"));
|
if (organizationServiceId != -1)
|
||||||
ExtendLyncSettings(resSettings, "rootou", GetProviderProperty(organizationServiceId, "rootou"));
|
{
|
||||||
|
ExtendLyncSettings(resSettings, "primarydomaincontroller", GetProviderProperty(organizationServiceId, "primarydomaincontroller"));
|
||||||
|
ExtendLyncSettings(resSettings, "rootou", GetProviderProperty(organizationServiceId, "rootou"));
|
||||||
|
}
|
||||||
ws.ServiceProviderSettingsSoapHeaderValue.Settings = resSettings.ToArray();
|
ws.ServiceProviderSettingsSoapHeaderValue.Settings = resSettings.ToArray();
|
||||||
return ws;
|
return ws;
|
||||||
}
|
}
|
||||||
|
@ -345,6 +348,13 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
|
||||||
{
|
{
|
||||||
LyncUserResult res = TaskManager.StartResultTask<LyncUserResult>("LYNC", "SET_LYNC_USER_GENERAL_SETTINGS");
|
LyncUserResult res = TaskManager.StartResultTask<LyncUserResult>("LYNC", "SET_LYNC_USER_GENERAL_SETTINGS");
|
||||||
|
|
||||||
|
string PIN = "";
|
||||||
|
|
||||||
|
string[] uriAndPin = ("" + lineUri).Split(':');
|
||||||
|
|
||||||
|
if (uriAndPin.Length > 0) lineUri = uriAndPin[0];
|
||||||
|
if (uriAndPin.Length > 1) PIN = uriAndPin[1];
|
||||||
|
|
||||||
LyncUser user = null;
|
LyncUser user = null;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -378,20 +388,22 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(sipAddress))
|
if (!string.IsNullOrEmpty(sipAddress))
|
||||||
{
|
{
|
||||||
if (sipAddress != usr.UserPrincipalName)
|
if (user.SipAddress != sipAddress)
|
||||||
{
|
{
|
||||||
if (DataProvider.LyncUserExists(accountId, sipAddress))
|
if (sipAddress != usr.UserPrincipalName)
|
||||||
{
|
{
|
||||||
TaskManager.CompleteResultTask(res, LyncErrorCodes.ADDRESS_ALREADY_USED);
|
if (DataProvider.LyncUserExists(accountId, sipAddress))
|
||||||
return res;
|
{
|
||||||
|
TaskManager.CompleteResultTask(res, LyncErrorCodes.ADDRESS_ALREADY_USED);
|
||||||
|
return res;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
user.SipAddress = sipAddress;
|
||||||
}
|
}
|
||||||
|
|
||||||
user.SipAddress = sipAddress;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(lineUri)) user.LineUri = lineUri;
|
user.LineUri = lineUri;
|
||||||
|
user.PIN = PIN;
|
||||||
|
|
||||||
lync.SetLyncUserGeneralSettings(org.OrganizationId, usr.UserPrincipalName, user);
|
lync.SetLyncUserGeneralSettings(org.OrganizationId, usr.UserPrincipalName, user);
|
||||||
|
|
||||||
|
@ -411,7 +423,6 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static int DeleteOrganization(int itemId)
|
public static int DeleteOrganization(int itemId)
|
||||||
{
|
{
|
||||||
// check account
|
// check account
|
||||||
|
@ -1011,6 +1022,51 @@ namespace WebsitePanel.EnterpriseServer.Code.HostedSolution
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
public static string[] GetPolicyList(int itemId, LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
string[] ret = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (itemId == -1)
|
||||||
|
{
|
||||||
|
// policy list in all lync servers
|
||||||
|
List<string> allpolicylist = new List<string>();
|
||||||
|
List<ServerInfo> servers = ServerController.GetAllServers();
|
||||||
|
foreach (ServerInfo server in servers)
|
||||||
|
{
|
||||||
|
List<ServiceInfo> services = ServerController.GetServicesByServerIdGroupName(server.ServerId, ResourceGroups.Lync);
|
||||||
|
foreach (ServiceInfo service in services)
|
||||||
|
{
|
||||||
|
LyncServer lync = GetLyncServer(service.ServiceId, -1);
|
||||||
|
string[] values = lync.GetPolicyList(type, name);
|
||||||
|
foreach (string val in values)
|
||||||
|
if (allpolicylist.IndexOf(val) == -1)
|
||||||
|
allpolicylist.Add(val);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
ret = allpolicylist.ToArray();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
|
||||||
|
Organization org = (Organization)PackageController.GetPackageItem(itemId);
|
||||||
|
|
||||||
|
int lyncServiceId = GetLyncServiceID(org.PackageId);
|
||||||
|
LyncServer lync = GetLyncServer(lyncServiceId, org.ServiceId);
|
||||||
|
|
||||||
|
ret = lync.GetPolicyList(type, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
#region Private methods
|
#region Private methods
|
||||||
public static UInt64 ConvertPhoneNumberToLong(string ip)
|
public static UInt64 ConvertPhoneNumberToLong(string ip)
|
||||||
|
|
|
@ -151,5 +151,12 @@ namespace WebsitePanel.EnterpriseServer
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
[WebMethod]
|
||||||
|
public string[] GetPolicyList(int itemId, LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
return LyncController.GetPolicyList(itemId, type, name);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -48,5 +48,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
bool RemoveFederationDomain(string organizationId, string domainName);
|
bool RemoveFederationDomain(string organizationId, string domainName);
|
||||||
|
|
||||||
void ReloadConfiguration();
|
void ReloadConfiguration();
|
||||||
|
|
||||||
|
string[] GetPolicyList(LyncPolicyType type, string name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
{
|
||||||
|
public enum LyncPolicyType
|
||||||
|
{
|
||||||
|
Archiving = 0,
|
||||||
|
DialPlan = 1,
|
||||||
|
Voice = 2,
|
||||||
|
Pin = 3
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -41,5 +41,7 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
public int AccountID { get; set; }
|
public int AccountID { get; set; }
|
||||||
public int LyncUserPlanId { get; set; }
|
public int LyncUserPlanId { get; set; }
|
||||||
public string LyncUserPlanName { get; set; }
|
public string LyncUserPlanName { get; set; }
|
||||||
|
|
||||||
|
public string PIN { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -122,6 +122,63 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
set { this.voicePolicy = value; }
|
set { this.voicePolicy = value; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool remoteUserAccess;
|
||||||
|
bool publicIMConnectivity;
|
||||||
|
|
||||||
|
bool allowOrganizeMeetingsWithExternalAnonymous;
|
||||||
|
|
||||||
|
int telephony;
|
||||||
|
|
||||||
|
string serverURI;
|
||||||
|
|
||||||
|
string archivePolicy;
|
||||||
|
string telephonyDialPlanPolicy;
|
||||||
|
string telephonyVoicePolicy;
|
||||||
|
|
||||||
|
public bool RemoteUserAccess
|
||||||
|
{
|
||||||
|
get { return this.remoteUserAccess; }
|
||||||
|
set { this.remoteUserAccess = value; }
|
||||||
|
}
|
||||||
|
public bool PublicIMConnectivity
|
||||||
|
{
|
||||||
|
get { return this.publicIMConnectivity; }
|
||||||
|
set { this.publicIMConnectivity = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AllowOrganizeMeetingsWithExternalAnonymous
|
||||||
|
{
|
||||||
|
get { return this.allowOrganizeMeetingsWithExternalAnonymous; }
|
||||||
|
set { this.allowOrganizeMeetingsWithExternalAnonymous = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public int Telephony
|
||||||
|
{
|
||||||
|
get { return this.telephony; }
|
||||||
|
set { this.telephony = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ServerURI
|
||||||
|
{
|
||||||
|
get { return this.serverURI; }
|
||||||
|
set { this.serverURI = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string ArchivePolicy
|
||||||
|
{
|
||||||
|
get { return this.archivePolicy; }
|
||||||
|
set { this.archivePolicy = value; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public string TelephonyDialPlanPolicy
|
||||||
|
{
|
||||||
|
get { return this.telephonyDialPlanPolicy; }
|
||||||
|
set { this.telephonyDialPlanPolicy = value; }
|
||||||
|
}
|
||||||
|
public string TelephonyVoicePolicy
|
||||||
|
{
|
||||||
|
get { return this.telephonyVoicePolicy; }
|
||||||
|
set { this.telephonyVoicePolicy = value; }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,6 +92,7 @@
|
||||||
<Compile Include="HostedSolution\LyncErrorCodes.cs" />
|
<Compile Include="HostedSolution\LyncErrorCodes.cs" />
|
||||||
<Compile Include="HostedSolution\LyncFederationDomain.cs" />
|
<Compile Include="HostedSolution\LyncFederationDomain.cs" />
|
||||||
<Compile Include="HostedSolution\LyncOrganizationStatistics.cs" />
|
<Compile Include="HostedSolution\LyncOrganizationStatistics.cs" />
|
||||||
|
<Compile Include="HostedSolution\LyncPolicyType.cs" />
|
||||||
<Compile Include="HostedSolution\LyncTransaction.cs" />
|
<Compile Include="HostedSolution\LyncTransaction.cs" />
|
||||||
<Compile Include="HostedSolution\LyncUserStatistics.cs" />
|
<Compile Include="HostedSolution\LyncUserStatistics.cs" />
|
||||||
<Compile Include="HostedSolution\LyncStatisticsReport.cs" />
|
<Compile Include="HostedSolution\LyncStatisticsReport.cs" />
|
||||||
|
|
|
@ -163,6 +163,11 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
ReloadConfigurationInternal();
|
ReloadConfigurationInternal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public string[] GetPolicyList(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
return GetPolicyListInternal(type, name);
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region organization
|
#region organization
|
||||||
|
@ -297,8 +302,8 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
string path = AddADPrefix(GetOrganizationPath(organizationId));
|
string path = AddADPrefix(GetOrganizationPath(organizationId));
|
||||||
DirectoryEntry ou = ActiveDirectoryUtils.GetADObject(path);
|
DirectoryEntry ou = ActiveDirectoryUtils.GetADObject(path);
|
||||||
string[] sipDs = (string[])ActiveDirectoryUtils.GetADObjectPropertyMultiValue(ou, "msRTCSIP-Domains");
|
string[] sipDs = (string[])ActiveDirectoryUtils.GetADObjectPropertyMultiValue(ou, "msRTCSIP-Domains");
|
||||||
|
|
||||||
foreach (string sipD in sipDs)
|
foreach (string sipD in sipDs)
|
||||||
DeleteSipDomain(runSpace, sipD);
|
DeleteSipDomain(runSpace, sipD);
|
||||||
|
|
||||||
//clear the msRTCSIP-Domains, TenantID, ObjectID
|
//clear the msRTCSIP-Domains, TenantID, ObjectID
|
||||||
|
@ -518,6 +523,8 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
lyncUser.LineUri = (string)GetPSObjectProperty(user, "LineURI");
|
lyncUser.LineUri = (string)GetPSObjectProperty(user, "LineURI");
|
||||||
|
|
||||||
lyncUser.SipAddress = lyncUser.SipAddress.ToLower().Replace("sip:", "");
|
lyncUser.SipAddress = lyncUser.SipAddress.ToLower().Replace("sip:", "");
|
||||||
|
lyncUser.LineUri = lyncUser.LineUri.ToLower().Replace("tel:+", "");
|
||||||
|
lyncUser.LineUri = lyncUser.LineUri.ToLower().Replace("tel:", "");
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
@ -611,11 +618,20 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
|
|
||||||
cmd = new Command("Set-CsUser");
|
cmd = new Command("Set-CsUser");
|
||||||
cmd.Parameters.Add("Identity", userUpn);
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
if (!string.IsNullOrEmpty(lyncUser.SipAddress)) cmd.Parameters.Add("SipAddress", "SIP:"+lyncUser.SipAddress);
|
if (!string.IsNullOrEmpty(lyncUser.SipAddress)) cmd.Parameters.Add("SipAddress", "SIP:" + lyncUser.SipAddress);
|
||||||
if (!string.IsNullOrEmpty(lyncUser.SipAddress)) cmd.Parameters.Add("LineUri", lyncUser.LineUri);
|
if (!string.IsNullOrEmpty(lyncUser.LineUri)) cmd.Parameters.Add("LineUri", "TEL:+" + lyncUser.LineUri);
|
||||||
|
else cmd.Parameters.Add("LineUri", null);
|
||||||
ExecuteShellCommand(runSpace, cmd, false);
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
|
||||||
|
if (!String.IsNullOrEmpty(lyncUser.PIN))
|
||||||
|
{
|
||||||
|
cmd = new Command("Set-CsClientPin");
|
||||||
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
|
cmd.Parameters.Add("Pin", lyncUser.PIN);
|
||||||
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//initiate addressbook generation
|
//initiate addressbook generation
|
||||||
cmd = new Command("Update-CsAddressBook");
|
cmd = new Command("Update-CsAddressBook");
|
||||||
ExecuteShellCommand(runSpace, cmd, false);
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
@ -657,8 +673,14 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
bCloseRunSpace = true;
|
bCloseRunSpace = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// EnterpriseVoice
|
||||||
|
Command cmd = new Command("Set-CsUser");
|
||||||
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
|
cmd.Parameters.Add("EnterpriseVoiceEnabled", plan.EnterpriseVoice);
|
||||||
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
|
||||||
//CsExternalAccessPolicy
|
//CsExternalAccessPolicy
|
||||||
Command cmd = new Command("Grant-CsExternalAccessPolicy");
|
cmd = new Command("Grant-CsExternalAccessPolicy");
|
||||||
cmd.Parameters.Add("Identity", userUpn);
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
cmd.Parameters.Add("PolicyName", plan.Federation ? organizationId : null);
|
cmd.Parameters.Add("PolicyName", plan.Federation ? organizationId : null);
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
@ -678,6 +700,24 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
cmd.Parameters.Add("PolicyName", null);
|
cmd.Parameters.Add("PolicyName", null);
|
||||||
ExecuteShellCommand(runSpace, cmd);
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
// ArchivePolicy
|
||||||
|
cmd = new Command("Grant-CsArchivingPolicy");
|
||||||
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
|
cmd.Parameters.Add("PolicyName", string.IsNullOrEmpty(plan.ArchivePolicy) ? null : plan.ArchivePolicy);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
// DialPlan
|
||||||
|
cmd = new Command("Grant-CsDialPlan");
|
||||||
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
|
cmd.Parameters.Add("PolicyName", string.IsNullOrEmpty(plan.TelephonyDialPlanPolicy) ? null : plan.TelephonyDialPlanPolicy);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
|
// VoicePolicy
|
||||||
|
cmd = new Command("Grant-CsVoicePolicy");
|
||||||
|
cmd.Parameters.Add("Identity", userUpn);
|
||||||
|
cmd.Parameters.Add("PolicyName", string.IsNullOrEmpty(plan.TelephonyVoicePolicy) ? null : plan.TelephonyVoicePolicy);
|
||||||
|
ExecuteShellCommand(runSpace, cmd);
|
||||||
|
|
||||||
//initiate user database replication
|
//initiate user database replication
|
||||||
cmd = new Command("Update-CsUserDatabase");
|
cmd = new Command("Update-CsUserDatabase");
|
||||||
ExecuteShellCommand(runSpace, cmd, false);
|
ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
@ -887,6 +927,90 @@ namespace WebsitePanel.Providers.HostedSolution
|
||||||
HostedSolutionLog.LogEnd("DeleteMobilityPolicy");
|
HostedSolutionLog.LogEnd("DeleteMobilityPolicy");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal string[] GetPolicyListInternal(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
List<string> ret = new List<string>();
|
||||||
|
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case LyncPolicyType.Archiving:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsArchivingPolicy");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
ret.Add(Identity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LyncPolicyType.DialPlan:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsDialPlan");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
string Description = "" + (string)GetPSObjectProperty(res, "Description");
|
||||||
|
if (Description.ToLower().IndexOf(name.ToLower()) == -1) continue;
|
||||||
|
ret.Add(Identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LyncPolicyType.Voice:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsVoicePolicy");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
string Description = "" + (string)GetPSObjectProperty(res, "Description");
|
||||||
|
if (Description.ToLower().IndexOf(name.ToLower()) == -1) continue;
|
||||||
|
|
||||||
|
ret.Add(Identity);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case LyncPolicyType.Pin:
|
||||||
|
{
|
||||||
|
Runspace runSpace = OpenRunspace();
|
||||||
|
Command cmd = new Command("Get-CsPinPolicy");
|
||||||
|
Collection<PSObject> result = ExecuteShellCommand(runSpace, cmd, false);
|
||||||
|
if ((result != null) && (result.Count > 0))
|
||||||
|
{
|
||||||
|
foreach (PSObject res in result)
|
||||||
|
{
|
||||||
|
string Identity = GetPSObjectProperty(res, "Identity").ToString();
|
||||||
|
string str = "" + GetPSObjectProperty(res, name);
|
||||||
|
ret.Add(str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return ret.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Sytsem Related Methods
|
#region Sytsem Related Methods
|
||||||
|
|
|
@ -627,6 +627,16 @@ namespace WebsitePanel.Providers.Lync {
|
||||||
this.ReloadConfigurationCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
this.ReloadConfigurationCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <remarks/>
|
||||||
|
[System.Web.Services.Protocols.SoapHeaderAttribute("ServiceProviderSettingsSoapHeaderValue")]
|
||||||
|
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://smbsaas/websitepanel/server/GetPolicyList", RequestNamespace = "http://smbsaas/websitepanel/server/", ResponseNamespace = "http://smbsaas/websitepanel/server/", Use = System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle = System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
|
||||||
|
public string[] GetPolicyList(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
object[] results = this.Invoke("GetPolicyList", new object[] {
|
||||||
|
type, name});
|
||||||
|
return ((string[])(results[0]));
|
||||||
|
}
|
||||||
|
|
||||||
/// <remarks/>
|
/// <remarks/>
|
||||||
public new void CancelAsync(object userState) {
|
public new void CancelAsync(object userState) {
|
||||||
|
|
|
@ -247,7 +247,25 @@ namespace WebsitePanel.Server
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[WebMethod, SoapHeader("settings")]
|
||||||
|
public string[] GetPolicyList(LyncPolicyType type, string name)
|
||||||
|
{
|
||||||
|
string[] ret = null;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Log.WriteStart("{0}.GetPolicyList", ProviderSettings.ProviderName);
|
||||||
|
ret = Lync.GetPolicyList(type, name);
|
||||||
|
Log.WriteEnd("{0}.GetPolicyList", ProviderSettings.ProviderName);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.WriteError(String.Format("Error: {0}.GetPolicyList", ProviderSettings.ProviderName), ex);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -5262,6 +5262,12 @@
|
||||||
<data name="Success.EXCHANGE_UPDATEPLANS" xml:space="preserve">
|
<data name="Success.EXCHANGE_UPDATEPLANS" xml:space="preserve">
|
||||||
<value>Mailbox plan updated</value>
|
<value>Mailbox plan updated</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Error.LYNC_UPDATEPLANS" xml:space="preserve">
|
||||||
|
<value>Lync plan update failed</value>
|
||||||
|
</data>
|
||||||
|
<data name="Success.LYNC_UPDATEPLANS" xml:space="preserve">
|
||||||
|
<value>Lync plan updated</value>
|
||||||
|
</data>
|
||||||
<data name="Error.LYNC_APPLYPLANTEMPLATE" xml:space="preserve">
|
<data name="Error.LYNC_APPLYPLANTEMPLATE" xml:space="preserve">
|
||||||
<value>Failed to apply plans template</value>
|
<value>Failed to apply plans template</value>
|
||||||
</data>
|
</data>
|
||||||
|
|
|
@ -60,11 +60,6 @@
|
||||||
<asp:CheckBox ID="chkMobility" runat="server" meta:resourcekey="chkMobility" Text="Mobility"></asp:CheckBox>
|
<asp:CheckBox ID="chkMobility" runat="server" meta:resourcekey="chkMobility" Text="Mobility"></asp:CheckBox>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
<asp:CheckBox ID="chkFederation" runat="server" meta:resourcekey="chkFederation" Text="Federation"></asp:CheckBox>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<asp:CheckBox ID="chkConferencing" runat="server" meta:resourcekey="chkConferencing" Text="Conferencing"></asp:CheckBox>
|
<asp:CheckBox ID="chkConferencing" runat="server" meta:resourcekey="chkConferencing" Text="Conferencing"></asp:CheckBox>
|
||||||
|
@ -78,7 +73,136 @@
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesFederation" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesFederation" meta:resourcekey="secPlanFeaturesFederation" Text="Federation">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesFederation" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkFederation" runat="server" meta:resourcekey="chkFederation" Text="Federation"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkRemoteUserAccess" runat="server" meta:resourcekey="chkRemoteUserAccess" Text="Remote User access"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkPublicIMConnectivity" runat="server" meta:resourcekey="chkPublicIMConnectivity" Text="Public IM Connectivity"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesArchiving" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesArchiving" meta:resourcekey="secPlanFeaturesArchiving" Text="Archiving">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesArchiving" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locArchivingPolicy" meta:resourcekey="locArchivingPolicy" Text="Archiving Policy:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddArchivingPolicy" runat="server"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesMeeting" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesMeeting" meta:resourcekey="secPlanFeaturesMeeting" Text="Meeting">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesMeeting" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkAllowOrganizeMeetingsWithExternalAnonymous" runat="server" meta:resourcekey="chkAllowOrganizeMeetingsWithExternalAnonymous" Text="Allow organize meetings with external anonymous participants"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesTelephony" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesTelephony" meta:resourcekey="secPlanFeaturesTelephony" Text="Telephony">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesTelephony" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locTelephony" meta:resourcekey="locTelephony" Text="Telephony :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephony" runat="server" AutoPostBack="True">
|
||||||
|
<asp:ListItem Value="0" Text="Audio/Video disabled" meta:resourcekey="ddlTelephonyDisabled" />
|
||||||
|
<asp:ListItem Value="1" Text="PC-to-PC only" meta:resourcekey="ddlTelephonyPCtoPCOnly" />
|
||||||
|
<asp:ListItem Value="2" Text="Enterprise voice" meta:resourcekey="ddlTelephonyEnterpriseVoice" />
|
||||||
|
<asp:ListItem Value="3" Text="Remote call control" meta:resourcekey="ddlTelephonyRemoteCallControl" />
|
||||||
|
<asp:ListItem Value="4" Text="Remote call control only" meta:resourcekey="ddlTelephonyRemoteCallControlOnly" />
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnEnterpriseVoice">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locTelephonyProvider" meta:resourcekey="locTelephonyProvider" Text="Telephony Provider :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox ID="tbTelephoneProvider" runat="server"></asp:TextBox>
|
||||||
|
<asp:Button runat="server" ID="btnAccept" Text="Accept" OnClick="btnAccept_Click" OnClientClick="ShowProgressDialog('Loading...');" ValidationGroup="Accept"/>
|
||||||
|
|
||||||
|
<asp:RequiredFieldValidator id="AcceptRequiredValidator" runat="server" ErrorMessage="Please enter provider name"
|
||||||
|
ControlToValidate="tbTelephoneProvider" Display="Dynamic" ValidationGroup="Accept" SetFocusOnError="true"></asp:RequiredFieldValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locDialPlan" meta:resourcekey="locDialPlan" Text="Dial Plan :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephonyDialPlanPolicy" runat="server"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locVoicePolicy" meta:resourcekey="locVoicePolicy" Text="Voice Policy :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephonyVoicePolicy" runat="server"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnServerURI">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locServerURI" meta:resourcekey="locServerURI" Text="Server URI :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox ID="tbServerURI" runat="server"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
<%-- Disable because not used
|
||||||
<wsp:CollapsiblePanel id="secEnterpriseVoice" runat="server"
|
<wsp:CollapsiblePanel id="secEnterpriseVoice" runat="server"
|
||||||
TargetControlID="EnterpriseVoice" meta:resourcekey="secEnterpriseVoice" Text="Enterprise Voice Policy">
|
TargetControlID="EnterpriseVoice" meta:resourcekey="secEnterpriseVoice" Text="Enterprise Voice Policy">
|
||||||
</wsp:CollapsiblePanel>
|
</wsp:CollapsiblePanel>
|
||||||
|
@ -115,7 +239,7 @@
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
--%>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<div class="FormFooterClean">
|
<div class="FormFooterClean">
|
||||||
|
|
|
@ -40,9 +40,19 @@ namespace WebsitePanel.Portal.Lync
|
||||||
|
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
{
|
{
|
||||||
|
|
||||||
PackageContext cntx = ES.Services.Packages.GetPackageContext(PanelSecurity.PackageId);
|
PackageContext cntx = ES.Services.Packages.GetPackageContext(PanelSecurity.PackageId);
|
||||||
|
|
||||||
|
string[] archivePolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Archiving, null);
|
||||||
|
if (archivePolicy != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in archivePolicy)
|
||||||
|
{
|
||||||
|
if (policy.ToLower()=="global") continue;
|
||||||
|
string txt = policy.Replace("Tag:","");
|
||||||
|
ddArchivingPolicy.Items.Add( new System.Web.UI.WebControls.ListItem( txt, policy) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (PanelRequest.GetInt("LyncUserPlanId") != 0)
|
if (PanelRequest.GetInt("LyncUserPlanId") != 0)
|
||||||
{
|
{
|
||||||
Providers.HostedSolution.LyncUserPlan plan = ES.Services.Lync.GetLyncUserPlan(PanelRequest.ItemID, PanelRequest.GetInt("LyncUserPlanId"));
|
Providers.HostedSolution.LyncUserPlan plan = ES.Services.Lync.GetLyncUserPlan(PanelRequest.ItemID, PanelRequest.GetInt("LyncUserPlanId"));
|
||||||
|
@ -54,6 +64,8 @@ namespace WebsitePanel.Portal.Lync
|
||||||
chkConferencing.Checked = plan.Conferencing;
|
chkConferencing.Checked = plan.Conferencing;
|
||||||
chkMobility.Checked = plan.Mobility;
|
chkMobility.Checked = plan.Mobility;
|
||||||
chkEnterpriseVoice.Checked = plan.EnterpriseVoice;
|
chkEnterpriseVoice.Checked = plan.EnterpriseVoice;
|
||||||
|
|
||||||
|
/* because not used
|
||||||
switch (plan.VoicePolicy)
|
switch (plan.VoicePolicy)
|
||||||
{
|
{
|
||||||
case LyncVoicePolicyType.None:
|
case LyncVoicePolicyType.None:
|
||||||
|
@ -74,16 +86,40 @@ namespace WebsitePanel.Portal.Lync
|
||||||
chkNone.Checked = true;
|
chkNone.Checked = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
chkRemoteUserAccess.Checked = plan.RemoteUserAccess;
|
||||||
|
chkPublicIMConnectivity.Checked = plan.PublicIMConnectivity;
|
||||||
|
|
||||||
|
chkAllowOrganizeMeetingsWithExternalAnonymous.Checked = plan.AllowOrganizeMeetingsWithExternalAnonymous;
|
||||||
|
|
||||||
|
ddTelephony.SelectedIndex = plan.Telephony;
|
||||||
|
|
||||||
|
tbServerURI.Text = plan.ServerURI;
|
||||||
|
|
||||||
locTitle.Text = plan.LyncUserPlanName;
|
locTitle.Text = plan.LyncUserPlanName;
|
||||||
this.DisableControls = true;
|
this.DisableControls = true;
|
||||||
|
|
||||||
|
string planArchivePolicy = "";
|
||||||
|
if (plan.ArchivePolicy != null) planArchivePolicy = plan.ArchivePolicy;
|
||||||
|
string planTelephonyDialPlanPolicy = "";
|
||||||
|
if (plan.TelephonyDialPlanPolicy != null) planTelephonyDialPlanPolicy = plan.TelephonyDialPlanPolicy;
|
||||||
|
string planTelephonyVoicePolicy = "";
|
||||||
|
if (plan.TelephonyVoicePolicy != null) planTelephonyVoicePolicy = plan.TelephonyVoicePolicy;
|
||||||
|
|
||||||
|
ddArchivingPolicy.Items.Clear();
|
||||||
|
ddArchivingPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planArchivePolicy.Replace("Tag:", ""), planArchivePolicy));
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Clear();
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planTelephonyDialPlanPolicy.Replace("Tag:", ""), planTelephonyDialPlanPolicy));
|
||||||
|
ddTelephonyVoicePolicy.Items.Clear();
|
||||||
|
ddTelephonyVoicePolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planTelephonyVoicePolicy.Replace("Tag:", ""), planTelephonyVoicePolicy));
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
chkIM.Checked = true;
|
chkIM.Checked = true;
|
||||||
chkIM.Enabled = false;
|
chkIM.Enabled = false;
|
||||||
chkNone.Checked = true;
|
// chkNone.Checked = true; because not used
|
||||||
if (cntx != null)
|
if (cntx != null)
|
||||||
{
|
{
|
||||||
foreach (QuotaValueInfo quota in cntx.QuotasArray)
|
foreach (QuotaValueInfo quota in cntx.QuotasArray)
|
||||||
|
@ -110,6 +146,29 @@ namespace WebsitePanel.Portal.Lync
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
chkEnterpriseVoice.Enabled = false;
|
||||||
|
chkEnterpriseVoice.Checked = false;
|
||||||
|
|
||||||
|
pnEnterpriseVoice.Visible = false;
|
||||||
|
pnServerURI.Visible = false;
|
||||||
|
|
||||||
|
switch (ddTelephony.SelectedIndex)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
pnEnterpriseVoice.Visible = true;
|
||||||
|
chkEnterpriseVoice.Checked = true;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
pnServerURI.Visible = true;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
pnServerURI.Visible = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnAdd_Click(object sender, EventArgs e)
|
protected void btnAdd_Click(object sender, EventArgs e)
|
||||||
|
@ -117,6 +176,37 @@ namespace WebsitePanel.Portal.Lync
|
||||||
AddPlan();
|
AddPlan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void btnAccept_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
string name = tbTelephoneProvider.Text;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(name)) return;
|
||||||
|
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Clear();
|
||||||
|
string[] dialPlan = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.DialPlan, name);
|
||||||
|
if (dialPlan != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in dialPlan)
|
||||||
|
{
|
||||||
|
if (policy.ToLower() == "global") continue;
|
||||||
|
string txt = policy.Replace("Tag:", "");
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(txt, policy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ddTelephonyVoicePolicy.Items.Clear();
|
||||||
|
string[] voicePolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Voice, name);
|
||||||
|
if (voicePolicy != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in voicePolicy)
|
||||||
|
{
|
||||||
|
if (policy.ToLower() == "global") continue;
|
||||||
|
string txt = policy.Replace("Tag:", "");
|
||||||
|
ddTelephonyVoicePolicy.Items.Add(new System.Web.UI.WebControls.ListItem(txt, policy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void AddPlan()
|
private void AddPlan()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -132,6 +222,10 @@ namespace WebsitePanel.Portal.Lync
|
||||||
|
|
||||||
|
|
||||||
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
||||||
|
|
||||||
|
plan.VoicePolicy = LyncVoicePolicyType.None;
|
||||||
|
|
||||||
|
/* because not used
|
||||||
if (!plan.EnterpriseVoice)
|
if (!plan.EnterpriseVoice)
|
||||||
{
|
{
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
plan.VoicePolicy = LyncVoicePolicyType.None;
|
||||||
|
@ -149,7 +243,21 @@ namespace WebsitePanel.Portal.Lync
|
||||||
else
|
else
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
plan.VoicePolicy = LyncVoicePolicyType.None;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
plan.RemoteUserAccess = chkRemoteUserAccess.Checked;
|
||||||
|
plan.PublicIMConnectivity = chkPublicIMConnectivity.Checked;
|
||||||
|
|
||||||
|
plan.AllowOrganizeMeetingsWithExternalAnonymous = chkAllowOrganizeMeetingsWithExternalAnonymous.Checked;
|
||||||
|
|
||||||
|
plan.Telephony = ddTelephony.SelectedIndex;
|
||||||
|
|
||||||
|
plan.ServerURI = tbServerURI.Text;
|
||||||
|
|
||||||
|
plan.ArchivePolicy = ddArchivingPolicy.SelectedValue;
|
||||||
|
plan.TelephonyDialPlanPolicy = ddTelephonyDialPlanPolicy.SelectedValue;
|
||||||
|
plan.TelephonyVoicePolicy = ddTelephonyVoicePolicy.SelectedValue;
|
||||||
|
|
||||||
int result = ES.Services.Lync.AddLyncUserPlan(PanelRequest.ItemID,
|
int result = ES.Services.Lync.AddLyncUserPlan(PanelRequest.ItemID,
|
||||||
plan);
|
plan);
|
||||||
|
|
|
@ -1,40 +1,11 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.Lync {
|
namespace WebsitePanel.Portal.Lync {
|
||||||
|
|
||||||
|
|
||||||
|
@ -166,15 +137,6 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkMobility;
|
protected global::System.Web.UI.WebControls.CheckBox chkMobility;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// chkFederation control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkFederation;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkConferencing control.
|
/// chkConferencing control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -194,67 +156,256 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkEnterpriseVoice;
|
protected global::System.Web.UI.WebControls.CheckBox chkEnterpriseVoice;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// secEnterpriseVoice control.
|
/// secPlanFeaturesFederation control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.CollapsiblePanel secEnterpriseVoice;
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// EnterpriseVoice control.
|
/// PlanFeaturesFederation control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Panel EnterpriseVoice;
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkNone control.
|
/// chkFederation control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RadioButton chkNone;
|
protected global::System.Web.UI.WebControls.CheckBox chkFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkEmergency control.
|
/// chkRemoteUserAccess control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RadioButton chkEmergency;
|
protected global::System.Web.UI.WebControls.CheckBox chkRemoteUserAccess;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkNational control.
|
/// chkPublicIMConnectivity control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RadioButton chkNational;
|
protected global::System.Web.UI.WebControls.CheckBox chkPublicIMConnectivity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkMobile control.
|
/// secPlanFeaturesArchiving control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RadioButton chkMobile;
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesArchiving;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkInternational control.
|
/// PlanFeaturesArchiving control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RadioButton chkInternational;
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesArchiving;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locArchivingPolicy control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locArchivingPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddArchivingPolicy control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddArchivingPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secPlanFeaturesMeeting control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesMeeting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PlanFeaturesMeeting control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesMeeting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkAllowOrganizeMeetingsWithExternalAnonymous control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkAllowOrganizeMeetingsWithExternalAnonymous;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secPlanFeaturesTelephony control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PlanFeaturesTelephony control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTelephony control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephony control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnEnterpriseVoice control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel pnEnterpriseVoice;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTelephonyProvider control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locTelephonyProvider;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbTelephoneProvider control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox tbTelephoneProvider;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAccept control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnAccept;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AcceptRequiredValidator control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator AcceptRequiredValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locDialPlan control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locDialPlan;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephonyDialPlanPolicy control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddTelephonyDialPlanPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locVoicePolicy control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locVoicePolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephonyVoicePolicy control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddTelephonyVoicePolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnServerURI control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel pnServerURI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locServerURI control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locServerURI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbServerURI control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox tbServerURI;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnAdd control.
|
/// btnAdd control.
|
||||||
|
@ -273,14 +424,5 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
protected global::System.Web.UI.WebControls.ValidationSummary ValidationSummary1;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// FormComments control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.Localize FormComments;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,11 +43,41 @@
|
||||||
<wsp:LyncUserPlanSelector ID="planSelector" runat="server" />
|
<wsp:LyncUserPlanSelector ID="planSelector" runat="server" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnEnterpriseVoice">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locPhoneNumber" meta:resourcekey="locPhoneNumber" Text="Phone Number:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox runat="server" ID="tbPhoneNumber" />
|
||||||
|
<asp:RegularExpressionValidator ID="PhoneFormatValidator" runat="server"
|
||||||
|
ControlToValidate="tbPhoneNumber" Display="Dynamic" ValidationGroup="Validation1" SetFocusOnError="true"
|
||||||
|
ValidationExpression="^([0-9])*$"
|
||||||
|
ErrorMessage="Must contain only numbers.">
|
||||||
|
</asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locLyncPin" meta:resourcekey="locLyncPin" Text="Lync Pin:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox runat="server" ID="tbPin" />
|
||||||
|
<asp:RegularExpressionValidator ID="PinRegularExpressionValidator" runat="server"
|
||||||
|
ControlToValidate="tbPin" Display="Dynamic" ValidationGroup="Validation1" SetFocusOnError="true"
|
||||||
|
ValidationExpression="^([0-9])*$"
|
||||||
|
ErrorMessage="Must contain only numbers.">
|
||||||
|
</asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
<div class="FormFooterClean">
|
<div class="FormFooterClean">
|
||||||
<asp:Button id="btnCreate" runat="server"
|
<asp:Button id="btnCreate" runat="server" ValidationGroup="Validation1"
|
||||||
CssClass="Button1" meta:resourcekey="btnCreate"
|
CssClass="Button1" meta:resourcekey="btnCreate"
|
||||||
onclick="btnCreate_Click" ></asp:Button>
|
onclick="btnCreate_Click" ></asp:Button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -30,6 +30,9 @@
|
||||||
using WebsitePanel.Providers.ResultObjects;
|
using WebsitePanel.Providers.ResultObjects;
|
||||||
using WebsitePanel.EnterpriseServer;
|
using WebsitePanel.EnterpriseServer;
|
||||||
|
|
||||||
|
using WebsitePanel.Providers.HostedSolution;
|
||||||
|
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.Lync
|
namespace WebsitePanel.Portal.Lync
|
||||||
{
|
{
|
||||||
public partial class CreateLyncUser : WebsitePanelModuleBase
|
public partial class CreateLyncUser : WebsitePanelModuleBase
|
||||||
|
@ -43,8 +46,42 @@ namespace WebsitePanel.Portal.Lync
|
||||||
if (plans.Length == 0)
|
if (plans.Length == 0)
|
||||||
btnCreate.Enabled = false;
|
btnCreate.Enabled = false;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void Page_PreRender(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
bool EnterpriseVoice = false;
|
||||||
|
|
||||||
|
WebsitePanel.Providers.HostedSolution.LyncUserPlan plan = planSelector.plan;
|
||||||
|
if (plan != null)
|
||||||
|
EnterpriseVoice = plan.EnterpriseVoice;
|
||||||
|
|
||||||
|
pnEnterpriseVoice.Visible = EnterpriseVoice;
|
||||||
|
|
||||||
|
if (!EnterpriseVoice)
|
||||||
|
{
|
||||||
|
tbPhoneNumber.Text = "";
|
||||||
|
tbPin.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EnterpriseVoice)
|
||||||
|
{
|
||||||
|
string[] pinPolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Pin, "MinPasswordLength");
|
||||||
|
if (pinPolicy != null)
|
||||||
|
{
|
||||||
|
if (pinPolicy.Length > 0)
|
||||||
|
{
|
||||||
|
int MinPasswordLength = -1;
|
||||||
|
if (int.TryParse(pinPolicy[0], out MinPasswordLength))
|
||||||
|
{
|
||||||
|
PinRegularExpressionValidator.ValidationExpression = "^([0-9]){" + MinPasswordLength.ToString() + ",}$";
|
||||||
|
PinRegularExpressionValidator.ErrorMessage = "Must contain only numbers. Min. length " + MinPasswordLength.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnCreate_Click(object sender, EventArgs e)
|
protected void btnCreate_Click(object sender, EventArgs e)
|
||||||
|
@ -53,6 +90,11 @@ namespace WebsitePanel.Portal.Lync
|
||||||
LyncUserResult res = ES.Services.Lync.CreateLyncUser(PanelRequest.ItemID, accountId, Convert.ToInt32(planSelector.planId));
|
LyncUserResult res = ES.Services.Lync.CreateLyncUser(PanelRequest.ItemID, accountId, Convert.ToInt32(planSelector.planId));
|
||||||
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
//#1
|
||||||
|
LyncUser lyncUser = ES.Services.Lync.GetLyncUserGeneralSettings(PanelRequest.ItemID, accountId);
|
||||||
|
ES.Services.Lync.SetLyncUserGeneralSettings(PanelRequest.ItemID, accountId, lyncUser.SipAddress, tbPhoneNumber.Text + ":" + tbPin.Text);
|
||||||
|
|
||||||
Response.Redirect(EditUrl("AccountID", accountId.ToString(), "edit_lync_user",
|
Response.Redirect(EditUrl("AccountID", accountId.ToString(), "edit_lync_user",
|
||||||
"SpaceID=" + PanelSecurity.PackageId,
|
"SpaceID=" + PanelSecurity.PackageId,
|
||||||
"ItemID=" + PanelRequest.ItemID));
|
"ItemID=" + PanelRequest.ItemID));
|
||||||
|
|
|
@ -1,40 +1,11 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
//------------------------------------------------------------------------------
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.Lync {
|
namespace WebsitePanel.Portal.Lync {
|
||||||
|
|
||||||
|
|
||||||
|
@ -139,6 +110,69 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.Lync.UserControls.LyncUserPlanSelector planSelector;
|
protected global::WebsitePanel.Portal.Lync.UserControls.LyncUserPlanSelector planSelector;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnEnterpriseVoice control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel pnEnterpriseVoice;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locPhoneNumber control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locPhoneNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbPhoneNumber control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox tbPhoneNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PhoneFormatValidator control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RegularExpressionValidator PhoneFormatValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locLyncPin control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locLyncPin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbPin control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox tbPin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PinRegularExpressionValidator control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RegularExpressionValidator PinRegularExpressionValidator;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnCreate control.
|
/// btnCreate control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -47,11 +47,41 @@
|
||||||
<wsp:LyncUserSettings ID="lyncUserSettings" runat="server" />
|
<wsp:LyncUserSettings ID="lyncUserSettings" runat="server" />
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnEnterpriseVoice">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locPhoneNumber" meta:resourcekey="locPhoneNumber" Text="Phone Number:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox runat="server" ID="tbPhoneNumber" />
|
||||||
|
<asp:RegularExpressionValidator ID="PhoneFormatValidator" runat="server"
|
||||||
|
ControlToValidate="tbPhoneNumber" Display="Dynamic" ValidationGroup="Validation1" SetFocusOnError="true"
|
||||||
|
ValidationExpression="^([0-9])*$"
|
||||||
|
ErrorMessage="Must contain only numbers.">
|
||||||
|
</asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locLyncPin" meta:resourcekey="locLyncPin" Text="Lync Pin:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox runat="server" ID="tbPin" />
|
||||||
|
<asp:RegularExpressionValidator ID="PinRegularExpressionValidator" runat="server"
|
||||||
|
ControlToValidate="tbPin" Display="Dynamic" ValidationGroup="Validation1" SetFocusOnError="true"
|
||||||
|
ValidationExpression="^([0-9])*$"
|
||||||
|
ErrorMessage="Must contain only numbers.">
|
||||||
|
</asp:RegularExpressionValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
<div class="FormFooterClean">
|
<div class="FormFooterClean">
|
||||||
<asp:Button runat="server" ID="btnSave" meta:resourcekey="btnSave"
|
<asp:Button runat="server" ID="btnSave" meta:resourcekey="btnSave" ValidationGroup="Validation1"
|
||||||
CssClass="Button1" onclick="btnSave_Click" />
|
CssClass="Button1" onclick="btnSave_Click" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -40,6 +40,40 @@ namespace WebsitePanel.Portal.Lync
|
||||||
{
|
{
|
||||||
if (!IsPostBack)
|
if (!IsPostBack)
|
||||||
BindItems();
|
BindItems();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_PreRender(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
bool EnterpriseVoice = false;
|
||||||
|
|
||||||
|
WebsitePanel.Providers.HostedSolution.LyncUserPlan plan = planSelector.plan;
|
||||||
|
if (plan != null)
|
||||||
|
EnterpriseVoice = plan.EnterpriseVoice;
|
||||||
|
|
||||||
|
pnEnterpriseVoice.Visible = EnterpriseVoice;
|
||||||
|
|
||||||
|
if (!EnterpriseVoice)
|
||||||
|
{
|
||||||
|
tbPhoneNumber.Text = "";
|
||||||
|
tbPin.Text = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EnterpriseVoice)
|
||||||
|
{
|
||||||
|
string[] pinPolicy = ES.Services.Lync.GetPolicyList(PanelRequest.ItemID, LyncPolicyType.Pin, "MinPasswordLength");
|
||||||
|
if (pinPolicy != null)
|
||||||
|
{
|
||||||
|
if (pinPolicy.Length > 0)
|
||||||
|
{
|
||||||
|
int MinPasswordLength = -1;
|
||||||
|
if (int.TryParse(pinPolicy[0], out MinPasswordLength))
|
||||||
|
{
|
||||||
|
PinRegularExpressionValidator.ValidationExpression = "^([0-9]){" + MinPasswordLength.ToString() + ",}$";
|
||||||
|
PinRegularExpressionValidator.ErrorMessage = "Must contain only numbers. Min. length " + MinPasswordLength.ToString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,6 +88,7 @@ namespace WebsitePanel.Portal.Lync
|
||||||
planSelector.planId = lyncUser.LyncUserPlanId.ToString();
|
planSelector.planId = lyncUser.LyncUserPlanId.ToString();
|
||||||
lyncUserSettings.sipAddress = lyncUser.SipAddress;
|
lyncUserSettings.sipAddress = lyncUser.SipAddress;
|
||||||
|
|
||||||
|
tbPhoneNumber.Text = lyncUser.LineUri;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void btnSave_Click(object sender, EventArgs e)
|
protected void btnSave_Click(object sender, EventArgs e)
|
||||||
|
@ -65,7 +100,7 @@ namespace WebsitePanel.Portal.Lync
|
||||||
LyncUserResult res = ES.Services.Lync.SetUserLyncPlan(PanelRequest.ItemID, PanelRequest.AccountID, Convert.ToInt32(planSelector.planId));
|
LyncUserResult res = ES.Services.Lync.SetUserLyncPlan(PanelRequest.ItemID, PanelRequest.AccountID, Convert.ToInt32(planSelector.planId));
|
||||||
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
||||||
{
|
{
|
||||||
res = ES.Services.Lync.SetLyncUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID, lyncUserSettings.sipAddress, string.Empty);
|
res = ES.Services.Lync.SetLyncUserGeneralSettings(PanelRequest.ItemID, PanelRequest.AccountID, lyncUserSettings.sipAddress, tbPhoneNumber.Text + ":" + tbPin.Text);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
if (res.IsSuccess && res.ErrorCodes.Count == 0)
|
||||||
|
|
|
@ -1,40 +1,11 @@
|
||||||
// Copyright (c) 2011, Outercurve Foundation.
|
//------------------------------------------------------------------------------
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.Lync {
|
namespace WebsitePanel.Portal.Lync {
|
||||||
|
|
||||||
|
|
||||||
|
@ -139,6 +110,69 @@ namespace WebsitePanel.Portal.Lync {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.Lync.UserControls.LyncUserSettings lyncUserSettings;
|
protected global::WebsitePanel.Portal.Lync.UserControls.LyncUserSettings lyncUserSettings;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnEnterpriseVoice control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel pnEnterpriseVoice;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locPhoneNumber control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locPhoneNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbPhoneNumber control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox tbPhoneNumber;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PhoneFormatValidator control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RegularExpressionValidator PhoneFormatValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locLyncPin control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locLyncPin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbPin control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox tbPin;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PinRegularExpressionValidator control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RegularExpressionValidator PinRegularExpressionValidator;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnSave control.
|
/// btnSave control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LyncUserPlanSelector.ascx.cs" Inherits="WebsitePanel.Portal.Lync.UserControls.LyncUserPlanSelector" %>
|
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="LyncUserPlanSelector.ascx.cs" Inherits="WebsitePanel.Portal.Lync.UserControls.LyncUserPlanSelector" %>
|
||||||
<asp:DropDownList ID="ddlPlan" runat="server" CssClass="NormalTextBox"></asp:DropDownList>
|
<asp:DropDownList ID="ddlPlan" runat="server" CssClass="NormalTextBox" AutoPostBack="true"></asp:DropDownList>
|
|
@ -35,11 +35,14 @@ namespace WebsitePanel.Portal.Lync.UserControls
|
||||||
{
|
{
|
||||||
|
|
||||||
private string planToSelect;
|
private string planToSelect;
|
||||||
|
|
||||||
public string planId
|
public string planId
|
||||||
{
|
{
|
||||||
|
|
||||||
get { return ddlPlan.SelectedItem.Value; }
|
get {
|
||||||
|
if (ddlPlan.Items.Count == 0) return "";
|
||||||
|
return ddlPlan.SelectedItem.Value;
|
||||||
|
}
|
||||||
set
|
set
|
||||||
{
|
{
|
||||||
planToSelect = value;
|
planToSelect = value;
|
||||||
|
@ -72,6 +75,19 @@ namespace WebsitePanel.Portal.Lync.UserControls
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WebsitePanel.Providers.HostedSolution.LyncUserPlan plan
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
WebsitePanel.Providers.HostedSolution.LyncUserPlan[] plans = ES.Services.Lync.GetLyncUserPlans(PanelRequest.ItemID);
|
||||||
|
foreach (WebsitePanel.Providers.HostedSolution.LyncUserPlan planitem in plans)
|
||||||
|
{
|
||||||
|
if (planitem.LyncUserPlanId.ToString() == planId) return planitem;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void BindPlans()
|
private void BindPlans()
|
||||||
{
|
{
|
||||||
WebsitePanel.Providers.HostedSolution.LyncUserPlan[] plans = ES.Services.Lync.GetLyncUserPlans(PanelRequest.ItemID);
|
WebsitePanel.Providers.HostedSolution.LyncUserPlan[] plans = ES.Services.Lync.GetLyncUserPlans(PanelRequest.ItemID);
|
||||||
|
|
|
@ -1,41 +1,11 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal.Lync.UserControls {
|
namespace WebsitePanel.Portal.Lync.UserControls {
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -40,58 +40,185 @@
|
||||||
</Columns>
|
</Columns>
|
||||||
</asp:GridView>
|
</asp:GridView>
|
||||||
<br />
|
<br />
|
||||||
<wsp:CollapsiblePanel id="secPlan" runat="server"
|
|
||||||
TargetControlID="Plan" meta:resourcekey="secPlan" Text="Plan">
|
|
||||||
</wsp:CollapsiblePanel>
|
|
||||||
<asp:Panel ID="Plan" runat="server" Height="0" style="overflow:hidden;">
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td class="FormLabel200" align="right">
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
<asp:TextBox ID="txtPlan" runat="server" CssClass="TextBox200" ></asp:TextBox>
|
|
||||||
<asp:RequiredFieldValidator ID="valRequirePlan" runat="server" meta:resourcekey="valRequirePlan" ControlToValidate="txtPlan"
|
|
||||||
ErrorMessage="Enter plan name" ValidationGroup="CreatePlan" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
<br />
|
|
||||||
</asp:Panel>
|
|
||||||
|
|
||||||
<wsp:CollapsiblePanel id="secPlanFeatures" runat="server" TargetControlID="PlanFeatures" meta:resourcekey="secPlanFeatures" Text="Plan Features">
|
<wsp:CollapsiblePanel id="secPlan" runat="server"
|
||||||
</wsp:CollapsiblePanel>
|
TargetControlID="Plan" meta:resourcekey="secPlan" Text="Plan">
|
||||||
<asp:Panel ID="PlanFeatures" runat="server" Height="0" style="overflow:hidden;">
|
</wsp:CollapsiblePanel>
|
||||||
<table>
|
<asp:Panel ID="Plan" runat="server" Height="0" style="overflow:hidden;">
|
||||||
<tr>
|
<table>
|
||||||
<td>
|
<tr>
|
||||||
<asp:CheckBox ID="chkIM" runat="server" meta:resourcekey="chkIM" Text="Instant Messaging"></asp:CheckBox>
|
<td class="FormLabel200" align="right">
|
||||||
</td>
|
|
||||||
</tr>
|
</td>
|
||||||
<tr>
|
<td>
|
||||||
<td>
|
<asp:TextBox ID="txtPlan" runat="server" CssClass="TextBox200" ></asp:TextBox>
|
||||||
<asp:CheckBox ID="chkMobility" runat="server" meta:resourcekey="chkMobility" Text="Mobility"></asp:CheckBox>
|
<asp:RequiredFieldValidator ID="valRequirePlan" runat="server" meta:resourcekey="valRequirePlan" ControlToValidate="txtPlan"
|
||||||
</td>
|
ErrorMessage="Enter plan name" ValidationGroup="CreatePlan" Display="Dynamic" Text="*" SetFocusOnError="True"></asp:RequiredFieldValidator>
|
||||||
</tr>
|
</td>
|
||||||
<tr>
|
</tr>
|
||||||
<td>
|
</table>
|
||||||
<asp:CheckBox ID="chkFederation" runat="server" meta:resourcekey="chkFederation" Text="Federation"></asp:CheckBox>
|
<br />
|
||||||
</td>
|
</asp:Panel>
|
||||||
</tr>
|
|
||||||
<tr>
|
<wsp:CollapsiblePanel id="secPlanFeatures" runat="server"
|
||||||
<td>
|
TargetControlID="PlanFeatures" meta:resourcekey="secPlanFeatures" Text="Plan Features">
|
||||||
<asp:CheckBox ID="chkConferencing" runat="server" meta:resourcekey="chkConferencing" Text="Conferencing"></asp:CheckBox>
|
</wsp:CollapsiblePanel>
|
||||||
</td>
|
<asp:Panel ID="PlanFeatures" runat="server" Height="0" style="overflow:hidden;">
|
||||||
</tr>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
<asp:CheckBox ID="chkEnterpriseVoice" runat="server" meta:resourcekey="chkEnterpriseVoice" Text="Enterprise Voice"></asp:CheckBox>
|
<asp:CheckBox ID="chkIM" runat="server" meta:resourcekey="chkIM" Text="Instant Messaging"></asp:CheckBox>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
<tr>
|
||||||
<br />
|
<td>
|
||||||
</asp:Panel>
|
<asp:CheckBox ID="chkMobility" runat="server" meta:resourcekey="chkMobility" Text="Mobility"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkConferencing" runat="server" meta:resourcekey="chkConferencing" Text="Conferencing"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkEnterpriseVoice" runat="server" meta:resourcekey="chkEnterpriseVoice" Text="Enterprise Voice"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesFederation" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesFederation" meta:resourcekey="secPlanFeaturesFederation" Text="Federation">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesFederation" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkFederation" runat="server" meta:resourcekey="chkFederation" Text="Federation"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkRemoteUserAccess" runat="server" meta:resourcekey="chkRemoteUserAccess" Text="Remote User access"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkPublicIMConnectivity" runat="server" meta:resourcekey="chkPublicIMConnectivity" Text="Public IM Connectivity"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesArchiving" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesArchiving" meta:resourcekey="secPlanFeaturesArchiving" Text="Archiving">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesArchiving" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locArchivingPolicy" meta:resourcekey="locArchivingPolicy" Text="Archiving Policy:" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddArchivingPolicy" runat="server" CssClass="TextBox200"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesMeeting" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesMeeting" meta:resourcekey="secPlanFeaturesMeeting" Text="Meeting">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesMeeting" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<asp:CheckBox ID="chkAllowOrganizeMeetingsWithExternalAnonymous" runat="server" meta:resourcekey="chkAllowOrganizeMeetingsWithExternalAnonymous" Text="Allow organize meetings with external anonymous participants"></asp:CheckBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<wsp:CollapsiblePanel id="secPlanFeaturesTelephony" runat="server"
|
||||||
|
TargetControlID="PlanFeaturesTelephony" meta:resourcekey="secPlanFeaturesTelephony" Text="Telephony">
|
||||||
|
</wsp:CollapsiblePanel>
|
||||||
|
<asp:Panel ID="PlanFeaturesTelephony" runat="server" Height="0" style="overflow:hidden;">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locTelephony" meta:resourcekey="locTelephony" Text="Telephony :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephony" runat="server" AutoPostBack="True">
|
||||||
|
<asp:ListItem Value="0" Text="Audio/Video disabled" meta:resourcekey="ddlTelephonyDisabled" />
|
||||||
|
<asp:ListItem Value="1" Text="PC-to-PC only" meta:resourcekey="ddlTelephonyPCtoPCOnly" />
|
||||||
|
<asp:ListItem Value="2" Text="Enterprise voice" meta:resourcekey="ddlTelephonyEnterpriseVoice" />
|
||||||
|
<asp:ListItem Value="3" Text="Remote call control" meta:resourcekey="ddlTelephonyRemoteCallControl" />
|
||||||
|
<asp:ListItem Value="4" Text="Remote call control only" meta:resourcekey="ddlTelephonyRemoteCallControlOnly" />
|
||||||
|
</asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnEnterpriseVoice">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locTelephonyProvider" meta:resourcekey="locTelephonyProvider" Text="Telephony Provider :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox ID="tbTelephoneProvider" runat="server"></asp:TextBox>
|
||||||
|
<asp:Button runat="server" ID="btnAccept" Text="Accept" OnClick="btnAccept_Click" OnClientClick="ShowProgressDialog('Loading...');" ValidationGroup="Accept"/>
|
||||||
|
|
||||||
|
<asp:RequiredFieldValidator id="AcceptRequiredValidator" runat="server" ErrorMessage="Please enter provider name"
|
||||||
|
ControlToValidate="tbTelephoneProvider" Display="Dynamic" ValidationGroup="Accept" SetFocusOnError="true"></asp:RequiredFieldValidator>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locDialPlan" meta:resourcekey="locDialPlan" Text="Dial Plan :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephonyDialPlanPolicy" runat="server"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locVoicePolicy" meta:resourcekey="locVoicePolicy" Text="Voice Policy :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:DropDownList ID="ddTelephonyVoicePolicy" runat="server"></asp:DropDownList>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<asp:Panel runat="server" ID="pnServerURI">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td class="FormLabel150">
|
||||||
|
<asp:Localize runat="server" ID="locServerURI" meta:resourcekey="locServerURI" Text="Server URI :" />
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<asp:TextBox ID="tbServerURI" runat="server"></asp:TextBox>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
</asp:Panel>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<%-- Disable because not used
|
||||||
<wsp:CollapsiblePanel id="secEnterpriseVoice" runat="server"
|
<wsp:CollapsiblePanel id="secEnterpriseVoice" runat="server"
|
||||||
TargetControlID="EnterpriseVoice" meta:resourcekey="secEnterpriseVoice" Text="Enterprise Voice Policy">
|
TargetControlID="EnterpriseVoice" meta:resourcekey="secEnterpriseVoice" Text="Enterprise Voice Policy">
|
||||||
</wsp:CollapsiblePanel>
|
</wsp:CollapsiblePanel>
|
||||||
|
@ -128,6 +255,7 @@
|
||||||
</table>
|
</table>
|
||||||
<br />
|
<br />
|
||||||
</asp:Panel>
|
</asp:Panel>
|
||||||
|
--%>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,52 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
internal static List<LyncUserPlan> list;
|
internal static List<LyncUserPlan> list;
|
||||||
|
|
||||||
|
protected void ddArchivingPolicyUpdate()
|
||||||
|
{
|
||||||
|
string[] archivePolicy = ES.Services.Lync.GetPolicyList(-1, LyncPolicyType.Archiving, null);
|
||||||
|
if (archivePolicy != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in archivePolicy)
|
||||||
|
{
|
||||||
|
if (policy.ToLower() == "global") continue;
|
||||||
|
string txt = policy.Replace("Tag:", "");
|
||||||
|
if (ddArchivingPolicy.Items.FindByValue(policy)==null)
|
||||||
|
ddArchivingPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(txt, policy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void Page_PreRender(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (ddArchivingPolicy.Items.Count == 0)
|
||||||
|
ddArchivingPolicyUpdate();
|
||||||
|
|
||||||
|
chkEnterpriseVoice.Enabled = false;
|
||||||
|
chkEnterpriseVoice.Checked = false;
|
||||||
|
|
||||||
|
pnEnterpriseVoice.Visible = false;
|
||||||
|
pnServerURI.Visible = false;
|
||||||
|
|
||||||
|
switch (ddTelephony.SelectedIndex)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
pnEnterpriseVoice.Visible = true;
|
||||||
|
chkEnterpriseVoice.Checked = true;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
pnServerURI.Visible = true;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
pnServerURI.Visible = true;
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void BindSettings(UserSettings settings)
|
public void BindSettings(UserSettings settings)
|
||||||
{
|
{
|
||||||
|
@ -113,8 +159,7 @@ namespace WebsitePanel.Portal
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Providers.HostedSolution.LyncUserPlan plan = new Providers.HostedSolution.LyncUserPlan();
|
||||||
LyncUserPlan plan = new LyncUserPlan();
|
|
||||||
plan.LyncUserPlanName = txtPlan.Text;
|
plan.LyncUserPlanName = txtPlan.Text;
|
||||||
plan.IsDefault = false;
|
plan.IsDefault = false;
|
||||||
|
|
||||||
|
@ -124,24 +169,21 @@ namespace WebsitePanel.Portal
|
||||||
plan.Conferencing = chkConferencing.Checked;
|
plan.Conferencing = chkConferencing.Checked;
|
||||||
|
|
||||||
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
||||||
if (!plan.EnterpriseVoice)
|
|
||||||
{
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (chkEmergency.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.Emergency;
|
|
||||||
else if (chkNational.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.National;
|
|
||||||
else if (chkMobile.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.Mobile;
|
|
||||||
else if (chkInternational.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.International;
|
|
||||||
else
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
|
||||||
|
|
||||||
}
|
plan.VoicePolicy = LyncVoicePolicyType.None;
|
||||||
|
|
||||||
|
plan.RemoteUserAccess = chkRemoteUserAccess.Checked;
|
||||||
|
plan.PublicIMConnectivity = chkPublicIMConnectivity.Checked;
|
||||||
|
|
||||||
|
plan.AllowOrganizeMeetingsWithExternalAnonymous = chkAllowOrganizeMeetingsWithExternalAnonymous.Checked;
|
||||||
|
|
||||||
|
plan.Telephony = ddTelephony.SelectedIndex;
|
||||||
|
|
||||||
|
plan.ServerURI = tbServerURI.Text;
|
||||||
|
|
||||||
|
plan.ArchivePolicy = ddArchivingPolicy.SelectedValue;
|
||||||
|
plan.TelephonyDialPlanPolicy = ddTelephonyDialPlanPolicy.SelectedValue;
|
||||||
|
plan.TelephonyVoicePolicy = ddTelephonyVoicePolicy.SelectedValue;
|
||||||
|
|
||||||
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
||||||
plan.LyncUserPlanType = (int)LyncUserPlanType.Administrator;
|
plan.LyncUserPlanType = (int)LyncUserPlanType.Administrator;
|
||||||
|
@ -234,7 +276,7 @@ namespace WebsitePanel.Portal
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
messageBox.ShowErrorMessage("EXCHANGE_DELETE_MAILBOXPLAN");
|
messageBox.ShowErrorMessage("LYNC_DELETE_PLAN");
|
||||||
}
|
}
|
||||||
|
|
||||||
BindPlans();
|
BindPlans();
|
||||||
|
@ -261,7 +303,6 @@ namespace WebsitePanel.Portal
|
||||||
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
orgs = ES.Services.ExchangeServer.GetExchangeOrganizations(1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
plan = ES.Services.Lync.GetLyncUserPlan(orgs[0].Id, planId);
|
plan = ES.Services.Lync.GetLyncUserPlan(orgs[0].Id, planId);
|
||||||
|
|
||||||
txtPlan.Text = plan.LyncUserPlanName;
|
txtPlan.Text = plan.LyncUserPlanName;
|
||||||
|
@ -271,26 +312,35 @@ namespace WebsitePanel.Portal
|
||||||
chkConferencing.Checked = plan.Conferencing;
|
chkConferencing.Checked = plan.Conferencing;
|
||||||
chkMobility.Checked = plan.Mobility;
|
chkMobility.Checked = plan.Mobility;
|
||||||
chkEnterpriseVoice.Checked = plan.EnterpriseVoice;
|
chkEnterpriseVoice.Checked = plan.EnterpriseVoice;
|
||||||
switch (plan.VoicePolicy)
|
|
||||||
|
chkRemoteUserAccess.Checked = plan.RemoteUserAccess;
|
||||||
|
chkPublicIMConnectivity.Checked = plan.PublicIMConnectivity;
|
||||||
|
|
||||||
|
chkAllowOrganizeMeetingsWithExternalAnonymous.Checked = plan.AllowOrganizeMeetingsWithExternalAnonymous;
|
||||||
|
ddTelephony.SelectedIndex = plan.Telephony;
|
||||||
|
|
||||||
|
tbServerURI.Text = plan.ServerURI;
|
||||||
|
|
||||||
|
string planArchivePolicy = "";
|
||||||
|
if (plan.ArchivePolicy != null) planArchivePolicy = plan.ArchivePolicy;
|
||||||
|
string planTelephonyDialPlanPolicy = "";
|
||||||
|
if (plan.TelephonyDialPlanPolicy != null) planTelephonyDialPlanPolicy = plan.TelephonyDialPlanPolicy;
|
||||||
|
string planTelephonyVoicePolicy = "";
|
||||||
|
if (plan.TelephonyVoicePolicy != null) planTelephonyVoicePolicy = plan.TelephonyVoicePolicy;
|
||||||
|
|
||||||
|
ddArchivingPolicyUpdate();
|
||||||
|
ListItem li = ddArchivingPolicy.Items.FindByValue(planArchivePolicy);
|
||||||
|
if (li == null)
|
||||||
{
|
{
|
||||||
case LyncVoicePolicyType.None:
|
li = new System.Web.UI.WebControls.ListItem(planArchivePolicy.Replace("Tag:", ""), planArchivePolicy);
|
||||||
break;
|
ddArchivingPolicy.Items.Add(li);
|
||||||
case LyncVoicePolicyType.Emergency:
|
|
||||||
chkEmergency.Checked = true;
|
|
||||||
break;
|
|
||||||
case LyncVoicePolicyType.National:
|
|
||||||
chkNational.Checked = true;
|
|
||||||
break;
|
|
||||||
case LyncVoicePolicyType.Mobile:
|
|
||||||
chkMobile.Checked = true;
|
|
||||||
break;
|
|
||||||
case LyncVoicePolicyType.International:
|
|
||||||
chkInternational.Checked = true;
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
chkNone.Checked = true;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
ddArchivingPolicy.SelectedIndex = ddArchivingPolicy.Items.IndexOf(li);
|
||||||
|
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Clear();
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planTelephonyDialPlanPolicy.Replace("Tag:", ""), planTelephonyDialPlanPolicy));
|
||||||
|
ddTelephonyVoicePolicy.Items.Clear();
|
||||||
|
ddTelephonyVoicePolicy.Items.Add(new System.Web.UI.WebControls.ListItem(planTelephonyVoicePolicy.Replace("Tag:", ""), planTelephonyVoicePolicy));
|
||||||
|
|
||||||
btnUpdatePlan.Enabled = (string.IsNullOrEmpty(txtPlan.Text)) ? false : true;
|
btnUpdatePlan.Enabled = (string.IsNullOrEmpty(txtPlan.Text)) ? false : true;
|
||||||
|
|
||||||
|
@ -298,7 +348,6 @@ namespace WebsitePanel.Portal
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
messageBox.ShowErrorMessage("EXCHANGE_DELETE_MAILBOXPLAN");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BindPlans();
|
BindPlans();
|
||||||
|
@ -375,7 +424,6 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
plan = new Providers.HostedSolution.LyncUserPlan();
|
plan = new Providers.HostedSolution.LyncUserPlan();
|
||||||
plan.LyncUserPlanId = (int)ViewState["LyncUserPlanID"];
|
plan.LyncUserPlanId = (int)ViewState["LyncUserPlanID"];
|
||||||
|
|
||||||
plan.LyncUserPlanName = txtPlan.Text;
|
plan.LyncUserPlanName = txtPlan.Text;
|
||||||
plan.IsDefault = false;
|
plan.IsDefault = false;
|
||||||
|
|
||||||
|
@ -385,24 +433,22 @@ namespace WebsitePanel.Portal
|
||||||
plan.Conferencing = chkConferencing.Checked;
|
plan.Conferencing = chkConferencing.Checked;
|
||||||
|
|
||||||
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
plan.EnterpriseVoice = chkEnterpriseVoice.Checked;
|
||||||
if (!plan.EnterpriseVoice)
|
|
||||||
{
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (chkEmergency.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.Emergency;
|
|
||||||
else if (chkNational.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.National;
|
|
||||||
else if (chkMobile.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.Mobile;
|
|
||||||
else if (chkInternational.Checked)
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.International;
|
|
||||||
else
|
|
||||||
plan.VoicePolicy = LyncVoicePolicyType.None;
|
|
||||||
|
|
||||||
}
|
plan.VoicePolicy = LyncVoicePolicyType.None;
|
||||||
|
|
||||||
|
plan.RemoteUserAccess = chkRemoteUserAccess.Checked;
|
||||||
|
plan.PublicIMConnectivity = chkPublicIMConnectivity.Checked;
|
||||||
|
|
||||||
|
plan.AllowOrganizeMeetingsWithExternalAnonymous = chkAllowOrganizeMeetingsWithExternalAnonymous.Checked;
|
||||||
|
|
||||||
|
plan.Telephony = ddTelephony.SelectedIndex;
|
||||||
|
|
||||||
|
plan.ServerURI = tbServerURI.Text;
|
||||||
|
|
||||||
|
plan.ArchivePolicy = ddArchivingPolicy.SelectedValue;
|
||||||
|
plan.TelephonyDialPlanPolicy = ddTelephonyDialPlanPolicy.SelectedValue;
|
||||||
|
plan.TelephonyVoicePolicy = ddTelephonyVoicePolicy.SelectedValue;
|
||||||
|
|
||||||
|
|
||||||
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
if (PanelSecurity.SelectedUser.Role == UserRole.Administrator)
|
||||||
plan.LyncUserPlanType = (int)LyncUserPlanType.Administrator;
|
plan.LyncUserPlanType = (int)LyncUserPlanType.Administrator;
|
||||||
|
@ -417,11 +463,11 @@ namespace WebsitePanel.Portal
|
||||||
|
|
||||||
if (result < 0)
|
if (result < 0)
|
||||||
{
|
{
|
||||||
messageBox.ShowErrorMessage("EXCHANGE_UPDATEPLANS");
|
messageBox.ShowErrorMessage("LYNC_UPDATEPLANS");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
messageBox.ShowSuccessMessage("EXCHANGE_UPDATEPLANS");
|
messageBox.ShowSuccessMessage("LYNC_UPDATEPLANS");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -503,6 +549,39 @@ namespace WebsitePanel.Portal
|
||||||
BindPlans();
|
BindPlans();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void btnAccept_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
string name = tbTelephoneProvider.Text;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(name)) return;
|
||||||
|
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Clear();
|
||||||
|
string[] dialPlan = ES.Services.Lync.GetPolicyList(-1, LyncPolicyType.DialPlan, name);
|
||||||
|
if (dialPlan != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in dialPlan)
|
||||||
|
{
|
||||||
|
if (policy.ToLower() == "global") continue;
|
||||||
|
string txt = policy.Replace("Tag:", "");
|
||||||
|
ddTelephonyDialPlanPolicy.Items.Add(new System.Web.UI.WebControls.ListItem(txt, policy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ddTelephonyVoicePolicy.Items.Clear();
|
||||||
|
string[] voicePolicy = ES.Services.Lync.GetPolicyList(-1, LyncPolicyType.Voice, name);
|
||||||
|
if (voicePolicy != null)
|
||||||
|
{
|
||||||
|
foreach (string policy in voicePolicy)
|
||||||
|
{
|
||||||
|
if (policy.ToLower() == "global") continue;
|
||||||
|
string txt = policy.Replace("Tag:", "");
|
||||||
|
ddTelephonyVoicePolicy.Items.Add(new System.Web.UI.WebControls.ListItem(txt, policy));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,40 +1,11 @@
|
||||||
// Copyright (c) 2012, Outercurve Foundation.
|
//------------------------------------------------------------------------------
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without modification,
|
|
||||||
// are permitted provided that the following conditions are met:
|
|
||||||
//
|
|
||||||
// - Redistributions of source code must retain the above copyright notice, this
|
|
||||||
// list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// - Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
// this list of conditions and the following disclaimer in the documentation
|
|
||||||
// and/or other materials provided with the distribution.
|
|
||||||
//
|
|
||||||
// - Neither the name of the Outercurve Foundation nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived from this
|
|
||||||
// software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
|
||||||
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
|
||||||
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace WebsitePanel.Portal {
|
namespace WebsitePanel.Portal {
|
||||||
|
|
||||||
|
|
||||||
|
@ -139,15 +110,6 @@ namespace WebsitePanel.Portal {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkMobility;
|
protected global::System.Web.UI.WebControls.CheckBox chkMobility;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// chkFederation control.
|
|
||||||
/// </summary>
|
|
||||||
/// <remarks>
|
|
||||||
/// Auto-generated field.
|
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
|
||||||
/// </remarks>
|
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkFederation;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkConferencing control.
|
/// chkConferencing control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -167,67 +129,256 @@ namespace WebsitePanel.Portal {
|
||||||
protected global::System.Web.UI.WebControls.CheckBox chkEnterpriseVoice;
|
protected global::System.Web.UI.WebControls.CheckBox chkEnterpriseVoice;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// secEnterpriseVoice control.
|
/// secPlanFeaturesFederation control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::WebsitePanel.Portal.CollapsiblePanel secEnterpriseVoice;
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// EnterpriseVoice control.
|
/// PlanFeaturesFederation control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.Panel EnterpriseVoice;
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkNone control.
|
/// chkFederation control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RadioButton chkNone;
|
protected global::System.Web.UI.WebControls.CheckBox chkFederation;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkEmergency control.
|
/// chkRemoteUserAccess control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RadioButton chkEmergency;
|
protected global::System.Web.UI.WebControls.CheckBox chkRemoteUserAccess;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkNational control.
|
/// chkPublicIMConnectivity control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RadioButton chkNational;
|
protected global::System.Web.UI.WebControls.CheckBox chkPublicIMConnectivity;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkMobile control.
|
/// secPlanFeaturesArchiving control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RadioButton chkMobile;
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesArchiving;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// chkInternational control.
|
/// PlanFeaturesArchiving control.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>
|
/// <remarks>
|
||||||
/// Auto-generated field.
|
/// Auto-generated field.
|
||||||
/// To modify move field declaration from designer file to code-behind file.
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::System.Web.UI.WebControls.RadioButton chkInternational;
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesArchiving;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locArchivingPolicy control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locArchivingPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddArchivingPolicy control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddArchivingPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secPlanFeaturesMeeting control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesMeeting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PlanFeaturesMeeting control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesMeeting;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// chkAllowOrganizeMeetingsWithExternalAnonymous control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.CheckBox chkAllowOrganizeMeetingsWithExternalAnonymous;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// secPlanFeaturesTelephony control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::WebsitePanel.Portal.CollapsiblePanel secPlanFeaturesTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// PlanFeaturesTelephony control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel PlanFeaturesTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTelephony control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephony control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddTelephony;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnEnterpriseVoice control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel pnEnterpriseVoice;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locTelephonyProvider control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locTelephonyProvider;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbTelephoneProvider control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox tbTelephoneProvider;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnAccept control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Button btnAccept;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// AcceptRequiredValidator control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.RequiredFieldValidator AcceptRequiredValidator;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locDialPlan control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locDialPlan;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephonyDialPlanPolicy control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddTelephonyDialPlanPolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locVoicePolicy control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locVoicePolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ddTelephonyVoicePolicy control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.DropDownList ddTelephonyVoicePolicy;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// pnServerURI control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Panel pnServerURI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// locServerURI control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.Localize locServerURI;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// tbServerURI control.
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// Auto-generated field.
|
||||||
|
/// To modify move field declaration from designer file to code-behind file.
|
||||||
|
/// </remarks>
|
||||||
|
protected global::System.Web.UI.WebControls.TextBox tbServerURI;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// btnAddPlan control.
|
/// btnAddPlan control.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue