可擴展消息處理現場協議(eXtensible Messaging and Presence Protocol , XMPP)是一種基于可擴展標記語言(eXtensible Markup Language, XML)的近端串流式即時通信協議。它將現場和上下文敏感信息標記嵌入到XML 結構化數據中, 使得人與人之間、應用系統之間以及人與應用系統之間能即時相互通信。XMPP 協議已被批準為互聯網即時通信協議標準。
1.ASTERISK環境及SIP網關搭建。 2.ASTERISK下SIP網關配置(配置文件sip.conf 及extensions.conf中配置簡單撥號規則)。
從整體架構來講, RTX系統是一個開放的體系結構,是一個平臺化、組件化的可擴展平臺。第三方廠商可以在RTX系統所提供SDK API的基礎上,開發具有即時通訊特性的應用。
Skype4Java提供了一個較為完善的開發體系,使您可以非常容易地使用Java開發Skype外殼程序。Skype插件程序與Skype的通信都是基于一些文本命令來完成的。因此,要想開發Skype的插件應用,就需要依靠不同操作系統平臺的系統調用,發送Skype平臺的相應命令來實現。Skype4Java在最底層,也是通過操作系統的系統調用來完成消息的發送。針對異構平臺,Skype4Java提供了不同平臺的底層實現,而Skype4Java的使用者不用管具體的操作系統平臺。因為抽象父類Connector類的靜態方法getInstance()具體判斷當前操作系統是什么平臺,采用簡單的工廠模式,返回相應平臺的子類對象,如OSXConnector.,LinuxConnector,WindowsConnector,Win32Connector等,這些都是Connector類的子類。Connector及其子類即實現了一些系統調用的方法,其中被重載的一系列execute()方法最終調用不同子類的sendCommand(Stringcommand)方法來實現了不同平臺的消息發送。而對于一些數據的接收和處理全局都是采用事件監聽的機制(觀察者模式),用于完成數據的接收,處理機制的調用,錯誤的處理等。Skype平臺利用錯誤消息機制提供了出錯的處理。因此,在我們的錯誤處理中,只需分析錯誤消息的內容,然后通過觀察者調用相應的處理機制即可。
Openfire是基于jabber服務器架構的即時通訊軟件服務器端。開源,支持XMPP協議,因此,可以作為通用的XMPP客戶端的服務器端。注意,安裝Openfire之前需要安裝的一些前置軟件,它們是jdk、MySQL、apacheAnt,有了以上的東西的支持就可以搭建openfire了。
XMPP Extensible Messagingand Presence Protocol,簡單的來講,它就是一個發送接收處理消息的協議,但是這個協議發送的消息,既不是二進制的東東也不是字符串,而是XML。正是因為使用了XML作為消息傳遞的中介,Extensible才談的上,不是么?IM Instant Messenger,及時通信軟件,就是大家使用的QQ、MSNMessenger和Gtalk等等。其中Gtalk就是基于XMPP協議的一個實現,其他的則不是。當前IM幾乎作為每個上網者必然使用的工具,在國外的大型企業中有一些企業級的IM應用,但是其商業價值還沒完全發揮出來。設想既然XMPP協議是一個公開的協議,那么每個企業都可以利用它來開發適合本身企業工作,提高自身生產效率的IM。
Java領域的IM解決方案Java領域的即時通信的解決方案可以考慮openfire+spark+smack。當然也有其他的選擇。Openfire是基于Jabber協議(XMPP)實現的即時通信服務器端版本,目前建議使用3.6.4版本,這個版本是當前最新的版本,而且網上可以找到下載的源代碼。即時通信客戶端可使用spark2.5.8,這個版本是目前最新的release版本,經過測試發現上一版本在視頻支持,msn網關支持上可能有問題,所以選擇openfire3.6.4+spark2.5.8是最合適的選擇。Smack是即時通信客戶端編程庫,目前我已測通通過jsp使用smack的API向openfire注冊用戶發送消息,并且可以通過監聽器獲得此用戶的應答消息。通過smack向msn用戶和QQ用戶,gtalk用戶發送消息應該也可以實現,關于向gtalk用戶發送消息的例子較多。這個留待以后研究。至少目前可以通過程序向spark發消息了。對于局域網內部應用足以解決系統與用戶交互的問題,甚至可以做自動應答機器人。Spark支持聊天,語音,視頻,會議,文件收發,截屏,連接msn等功能。
Jabber是著名的即時通訊服務服務器,它是一個自由開源軟件,能讓用戶自己架即時通訊服務器,可以在Internet上應用,也可以在局域網中應用。?XMPP(可擴展消息處理現場協議)是基于可擴展標記語言(XML)的協議,它用于即時消息(IM)以及在線現場探測。它在促進服務器之間的準即時操作。這個協議可能最終允許因特網用戶向因特網上的其他任何人發送即時消息,即使其操作系統和瀏覽器不同。XMPP的技術來自于Jabber,其實它是Jabber的核心協定,所以XMPP有時被誤稱為Jabber協議。Jabber是一個基于XMPP協議的IM應用,除Jabber之外,XMPP還支持很多應用。?
Java實現comet,基于http長連接的實現comet是HTTP長連接,就是在HTTP發送請求時,服務器不立刻發送響應信息給客戶端,而是保持著連接,等待一定情況發生后才把數據發送回去給客戶端。所以用comet可以實現服務器端的數據實時地發送給客戶端。
Comet:基于HTTP長連接的“服務器推”技術Comet是一種新的Web應用架構。基于這種架構開發的應用中,服務器端會主動以異步的方式向客戶端程序推送數據,而不需要客戶端顯式的發出請求。Comet架構非常適合事件驅動的Web應用,以及對交互性和實時性要求很強的應用,如股票交易行情分析、聊天室和Web版在線游戲等。
Asterisk控制接口(AMI)允許管理客戶端程序連接到一個asterisk實例并且可以通過TCP/IP流發送命令或讀取事件。這在試圖跟蹤asterisk的狀態或其中的電話客戶端狀態時很有用,AMI說明了客戶端基于的一般(可能是動態的)規則。