配置电话以重新同步配置文件

电话支持适用于检索配置文件的多个网络协议。 最基本的配置文件传输协议是 TFTP (RFC1350)。 TFTP 广泛用于在专用 LAN 网络内设置网络设备。 尽管不建议部署跨 Internet 的远程终端,但 TFTP 对于小型企业内的部署而言非常方便,既适合内部预设置,又利于开发和测试。 在下面的程序中,从 TFTP 服务器下载文件后会修改配置文件。

1

在局域网环境中,将计算机和电话连接到集线器、交换机或小型路由器。

2

在计算机上,安装并激活 TFTP 服务器。

3

使用文本编辑器创建配置文件。

若要验证配置文件是否已稍后配置到您的电话,您可以将一些值设置为标记。 例如,将 GPP_A 的值设置为 12345678,如下例所示:
<flat-profile>
  <GPP_A> 12345678
  </GPP_A>
</flat-profile>
4

将 XML 配置文件保存在 TFTP 服务器的根目录中。

您可以验证 TFTP 服务器的配置是否正确:使用 TFTP 客户端(而非电话)请求配置文件。 最好从设置服务器使用在单独主机上运行的 TFTP 客户端。

5

在计算机的 Web 浏览器中,打开管理网页。 例如,假设电话的 IP 地址为 192.168.1.100,请在 Web 浏览器中打开以下 URL:

http://192.168.1.100/admin/advanced
6

选择 Voice > Provisioning 选项卡,然后检查通用参数 GPP_P 到 GPP_A 的值。 这些值应该为空。

7

在 Web 浏览器中打开重新同步 URL,将测试电话重新同步到您创建的配置文件。

示例:

如果 TFTP 服务器的 IP 地址是 192.168.1.200,命令应该与以下示例类似:

http://192.168.1.100/admin/resync?tftp://192.168.1.200/basic.txt

当电话收到此命令时,位于 192.168.1.100 的设备会从 IP 地址为 192.168.1.200 的 TFTP 服务器请求配置文件 basic.txt。 然后,电话将解析下载的文件,并将 GPP_A 参数的值更新为 12345678。

8

验证参数是否已正确更新。 刷新管理网页,然后转到 Voice > Provisioning

GPP_A 参数现应包含值 12345678。

1

从产品标签获取电话的 MAC 地址。 MAC 地址是使用数字以及小写十六进制数字的号码,例如 000e08aabbcc。

2

将配置文件重命名为 CP-xxxx macaddress.cfg(将 xxxx 替换为型号,将 macaddress 替换为电话的 MAC 地址)。

示例:

CP-8875 000e08aabbcc.cfg

3

移动 TFTP 服务器虚拟根目录中的新文件。

4

访问电话管理网页。

5

选择 Voice  > Provisioning

6

配置文件规则字段中输入配置文件的路径。

示例:假设 TFTP 服务器 IP 地址为 192.168.1.200,配置文件名为

<Profile_Rule>
tftp://192.168.1.200/CP-8875$MA.cfg
</Profile_Rule>
7

单击 Submit All Changes。 这样会立即重新启动并重新同步。

下次重新同步时,电话会将 $MA 宏表达式扩展到它的 MAC 地址,从而检索新文件。

1

在本地计算机或其他可访问主机上安装 HTTP 服务器。

可从 Internet 下载开放源码 Apache 服务器。

2

将配置文件上载到已安装服务器的虚拟根目录。

3

要验证服务器安装是否正确以及是否可以访问配置文件,请使用 Web 浏览器打开配置文件。

4

将测试电话的 Profile_Rule 改为指向 HTTP 服务器(而非 TFTP 服务器),从而定期下载其配置文件。

例如,假设 HTTP 服务器为 192.168.1.300,配置文件名为 basic.txt,输入以下值:

<Profile_Rule>http://192.168.1.200/basic.txt</Profile_Rule>
5

单击 Submit All Changes。 这样会立即重新启动并重新同步。

6

查看电话发送的系统日志消息。 定期重新同步现在应会从 HTTP 服务器获取配置文件。

7

在 HTTP 服务器日志中,观察标识测试电话的信息如何显示在用户代理的日志中。

此信息都应包括制造商、产品名称、当前固件版本和序列号。

设备可以定期重新同步到设置服务器,以确保在服务器上进行的配置文件更改会传播到终端设备(而不是将显式重新同步请求发送到端点)。

要使电话定期重新同步到服务器,使用 Profile_Rule 参数定义配置文件 URL,并使用 Resync_Periodic 参数定义重新同步周期。

1

访问电话管理网页。

2

选择 Voice  > Provisioning

3

定义 Profile_Rule 参数。 本例假设 TFTP 服务器 IP 地址为 192.168.1.200。

4

Resync Periodic 字段中,输入一个较小的值以进行测试,例如 30 秒。

5

单击提交所有更改

使用新的参数设置,电话每分钟会执行两次到 URL 指定的配置文件的重新同步。

6

观察系统日志跟踪中的结果消息。

7

确保 Resync On Reset 字段设置为 Yes

<Resync_On_Reset>Yes</Resync_On_Reset>
8

重启电话以强制其重新同步到设置服务器。

如果出于任何原因重新同步操作失败,比如服务器不响应,设备在重试重新同步之前需等待(Resync Error Retry Delay 中配置的秒数)。 如果 Resync Error Retry Delay 设置为 0,在尝试重新同步失败后,电话不会尝试重新同步。

9

(可选)将 Resync Error Retry Delay 字段的值设定为较小的数值,例如 30

<Resync_Error_Retry_Delay>30</Resync_Error_Retry_Delay>
10

禁用 TFTP 服务器并查看系统日志输出中的结果。

下表定义了电话网页 Voice > Provisioning 选项卡下的配置文件部分中配置文件重新同步参数的功能和用法。 它还定义了电话配置文件 (cfg.xml) 中添加的字符串的语法,其中包含用于配置参数的 XML 代码。

