看板 PangSir 關於我們 聯絡資訊
※ 引述《penguin1 (光光思)》之銘言: : ※ 引述《sitos (麥子)》之銘言: : : 我想 助教可能回的時候沒有想很清楚 其實CCL UA送出的東西沒有錯 : : 原post可能誤會了 : : Request URI 是 : : sip:140.112.30.32:2000 : : 這是一台server前面沒有接任何UA的名字 : : To header是 : : To:sip:sitos@140.112.30.32:2000;transport=tcp : : 在ip前面是有接UA的名字的 : : 這兩個其實還是不一樣的 : : 至於為什麼To header裡面的ip address是registrar的address呢? : : 很簡單 因為之後要redirect時 caller只知道registrar的位置 不知道callee的位置 : 上面這段才是正確的解釋 : 很抱歉之前沒有想很仔細就回答了.... : : mapping當然是要從To(user@registrar)對應到Contact(user@真正位置) : : 如果To也是user@真正位置 那就表示caller在invite時要把user@真正位置 放在Contact裡 : : 但如果這樣的話 代表caller知道callee的真正位置 那還要registrar幹麻 @@ : : 所以在這裡 registrar還是一樣要把To跟Contact的pair紀錄下來 : : 而server的判斷也是不變的 大家不要擔心 : 完整的作法是這樣沒錯 : 我之前的講法是比較簡單的 : 因為contact中會有username : 最簡單的做法是可以直接記錄contact : 然後透過invite的userame去比對 : 兩種作法意思是差不多的 : 反正只要能達到轉址的目的就可以了... 但是按照課本的圖 其實caller可以用一個name去當registrar的address of record,此name存在To:中 (Ex:sip:Collins@work.com) 然後Contact中的內容才是caller的真實位置(Ex:sip:Collins@station1.work.com) 我覺得這樣的用法是 caller可以告訴其他人他在registrar所註冊的名字 然後其他人去registrar用caller告知的名字作search而找到caller真正的位置 如此caller便可以有多重位置的對應 Ex: sip:Collins@work.com ==> sip:Collins@station1.work.com sip:Collins@home.com ==> sip:Collins@station1.home.com .... 而不會變成在registrar中只有存Collins當作search key 這樣使用者若是有多個真實位置的話,這樣就會有ambiguous... Ex. Collins ==> sip:Collins@station1.work.com Collins ==> sip:Collins@station1.home.com .... 不過也許這樣可以做成follow me service也不一定.... 因為我是按照課本的圖再加上自己的想法講的,也不知道到底是不是這樣... 還煩請助教解釋囉 謝謝助教!! : : (如果還是不懂 再仔細看一下那張流程圖) : : 我自己的另外一個問題是 : : 我似乎沒看到CCLUA會送ACK回來!! : 我的也沒有看到ACK.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.166.45.172