預付式網頁式電話於網際網路語音服務平台上之實作
11
0
0
全文
(2) 目前上述廠商建置一套包含網際網路語音服 務及預付式計費系統的完整方案至少需要美金 $300,000 以上的昂貴費用。而利用開放原始碼軟體 建置,實際所需成本不到美金$30,000。另外,網 際網路語音服務之硬體電話(Hard Phone)、軟體 電話(Soft Phone)及使用者代理器(User Agent, UA),在需求供應方面水漲船高,價格也相當高 昂。例如使用 X-Pro 軟體,1 人授權費用便需 US$50,一支 CISCO VoIP Phone 更高達 US$150 至 US$400 [21][23]。因此,亦有廠商傾向使用便 利的網頁式電話(Web-based Phone)概念來應用。 例如 2004 年 12 月,著名入口網站蕃薯藤宣布推出 YAMGTD 網際網路語音服務 [28],透過網頁提供 簡單的單一方電話撥打服務。. 目前 Skype 推出的 SkypeOut 付費服務是提供 使用者 PC to Phone 的模式撥打國際電話、市內電 話及手機,而我們所開發的系統同樣具有 PC to Phone 的模式,提供預付式付費服務。再者,我們 系統主要以方便建置及節省經費為出發點,提供便 利的撥打服務,開發技術較 Skype 容易掌握。另 外,由於 Skype 所使用的 VoIP 協定並不是以 SIP 為標準,而是以 P2P 的概念所開發出來的協定 [15][16]。而在官方網站上亦有提到未來將提供與 SIP 整合的服務。因此,我們在建置系統時,即按 照目前當下的主流-SIP 作為 VoIP 的應用協定。再 加上網頁式電話是 Skype 所沒有的服務,這對於小 範圍的公司或一般校園是一個非常便利的服務。所 以,本系統的開發確實有其價值存在。. 本論文之目的,為提供適合學校及小型辦公室 建置的低成本 VoIP 服務系統。我們利用開放原始 碼軟體來建立包含計費系統的低成本整合性平 台,並基於此平台,設計實作一個可互動之預付式 服務之網頁式電話。透過網頁形式提供的網頁式電 話服務,我們結合 B2BUA(Back-to-Back User Agent)[20] 的預付式計費應用服務,整合 RADIUS (Remote Authentication Dial In User Service)[3] Server 的 AAA [5](Accounting、Authorization and Authentication)機制,利用網頁容易延伸的特性, 提供用戶雙方相互使用網頁式電話互動,並隨時隨 地透過訊息視窗(例如:預付式服務餘額、剩餘可 撥打秒數、警告訊息等)得知目前個人的使用情 況。本論文希望藉由網際網路語音服務平台結合方 便的網頁式電話服務,降低因建置系統所需的高昂 設備成本及使用者代理器購買使用版權的費用,提 供各學校單位建構一個價格低廉,功能完整的網際 網路語音服務之參考。. 三、預付式網際網路語音服務平台 (一)預付式網際網路語音服務平台架構圖 藉由 NTP(電信國家型計畫)的推廣,目前 在亞洲大學(原臺中健康暨管理學院)利用開放原 始碼軟體建置 NTP 平台 [25],平台架構如圖 3.1 所示。圖 3.1 中包含兩個部分,右邊部分是以黑色 線條表示傳統有線電話網路,包含亞洲大學校內的 校園電話網路和以 PSTN 連接的其他電話網路(例 如:靜宜大學或行動電話網路)。 圖 3.1 的左邊部分是以紅色線條表示目前本校 建立的預付式網際網路語音服務平台,其中 SIP [9] (Session Initiation Protocol) Proxy Server 包含 SER [27](SIP Express Router)軟體和 B2BUA 軟 體 。 Billing Platform / AAA Server 是 使 用 FreeRADIUS [2,22] 軟體來架設的。而通話所產生 的紀錄資料是存在 MySQL 資料庫中。. 二、相關研究. SIP Proxy Server 負責建立所有 SIP 網路之間 或 SIP 網路與傳統電話之間的通話 [4]。B2BUA 軟體可同時作為 User Agent Client 和 User Agent Server,負責溝通 SER 軟體、FreeRADIUS 軟體及 PSTN Gateway 之間訊息的接收及處理,作為預付 式網際網路語音服務通話控制器,及產生預付式計 費服務的資訊。在 Billing Platform / AAA Server 方 面,藉由使用 FreeRADIUS 軟體,透過 AAA 的機 制,管理者或是用戶可以藉由認證、授權和計費的 機制來管理或使用各種通話服務 [7]。它可提供後 付式(Postpaid)和預付式通話服務機制。目前這 兩種通話服務機制已建立完成,並與靜宜大學實際 連線測試成功,未來可提供校園師生網際網路語音 服務的使用。而 PSTN Gateway 日前已經購入,並 已實際連結至亞洲大學 PBX 系統。透過此 Gateway 已順利連接 SIP Network 和 PSTN,能提供透過網 際網路語音服務經由學校撥打至校外電話或手機 等服務。. 國內外有關網際網路語音服務架構之研究,已 有非常多的研究者利用開放原始碼(Open Source) 軟體開發網際網路語音服務及計費系統。雖然,計 費系統不是位於網路核心部分,但往往卻是決定通 訊服務是否能成功的關鍵。所以,近幾年有針對建 立一個健全的網際網路語音服務計費機制而提出 的研究 [6],其內容關於計費的種類,並提出一個 網際網路語音服務計費機制的流程。另外亦有提出 一個以 SIP 架構為基礎之網際網路語音服務的應 用設計與實作 [17,18],以及有關 Call(撥打)管 理機制的建置 [14] 等。而過去在行動通訊領域 中,關於預付式服務主要有 Hot Billing 及 Service Node 兩種計費方式的研究 [10,11,12,13,19]。因 此,藉由以上理論與實務方面的研究基礎,本論文 已有較多的掌握。. 2.
(3) SIP Proxy Server (Fedora Core 2 : SER+B2BUA). Asia University PBX PSTN Gateway. Phone Asia University. Billing Platform / AAA Server (Fedora Core 2 : FreeRADIUS) PSTN SIP Network Phone 6191. Hard Phone 5900. Soft Phone 5901. W eb-based Phone 5902. Phone 6181. Phone 6121. Phone 6101. DB IVR. Providence University. (MySQL). Phone. 圖 3.1:預付式網際網路語音服務平台架構圖 的使用權,避免未授權用戶可以任意登入 或侵入,及浪費系統資源和網路頻寬。. 而藍色線條代表未來欲新增整合到現存系統 的部份。互動式語音應答系統(Interactive Voice Response,IVR)是利用語音引導用戶,透過用戶 選按電話鍵提供語音查詢通話紀錄細節功能。目前 我們尚未購入,預計未來會將此系統結合預付式服 務,提供用戶補充預付式額度。. 步驟 2: 接 著 當 撥 話 方 欲 撥 打 經 由 PSTN Gateway 結合學校 PBX 至付費的校外電話 或手機電話時,撥話方必須對 SER 軟體提 出 INVITE 的請求。SER 軟體再將 INVITE 的請求訊息傳送至 B2BUA 軟體。B2BUA 軟 體 接 收 INVITE 的 請 求 後 , 會 對 FreeRADIUS 軟體發出 Access-Request 訊 息 。 FreeRADIUS 軟 體 接 收 到 Access-Request 訊息後,向 MySQL 資料庫 發出第二次身分查詢的訊息 -- QUERY, 確認撥話方是否具有撥打至付費電話的資 格及有無餘額可撥打。當 FreeRADIUS 軟 體確認無誤後會回應 Access-Response 給 B2BUA 軟體,並告知 B2BUA 軟體撥話方 仍可撥打的時間 -- Session-Timeout。相反 的,FreeRADIUS 軟體即回應不允許撥話 方使用或回應無餘額可撥打的訊息給 B2BUA 軟體。. (二)預付式網際網路語音服務平台通話訊息流程 圖 3.2 是預付式網際網路語音服務平台通話訊 息流程圖。圖 3.2 的使用者代理器(UA)泛指網 頁式電話、硬體電話或軟體電話。 從圖 3.2 整個流程來看,我們可以發現到 B2BUA 軟體在整個預付式服務中是一個非常重要 的關鍵元件,專門用來處理有關預付式計費方面的 服務。另外,在 FreeRADIUS 軟體與 MySQL 資料 庫 之 間 存 有 accounting_start_query 、 accounting_onoff_query 、 accounting_update_query 和 accounting_stop_query 等四組紀錄的動作。這四 組紀錄是 FreeRADIUS 軟體裡的 sql.conf 設定檔的 四組 SQL Command,其功用是用來將計費的資料 記錄到 MySQL 資料庫的 RADIUS DB 中的 radacct table。所以,我們將整個流程圖分成下列七個步 驟,分別依序說明如下。. 步驟 3:. 步驟 1:. B2BUA 軟體再對 FreeRADIUS 軟體 發出 Accounting-Request 訊息,並設定開 始計時 -- Acct-Status-Type=Start。接著, FreeRADIUS 軟體裡的 sql.conf 設定檔的 accounting_start_query 會予以啟動,並將 撥打所產生的相關資料寫入到 MySQL 資 料庫的 RADIUS DB 中的 radacct table -INSERT,成為這一通話的一筆紀錄(見以 下 SQL Command 粗斜體部分)。. 撥話方使用使用者代理器登入 SIP Proxy Server 中的 SER 軟體。SER 軟體會 啟動認證模組,將撥話方 LOGIN 的帳號 及密碼連線到 MySQL 資料庫,作第一次 查詢比對 -- QUERY,確認身分後並回傳 ACK 訊息到撥話方。使用者代理器向 SER 軟體認證帳號密碼的目的是確保合法用戶 3.
(4) SIP Proxy Server UA. Step 1. SE R L O G IN. B2B U A. FreeR A D IU S. M ySQ L. SIP N etw ork. PSTN G atew ay. PSTN. UA. QUERY. ACK. Step 2. IN V ITE 100 Trying. IN V IT E. A ccess-R equest A ccess-A ccept Session-T im eout. 100 Trying. Step 3. QUERY. IN SE R T (accounting_start_query ) (accounting_onoff_query). A ccounting-R equest A cct-Status-T ype = Start A ccounting-R esponse. Step 4. IN V ITE 100 Trying. IN V ITE 180 R inging. 180 R inging PC or SIP Phone. 180 R inging. 180 R inging. 200 O K. 200 O K. 200 O K 200 O K ACK. ACK. ACK. Step 5. Phone or M obile Phone. ACK. A ccounting-R equest A cct-Status-T ype = A live A cct-D elay-T im e. U PD A T E (accounting_update_query). A ccounting-R esponse. Step 6. C onversation BY E 200 O K. Step 7. A ccounting-R equest A cct-Status-Type = Stop A cct-Session-T im e. U PD A T E (accounting_stop_query ). A ccounting-R esponse. 圖 3.2:預付式網際網路語音服務平台通話訊息流程圖 accounting_start_query = "INSERT into ${acct_table1}(即 radacct table) (AcctSessionId(計費通話 ID,即 Call-ID, 針對每一通由 SER 軟體送出的電話撥打 訊息,SER 軟體會給予一個計費通話 ID), AcctUniqueId ( 計 費 唯 一 ID , 即 FreeRADIUS 軟體會針對接收到每一通電 話撥打完後的計費訊息給予一個計費唯一 ID), UserName(撥話方的使用名稱), Realm(即 SIP Proxy Server 領域,如: csie.asia.edu.tw), NASIPAddress ( 網 路 附 屬 儲 存 裝 置 (Network Attached Storage,NAS)的 IP Address), NASPortId ( 網 路 附 屬 儲 存 裝 置 的 Port Number), NASPortType(網路附屬儲存裝置的 Port 型態,如:Async,即數據機連線), AcctStartTime(計費起始時間), AcctStopTime(計費停止時間), AcctSessionTime(計費通話時間), AcctAuthentic(計費認證,如:RADIUS, 意即是透過 RADIUS 來認證), ConnectInfo_start(連線資訊_開始,如:. 28800 V42BIS/LAPM,意即一開始連線的 資訊。首先是傳輸速度(即網路附屬儲存 裝置數據機的傳輸速度),如果後面跟著 反斜線(/),在反斜線後面是接收速度, 然後是其它關於數據機的訊息。因此,上 述例子中的 28800 是指傳輸速度,以 bps 為單位。後面則是使用 V42bis 的 LAPM, 有關數據機規格), ConnectInfo_stop(連線資訊_停止,如: 52000/31200 V90,意即停止連線的資訊, 52000 是指傳輸速度,31200 是指接收速 度,都是以 bps 為單位。後面則是使用 V90,有關數據機規格), AcctInputOctets(計費輸入 Octet 數量,意 即針對撥打服務收到多少 Octet 數), AcctOutputOctets(計費輸出 Octet 數量, 意即針對撥打服務輸出多少 Octet 數), CalledStationId(受話方電話號碼), CallingStationId(撥話方電話號碼), AcctTerminateCause(計費終止啟動,如: User Request、Session Timeout), ServiceType ( 服 務 型 態 , 如 : Login 、 Authenticate only), FramedProtocol(訊框協定,如:PPP、 SLIP), FramedIPAddress(訊框 IP 位址,意指如 4.
(5) 方的使用者代理器,撥話方的使用者代理 器則會再傳送 ACK 訊息給受話方使用者 代理器,如此,通話連線已經建立完成, 可以準備開始進行對話。. 果是使用網路附屬儲存裝置的用戶而言, 網路附屬儲存裝置會從自己的 IP 位址池 (IP Pool)中選擇一個 IP 位址分配給該用 戶), AcctStartDelay(計費起始延遲時間), AcctStopDelay)(計費停止延遲時間) values ('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', '%{NAS-Port-Type}', '%S', '0','0', '%{Acct-Authentic}', '%{Connect-Info}', '0', '0', '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '%{Acct-Delay-Time}', '0')". 步驟 5: 當雙方建立通話連線後,B2BUA 軟 體 再 向 FreeRADIUS 軟 體 發 出 Accounting-Request 及確認連線存在訊息 -- Acct-Status-Type=Alive , 告 知 FreeRADIUS 軟體確認此連線仍然存在, 並且計算出 Acct-Delay-time 因建立連線而 造成延遲的時間。接著,FreeRADIUS 軟 體 裡 的 sql.conf 設 定 檔 的 accounting_update_query 會予以啟動並執 行更新動作,將資料更新到原先已寫進到 radacct table 中 的 那 一 筆 紀 錄 上 -UPDATE(見以下 SQL Command 粗斜體 部分)。. 另外,如果發生如 SIP Proxy Server、 Billing System 或 網 路 附 屬 儲 存 裝 置 (Network Attached Storage,NAS)等重 開 機 的 情 況 下 , 會 啟 動 accounting_onoff_query 執行更新資料的動 作 -- UPDATE(見以下 SQL Command 粗 斜體部分)。accounting_onoff_query 的執 行會暫時將計費予以停止,以避免用戶在 撥打使用的過程中遭遇系統重開機狀態, 計費仍在計時的狀況。. accounting_update_query = "UPDATE ${acct_table1} SET FramedIPAddress = '%{Framed-IP-Address}', AcctSessionTime = '%{Acct-Session-Time}', AcctInputOctets = '%{Acct-Input-Octets}', AcctOutputOctets = '%{Acct-Output-Octets}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress= '%{NAS-IP-Address}'". accounting_onoff_query = "UPDATE ${acct_table1} SET AcctStopTime='%S', AcctSessionTime=unix_timestamp('%S') unix_timestamp(AcctStartTime), (重開機後的時間減掉計費起始時間,得 出使用者在重開機前的計費通話時間) AcctTerminateCause='%{Acct-TerminateCause}', AcctStopDelay ='%{Acct-Delay-Time}' WHERE AcctSessionTime=0 AND AcctStopTime=0 AND NASIPAddress= '%{NAS-IP-Address}' AND AcctStartTime <= '%S'". 最 後 , FreeRADIUS 軟 體 再 回 送 Accounting-Response 給 B2BUA 軟體確認。 步驟 6: 此時雙方可以開始通話。假設當受話 方先掛斷電話,會發出 BYE 訊息到撥話 方,撥話方再回應 OK 訊息給受話方,通 話就此結束。 步驟 7:. 最 後 , FreeRADIUS 軟 體 再 回 送 Accounting-Response 給 B2BUA 軟體確認。. 當雙方通話完畢,B2BUA 軟體再向 FreeRADIUS 軟體發出 Accounting-Request 訊 息 , 並 設 定 停 止 計 時 -Acct-Status-Type=Stop,及計算此通電話的 時間 Acct-Session-Time(電話撥打時間)。 接著,FreeRADIUS 軟體裡的 sql.conf 設定 檔的 accounting_stop_query 會啟動,將通 話結束後的紀錄,再一次更新到 radacct table 的那一筆紀錄上 -- UPDATE(見以下 SQL Command 粗斜體部分)。. 步驟 4: 當 B2BUA 軟體收到 FreeRADIUS 軟 體的 Accounting-Response 回應後,B2BUA 軟體便可以將撥話方 INVITE 的請求轉送 到 PSTN Gateway,PSTN Gateway 再將 INVITE 的請求送至受話方的使用者代理 器。等到受話方的使用者代理器收到 INVITE 的請求,並回應 OK 訊息到撥話 5.
(6) accounting_stop_query = "UPDATE ${acct_table2} SET AcctStopTime = '%S', AcctSessionTime ='%{Acct-Session-Time}', AcctInputOctets = '%{Acct-Input-Octets}', AcctOutputOctets = '%{Acct-Output-Octets}', AcctTerminateCause = '%{Acct-Terminate-Cause}', AcctStopDelay = '%{Acct-Delay-Time}', ConnectInfo_stop = '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}'". 第一部份: 是 Client。所謂 Client 包括一般個人 電腦、筆記型電腦及客戶端應用程式 -ThmuWebPhone.CAB 。 ThmuWebPhone.CAB 封 裝 了 MySQL ODBC Driver 及內含 RTC Client API 的 ActiveX 等 兩 個 元 件 。 MySQL ODBC Driver 是網頁式電話與 MySQL 資料庫之 間 的 溝 通 橋 樑 。 透 過 MySQL ODBC Driver,我們能順利地從 MySQL 資料庫中 擷取資料。而 ActiveX 是將 RTC Client API 所開發的程式包裝起來,最後再將 ActiveX 鑲嵌在 HTML 上,供用戶在 Client 透 過 網 頁 啟 動 放 置 在 Client 的 ThmuWebPhone.CAB 撥打電話。. 最 後 , FreeRADIUS 軟 體 再 回 送 Accounting-Response 給 B2BUA 軟體確認。. 第二部份:. 以上是預付式服務撥打的七個流程步驟說 明,及 sql.conf 設定檔中四組 SQL Command 的說 明。藉由預付式服務的使用,得知每位用戶的每一 通電話起始和結束的時間,以及最後總共撥打的時 間、可撥打的秒數等。如此,就能透過費率的計算, 換算成用戶可撥打的通話點數,作為預付式電話餘 額抵扣的依據。. 是 Web Server , 裡 面 放 置 著 Webphone.html 及 供 用 戶 下 載 使 用 的 ThmuWebPhone.CAB。 第三部份: 則是 SIP Proxy Server,裡面包含了 MySQL 資料庫及與它結合在一起的 SER 軟體和 FreeRADIUS 軟體,以及作為溝通 SER 軟 體 和 FreeRADIUS 軟 體 之 間 的 B2BUA 軟體。. 四、網頁式電話 (一)網頁式電話架構. 以上是圖 4.1 的三個部份說明。當用戶撥打網 頁式電話時,這三部分彼此互動的步驟順序如圖 4.1 所示,分別依序說明如下。. 網頁式電話之架構如圖 4.1 所示。此架構包含 Client、Web Server、SIP Proxy Server 等三個部份:. 步驟 1:. FreeRADIUS B2BUA. MySQL. SER. 用戶透過 Client 的瀏覽器(Browser) 上網連線到網頁伺服器的 Webphone.html 網頁。. SIP Proxy Server. 步驟 2:. Webphone.html 1. 2. 3. 透過 Webphone.html 裡的 CLASSID (ActiveX 登錄在系統登錄檔的辨識 ID) 及 CODEBASE ( 指 定 下 載 控 制 項 的 位 置 ), 將 置 放 在 網 頁 伺 服 器 的 ThmuWebPhone.CAB 載入至 Client。. Web Server. 4. Client Web-based Phone. 步驟 3:. MySQL ODBC Driver ActiveX RTC Client API. 下載完畢後,用戶就可以使用網頁式 電話。首先,當用戶使用網頁式電話的同 時,用戶必須先進行帳號及密碼確認的動 作,並登入到 SIP Proxy Server 的 SER 軟 體。接著,當帳號及密碼確認完成並已登 入到 SER 軟體,用戶即可啟動已經載入到. ThmuWeb Phone.CAB. 圖 4.1:網頁式電話架構圖 6.
(7) 步驟 5:. Client 的 ThmuWebPhone.CAB,並且使用 ThmuWebPhone.CAB 裡面的 RTC Client API 元件,送出 XML 登入檔到 SER 軟體 進行帳號密碼的確認與登入。. 當 Client 收到由 SER 軟體傳來確認帳 號及密碼無誤的訊息後,用戶即可在 Client 開啟網頁式電話的畫面(見圖 4.4) 。 接著,網頁式電話便藉由 ODBC 與 SIP Proxy Server 的 MySQL 資料庫溝通,讀取 用戶目前可撥打餘額資料。最後將讀取的 資料傳回來顯示在網頁式電話上,使得用 戶能確實掌握可撥打時間及金額的狀況, 當用戶使用網頁式電話開始撥打電話時, 網頁式電話馬上可以計算抵扣撥打金額及 時間,供用戶參考之用。. 步驟 4: 當用戶使用網頁式電話確認登入到 SER 軟 體 完 成 後 , 接 著 Client 裡 的 ThmuWebPhone.CAB 會再透過已經包含 在它裡面的 MySQL ODBC Driver 連線至 MySQL 資料庫擷取用戶的資訊。 (二)預付式網頁式電話流程. 步驟 6 ~ 步驟 7:. 本節將說明預付式網頁電話服務之完整流 程,如圖 4.2 所示。詳細流程步驟依序說明如下。. PSTN Gateway. 12 15. 13. PSTN. 當用戶使用 Client 上的網頁式電話輸 入受話方號碼,撥打行動電話或是一般市 內電話,SER 軟體會將來自網頁式電話的 INVITE 的訊息,傳送給 B2BUA 軟體。. Phone. 14 Mobile Phone. 步驟 8:. SIP Proxy Server. 11 16. B2BUA 軟 體 收 到 由 SER 傳 來 的 INVITE 的 訊 息 後 , B2BUA 軟 體 再 將 INVITE 的訊息傳給 FreeRADIUS 軟體。. 3 SER 7. B2BUA. 10 8 17. FreeRADIUS. 9 18. 步驟 9 ~ 步驟 10:. MySQL. 當 FreeRADIUS 軟體收到由 B2BUA 軟體傳來的撥打訊息後,馬上藉由 AAA 機制與 MySQL 資料庫進行身份認證,並 確認用戶是否有餘額撥打電話。如果用戶 有足夠餘額可撥打,FreeRADIUS 軟體即 將撥打訊息回傳至 B2BUA 軟體。如果沒 有餘額,FreeRADIUS 軟體將回傳 STOP 訊息(當 Session-Timeout 等於零的情況下) 給 B2BUA 軟體,B2BUA 軟體再將 INVITE 的訊息送回到網頁式電話,告知用戶已沒 有餘額可撥打,不能使用,需再購買餘額 才能撥打行動電話或是一般市內電話。. 2 4 6. Client Web-based Phone. 1 19. 20 Web Server 5. 圖 4.2:網頁式電話流程圖 步驟 1: 用戶打開瀏覽器連線至網頁伺服器的 網頁式電話首頁,並且載入網頁式電話的 ActiveX 元件。. 步驟 11 ~ 步驟 13:. 步驟 2:. B2BUA 軟體收到由 FreeRADIUS 軟 體傳來確定用戶仍有餘額可撥打訊息後, B2BUA 軟體會將 INVITE 訊息轉送至 PSTN Gateway , 由 PSTN Gateway 將 INVITE 訊息撥打至 PSTN,與受話方連 線。待雙方建立通話連線作業完成後, B2BUA 軟體啟動計費計時功能,並傳送 開 始 計 費 時 間 至 FreeRADIUS 軟 體 , FreeRADIUS 軟體再存進 MySQL 資料庫 中。用戶可由網頁式電話中的訊息視窗, 在一邊撥打的情況下,即時了解目前餘額 使用的情況。. 接著,用戶在 Client 使用網頁式電 話,登入至 SIP Proxy Server 的 SER 軟體 做帳號及密碼的確認動作。 步驟 3 ~ 步驟 4: SER 軟體聯繫 MySQL 資料庫,比對 查詢帳號密碼是否有誤,以確認用戶身 份,避免非法用戶佔用系統資源及網路頻 寬。當 SER 軟體收到經由 MySQL 資料庫 比對帳號與密碼正確的訊息後,SER 軟體 回送登入成功的訊息给 Client。. 7.
(8) 圖 4.4 為用戶輸入帳號及密碼登入後的主系統 畫 面 圖 , 針 對 重 要 功 能 說 明 如 下 。. 步驟 14 ~ 步驟 16: 當雙方通話完畢,假設受話方先掛斷 電話,PSTN Gateway 將 BYE 訊息回傳至 SIP Proxy Server 裡的 B2BUA 軟體。 步驟 17 ~ 步驟 18: B2BUA 軟體收到由 PSTN Gateway 傳 來掛斷訊息,便會停止計費計時功能,並 將用戶撥打結束時間傳至 FreeRADIUS 軟 體,FreeRADIUS 軟體再存進 MySQL 資 料庫中。. (1). (2). (3). (4). 步驟 19 ~ 步驟 20:. (6). 至此,通話建立。此時,用戶可連線 至網頁伺服器上的網際網路語音服務預付 式服務管理系統,藉由此系統連線至 MySQL 資料庫查詢。如此,用戶經由此 系統可以得知撥打的詳細狀況及明細表。. (5). (三)實驗程式功能與畫面. 圖 4.4:網頁式電話主系統畫面圖. 圖 4.3 為網頁式電話登入的畫面,針對重要功 能說明如下。. (1). 訊息顯示:. 此欄位用以顯示登入狀態、撥打與接 聽狀態及錯誤訊息。 (2). (1). 警告訊息:. 此訊息顯示是用來表示當在第 4 項的 SIP 空 白 欄 位 裡 面 輸 入 錯 誤 的 SIP Address,系統預設 25 秒判斷無法撥通的 情況,及當用戶餘額不足的情況下,主系 統畫面將會顯示警告訊息。. (2). (3). 在空白處輸入 SIP Address 或手機、一 般電話號碼 Address。另外,為了避免用 戶不知 SIP Address 格式,在空白處會出現 提示訊息。. 圖 4.3:網頁式電話登入畫面圖 (1). 帳號密碼:. (4). 用戶輸入登入網頁式電話的帳號及密 碼。帳號如 0939123456、tlchen 等電話號 碼帳號或一般英文字開頭之帳號都可使 用。 (2). SIP 號碼輸入欄位:. 時間及餘額顯示:. 此訊息用來顯示撥打時間、可撥打秒 數及可用金額。當可撥打秒數等於系統設 定的 60 秒時,系統即會出現上述第三項的 警告訊息 -- “警告:您的餘額即將用完, 請準備掛斷電話”,並且出現警告鈴聲提醒 用戶。如果餘額還未補充,當下次再登入 到圖 4.4 主系統畫面時,系統經判斷用戶 的可撥打秒數低於系統設定的 60 秒,即會 在上述第三項的警告訊息出現 -- “警告: 您的餘額即將用完,請記得補充餘額。”。. 登入狀態:. 系統會判斷用戶輸入的帳號及密碼, 經過系統預設 30 秒後是否能登入到 SIP Proxy Server。. 8.
(9) (5). 步驟 1:. 設定:. 用戶打開瀏覽器上網開啟網頁式電話 後,輸入帳號及密碼,執行登入的動作。. 預設狀態是開啟的。此按鍵是提供用 戶重新設定偵測聲音和麥克風設備的安裝 精靈。 (6). 步驟 2:. 撥打型態:. 系統判斷輸入帳號密碼是否能註冊登 入到 SIP Proxy Server,如果經過系統預設 30 秒後不能登入,回到步驟 1。如果可以 登入,則進入到步驟 3。. 分成電腦對電腦、電腦對電話兩種撥 打型態,選擇電腦對電腦,則上述第四項 SIP 空白欄位出現提示訊息 -- “請輸入, 如 “[email protected]”” 。 選 擇 電 腦 對 電 話,則上述第四項 SIP 空白欄位出現提示 訊 息 -- “ 請 輸 入 , 如 “[email protected]””。. 步驟 3: 系 統 確 認 可 以 登 入 到 SIP Proxy Server,開始執行初始化畫面設定。 步驟 4:. 五、應用劇本. 如果要撥打至受話方手機或一般電話 號碼,選擇電腦對電話的撥打型態,輸入 SIP 電 話 號 碼 , 如 [email protected]。. 本論文將以電腦對電話的撥打型態,作為說明 目前開發網頁式電話應用的劇本,如圖 5.1 所示。 劇本將說明在電腦對電話的情況下,用戶從一開始 啟動網頁式電話到最後掛斷電話終止通話的整個 工作流程。詳細步驟依序說明如下。. 步驟 5: 在前一步驟 4 輸入 SIP 電話號碼後, 執行此步驟撥打動作。. Start 1. 步驟 6:. Login. No 2. 3. 系統判斷 SIP 電話號碼能否撥打出 去,經過系統預設 25 秒判斷,如果無法撥 通,回到步驟 4。如果可以撥通,進到步 驟 7。. Check ID Password ? Yes Initialization. 4. No. 5. 6. 步驟 7: Input SIP Address. 系統判斷用戶是否有餘額可以撥打。 如果用戶沒有餘額,則不准用戶使用電腦 對電話的撥打型態,直接跳到步驟 11,並 且出現警告訊息 -- “警告:您的餘額即將 用完,請記得補充餘額”。如果用戶仍有餘 額,進到步驟 8。. Dial. Check SIP Address ? Yes. 7 No 8. 步驟 8:. Check Balance ?. 待步驟 6 與步驟 7 確認完畢後,雙方 開始進行通話動作。通話完畢後,進到步 驟 11。. Yes Conversation. 9. > 60. Balance = 0, < 60, = 60, > 60 ? 11. 步驟 9:. 10 < 60, = 60. Warning. 在雙方通話的過程中,判斷餘額目前 狀況。如果可撥打秒數大於系統設定的 60 秒,進到步驟 8 繼續通話。如果可撥打秒 數等於或小於系統設定的 60 秒,進到步驟 10。如果用戶可撥打秒數等於 0 秒,進到 步驟 11,終止通話。. =0 Terminate. 圖 5.1:電腦對電話流程圖. 9.
(10) Conference on Advanced Communication Technology, Vol. 2, pp. 756 – 759, 2004.. 步驟 10: 如果用戶的可撥打秒數等於或小於系 統設定的 60 秒狀態,則會發出警告訊息與 警告鈴聲,通知用戶餘額快要使用完畢, 請掛斷電話的訊息,但仍可繼續撥打,回 到步驟 8。. [7] J. Hassell, RADIUS, 1st Ed. Beijing: O’Rilly & Associates, Inc., 2003. [8] J. Martin, “Wireless Prepaid Billing: A Global Overview,” Telecommunications, Sep. 1999. [9] J. Rosenberg, et al., “SIP: Session Initiation Protocol,” RFC3261, June 2002.. 步驟 11: 結束通話有兩種情形:一是當用戶在 步驟 8進行通話完畢後,掛斷終止通話。 另一,當用戶在步驟 9進行通話的過程 中,可撥打秒數等於0秒的情況,系統會強 制掛斷終止通話。. [10] M. F. Chang and W. Z. Yang, “Performance Modeling of Mobile Prepaid and Priority Call Services,” in Proceedings of the National Computer Symposium(NCS), 2001. [11] M. F. Chang and W. Z. Yang, “Performance of Mobile Prepaid and Priority Call Services,” IEEE Communication Letters, 6(2): pp. 61-63, Feb. 2002.. 六、結論 本論文利用整合開放原始碼軟體,建構預付式 服務計費系統的網際網路語音服務平台,並設計具 預付式服務的網頁式電話。本系統除可節省高昂的 硬體電話和軟體電話成本外,亦提供用戶在撥打的 同時,能即時獲得撥打餘額方面的資訊,並且在通 話餘額即將用完之際,傳達餘額不足的警告訊息給 用戶。另外在用戶掛斷電話時,系統也能提供顯示 目前所剩餘額的狀況。透過此整合系統,我們可以 提供使用者既方便又實用的網際網路語音服務應 用工具與環境。. [12] M. F. Chang, W. Z. Yang and Y. B. Lin, “Performance Modeling of Service Node in Mobile Prepaid Service,” IEEE Transaction on Vehicular Technology, 51(3): pp. 597-612, May 2002. [13] M. F. Chang, Y. B. Lin and W. Z. Yang, “Performance of Hot Billing Mobile Prepaid Service,” Computer Networks Journal, 36(2-3): pp. 269-290, July 2001. [14] M. Y. Huh, et al., “Call management mechanism for internet phone services based on SIP,” in Proceedings of the 5th IEEE International Conference on High Speed Networks and Multimedia Communications, pp. 66 – 70, 2002.. 未來我們將針對撥打市話,甚至國際電話及手 機電話來給予不同費率的調整,使本系統能更符合 使用者的需求。另外,我們未來也會針對本系統進 行效能方面的測試,提供相關數據供參考之用。. [15] S. Baset and H. Schulzrinne, “An analysis of the skype peer-to-peer internet telephony protocol,” Technical Report CUCS-039-04, Computer Science Department, Columbia University, New York, NY, Sep. 2004.. 參考文獻 [1] “以即時的計費解決方案營造可盈利的網路,” http://media.ccidnet.com/media/ciw/1275/c1802. htm. [16] K. Singh and H. Schulzrinne, “Peer-to-peer Internet Telephony using SIP”, in Proceedings of the 15th International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV), pp. 63 – 68, June 2005.. [2] C. Rigney, “RADIUS Accounting,” RFC2866, June 2000. [3] C. Rigney, et al., “Remote Authentication Dial In User Service (RADIUS),” RFC2865, June 2000.. [17] S. Zeadally and F. Siddiqui, “Design and implementation of a SIP-based VoIP architecture,” in Proceedings of the 18th International Conference on Advanced Information Networking and Applications (AINA), Vol. 2, pp. 187 – 190, 2004.. [4] D. Collins, Carrier Grade Voice over IP, 1st Ed. New York: McGraw-Hill Companies, Inc., 2001. [5] D. Mitton, et al., “Authentication, Authorization, and Accounting: Protocol Evaluation,” RFC 3127, June 2001.. [18] W. Hyun, M. Y. Huh and S. G. Kang, “An implementation of SIP servers for internet telephony,” in Proceedings of the 5th IEEE International Conference on High Speed. [6] H. Wook, et al., “Study on robust billing mechanism for SIP-based internet telephony services,” in Proceedings of the 6th International 10.
(11) [23]. Networks and Multimedia Communications, pp 61 – 65, 2002.. [24] “Logitech and Skype Announce Marketing Agreement,” http://www.skype.com/company/news/2004/logit echannouncement.html. [19] W. Z. Yang, F. S. Lu and M. F. Chang, “Performance Modeling of Integrated Mobile Prepaid Services,” in Proceedings of the 10th Mobile Computing Workshop(MC), pp. 133-138, 2004. [20]. “B2BUA - Back-to-Back http://www.vovida.org/. User. [21]. “Buy Xten Software,” http://www.xten.com/index.php?menu=products &smenu=buy. “Hard Phone,” http://www.voip-info.org/wiki-VOIP+Phones. [25] “NTP VoIP Platform,” http://www/ipv6.club.tw/. Agent,”. [26] “Prepaid: Operators shy away from data,” http://www.telecomasia.net [27] “SIP Express Router,” http://www.iptel.org/ [28] “YamGTD,” http://gtd.yam.com/. [22] “FreeRADIUS,” http://www.freeradius.org/. 11.
(12)
相關文件
步驟一、請各校註冊組長協助,由學務管理系 統計算成績並下載相關成績報表
合平台,同時由同仁以簡訊及電 話聯繫、電子郵件通知符合條件 之求職者前來應徵,並於各處張 貼徵才 DM、於網站及
(1) 輸入 http://kpptr.wda.gov.tw 本分署網站,功能選項中點選「職業訓練」→點選「訓 練課程查詢及報名」.. (2)
形成 形成 形成 研究問題 研究問題 研究問題 研究問題 形成問題 形成問題 形成問題 形成問題 的步驟及 的步驟及 的步驟及 的步驟及 注意事項 注意事項 注意事項
日本電信電話公社宣布,於 9 月 30 日起正式終止呼叫器(BB Call)的服務。日本 呼叫器服務從 1968 年起由電信電話公社開始提供,與當年台灣的
Segmented Bushy Path 分為兩個步驟,第一個步驟是文件結構的切割 (Text Segmentation),也就是分析文件內容並將文件內容切割成幾個具有代 表的結構。Text Segmentation
思考要有角度/單向/正反/個人他人社會/長 短答題/寫作有一定步驟;說話能舉生活事
頁碼編排步驟 (4) 點選 格式 後,出現以下畫面:. 接著選擇頁碼要呈現