表 1. 配置文件重新同步参数

参数

说明

启用设置

允许或拒绝配置文件重新同步操作。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Provision_Enable ua="na">Yes</Provision_Enable>
  • 在电话网页上,将此字段设置为 Yes 以允许重新同步操作,或设置为 No 以阻止重新同步操作。

默认值:Yes

重置时重新同步

指定在启动后和每次尝试升级后,电话是否与配置服务器重新同步配置。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Resync_On_Reset ua="na">Yes</Resync_On_Reset>
  • 在电话网页上,将此字段设置为 Yes 以允许在启动或重置后重新同步,或设置为 No 以阻止在启动或重置后重新同步。

默认值:Yes

重新同步随机延迟

防止预配置服务器在大量设备同时接电且尝试初始配置时过载。 此延迟仅在设备加电或重置后尝试初始配置时有效。

该参数是设备在与预配置服务器联系之前要等待的最长时间间隔。 实际延迟是介于 0 和此值之间的伪随机数字。

此参数以 20 秒为单位。

有效值介于 0 到 65535 之间。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Resync_Random_Delay ua="na">2</Resync_Random_Delay>
  • 在电话网页上,为电话指定单位数(20 秒),以便在启动或重置后延迟重新同步。

默认值为 2(40 秒)。

重新同步时间 (HHmm)

电话与配置服务器重新同步的时间 (HHmm)。

此字段的值必须为介于 0000 到 2400 之间的四位数字,以 HHmm 格式表示时间。 例如,0959 年表示 09:59。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Resync_At__HHmm_ ua="na">0959</Resync_At__HHmm_>
  • 在电话网页上,以 HHMM 格式指定电话开始重新同步的时间。

默认值为空。 如果值无效,该参数将被忽略。 如果此参数设置为有效值,则 Resync Periodic 参数将被忽略。

随机延迟重新同步

防止设置服务器在大量设备同时接电时过载。

为避免来自多部电话的大量重新同步请求涌向服务器,电话的重新同步范围介于小时和分钟,以及小时、分钟加上随机延迟之间 (hhmm, hhmm+random_delay)。 例如,如果随机延迟 =(随机延迟时重新同步 + 30)/60 分钟,以秒为单位输入的值会转换为分钟,四舍五入计入下一分钟以计算最终的 random_delay 间隔。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Resync_At_Random_Delay ua="na">600</Resync_At_Random_Delay>
  • 在电话网页上上,以秒为单位指定时段。

有效值介于 600 到 65535 之间。

如果值小于 600,则内部随机延迟介于 0 到 600 之间。

默认值为 600 秒(10 分钟)。

重新同步周期

与设置服务器定期重新同步的时间间隔。 仅在第一次成功同步服务器后,关联重新同步计时器才会激活。

有效格式如下所示:

  • 一个整数

    示例:输入 3000 表示下次重新同步将在 3000 秒后发生。

  • 多个整数

    示例:输入 600,1200,300 表示第一次重新同步将在 600 秒后发生,第二次重新同步将在第一次重新同步之后的 1200 秒后发生,第三次重新同步将在第二次重新同步之后的 300 秒后发生。

  • 时间范围

    示例:输入 2400+30 表示下次重新同步将在重新同步成功后的 2400 到 2430 秒之间发生。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Resync_Periodic ua="na">3600</Resync_Periodic>
  • 在电话网页上上,以秒为单位指定时段。

此参数设置为零将禁用定期重新同步。

默认值为 3600 秒。

重新同步错误重试延迟

如果因为电话无法从服务器检索配置文件导致重新同步操作失败,或者下载的文件已损坏或发生内部错误,电话将在指定的时间(以秒为单位)之后再次尝试重新同步。

有效格式如下所示:

  • 一个整数

    示例:输入 300 表示下次重新同步重试将在 300 秒后发生。

  • 多个整数

    示例:输入 600,1200,300 表示第一次重试将在失败之后的 600 秒后发生,第二次重试将在第一次重试失败之后的 1200 秒后发生,第三次重试将在第二次重试失败之后的 300 秒后发生。

  • 时间范围

    示例:输入 2400+30 表示下次重试将在重新同步失败后的 2400 到 2430 秒之间发生。

如果延迟设置为 0,在尝试重新同步失败后,设备不会再尝试重新同步。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Resync_Error_Retry_Delay ua="na">60,120,240,480,960,1920,3840,7680,15360,30720,61440,86400</Resync_Error_Retry_Delay>
  • 在电话网页上上,以秒为单位指定时段。

默认值:60,120,240,480,960,1920,3840,7680,15360,30720,61440,86400

强制重新同步延迟

执行重新同步之前电话等待的最长延迟(以秒为单位)。

如果有一条电话线路处于活动状态,设备不会重新同步。 因为重新同步可能需要数秒钟的时间,所以最好等待,直至设备在重新同步之前长时间处于空闲状态。 这使得用户能够连续发起呼叫而不会中断。

设备有一个计时器,当其所有线路变为空闲时便会开始倒计时。 此参数是计数器的初始值。 重新同步事件会延迟直至此计数器递减为零。

有效值介于 0 到 65535 之间。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Forced_Resync_Delay ua="na">14400</Forced_Resync_Delay>
  • 在电话网页上上,以秒为单位指定时段。

默认值为 14,400 秒。

从 SIP 重新同步

通过从服务提供商代理服务器发送到电话的 SIP 通知事件来控制对重新同步操作的请求。 如果启用,代理可以通过向设备发送包含 Event: resync 标头的 SIP 通知消息来请求重新同步。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Resync_From_SIP ua="na">Yes</Resync_From_SIP>
  • 在电话网页上,选择 Yes 以启用此功能,或选择 No 将其禁用。

默认值:Yes

尝试升级后重新同步

