学习OCS客户端定制
一步一步學習OCS2007(一)--如何定制在線狀態?(轉自:http://www.cnblogs.com/invinboy )
OCS 2007(即Microsoft Office Communicators Server 2007) 是微軟2007年推出的一款非常重要的即時通訊軟件,她匯集了多方即時通訊、多方語音聊天、多方視頻會議等眾多功能,同時還提供了強大的二次開發接口,以便用戶進一步去擴展、去開拓。
下面,我將逐慚就OCS2007二次開發過程中的一些體會,感受表達出來,與讀者共享。
今天的主題是,用戶如何自定義在線狀態。
在OCS2007中,主要有三種基礎狀態:Online、Busy、Do Not Disturb ,這些狀態是根據Availability 屬性決定自定義的狀態顯示哪一個圖標。定制自定義狀態的核心是:(1)配置自定義狀態的XML文件;(2)配置文件在注冊表中進行注冊。下面將一步一步地介紹如何進行這一擴展。
一、定義XML配置文件,如下例:
<?xml version="1.0" encoding="utf-8" ?>
<customStates>
<customState ID="1" availability="online">
<activity LCID="2052"> 下雪啦!</activity>
</customState>
<customState ID="2" availability="do-not-disturb">
<activity LCID="2052">會議中......</activity>
</customState>
<customState ID="3" availability="busy">
<activity LCID="2052">OCS2007 研究中......</activity>
</customState>
</customStates>
</customStates>
二、在IIS中發布該XML文件,在IIS中創建一個網站或者一個虛擬目錄,然后將該XML文件放入此虛擬目錄中應該就可以了(確認:在IIS中選中這個XML文件,右鍵,在瀏覽器中瀏覽,看是否能在IE中正確打開,如果這個地址需要發布出去共多人使用,別人不能使用時,請將此地址加入IE的信任站點中即可)。如圖:
IIS發布方式可以有HTTP、HTTPS這兩種方式(如果為HTTPS,則必須將該站點加入IE的信任站點列表中)。
說明:發布方式還可以通過文件共享的方式,但不推薦這種方式。
三、在注冊表注冊配置文件:打開注冊表,找到HKLM\software\Policies\Microsoft\Communicator 創建一字符串項CustomStateURL其值就是在IIS中發布的XML文件的URL,比如:http://localhost/OcsConfig/CustomStateURL.XML,如圖:
四、退出OCS2007客戶端,重新登錄,令人心動的功能是不是就出來了呢。
最后說明兩點:
1、OCS2007中,最多可以定義四種自定義狀態。
2、每種自定義狀態的最大長度不能超過64個字符。
3、在XML文件中的LCID,它是用來標識不同語言版本的OC,英語美國:1033;中國大陸:2052;中國香港:3076。
4、XML文件配置項是大小寫敏感的,其中availability這個屬性,我試驗過了,如果寫成Availability 將不能生效。其它屬性沒有檢驗過。
一步一步學習OCS2007(二)--如何定制web 標簽頁?
前面我們體驗了如何定制OCS2007的在線狀態,不知道大家有沒有去實踐過,今天我與大家一道來分享另一個課題:如何在OC 2007中定制web 標簽頁?
在OC2007中,在聯系人窗口的下方,我們可以添加一系列web 頁,將業務系統中重要的、常用的功能集成到OC平臺上,致使在OC中可以解決很復雜的業務問題,在業務系統中,也可以方便地進行即時通訊,以達到優勢互補之目的。如下圖所示:
下面我們將一步一步地學習,怎么來實現這一功能:
一、定義XML配置文件,web 標簽頁的所有屬性,比如說標簽圖標的URL、名稱、tooltip 提示、web 頁面的地址、傳遞的參數等,都必須通過一個XML文件來加以定,如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<tabdata>
<tab>
<p_w_picpath>http://localhost/BNSolution/WebTest/RESOURCE/IMAGE/away.png</p_w_picpath>
<name>System</name>
<tooltip>常用系統</tooltip>
<contenturl>http://localhost/BNSolution/WebTest/OCS/WebForm1.aspx</contenturl>
<userid>true</userid>
<contactid>true</contactid>
<accessibility>inside</accessibility>
</tab>
<tab>
<p_w_picpath>http://localhost/BNSolution/WebTest/RESOURCE/IMAGE/2.png</p_w_picpath>
<name>System</name>
<tooltip>信息中心</tooltip>
<contenturl>http://localhost/BNSolution/WebTest/OCS/HTMLPage1.htm</contenturl>
<userid>true</userid>
<contactid>true</contactid>
<accessibility>inside</accessibility>
</tab>
</tabdata>
XML文件中,各元素的詳細說明如下: XML 元素
描述
是否必須
tabdata
Contains 0 or more tab elements. The aximum number of tab elements is 32.
?
tab
Contains p_w_picpath, name, tooltip, contenturl, userid, contactid, and accessibility elements.
?
p_w_picpath
標簽圖片的URL.
?
name
標簽的友好名稱,用于標識XML結點,將不顯示。
?
tooltip
鼠標懸停在標簽上時的提示信息。.
?
contenturl
web 標簽頁面的URL。
?
userid (“true” | “false”)
展現標簽頁面時,是否帶上usrid 參數(當前用戶SIP:URI)。缺省:false
?
contactid
(“true” | “false”)
展現標簽頁面時,是否帶上聯系人的 contactid 參數(聯系人的SIP:URI)。
缺省:false
?
accessibility (
“inside” |
“outside” |
“both”)
用戶在企業內部或者外部登錄時,該標簽是否顯示:
inside :僅在內部登錄時顯示;
outside:僅在外部登錄時顯示;
both:都顯示
?
二、發布XML文件,發布方式有:
HTTP:
HTTPS: 確認要在IE瀏覽器中可正確訪問,如果不能訪問,請將該站點加入IE的信任站點列表中。
文件共享:其書寫規則為: [url=file:///c:/intput/wwwroot/OcsConfig/Tab/tabURL.xml]file:///c:/intput/wwwroot/OcsConfig/Tab/tabURL.xml[/url]
三、注冊XML文件,打開注冊表編輯器,找到HKEY_LOCAL_MACHINE\software\Policies\Microsoft\Communicator ,創建一字符串項TabURL 其值就是上面發布的XML文件的URL,比如:http://localhost/OcsConfig/TabURL.XML。
也可編輯一個reg 文件,直接導入即可:[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator]
"TabURL"=[url=file://server//comshare//Presence.xml]"[/url]http://localhost/OcsConfig/TabURL.XML[url=file://server//comshare//Presence.xml]"[/url]
四、重新登錄OC,看一看漂亮的女神,終于揭開她神秘的面紗,是不是能和我們一見忠情啊!
在OC2007中,通過定制web 標簽頁,才算打開它二次開發的大門,開始踏上二次開發的慢慢征途。這些標簽頁,基本上沒有什么限制,無論asp、ASP.net 、Microsoft SharePoint Services Web parts、Microsoft ActiveX
controls 還是 scripted applications,都可以正確的運行。所以說,盡可能地發揮你豐富的想象力,把OC與應用系統很好地集成起來,不怕做不到,只怕想不到。
最后補充說明幾個問題:
1、在OC2007中,最多可以創建 32個tab 標簽頁,否則將不能生成。其實也用不了那么多,小小的一塊天地,撿重點,撿實用的東東放上就可以了,現在樓市火爆,地盤值錢,方寸大小的屏幕,也價值不菲啊,所以就更要合理運用了。
2、標簽圖片(即:XML文件中的p_w_picpath 圖片),必須為*.png 格式的圖片。圖片的大小為 16 X 16 或者 32 X 32 ,如果圖片格式或者圖片大小不符合規范,則顯示缺省圖標。
3、如果需要將當前用戶或者被選中的聯系人,傳遞給標簽中的web 頁面,我們可以有下面兩種辦法:、
(1)、在XML文件中,設置 userid =true contactid =true,這樣當前用戶或者聯系人的SIP:URI 就會作為頁面參數傳遞給web 頁面,比如:
contenturl=http://moc.corp.contoso.com/corpnews.html 當前用戶為sip:mallen@contoso.com ,加載web 頁面時的URL則為:http://moc.corp.contoso.com/corpnews.html ?usrid=sip:mallen@contoso.com
(2)如果需要將當前選中的聯系人、聯系人分組信息傳到web 頁面,有一個腳本函數可以使用
OnSelectionChange(contacts, groups, distribution_groups)。
今天就寫到這里了,其實,這里面還有很多很炫的功能,希望能和大家一起討論,下一堂課,將講述如何擴展OC2007的菜單功能,敬請關注。
一步一步學習OC2007(三)--定制菜單命令
在前面的兩篇文章中,我們講了如何定制聯系人的在線狀態,如何定制web 標簽頁,是不是對OC2007 的魔力有所感觸了呢?其實,這只是一個引言,一道開胃菜而已,后面還有更多的大餐等著你呢?今天,我們就一起來談談,如何定制OC2007的菜單命令?
OC2007中,有三種類型的菜單:
工具欄菜單(The Tools menu)
會話窗口的動作菜單(The Actions menu off the Conversation window)
聯系人窗口右鍵菜單(The right-click menu off the Contact List)
在這些菜單列表中,都可以擴充我們的自定義菜單項。
在OC2007 中,擴展菜單項,比擴展web 標簽頁,要容易一些,只要在注冊表中定義清楚菜單項的各項屬性就可以正常運行。如下代碼所示:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Communicator\SessionManager\Apps\{27877e66-615c-4582-ab88-0cb2ca05d951}]
"Name"="發送短信"
"ExtensibleMenu"="ConversationWindowRightClick;MainWindowActions;MainWindowRightClick;ConversationWindowActions;ConversationWindowContextual"
"Path"="E:\\群發郵件\\SendNote\\SendNote.exe %user-id% %contact-id%"
"ApplicationInstallPath"="E:\\群發郵件\\SendNote\\SendNote.exe"
"SessionType"=dword:00000000
"ApplicationType"=dword:00000000
各注冊鍵說明如下:
Name
Type
Data
Name
REG_SZ
菜單命令名稱
ApplicationType
DWORD
應用程序類型:0:可執行文件;1:協議
ApplicationInstallPath
REG_SZ
當 ApplicationType = 0 時,應用程序的完整路徑
Path
REG_SZ
應用程序的完整路徑及其參數,缺省參數 %user-id% 和%contact-id%.
SessionType
DWORD
會話類型。
0:本地會話,應用程序只在本地啟動。
1:雙方會話(缺省)
2:多方會話
ExtensibleMenu
REG_SZ
應用程序將會在哪些菜單上顯示:
MainWindowActions
MainWindowRightClick
ConversationWindowActions
ConversationWindowContextual
ConversationWindowRightClick
缺省MainWindowRightClick和ConversationWindowContextual
多個菜單項目之間用分號(“;”)分隔。
菜單說明
鍵名稱(Key) 說明MainWindowActions主窗口菜單的[工具]工菜單下MainWindowRightClickOC主窗口聯系人[右鍵]菜單ConversationWindowActions對話窗口菜單的[操作]菜單下ConversationWindowContextual對話窗口的[發送文件]菜單ConversationWindowRightClick對話窗口,聯系人列表[右鍵]菜單定義完成后,重啟OC,就可以達到如圖所示的效果了。
一步一步學習OC2007(四)--擴展幫助菜單
在OC2007中擴展幫助菜單,也是OC護展中最簡單的一項,只要在注冊表中注冊以下兩項就可以了:
HelpMenuText :幫助菜單名稱。
HelpMenuURL :幫助內容頁面的URL。
注冊代碼如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Communicator]
"HelpMenuText"="發送短信幫助"
"HelpMenuURL"=http://localhost/SendNoteHelp/index.htm
重啟OC,就可以看到我們的幫助菜單條了,
一步一步學習OC2007(五)--OC與 Web 應用系統的集成
?
通過前面幾課的學習,大家可能對OC的強大功能有所了解了吧,她的即時通信、她的語音聊天、她的視頻會議、她的分組、她的聯系人查找等等等,都是其它IM工具所無法比擬的,再加之她的二次開發接口,更是錦上添花。
前面幾課,無論是web 標簽頁的擴展、OC狀態的自定義,還是菜單功能的擴展,都是針對于OC進行擴充與完善。試想,如果一個論壇與OC進行集成,在線人員一欄,就不是一些干澀文字,直接用OC的在線狀態顯示出來,如果想與之交流,就直接可以用OC進行交流了,如下圖所示:
與電話聯系表的集成,此時可以直接與對方通過OC 交流,即方便又適用。
?
與文章管理系統的集成,如果讀者看了這篇文章后,有什么感想、有什么心得、或者有什么不同的見解,都可以立即與作者、與審核人員進行OC溝通,再不用另外查找他的通信方式。而且,也不必把對方加入聯系人中,就可以直接通信。
怎么實現呢,其實很簡單,請參照下面的代碼就,依樣畫葫蘆就可以了。
?
如果想與DataGrid 綁定,也非常簡單
C#代碼
?
Aspx 代碼
?
就這樣,短短的幾行代碼,就會讓你的系統,大放異彩。試一試吧,你會有意想不到的收獲。
?
轉載于:https://blog.51cto.com/kongkong7777/775710
總結
以上是生活随笔為你收集整理的学习OCS客户端定制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 练车记录
- 下一篇: [导入]Update实现多表更新