Instant Messenger 可以自定义。可以自定义 HTML 和 JNLP 文件以适应组织的特殊需要。如果想要自定义资源文件以用于部署,您应该运行 configure 实用程序(如果安装后尚未这样做),自定义文件,然后重新部署资源文件。您需要先运行 configure 实用程序,因为它创建某些您可以自定义的文件。(有关重新部署的说明,参见重新部署资源文件。)
可通过以下方式自定义 Instant Messenger 以满足您的要求:
本节说明您可以修改以自定义 Instant Messenger 的 Instant Messaging 服务器文件。所有您可以自定义的文件均位于资源目录 im-svr-base/html 目录中。有关默认目录位置的信息,参见表 3–1。
Instant Messenger 资源文件位于称为资源目录或 im-svr-base/html 的目录内。
表 15–1 包含资源目录 (im-svr-base/html) 中 Instant Messenger 文件的列表。它还包含这些文件的说明和自定义信息。在资源目录内,/locale 子目录通常在目录路径中以 lang 表示,但在具体情况下用语言缩写来表示,例如 en_US、jp 和 fr_FR。
表 15–1 im-svr-base/html 中的 Instant Messenger 资源文件
文件 |
说明 |
是否可以自定义? |
---|---|---|
lang/im.html |
启动 Java 插件版 Instant Messenger 的初始页面。 |
可以 |
im.html.template |
im.html 的模板版本。 |
不可以, 此文件供安装程序用来生成 im.html 文件。 |
imdesktop.jar |
客户机 .jar 文件,由 im.html 或 im.jnlp 文件下载。 |
不可以 |
lang/im.jnlp |
用于启动 Java Web Start 版 Instant Messenger 的 .jnlp 文件。 |
可以 |
im.jnlp.template |
im.jnlp 的模板版本。 |
不可以 |
imjni.jar |
客户机 .jar 文件,由 im.html 或 im.jnlp 下载。 |
不可以 |
messenger.jar |
主要客户机 .jar 文件,由 im.html 或 im.jnlp 下载。 |
不可以 |
icalendar.jar |
用于处理日历提示的 icalendar 分析程序。 |
不可以 |
imnet.jar |
客户机 .jar 文件,由 im.html 或 im.jnlp 下载。 |
不可以 |
lang/imbrand.jar |
此文件包含可自定义的属性、样式表、图像、背景和音频文件。 |
可以 |
lang/imssl.html |
启动 Java 插件版 Instant Messenger 的初始页面。它用于在客户机和多路复用器之间运行传统 SSL。不要在客户机和服务器之间通过 TLS 进行的安全通信中使用此文件。 |
可以 |
imssl.html.template |
imssl.html 的模板版本。 |
不可以 |
lang/imssl.jnlp |
此文件启动 Java Web Start 版的 Instant Messenger。此文件用于在客户机和多路复用器之间运行 SSL。 |
可以 |
imssl.jnlp.template |
imssl.jnlp 的模板版本。 |
不可以 |
jnlpLaunch.jsp |
如果最终用户已登录到 Sun JavaTM System Access Manager,此文件可用于允许单点登录以及使用 Java Web Start 启动 Instant Messenger。 |
可以 |
pluginLaunch.jsp |
如果最终用户已登录到 Sun Java System Access Manager,此文件可用于允许单点登录和使用 Java 插件启动 Instant Messenger。 |
可以 |
index.html |
LDAP 部署的初始页面。它包含到 im.html 和 im.jnlp 的链接,以及到 windows.htm、solaris.htm 和 quickref.htm 的文档链接。您可以根据站点的要求自定义此页。 |
可以 |
index.html.template |
index.html 的模板版本。 |
不可以 |
lang/imhelp/SunONE.jpg |
quickref.htm、solaris.htm 和 windows.htm 使用的图像。 |
可以替换,但不能修改。 |
quickref.html solaris.html windows.html |
位于 lang/imhelp/,这些文件提供有关 Instant Messenger 入门的文档。 |
可以 |
lang/imhelp |
“Instant Messenger 联机帮助”目录。 |
不可以 |
imwebex.jar |
|
|
msgrinstall.jar |
|
|
如果您在不带 Sun Java System Access Manager 的部署中使用 Instant Messenger,则可以修改 index.html 和 im.html 文件的 static 部分,以生成一个完全自定义的用户界面。这些 HTML 文件包含说明如何格式化和处理文本的文本和标记。标记由指定标题格式、缩进、字体大小和字体样式的一组标签实现。
以下是一些可以修改的页面元素:
图像
标题
包含标题和字段标签的屏幕文本
背景方案
可从 index.html 启动 Instant Messenger applet 和 Java Web Start 应用程序。如果您运行 Instant Messenger applet,请修改 im.html 文件。im.html 文件被 index.html 调用,自身可以调用 Instant Messenger applet。im.html 文件在运行 configure 实用程序时生成,并包含一个指向多路复用器的 applet 参数。
参数“<PARAM NAME="server" VALUE="servername"> ”在 im.html 文件中表示 Instant Messaging 多路复用器及其端口。如果您更改了 iim_mux.listenport 参数的默认值,则需要将 servername 的值更改为 host.domain :port。
要使用带 Sun Java System Access Manager 的单点登录 (SSO) 启动 Instant Messenger 客户机,可使用 IMLaunch.jsp。该文件位于资源目录中。
Sun Java System Access Manager 和 Instant Messenger 必须配置为使用相同的 Web 容器启用 SSO。
要启动 Instant Messenger,可在 Web 浏览器中输入以下内容:
codebase/IMLaunch.jsp?server=multiplexor-hostname:muliplexor-port |
或
codebase/IMLaunch.jsp?server=www.example.com:5222 |
其中:
codebase 是用于下载 Instant Messenger 资源的代码库。例如,http://www.example.com。
multiplexor-hostname 是多路复用器的主机名。例如,http://www.company22.com。
muliplexor-port 是多路复用器侦听收到的客户机请求所使用的端口号。例如,5222。
IMLaunch.jsp 用于通过 Java Web Start 或 Java 插件启动 Instant Messenger。
如果使用 Java Web Start 运行 Instant Messenger,则可通过修改 im.jnlp、imres.jnlp 和 imres.jar 文件来自定义用户界面。以下是可以对这些文件所做的修改:
imbrand.jar - 此文件包含图像和音频文件以及可自定义的属性。您需要通过 Java Developers Kit 1.3 (JDK) 使用 jar 命令从 imres.jar 文件提取内容。有关 imbrand.jar 内容的更多信息,参见imbrand.jar 的内容。
使用以下命令提取 imbrand.jar:
jar xvf imbrand.jar |
此命令可创建复制资源文件的目录树。当您修改 .jar 文件中的个别文件时,必须保持此目录结构。
替换 .gif 文件或 .wav 文件的版本时可以不更改文件名,然后使用以下 jar 命令将更改后的文件放回该目录:
jar -uf imbrand.jar com/Sun/im/client/images/*.gif |
此命令使用修改后的 .gif 文件更新 imbrand.jar 文件。可以对音频文件(.wav 文件)进行同样的操作。
im.jnlp - 此文件调用 Java Web Start 版的 Instant Messenger 应用程序。可以修改文件中的代码库、标题、供应商和说明。
示例 15–1 显示了 im.jnlp 文件样例,可以自定义的 HTML 代码以粗体显示。
<?xml version="1.0" encoding="utf-8"?> <!-- Instant Messenger --> <jnlp spec="1.0+" codebase="http://im.i-zed.com:80/im" href="en/im.jnlp"> <information> <title>Instant Messaging</title> <vendor>I-Zed.com</vendor> <homepage href="http://www.I-zed.com/"/> <description>I-Zed’s Sun Java System Instant Messenger</description> <description kind="short">Instant Messenger</description> <icon href="CompanyLogo.gif"/> <offline-allowed/> </information> <security> <all-permissions/> </security> <resources> <j2se version="1.3+"> <resources> <jar href="en/imres.jar"/> <jar href="en/imbrand.jar"/> </resources> </j2se> <jar href="messenger.jar"/> <jar href="imdesktop.jar"/> <jar href="imnet.jar"/> <jar href="icalendar.jar"/> <nativelib href="imjni.jar"/> </resources> <application-desc main-class="com.iplanet.im.client.iIM"> <argument>server=im.i-zed.com:45222</argument> <argument>help_codebase=http://im.i-zed.com:80/im/en</argument> </application-desc> </jnlp> |
在 im.jnlp 文件中,参数 <argument> servername</argument> 表示 Instant Messaging 多路复用器主机和端口。如果您更改了 iim_mux.listenport 参数,则您需要将 servername 的值更改为 host.domain :port。
本节中的表列出了 imbrand.jar 文件中的文件并尽可能地提供了每个文件的说明。imbrand.jar 文件还包含您可用于重建 Instant Messenger 的图像和音频文件。本节包含以下表格:
表 15–2 – 用于配置 Instant Messenger 的配置文件。
表 15–3 – 聊天会话过程中可用的表情图标。
表 15–4 – Windows 中的应用程序使用的图标。
表 15–5 – 所有平台中的应用程序使用的图标。
表 15–6 – 工具栏中使用的图标。
表 15–7 – 联系人列表中使用的图标。
表 15–8 – 用于说明联系人列表中在线状态信息的图标。
表 15–9 – 用于说明状态栏中在线状态信息的图标。
表 15–10 – 可用的背景。
表 15–11 – 用于表示警报和状态或配置更改的声音。
文件 |
说明 |
---|---|
brand.properties | |
chat-styles.css | |
bgstyles.properties |
背景配置文件,用于扩展背景设置 |
表 15–3 表情图标
文件名 |
说明 |
---|---|
emo_alarm.png |
以图形表示报警情绪 |
emo_angel.png |
以图形表示天使般的情绪 |
emo_angry.png |
以图形表示愤怒情绪 |
emo_balloons.png |
一束气球的图示 |
emo_beermug.png |
一杯啤酒的图示 |
emo_cake.png |
一块生日蛋糕的图示 |
emo_calendar.png |
一份日历的图示 |
emo_canworms.png |
一罐蠕虫的图示 |
emo_clown.png |
小丑头形的图示 |
emo_cool.png |
以图形表示酷的情绪。 |
emo_dead.png |
以图形表示死亡 |
emo_devil.png |
以图形表示邪恶情绪 |
emo_dont-tell.png |
以图形表示秘密请求 |
emo_embarrassed.png |
以图形表示尴尬情绪 |
emo_exclamation.png |
一个感叹号的图示 |
emo_flower.png |
一朵花的图示 |
emo_ghost.png |
一个鬼的图示 |
emo_goldstar.png |
一颗金星的图示 |
emo_grin.png |
以图形表示咧嘴笑 |
emo_kiss.png |
以图形表示亲吻 |
emo_laughing.png |
以图形表示欢笑情绪 |
emo_lifepreserver.png |
一个救生设备的图示 |
emo_lightning.png |
雷暴云和闪电的图示 |
emo_lovestruck.png |
表示爱慕情绪的表情图标 |
emo_martini.png |
一个马提尼酒杯的图示 |
emo_money.png |
几堆硬币的图示 |
emo_musicnote.png |
一个音符的图示 |
emo_nerd.png |
傻笑的图示 |
emo_nottalking.png |
以图形表示转过去的面孔 |
emo_phone.png |
一部电话机的图示 |
emo_present.png |
一件带包装礼物的图示 |
emo_psychoknife.png |
一把刀的图示 |
emo_rathole.png |
一个老鼠洞的图示 |
emo_sad.png |
以图形表示悲伤情绪 |
emo_sick.png |
以图形表示生病 |
emo_sleep.png |
以图形表示睡眠 |
emo_smiley.png |
以图形表示微笑 |
emo_straightfaced.png |
一个板起面孔之人的图示 |
emo_sunshining.png |
太阳的图示 |
emo_surprised.png |
以图形表示惊奇 |
emo_tongue-out.png |
一个吐舌头的图示 |
emo_violin.png |
一把小提琴的图示 |
emo_whatever.png |
以图形表示漠不关心或轻视 |
表 15–4 应用程序图标 – Windows
文件名 |
说明 |
---|---|
im_app_icon_16.png |
Windows 标题栏图标 |
im_app_icon_24.png |
Windows 标题栏图标 |
tray_icon.ico |
Windows 系统托盘图标 |
表 15–5 应用程序图标 – 所有平台
文件名 |
说明 |
---|---|
logo_login_footer.png |
在“登录”对话框底部显示的徽标 |
logo_register.png |
在“注册”对话框中显示的徽标 |
logo_sun.png |
在“登录”对话框中显示的 Sun 徽标 |
表 15–6 工具栏图标
文件名 |
说明 |
---|---|
tb_addcontacts.png |
“添加联系人”按钮的图形 |
tb_alert.png |
“发送警报”按钮的图形 |
tb_chat.png |
“与用户聊天”按钮的图形 |
tb_conf.png |
“添加会议”按钮的图形 |
表 15–7 联系人列表图标
文件名 |
说明 |
---|---|
cl_folder_closed.png |
以图形表示一个关闭的文件夹 |
cl_folder_open.png |
以图形表示一个打开的文件夹 |
表 15–8 在线状态图标 - 联系人列表
文件名 |
说明 |
---|---|
cl_activeconf.png |
用于在“联系人列表”中显示活动会议的图标 |
cl_away.png |
用于在“联系人列表”中显示离开状态的图标 |
cl_dnd.png | |
cl_idle.png |
用于在“联系人列表”中显示空闲状态的图标 |
cl_inactiveconf.png |
用于在“联系人列表”中显示非活动会议的图标 |
cl_offline.png |
用于在“联系人列表”中显示脱机状态的图标 |
cl_online.png |
用于在“联系人列表”中显示联机状态的图标 |
cl_pending.png |
用于在“联系人列表”中显示未决状态的图标 |
表 15–9 在线状态图标 - 状态栏
文件名 |
说明 |
---|---|
sb_away.png |
用于在“状态栏”中显示离开状态的图标 |
sb_dnd.png | |
sb_idle.png |
用于在“状态栏”中显示空闲状态的图标 |
sb_offline.png |
用于在“状态栏”中显示脱机状态的图标 |
sb_online.png |
用于在“状态栏”中显示联机状态的图标 |
表 15–10 调色板的背景和背景色标
bgplt_tex_blue.gif bgplt_tex_brown.gif bgplt_tex_bubble_blue.gif bgplt_tex_bubble_brown.gif bgplt_tex_bubble_green.gif bgplt_tex_bubble_grey.gif bgplt_tex_bubble_orange.gif bgplt_tex_bubble_purple.gif bgplt_tex_bubble_ruby.gif bgplt_tex_crackle_blue.gif bgplt_tex_crackle_green1.gif bgplt_tex_crackle_grey.gif bgplt_tex_crackle_olive.gif bgplt_tex_crackle_orange.gif bgplt_tex_crackle_purple.gif bgplt_tex_crackle_ruby.gif bgplt_tex_gradation_blue.gif bgplt_tex_gradation_brown.gif bgplt_tex_gradation_green.gif bgplt_tex_gradation_grey.gif bgplt_tex_gradation_orange.gif bgplt_tex_gradation_purple.gif bgplt_tex_gradation_ruby.gif bgplt_tex_green.gif bgplt_tex_orange.gif bgplt_tex_pink.gif bgplt_tex_purple.gif bgplt_tex_weave_blue.gif bgplt_tex_weave_brown.gif bgplt_tex_weave_green.gif bgplt_tex_weave_grey.gif bgplt_tex_weave_orange.gif |
bgplt_tex_weave_purple.gif bgplt_tex_weave_ruby.gif bgplt_tex_white.gif bg_tex_bubble_blue.gif bg_tex_bubble_brown.gif bg_tex_bubble_green.gif bg_tex_bubble_grey.gif bg_tex_bubble_orange.gif bg_tex_bubble_purple.gif bg_tex_bubble_ruby.gif bg_tex_crackle_blue.gif bg_tex_crackle_green1.gif bg_tex_crackle_grey.gif bg_tex_crackle_olive.gif bg_tex_crackle_orange.gif bg_tex_crackle_purple.gif bg_tex_crackle_ruby.gif bg_tex_gradation_blue.gif bg_tex_gradation_brown.gif bg_tex_gradation_green.gif bg_tex_gradation_grey.gif bg_tex_gradation_orange.gif bg_tex_gradation_purple.gif bg_tex_gradation_ruby.gif bg_tex_weave_blue.gif bg_tex_weave_brown.gif bg_tex_weave_green.gif bg_tex_weave_grey.gif bg_tex_weave_orange.gif bg_tex_weave_purple.gif bg_tex_weave_ruby.gif |
表 15–11 声音
文件名 |
说明 |
---|---|
alert.wav |
警报声音 |
alerttpc.wav |
警报声音 |
away.wav |
将状态改为离开时所用的声音 |
receive.wav |
收到消息时所用的声音 |
send.wav |
发送消息时所用的声音 |
soundoff.wav |
关闭声音时所用的声音 |
soundon.wav |
打开声音时所用的声音 |
imbrand.jar 文件包含控制 Instant Messenger 外观的所有图像和属性。您可以通过修改 imbrand.jar 中的图像和属性来自定义 Instant Messenger 的外观。
将 imbrand.jar 文件复制到一个工作目录中。
例如:
cp im-svr-base/html/lang/imbrand.jar working-directory |
转到该工作目录。
cd working-directory |
提取 imbrand.jar 文件。
jar xf imbrand.jar |
此命令可创建复制资源文件的目录树。当您修改 imbrand.jar 文件中的个别文件时,必须保持此目录结构。
或者,可提取包括在 imbrand.jar 中的单个文件,并将其置于指定的目录结构中。例如,要只提取 brand.properties,使用以下命令:
jar xf imbrand.jar com/sun/im/desktop/brand/brand.properties |
用修改后的 .gif、.wav 和 .properties 文件更新 imbrand.jar。
您可以更新 imbrand.jar 中的所有文件,方法如下:
jar cf imbrand.jar .
要用单个修改过的文件更新 imbrand.jar,使用以下命令:
jar uf imbrand.jar com/sun/im/desktop/brand/filename |
其中,filename 是 imbrand.jar 中所包括文件的名称,例如,brand.properties。
将 imbrand.jar 复制到资源目录。
例如:
cp imbrand.jar im-svr-base/html/lang/ . |
如果您的部署中支持多语言环境,请对每个支持的语言环境执行该过程以重建 Instant Messenger。
您可以通过更改用于显示联系人姓名的属性来自定义 Instant Messenger 如何显示联系人和组的名称。默认情况下,Instant Messenger 使用属性 cn 表示用户的显示名称。在您的部署中,您可能喜欢使用 uid 或某些其他属性来代替 cn。
联系人姓名显示为名、姓。例如,Frank Smith、Mary Jones 等。如果两个最终用户具有相同的名和姓,就无法知道应添加哪一个最终用户到联系人列表中。您可以自定义 Instant Messenger 在用户的搜索结果中显示更多信息,并在“联系人”工具提示中显示附加信息以帮助区分联系人。例如,当鼠标放在联系人上时,显示该联系人的电话号码。
打开 iim.conf。
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
指定显示用户名要使用的属性,以 iim_ldap.userdisplay 的值的形式进行指定。
例如,要使用 nickname 属性,则设置 iim_ldap.userdisplay 属性如下:
iim_ldap.userdisplay=nickname
保存并关闭该文件。
打开 iim.conf。
参见 iim.conf 文件语法以获得有关查找和修改 iim.conf 的说明。
指定显示用户名要使用的属性,以 iim_ldap.groupdisplay 的值的形式进行指定。
例如,要使用 uid 属性,则设置 iim_ldap.groupdisplay 属性如下:
iim_ldap.groupdisplay=uid
保存并关闭该文件。
从 imbrand.jar 提取文件。
有关 imbrand.jar 的默认位置,参见表 15–1
转到下列目录:
com/sun/im/client/
打开 brand.properties。
将 dialogs.searchresults.format 属性添加到该文件。
按以下格式添加您想要包括在搜索结果中的属性:
${attr:attribute-name }
其中,attribute-name 是 LDAP 属性的名称。
例如,要包括 title 属性,可添加以下行:
dialogs.searchresults.format=(${attr:title})
保存更改并关闭文件。
重新打包 imbrand.jar。
添加用户属性到 iim.conf。
指定该属性作为 iim_ldap.userattributes 参数的值。使用逗号分隔多个属性,例如:
iim_ldap.userattributes=title,department,telephonenumber
有关查找和修改 iim.conf 的说明,参见iim.conf 文件语法。
从 imbrand.jar 提取文件。
有关 imbrand.jar 的默认位置,参见表 15–1
转到下列目录:
com/sun/im/client/
打开 brand.properties。
添加 contact.tooltip.format.html 属性到该文件。
指定您想要在工具提示中显示为 contact.tooltip.format.html 的值的属性。
例如,如果您想要显示联系人的电话号码和电子邮件地址,则输入:
contact.tooltip.format.html=mailto: ${attr:mail} tel: ${attr:telephonenumber}
有关自定义 imbrand.jar 文件内容的更多信息,参见自定义应用程序 (Java Web Start)。
保存您的更改并关闭文件。
重新打包 imbrand.jar。