在发生任何升级之后启用或禁用重新同步操作。 如果选择 Yes,固件升级后会触发同步。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Resync_After_Upgrade_Attempt ua="na">Yes</Resync_After_Upgrade_Attempt>
  • 在电话网页上,选择 Yes 在固件升级后触发重新同步,或选择 No 不重新同步。

默认值:Yes

Resync Trigger 1

Resync Trigger 2

如果这些参数的逻辑公式计算结果为 FALSE,即使 Resync On Reset 设置为 TRUE,也不会触发重新同步。 只有通过直接操作 URL 和 SIP 通知,重新同步才会忽略这些重新同步触发器。

各个参数都可以使用经过宏扩展的条件表达式设置。 有关有效的宏扩展,请参阅 预配参数下的 宏扩展变量

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Resync_Trigger_1 ua="na">$UPGTMR gt 300 and $PRVTMR ge 600</Resync_Trigger_1>

    <Resync_Trigger_2 ua="na"/>

  • 在电话网页上,指定触发器。

默认值:空

用户可配置重新同步

允许用户在电话屏幕菜单重新同步电话。 当设置为 Yes 时,用户可以通过从电话输入配置文件规则来重新同步电话配置。 如果设置为 No,则配置文件规则参数不会在电话屏幕菜单上显示。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <User_Configurable_Resync ua="na">Yes</User_Configurable_Resync>

  • 在电话网页上,选择 Yes 在电话菜单中显示配置文件规则,或选择 No 以隐藏此参数。

默认值:Yes

FNF 重新同步失败

如果未从服务器收到请求的配置文件,重新同步通常被视为失败。 此参数将改写此行为。 如果设置为 No,当收到服务器发回的 file-not-found 响应时,设备会认为重新同步成功。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Resync_Fails_On_FNF ua="na">Yes</Resync_Fails_On_FNF>
  • 在电话网页上,选择 Yesfile-not-found 响应视为重新同步不成功,或者选择 Nofile-not-found 响应视为重新同步成功。

默认值:Yes

Profile Authentication Type

指定用于验证配置文件帐户的凭证。 可用的选项有:

  • Disabled:禁用配置文件帐户功能。 禁用此功能后,Profile account setup 菜单不会在电话屏幕上显示。

  • 基本 HTTP 验证: HTTP 登录凭证用于验证配置文件帐户。

  • XSI Authentication:XSI 登录凭证或 XSI SIP 凭证用于验证配置文件帐户。 验证凭证取决于电话的 XSI Authentication Type

    • 当电话的 XSI Authentication Type 设置为 Login Credentials 时,使用 XSI 登录凭证。

    • 当电话的 XSI 验证类型设置为 SIP 凭证时,使用 XSI SIP 凭证。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Profile_Authentication_Type ua="na">基本 Http 验证</Profile_Authentication_Type>
  • 在电话网页上,从列表中选择一个选项以便电话验证配置文件重新同步。

默认值:Basic HTTP Authentication

有关更多信息,请参阅 指定用于档案重新同步的电话下的 指定档案验证类型

配置文件规则

配置文件规则 B

配置文件规则 C

配置文件规则 D

每条配置文件规则会告知电话应从哪个来源获取配置文件(配置文件)。 每个重新同步操作期间,电话会依次应用所有配置文件。

如果您要对配置文件应用 AES-256-CBC 加密,如下所示采用 --key 关键字指定加密密钥:

[--key <encryption key>]

