• 沒有找到結果。

SIP 架構及連線流程

在文檔中 中華大學 碩士論文 (頁 36-43)

的 值 即 為 0 。

當 S I U A 在 D o m a i n A 找 不 到 有 M e d i a S e r v e r 提 供 多 媒 體 串 流 服 務 , S I U A 必 需 跨 網 域 對 D o m a i n B 的 D A 2 查 詢 。 因 此 S I U A 對 D A 發 送 了 F u n c t i o n I D 為 1 2 的 S u b s t i t u t e R e q u e s t, 表 示 希 望 D A 代 替 S I U A 向 D A 2 查 詢 服 務 。 S u b s t i t u t e R e q u e s t 主 要 多 包 含 D A A d d r e s s 欄 位,讓 S I U A 能 自 行 輸 入 目 地 端 D A 2 的 I P 透 過 D A 進 行 代 替 查 詢 動 作 。

當 D A 收 到 S u b s t i t u t e R e q u e s t 後 會 以 U A 的 身 份 依 據 其 D A A d d r e s s 欄 位 及 S e r v i c e Ty p e L i s t 欄 位 來 對 D A 2 發 送 u n i c a s t 的 服 務 查 詢 。 D A 2 搜 尋 到 符 合 的 服 務 類 型 時 , 則 會 回 傳 S e r v i c e R e p l y 。 其 中 N u m b e r o f U R L s 值 為 1 表 示 搜 尋 到 一 筆 服 務 。 U R L L i f e t i m e 為 此 服 務 存 活 時 間。U R L L e n g t h 為 此 服 務 U R L 之 長 度 。 以 及 搜 尋 到 服 務 之 類 型 U R L 。

當 D A 收 到 S e r v i c e R e p l y 後 , 會 有 兩 個 動 作 , 第 一 就 是 將 搜 尋 到 的 服 務 註 冊 在 D A 自 身 的 資 料 庫 中 以 便 日 後 供 U A 查 詢 。 第 二 就 是 將 S e r v i c e R e p l y 回 傳 給 S I U A , 完 成 代 替 查 詢 的 動 作 。

用 者 進 行 選 擇 影 音 播 放 的 動 作 , 選 擇 的 資 訊 會 存 在 o p t i o n 欄 位 中 。 當 數 值 等 於 1 的 時 候 , 表 示 使 用 者 進 行 暫 停 的 動 作 。 當 數 值 等 於 2 的 時 候,表 示 使 用 者 繼 續 播 放 影 音。當 數 值 等 於 3 的 時 候,

表 示 使 用 者 進 行 連 線 轉 移 的 動 作 。 L e n g t h 欄 位 用 來 描 述 o p t i o n 欄 位 的 長 度 , 單 位 為 B y t e , 以 字 元 的 型 態 表 現 。 O p t i o n 欄 位 用 來 挾 帶 使 用 者 所 輸 入 的 影 音 頻 道 或 者 多 媒 體 檔 案 名 稱,以 字 串 的 型 態 表 現 。

圖 3-4 MediaService Header 格式 3.3.1 請求連線

S I P 主 要 分 成 兩 個 部 份 , 分 別 是 C l i e n t 與 S e r v e r , 當 使 用 者 取 得 服 務 資 訊 後 會 對 M e d i a S e r v e r 提 出 連 線 請 求 , 如 圖 3 - 5 , C l i e n t 端 S I U A 發 送 一 個 I N V I T E 訊 息 給 S e r v e r 端 M e d i a S e r v e r,

S I P 封 包 內 包 含 了 M e d i a S e r v i c e 標 頭 , 用 來 描 述 連 線 形 態 及 操 作 指 令 , 其 內 容 為 t y p e / a d m i n / l e n g t h / o p t i o n = 0 0 1 2 。

第 一 個 數 值 0 代 表 C l i e n t 端 的 傳 輸 型 態 為 單 向 接 收 串 流 , 因 為 單 向 串 流 服 務 C l i e n t 端 不 需 要 向 S e r v e r 端 傳 送 串 流 資 料 。 第 二 個 位 數 值 0 代 表 C l i e n t 端 對 S e r v e r 端 提 出 選 台 的 請 求 。 第 三 個 字 元 為 1 代 表 o p t i o n 欄 位 有 一 個 b y t e 。 第 四 個 字 串 2 , 表 示 C l i e n t 選 擇 頻 道 2 的 節 目,根 據 S L P 所 取 得 M e d i a S e r v e r 的 資 訊,

第 四 個 字 串 可 以 透 過 使 用 者 的 選 擇 而 改 變 , 例 如 < 檔 案 名 稱 > 。

S e r v e r 端 收 到 I N V I T E 訊 息 後 , 會 回 傳 一 個 2 0 0 O K 表 示 答 應 請 求,其 中 M e d i a S e r v i c e 標 頭 包 含 的 第 一 個 位 元 1 表 示 只 提 供 單 向 串 流 傳 輸 形 態 。 C l i e n t 端 得 知 S e r v e r 端 同 意 連 線 請 求 後 , 即 發 送 一 個 A C K , 表 示 確 認 無 誤 後 即 開 始 RT P 單 向 串 流 。

圖 3-5 請求連線流程 3.3.2 暫停播放

