3.1.1 SER是什麼? SER是SIP Express Router 的縮寫,它是由iptel.org所開發出來的一套open source軟體,是一個以Session Initiation Protocol (SIP RFC2543-bis)為基礎的VoIP伺服器。
3.1.2 SER的優勢 以MySQL當資料庫,方便管理運用,利用Web site來當interface,分別為user interface與admin interface讓使用者與管理者能夠更快速且便利的操作、且具有彈性的plug-in模組,可以更輕易增加新的功能、應用,提供更先進且符合客戶要求的服務。iptel.org還有提供SER專屬討論區,並且有程式研發者進行維護,而且可以利用iptel.org的CVS Server來update最新的source code讓SER保持最少bug,更好的功能。
3.1.3 SER特性 依據最新的標準,SIP Express Router (SER)支援registrar, proxy 和 redirect 模式。 系統平台: Sun/Solaris, PC/Linux Support: IPv4 和 IPv6 Use Cases: 接下來介紹SIP的use cases,SIP Express Router (SER)可以很容易發展成連繫各SIP元件的媒介,包括softphones、hardphones、PSTN gateways 或任何其它 SIP-compliant 裝置設備。
圖3.1 Use Cases 3.1.4 Module List:
acc module:用來記錄missed call,支援MySQL and radius module
jabber module:允許Jabber 的使用者,做溝通
3.1.5 其他預設method:
表3.1 其它預設method
3.1.6 SER安裝步驟:
Supported architectures: Linux/i386, Linux/armv4l, FreeBSD/i386, OpenBSD/i386 Solaris/sparc64, NetBSD/sparc64 Requirements: - gcc or icc : gcc >= 2.9x; 建議使用3.12 - GNU make version >= 3.79. - sed and tr (used in the makefiles) - GNU tar ("gtar" on Solaris) and gzip:如果使用SOURCE安裝 - GNU install or BSD install (on Solaris "ginstall") :如果使用make install來安裝 - libmysqlclient & libz (zlib) :使用mysql必須的lib - libexpat 步驟: Step1:編譯且安裝
Step2:設environment
Step3:建立MySQL tables
Step4:撰寫route script
Step5:重新啟動server
SER伺服器行程
圖3.2 SER伺服器行程
SER伺服器運作狀態
圖3.3 SER伺服器運作狀態
測試:利用UA互傳訊息及對話
圖3.4 訊息傳遞 3.1.7 DataBase(MySQL)
圖3.5 DataBase
SER的web 介面 使用者 http://140.115.156.57/user_interface/ 管理者 http://140.115.156.57/admin/ 3.2.1 網頁架構
圖3.6 網頁架構圖 3.2.2 SERWEB功能、機制 向server註冊新的使用者 Ø 新的使用者可以藉由這個頁面,註冊屬於自己的帳號、密碼,註冊完畢後,會收到一封認證信來啟動帳號。 使用者管理自己的帳號 Ø 使用者可以任意的修改自己的密碼、信箱、以及國家…等。 好友名單 Ø 編輯自己的好友名單,當自己的好友登入SIP Server時,會顯示Online。 看是否有missed calls Ø 當有未接的Call時,會顯示出來 傳送即時訊息 Ø 可以利用Web傳送即時訊息給其它人。 看是否有stored的message和voicemail Ø 利用Web傳送即時訊息時,如果Callee不在,則會被儲存下來 Server的監督管理 Ø 系統管理者專屬,可查看Server運作。
我的帳號è允許使用者改變自己的喜好和修改註冊資料。
圖3.7 我的帳號
電話簿è可以看到每個使用者的上線與否,如果使用者登入,將會顯示“on line”,如果使用者未登入,則顯示 “offline” ,如果使用者並不屬於這個server 的administrative domain,則是出現“non-local”。
圖3.8 電話簿
即時訊息è可以傳送即時訊息給on-line 或 off-line 的使用者,如果是On-line的使用者:如下圖所示,接收訊息。
圖3.9 傳送即時訊息
圖3.10 UA接收訊息
訊息儲存è如果是Off-line的使用者,將會把訊息儲存到message store裡。
圖3.11 傳送到Off-line User
訊息儲存è使用者可以看到所有儲存在message store的訊息。
圖3.12 訊息儲存
3.3.1 SEMS是什麼 SEMS是SIP Express Media Server 是一個free且extensible的多媒體伺服器,可針對VoIP系統提供voice的service,利用它與SER (SIP Express Router)搭配,形成full-featured IP telephony 系統。
3.3.2 SEMS 功能、機制:
3.3.3 SIP with SEMS設計動機: SIP server 與media server做搭配: 利用SIP可以傳送即時訊息、也可以透過語音來傳送,但是如果使用者不在線上,又有急緊事情想要聯絡,卻無法留下訊息,造成不便,靈機一動,想到SIP的應用跟手機電話很相似,所以就仿照手機的語音信箱,想要實作出SIP專用的留言系統。
圖3.13 SEMS流程圖 3.3.4 流程圖解說: 原始流程:一般Caller呼叫某一Callee時,流程如黑色箭頭所示,Caller傳送INVITE給Proxy Server,Proxy Server回覆100 Trying,並且forward INVITE給Callee,Callee回覆100 Trying給Proxy,並且回覆180 Ringing給Proxy,表示Callee的電話聲響起,Proxy forward 180 Trying給Caller,同時,如果Callee接起,則會傳送200 OK給Proxy,Proxy Server 繼續forward 200 OK給Caller,最後Caller回覆ACK給Callee,則建立起連線。 Media流程:在Proxy forward INVITE給Callee時,如果Callee不在線上的話,則會回傳404 not found給Caller,這個時候,我讓Proxy假裝使用者回傳200 OK給Caller,並且去啟動Media Server,開始錄音,當Caller傳送BYE時,結束錄音。
3.3.5 SEMS安裝步驟:
Requirements: Ser version >= 0.8.12: SIP Epress Router 步驟: Step1:下載SEMS透過CVS
Step2:編譯並且安裝
Step3:修改configuration
Step4:設立environment
Step5重新啟動SER
Step6:重新啟動SEMS
IVR module安裝步驟:
Requirements: Ser version >= 0.8.12: SIP Epress Router SEMS Python version>=2.2.3 步驟: Step1:下載source透過CVS
Step2:自訂Makefile
Step3:編輯且安裝
Step4:撰寫自己的python script(片段)
Step5重新啟動SEMS
當Caller call任一Callee,如果這個Callee沒有登入,則會進入Voice System並且進行留言,可留言30秒(預設)。
圖3.14 進入Voice System
SEMS Server Status :
圖3.15 SEMS Server Status
如果想聽留言,則call “message”,會進入互動式語音應答系統
圖3.16 聽留言訊息
圖3.17 互動式語音應答系統 按1:聽留言 按2:刪除留言 按3:聽下一則留言
如果想進行conference,call”onference”,可允許多個使用者同時talk
圖3.18 進行conference
|