您可以将加密密钥括在双引号 (") 内。

  • 在包含 XML 的电话配置文件 (cfg.xml) 中,输入以下格式的字符串:

    <Profile_Rule ua="na">/$PSN.xml</Profile_Rule>

    <Profile_Rule_B ua="na"/>

    <Profile_Rule_C ua="na"/>

    <Profile_Rule_D ua="na"/>

  • 在电话网页上,指定配置文件规则。

默认值:/$PSN.xml

使用的 DHCP 选项

DHCP 选项用逗号分隔,用于检索固件和配置文件。

默认值:66,160,159,150,60,43,125

DHCPv6 Option To Use

DHCP 选项用逗号分隔,用于检索固件和配置文件。

默认值:17,160,159

您可以通过 Cisco XML 功能配置电话。

您可以将 XML 对象通过 SIP Notify 数据包发送到电话,或通过 HTTP Post 发送到电话的 CGI 接口:http://PhoneIPAddress/CGI/Execute

CP-xxxx-3PCC 扩展了 Cisco XML 功能,现支持通过 XML 对象进行设置:

<CP-xxxx-3PCCExecute> <ExecuteItem URL=Resync:[profile-rule]/></CP-xxxx-3PCCExecute>

电话收到 XML 对象后,会从 [profile-rule] 下载设置文件。 此规则使用宏来简化 XML 服务应用程序的开发。

服务器上具有多个配置文件的子目录为管理所部署的大量设备提供了便利的方法。 配置文件 URL 可能包含:

  • 设置服务器名称或显式 IP 地址。 如果配置文件按名称标识设置服务器,电话将执行 DNS 查询以解析名称。

  • 使用标准语法 :port 在 URL 中指定的非标准服务器端口,位于服务器名称之后。

  • 配置文件所处服务器虚拟根目录的子目录,使用标准 URL 表示法指定,通过宏扩展管理。

例如,以下 Profile_Rule 在服务器子目录 /cisco/config 中,从在主机 prov.telco.com 上运行的 TFTP 服务器请求配置文件 ($PN.cfg),侦听端口 6900 上的连接:

<Profile_Rule>
tftp://prov.telco.com:6900/cisco/config/$PN.cfg
</Profile_Rule>

每个电话的配置文件可以在通用参数中标识,其值通过使用宏扩展在通用配置文件规则中引用。

例如,假设 GPP_B 定义为 Dj6Lmp23Q

Profile_Rule 具有值:

tftp://prov.telco.com/cisco/$B/$MA.cfg

当设备重新同步和宏扩展时,MAC 地址为 000e08012345 的电话将通过以下 URL 请求名称包含设备 MAC 地址的配置文件:

tftp://prov.telco.com/cisco/Dj6Lmp23Q/000e08012345.cfg

通过配置文件验证,电话用户可以将设置配置文件重新同步到电话上。 电话首次尝试重新同步和下载配置文件并收到 HTTP 或 HTTPS 401 验证错误时,需要验证信息。 以下情况下,启用此功能后,配置文件帐户设置屏幕会在电话上显示:

  • 电话重启后,首次设置期间发生 HTTP 或 HTTPs 401 验证错误时

  • 配置文件帐户用户名和密码为空时

  • 配置文件规则中没有用户名和密码时

如果错过或忽略了配置文件帐户设置屏幕,用户还可以通过电话屏幕菜单或设置软键(软键仅在未注册电话线路时才会显示)访问设置屏幕。

如果禁用此功能,配置文件帐户设置屏幕不会在电话上显示。

配置文件规则中的用户名和密码的优先级高于配置文件帐户。

  • 当您在不含用户名和密码的配置文件规则字段中提供正确的 URL 时,电话需要验证或 digest 以重新同步配置文件。 如果配置文件帐户正确,验证将通过。 如果配置文件帐户不正确,则验证会失败。

  • 当您在包含正确用户名和密码的配置文件规则字段中提供正确的 URL 时,电话需要验证或 digest 以重新同步配置文件。 配置文件帐户不用于电话重新同步。 登录成功。

  • 当您在包含错误用户名和密码的配置文件规则字段中提供正确的 URL 时,电话需要验证或 digest 以重新同步配置文件。 配置文件帐户不用于电话重新同步。 登录始终失败。

  • 当您在配置文件规则字段中提供不正确的 URL 时,登录始终失败。

您还可以使用 XML(cfg.xml) 代码配置电话配置文件中的参数。

您可以在电话管理网页中指定配置文件验证类型。

1

访问电话管理网页。

2

选择 Voice > Provisioning

3

Configuration Profile 部分,设置 Profile Authentication Type 参数以指定要用于配置文件帐户验证的凭证。

您可以通过输入以下格式的字符串,在电话配置 XML 文件 (cfg.xml) 中配置此参数:

<Profile_Authentication_Type ua="na">Disabled</Profile_Authentication_Type>

选项:

  • Disabled:禁用配置文件帐户功能。禁用此功能后,Profile account setup 菜单不会在电话屏幕上显示。

  • 基本 HTTP 验证: HTTP 登录凭证用于验证配置文件帐户。

  • XSI Authentication:XSI 登录凭证或 XSI SIP 凭证用于验证配置文件帐户。 验证凭证取决于电话的 XSI 验证类型:

    当电话的 XSI 验证类型设置为登录凭证时,使用 XSI 登录凭证。

    当电话的 XSI 验证类型设置为 SIP 凭证时,使用 XSI SIP 凭证。

默认值:Basic HTTP Authentication

4

单击 Submit All Changes

手动将情景模式应用于电话

完成这些步骤以将配置文件下载到 PC 上的 TFTP 服务器应用程序。

1

将计算机连接到电话的 LAN 端口。

2

在计算机上运行 TFTP 服务器应用程序,并确保配置文件在 TFTP 根目录中可用。

3

在 Web 浏览器中,输入电话 LAN IP 地址、计算机的 IP 地址、文件名以及登录凭证。 使用此格式:

http://<WAN_IP_Address>/admin/resync?tftp://<PC_IP_Address>/<file_name>&xuser=admin&xpassword=<password>

示例:

http://192.168.15.1/admin/resync?tftp://192.168.15.100/my_config.xml&xuser=admin&xpassword=admin

遵循以下步骤,使用 cURL 将配置下载到电话。 此命令行工具用于通过 URL 语法传输数据。 要下载 cURL,请访问:

https://curl.haxx.se/download.html


 

我们建议您不要使用 cURL 将配置发布到电话,因为使用 cURL 时用户名和密码可能会遭截获。

1

将计算机连接到电话的 LAN 端口。

2

输入以下 cURL 命令以将配置文件下载到电话:

curl –d @my_config.xml“http://192.168.15.1/admin/config.xml&xuser=admin&xpassword=admin”

配置配置文件

电话接受 XML 格式的配置。

本节中的示例使用带有 XML 语法的配置文件。

配置文件定义电话的参数值。

配置文件 XML 格式使用标准 XML 编写工具编译参数和值。


 
仅支持 UTF-8 字符集。 如果您在编辑器中修改配置文件,不要更改编码格式;否则电话将无法识别文件。

每部电话有不同的功能组合,因此,参数组合也不尽相同。

打开配置文件格式

开放格式配置文件是元素层次结构中具有类似 XML 语法的文本文件,具有元素属性和值。 通过这种格式,您可以使用标准工具来创建配置文件。 在重新同步操作期间,可以将 XML 配置文件从供应服务器发送到电话,而无需将其编译为二进制对象。

电话可以接受标准工具生成的配置格式。 有了此功能后,便不需要再开发从现有数据库生成配置文件的后端设置服务器软件。

为了保护配置文件中的机密信息,配置服务器通过 TLS 保护的通道将 XML 配置文件传递给电话。 (可选)可以使用 gzip deflate 算法 (RFC1951) 压缩文件。

可以使用以下加密方法之一加密文件:

  • AES-256-CBC 加密

  • 使用 AES-128-GCM 加密算法的基于 RFC-8188 之 HTTP 内容加密

配置文件可以包含以下要素:

  • 元素标签

  • 属性

  • 参数

  • 格式特性

  • XML 备注

示例:打开档案格式

<flat-profile><Resync_On_Reset> Yes </Resync_On_Reset><Resync_Periodic> 7200 </Resync_Periodic><Profile_Rule> tftp://prov.telco.com:6900/cisco/config/CP_xxxx_MPP.cfg</Profile_Rule></flat-profile>

<flat-profile> 元素标签包含电话可识别的所有参数元素。

元素标签属性

创建或更新配置文件时,请记住以下规则。

  • XML 设置格式和 Web UI 允许配置相同的设置。 XML 标签名称和 Web UI 中的字段名类似,但由于存在 XML 元素名称限制,并不尽相同。 例如,XML 配置文件中的下划线 ( _ ) 而不是 Web UI 上的空格。

  • 电话会识别具有封装在特殊 <flat-profile> 元素中的适当参数名称的元素。

  • 元素名称包含在尖括号中。

  • 大多数元素名称与电话 Web UI 上的字段名称相似,但有以下修改:

    • 元素名称可能不包含空格或特殊字符。 要从 Web 字段名称获得元素名称,用下划线替换每个空格或特殊字符 []()/

      示例:<Resync_On_Reset> 元素代表重置时重新同步字段。

    • 每个元素名称必须唯一。 在电话 Web UI 中,相同字段可能出现在多个网页上,例如“线路”、“用户”和“分机”页面。 将 [n] 附加至元素名称,以指示页面选项卡中显示的号码。

      示例:<Dial_Plan_1_> 元素代表线路 1 的拨号方案

  • 每个开始元素标签必须具有匹配的结束元素标签。 例如:

    <flat-profile><Resync_On_Reset> Yes  </Resync_On_Reset><Resync_Periodic> 7200  </Resync_Periodic><Profile_Rule>tftp://prov.telco.com: 6900/cisco/config/CP_xxxx_MPP.cfg  </Profile_Rule></flat-profile>
  • 元素标签区分大小写。

  • 允许使用空白元素标签,会被解读为将值配置为空。 输入不含对应元素标签的开始元素标签,然后在右尖括号 (>) 之前插入空格和斜线。 在此示例中,配置文件规则 B 为空:

    <Profile_Rule_B />
  • 可以使用空的元素标签来防止重新同步期间改写用户提供的任何值。 在以下示例中,用户快捷拨号设置不变:

    <flat-profile><Speed_Dial_2_Name ua="rw"/><Speed_Dial_2_Number ua="rw"/><Speed_Dial_3_Name ua="rw"/><Speed_Dial_3_Number ua="rw"/><Speed_Dial_4_Name ua="rw"/><Speed_Dial_4_Number ua="rw"/><Speed_Dial_5_Name ua="rw"/><Speed_Dial_5_Number ua="rw"/><Speed_Dial_6_Name ua="rw"/><Speed_Dial_6_Number ua="rw"/><Speed_Dial_7_Name ua="rw"/><Speed_Dial_7_Number ua="rw"/><Speed_Dial_8_Name ua="rw"/><Speed_Dial_8_Number ua="rw"/><Speed_Dial_9_Name ua="rw"/><Speed_Dial_9_Number ua="rw"/></flat-profile>
  • 使用空值将相应参数设置为空字符串。 它们之间输入不包含任何值的开始和结束元素。 在以下示例中,GPP_A 参数设置为空字符串。

    <flat-profile><GPP_A>  </GPP_A></flat-profile>
  • 无法识别的元素名称将被忽略。

参数属性

这些属性适用于参数:

  • 任何并非由配置文件指定的参数在电话中保持不变。

  • 无法识别的参数将被忽略。

  • 如果开放格式配置文件包含多次出现的相同参数标签,则最后一次出现的标签将覆盖较早出现的标签。 为避免无意中改写参数的配置值,我们建议每个配置文件至多指定参数的一个实例。

  • 最后处理的配置文件优先。 如果多个配置文件指定相同的配置参数,则靠后的配置文件的值优先。

字符串格式

这些属性适用于字符串的格式设置:

  • 允许通过标准 XML 语法评论。

    <!-- 我的评论在此处键入-->
  • 为便于阅读,允许添加前导和尾随空格,但会从参数值删除。

  • 值中的新行字符将转换为空格。

  • 允许 <? ?>形式的 XML 标头,但电话会将其忽略。

  • 要输入特殊字符,可使用下表所示的基本 XML 字符转义码。

    特殊字符

    XML 转义码序列

    &(& 符号)

    &amp;

    <(小于)

    &lt;

    >(大于)

    &gt;

    ’(撇号)

    &apos;

    ”(双引号)

    &quot;

    在以下示例中,输入的字符转义码代表拨号方案规则中必填的大于和小于符号。 此示例中定义了信息热线拨号方案,将参数 <Dial_Plan_1_>(管理员登录 > 高级 > 语音 > 分机 (n))设置为等于 (S0 <:18005551212>)。

    <flat-profile> <Dial_Plan_1_> (S0 &lt;:18005551212&gt;) </Dial_Plan_1_></flat-profile>
  • 使用十进制和十六进制值(s.a. &#40;&#x2e;)的数字字符转义码被翻译。

  • 电话固件仅支持 ASCII 字符。

可以压缩开放配置文件以减少设置服务器上的网络负载。 也可以对配置文件加密以保护机密信息。 压缩并非必需,但其必须在加密之前完成。

打开配置文件压缩

支持的压缩方法是 gzip deflate 算法 (RFC1951)。 Internet 站点上提供有 gzip 实用程序以及实施相同算法 (zlib) 的压缩库。

为识别压缩,电话期望压缩文件中包含 gzip 兼容标头。 调用原始开放配置文件上的 gzip 实用程序会生成标头。 电话会检查所下载文件的标头以确定文件格式。

例如,如果 profile.xml 是有效的配置文件,则文件 profile.xml.gz 亦可接受。 以下任一命令可生成此配置文件类型:

  • >gzip profile.xml

    原始文件替换为压缩文件。

  • >cat profile.xml | gzip > profile.xml.gz

    保留原始文件不变并生成新的压缩的文件。

打开配置文件加密

无论文件是否压缩,都可以使用对称密钥加密来对开放配置文件加密。 但如果应用压缩,则压缩必须在加密前应用。

部署后,设置服务器使用 HTTPS 来处理电话的初次设置。 预加密配置文件离线可允许随后使用 HTTP 来重新同步配置文件。 如此可在大型部署中减少 HTTPS 服务器上的负载。

电话支持两种配置文件加密方法:

  • AES-256-CBC 加密

  • 使用 AES-128-GCM 加密算法的基于 RFC 8188 之 HTTP 内容加密

密钥或输入密钥材料 (IKM) 必须及早预部署到设备。 通过使用 HTTPS 可以安全地完成密钥的引导。

配置文件名不需要特定的格式,但以 .cfg 扩展名结尾的文件名通常表示配置文件。

AES-256-CBC 加密

电话支持配置文件的 AES-256-CBC 加密。

OpenSSL 加密工具(可从多个 Internet 站点下载)可以执行加密。 支持 256 位 AES 加密可能需要重新编译工具来启用 AES 代码。 已根据版本 openssl-1.1.1d 测试固件。

对于加密文件,配置文件期望文件的格式与通过以下命令生成的文件相同:

 # 加密密钥示例 = SecretPhrase1234 openssl enc–e–aes-256-cbc–k SecretPhrase1234–in profile.xml–out profile.cfg # 压缩 XML 文件的类似调用 openssl enc–e–aes-256-cbc–k SecretPhrase1234–in profile.xml.gz–out profile.cfg 

密钥前加有小写字母 -k,可以是任何纯文本短语,用于生成随机的 64 位盐。 利用 -k 参数指定的密钥,加密工具可得出随机的 128 位初始化向量和实际的 256 位加密密钥。

如果对配置文件使用这种形式的加密,电话必须了解密钥值,以对文件进行解密。 此值在配置文件 URL 中被指定为限定符。 语法使用显式 URL,如下所示:

[--key “SecretPhrase1234”] http://prov.telco.com/path/profile.cfg

使用一个 Profile_Rule 参数设置此值。

宏扩展

评估之前多个设置参数会进行内部宏扩展。 此预评估为控制电话重新同步和升级活动提供了更高的灵活性。

评估之前这些参数组会进行宏扩展:

  • Resync_Trigger_*

  • Profile_Rule*

  • Log_xxx_Msg

  • Upgrade_Rule

在某些情况下,某些通用参数(GPP_*)也会进行宏扩展,如下面的可选重新同步参数 部分中明确指出 的那样。

宏扩展期间,指定变量的内容会替换 $NAME 和 $(NAME) 形式的表达式。 这些变量包括通用参数、多个产品标识符、特定事件计时器和设置状态值。 有关完整列表,请参阅 设置参数 下的 宏扩展变量

在以下示例中,表达式 $(MAU) 用于插入 MAC 地址 000E08012345。

管理员输入:$(MAU)config.cfg

MAC 地址为 000E08012345 的设备的宏扩展结果是:000E08012345config.cfg

如果无法识别宏名称,其将保持不扩展。 例如,名称 STRANGE 不会被识别为有效的宏名称,MAU 则会被识别为有效的宏名称。

管理员输入:$STRANGE$MAU.cfg

MAC 地址为 000E08012345 的设备的宏扩展结果是:$STRANGE000E08012345.cfg

宏扩展不可递归应用。 例如,$$MAU”将扩展为 $MAU”($$ 被扩展),不会生成 MAC 地址。

特殊用途参数 GPP_SA 至 GPP_SD 的内容将映射到宏表达式 $SA 至 $SD。 这些参数将仅宏扩展为重新同步 URL 中 --key --uid--pwd 选项的参数。

条件表达式

条件表达式可以触发重新同步事件,并从备用 URL 中挑选一个用于重新同步和升级操作。

条件表达式包含以 and 运算符分隔的比较列表。 所有比较必须满足条件为 true。

每个比较可以涉及以下三种文字类型之一:

  • 整数值

  • 软件或硬件版本号

  • 双引号字符串

版本号

Cisco 视频电话 8875 的软件版本使用以下格式(其中 BN 是内部版本号):

PHONEOSyyyy.1-0-1-0001-BN

其中 yyyy 表示电话型号或电话系列;1 是主要版本;0 是次要版本;1-0001 是微版本;BN 是内部版本号。

比较字符串必须使用相同的格式。 否则,会导致格式解析错误。

比较软件版本时,按顺序比较主要版本、次要版本和微版本,最左边的数字优先于后面的数字。 当版本号相同时,将比较内部版本号。

有效版本号的示例

PHONEOS-8875.1-0-1-0001-19

比较

可以比较引用的字符串是相等还是不等。 也可以在算术上比较整数和版本号。 比较运算符可以用符号或首字母缩写表示。 首字母缩写可方便地在开放格式配置文件中表达条件。

运算符

备用语法

说明

适用于整数和版本运算对象

适用于加引号的字符串运算对象

=

eq

等于

!=

ne

不等于

<

lt

小于

<=

le

小于或等于

>

gt

大于

>=

ge

大于或等于

AND

在需要字符串文字的地方,必须将宏变量置于双引号中,这一点至关重要。 不要在需要数字或版本号的地方这样做。

如果是用于 Profile_Rule* 和 Upgrade_Rule 参数,必须如此升级规则示例所述,将条件表达式置于语法“(expr)?”内。 请记住,将 BN 替换为要升级到的固件负载内部版本号。

($SWVER ne PHONEOS-8875.1-0-1-0001-19)? http://ps.tell.com/sw/PHONEOS-8875.1-0-1-0001-BN.loads

配置 Resync_Trigger_* 参数时,不要将前置语法放在括号中。

URL 语法

使用标准 URL 语法可指定如何分别在 Profile_Rule* 和 Upgrade_Rule 参数中检索配置文件和固件负载。 语法如下:

[ scheme:// ] [ server [:port]] filepath

其中,scheme 是下列值之一:

  • tftp

  • http

  • https

如果 scheme 被忽略,则假设为 tftp。 服务器可以是 DNS 识别的主机名或数字 IP 地址。 端口是目标 UDP 或 TCP 端口号。 文件路径必须以根目录 (/) 开头;其必须是绝对路径。

如果 server 缺失,将通过 DHCP(选项 66)指定 tftp 服务器。


 

有关升级规则,必须指定服务器。

如果 port 缺失,将使用指定方案的标准端口。 Tftp 使用 UDP 端口 69,http 使用 TCP 端口 80,https 使用 TCP 端口 443。

必须存在文件路径。 它不必引用静态文件,但可以指明通过 CGI 获取的动态内容。

URL 内将应用宏扩展。 以下为有效 URL 的示例:

 /$MA.cfg /cisco/cfg.xml 192.168.1.130/profiles/init.cfg tftp://prov.call.com/cpe/cisco$MA.cfg http://neptune.speak.net:8080/prov/$D/$E.cfg https://secure.me.com/profile?Linksys 

使用 DHCP 选项 66 时,空白语法不受升级规则支持。 它仅适用于 Profile Rule*。

基于 RFC 8188 的 HTTP 内容加密

电话支持使用 AES-128-GCM 加密算法对配置文件进行基于 RFC 8188 的 HTTP 内容加密。 使用此加密方法,任何实体均可读取 HTTP 消息标头。 但是,只有知道输入密钥材料 (IKM) 的实体能够读取有效负载内容。 使用 IKM 部署电话时,电话与部署服务器可以安全地交换配置文件,同时允许第三方网络元素出于分析和监控目的使用消息标头。

XML 配置参数 IKM_HTTP_Encrypt_Content 可在电话上保留 IKM。 出于安全原因,此参数在电话管理网页上无法访问。 它也不会在电话的配置文件中显示,后者可从电话的 IP 地址或从发送到部署服务器的电话配置报告进行访问。

如果想要使用基于 RFC 8188 的加密,确保满足以下条件:

  • 通过使用从部署服务器发送到电话的配置文件中的 XML 参数 IKM_HTTP_Encrypt_Content 指定 IKM,利用 IKM 部署电话。

  • 如果此加密应用于从部署服务器发送到电话的配置文件,确保配置文件中的 Content-Encoding HTTP 标头中包含 aes128gcm.

    如果没有此标头,则 AES-256-CBC 方法优先。 如果配置文件规则中存在 AES-256-CBC 密钥,则电话应用 AES-256-CBC 解密,无论 IKM 如何。

  • 如果想要电话将此加密应用到发送给部署服务器的配置报告,请确保报告规则中没有指定 AES-256-CBC 密钥。

可选重新同步参数

可选参数 keyuidpwd 可置于 Profile_Rule* 参数中输入的 URL 之前,一起放在方括号内。

key

--key 选项告知电话从部署服务器接收的配置文件使用 AES-256-CBC 加密进行加密,除非文件中的 Content-Encoding 标头指示 aes128gcm 加密。 密钥本身被指定为后跟术语--key 的字符串。 可选择将密钥括在双引号 (") 内。 电话使用密钥解密配置文件。

使用示例
[--key VerySecretValue][--key “my secret phrase”][--key a37d2fb9055c1d04883a0745eb0917a4]

括号内的可选参数是宏扩展的。 仅当用作密钥选项参数时,特殊用途参数 GPP_SA 至 GPP_SD 才会宏扩展为宏变量 $SA 至 $SD。 请参阅以下示例:

[--key $SC][--key “$SD”]

在开放格式配置文件中,--key 的参数必须与指定给 openssl-k 选项的参数相同。

uid 和 pwd

uidpwd 选项可用于指定当请求指定的 URL 时,为响应 HTTP 基本和摘要式身份验证质询而发送的用户 ID 和密码。 括号内的可选参数是宏扩展的。 仅当用作密钥选项参数时,特殊用途参数 GPP_SA 至 GPP_SD 才会宏扩展为宏变量 $SA 至 $SD。 请参阅以下示例:

GPP_SA = MyUserID GPP_SB = MySecretPassword 

[--uid $SA --pwd $SB] https://provisioning_server_url/path_to_your_config/your_config.xml

随后将扩展为:

[--uid MyUserID --pwdMySecretPassword] https://provisioning_server_url/path_to_your_config/your_config.xml

这些数据类型与配置文件参数一起使用:

  • {a,b,c,…} — 在 a、b、c 之间选择 …

  • Bool — 布尔值为“是”或“否”。

  • CadScript — 指定信号节律参数的简短说明。 最多 127 个字符。

    语法:S1[;S2],其中:

    • Si=Di(oni,1/offi,1[,oni,2/offi,2[,oni,3/offi,3[,oni,4/offi,4[,oni,5/offi,5[,oni,6/offi,6]]]]]),称为区段。

    • oni,j 和 offi,j片段开/关的持续时间,以秒为单位。i = 1 或 2,j = 1 或 6。

    • Di 是区段的总持续时间,以秒为单位。

    所有持续时间最多可有三位小数,提供毫秒级分辨率。 通配符“*”表示持续时间无限。 区段中的片段将按顺序重复执行,直至执行时间达到总持续时间。

    示例 1:

     60(2/4)踏频节数 = 1 节频第 1 部分:节长 = 60 s 段数 = 1 段 1:开=2s,关=4 秒环总长度 = 60 秒 

    示例 2 — 独特振铃(短、短、短、长):

     60(.2/.2,.2/.2,.2/.2,1/4)踏频节数 = 1 节拍第 1 部分:节长 = 60s 段数 = 4 段 1:开=0.2 秒,关=0.2 秒片段 2:开=0.2 秒,关=0.2 秒段 3:开=0.2 秒,关=0.2 秒第 4 段:开=1.0 秒,关=4.0 秒环总长度 = 60s 
  • DialPlanScript — 用于指定线路 1 和线路 2 的拨号方案的脚本语法。

  • Float<n> — 最多 n 位小数的浮点值。

  • FQDN — 完全限定域名。它最多可包含 63 个字符。 示例如下:

    • sip.Cisco.com:5060 或 109.12.14.12:12345

    • sip.Cisco.com 或 109.12.14.12

  • FreqScript — 指定提示音频率和等级参数的简短说明。 最多可包含 127 个字符。

    语法:F1@L1[,F2@L2[,F3@L3[,F4@L4[,F5@L5[,F6@L6]]]]],其中:

    • F1–F6 是频率,以赫兹为单位(仅无符号整数)。

    • L1–L6 是相应的等级,以 dBm 为单位(最多一位小数)。

    逗号之前和之后允许使用空格,但不建议这样做。

    示例 1 — 呼叫等待提示音:

     440@-10 频率数 = 1 频率 1 = 440 Hz,–10 dBm 时 

    示例 2 — 拨号音:

     350@-19,440@-19 频率数 = 2 频率 1 = 350 Hz,–19 dBm 时频率 2 = 440 Hz,–19 dBm 时 
  • IP — 有效的 IPv4 地址,格式为 x.x.x.x,其中 x 介于 0 与 255 之间。示例:10.1.2.100。

  • UserID — URL 中出现的用户 ID;最多 63 个字符。

  • Phone — 电话号码字符串,例如 14081234567、*69、*72、345678;或者一般 URL,例如 1234@10.10.10.100:5068 或 jsmith@Cisco.com。 字符串最多可以包含 39 个字符。

  • PhTmplt — 电话号码模板。 每个模板可包含一个或多个用逗号 (,) 分隔的模式。 每个模式开头处的空格将被忽略。 “?”和“*”表示通配符字符。 要从字面上表示,请使用 %xx。 例如,%2a 表示 *。 模板最多可以包含 39 个字符。 示例:“1408*, 1510*”, “1408123????, 555?1.”。

  • Port — TCP/UDP 端口号 (0-65535)。 它可以用十进制或十六进制格式指定。

  • ProvisioningRuleSyntax — 用于定义配置重新同步和固件升级规则的脚本语法。

  • PwrLevel — 以 dBm 表示的功率级别,含一位小数,例如 –13.5 或 1.5 (dBm)。

  • RscTmplt — SIP 响应状态代码的模板,如 “404, 5*”, “61?”, “407, 408, 487, 481”。 最多可包含 39 个字符。

  • Sig<n> — 有符号的 n 位值。 它可以用十进制或十六进制格式指定。 负值前面必须添加 - 号。 正值前面可以选择性添加 + 号。

  • Star Codes — 补充服务的激活码,如 *69。 代码最多可以包含 7 个字符。

  • Str<n> — 最多具有 n 个非保留字符的通用字符串。

  • Time<n> — 持续时间,以秒为单位,最多 n 位小数。 额外指定的小数位将被忽略。

  • ToneScript — 指定电话进展音的频率、电平和节奏参数的简短说明。 脚本最多可包含 127 个字符。

    语法:FreqScript;Z1[;Z2]。

    在 CadScript 中,区段 Z1 与区段 S1 类似,除每个开/关片段后跟频率要素参数外:Z1 = D1(oni,1/offi,1/fi,1[,oni,2/offi,2/fi,2 [,oni,3/offi,3/fi,3 [,oni,4/offi,4/fi,4 [,oni,5/offi,5/fi,5 [,oni,6/offi,6/fi,6]]]]]),其中:

    • fi,j = n1[+n2]+n3[+n4[+n5[+n6]]]]]。

    • 1 < nk < 6 指定 FreqScript 中用于该片段的频率要素。

    如果一个片段中使用了多个频率要素,会将所有要素汇总。

    示例 1 — 拨号音:

     350@-19,440@-19;10(*/0/1+2)频率数 = 2 频率 1 = 350 Hz,在–19 dBm 时频率 2 = 440 Hz,在–19 dBm 时节奏段数 = 1 节频第 1 部分:节长 = 10 s 段数 = 1 段数 1:开=永远,频率 1 和 2 总音长 = 10s 

    示例 2 — 通信音:

     350@-19,440@-19;2(.1/.1/1+2);10(*/0/1+2)频率数 = 2 频率 1 = 350 Hz,在–19 dBm 时频率 2 = 440 Hz,在–19 dBm 时踏频节数 = 2 节频第 1 部分:节长 = 2s 段数 = 1 段数 1:开 = 0.1 秒,关 = 0.1 秒,频率为 1 和 2 节奏第 2 部分:节长 = 10s 段数 = 1 段数 1:开=永远,频率 1 和 2 总音长 = 12s 
  • Uns<n> — 无符号 n 位值,其中 n = 8、16 或 32。它可以以十进制格式或十六进制格式(例如 12 或 0x18)指定,只要该值可以容纳 n 位。


 

考虑以下因素:

  • <Par Name> 表示配置参数名称。在配置文件中,通过用下划线“_”(如 Par_Name)替换空格来形成相应的标记。
  • 空的默认值字段表示空字符串 < “” >。
  • 电话将继续为给定配置文件中未出现的标签使用最后一个配置的值。
  • 模板按照给定的顺序进行比较。 首先是 not the closest,选择匹配项。 参数名称必须完全匹配。
  • 如果配置文件中为一个参数给出了多个定义,则电话会采用文件中的最后一个定义。
  • 具有空参数值的参数规范强制参数返回其默认值。 要改为指定空字符串,使用空字符串 "" 作为参数值。