作 為 一 個 單 向 串 流 服 務 , M e d i a S e r v e r 提 供 了 基 本 的 暫 停 及 播 放 操 作 。 如 圖 3 - 6 , 當 使 用 者 要 暫 停 正 在 播 放 的 串 流 服 務 時 , 會 對 M e d i a S e r v e r 發 送 一 個 I N V I T E , 其 中 M e d i a S e r v i c e 標 頭 的 值 為 0 1 , 第 一 個 位 元 0 代 表 C l i e n t 端 屬 於 單 向 串 流 接 收 形 態 。 第 二 個 位 元 1 代 表 目 前 發 送 的 是 暫 停 請 求 。 當 S e r v e r 端 收 到 後 會 暫 停 RT P 串 流 並 暫 停 讀 取 正 在 播 放 的 檔 案 , 接 著 對 C l i e n t 發 送 一 個 2 0 0 O K , 其 中 M e d i a S e r v i c e 標 頭 的 值 為 11 , 第 一 個 位 元

1 代 表 S e r v e r 端 提 供 的 是 單 向 串 流 傳 送 的 服 務 。 第 二 個 位 元 1 代 表 此 2 0 0 O K 為 對 應 暫 停 請 求 所 發 送 。 C l i e n t 收 到 2 0 0 O K 後 , 會 回 覆 一 個 A C K 完 成 暫 停 請 求 的 動 作 。 相 對 的 播 放 請 求 的 流 程 也 同 上 述 。

圖 3-6 暫停播放流程 3.3.3 轉移連線

如 圖 3 - 7 , 當 S I U A 1 想 要 把 與 M e d i a S e r v e r 的 連 線 移 轉 到 S I U A 2 時 , 我 們 將 使 用 R E F E R 機 制 錯 誤 ! 找 不 到 參 照 來 源 。 。 在 移 轉 連 線 前 S I U A 1 會 先 對 M e d i a S e r v e r 發 送 暫 停 請 求 , 透 過 暫 停 的 機 制,能 確 保 連 線 移 轉 到 第 三 方 時 能 從 瞬 間 移 轉 的 時 間 點 繼 續 播 放 。 接 著 S I U A 1 會 發 送 一 個 R E F E R 給 S I U A 2 , 其 中 R e f e r - To 的 內 容 為 M e d i a S e r v e r 的 U R I , 表 示 S I U A 2 要 透 過

S I U A 1 的 委 託,對 M e d i a S e r v e r 要 求 建 立 連 線;另 外 M e d i a S e r v i c e 標 頭 的 內 容 為 0 3 , 代 表 S I U A 2 只 需 運 行 單 向 串 流 接 受 形 態 , 並 告 知 此 為 連 線 移 轉 事 件 。 S I U A 2 了 解 此 連 線 的 資 訊 及 目 的 後 , 就 對 M e d i a S e r v e r 發 送 一 個 包 含 M e d i a S e r v i c e 標 頭 的 I N V I T E 訊 息 , 內 容 0 3 一 樣 描 述 著 S I U A 2 的 服 務 形 態 為 單 向 接 受 , 並 告 知 此 為 連 線 移 轉 事 件 。

當 M e d i a S e r v e r 在 連 線 進 行 中 收 到 I N V I T E 訊 息 , 會 透 過 M e d i a S e r v i c e 標 頭 的 內 容 0 3 來 得 知 此 為 連 線 移 轉 事 件 , 隨 後 一 方 面 對 S I U A 2 發 送 2 0 0 O K 表 示 同 意 連 線 , 另 一 方 面 會 對 S I U A 1 發 送 B Y E 訊 息 中 止 連 線,最 後 U e r B 發 送 給 M e d i a S e r v e r 一 個 確 認 的 A C K 後 , 即 完 成 連 線 移 轉 , 建 立 起 M e d i a S e r v e r 對 S I U A 2 的 單 向 服 務 串 流 。

圖 3-7 轉移連線流程

3.3.4 取回連線

當 S I U A 1 想 要 將 移 轉 出 的 連 線 取 回 時,因 為 S I U A 1 無 法 直 接 與 M e d i a S e r v e r 溝 通 , 因 此 需 要 通 過 中 間 角 色 S I U A 2 來 進 行 訊 息 傳 送 , 如 此 一 來 , 正 好 符 合 N e s t e d R E F E R 機 制 錯 誤 ! 找 不 到 參 照 來 源 。 , 因 此 , S I U A 1 取 回 連 線 的 流 程 如 圖 3 - 8 。 S I U A 1 對 S I U A 2 發 送 一 個 R E F E R 訊 息,其 R e f e r - To 標 頭 以 N e s t e d R E F E R 定 義 的 格 式 撰 寫,代 表 S I U A 1 希 望 S I U A 2 對 本 身 發 送 R E F E R 訊 息 , 而 R E F E R 的 對 象 為 M e d i a S e r v e r 。 接 著 S I U A 2 即 對 S I U A 1 發 送 R E F E R 訊 息 , 另 一 方 面 也 對 M e d i a S e r v e r 提 出 暫 停 請 求 , 以 確 保 接 收 端 的 播 放 時 間 點 。 經 由 上 述 之 R E F E R 流 程 , S I U A 1 即 透 過 N e s t e d R E F E R 機 制 取 回 原 本 M e d i a S e r v e r 對 S I U A 1 的 單 向 串 流 服 務 。

圖 3-8 取回連線流程

第肆章 實驗環境

在文檔中 中華大學 碩士論文 (頁 36-43)

相關文件