※ 引述《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