接下來談談鬆散路由(Loose Router)和嚴格路由(Strict Router),這其實也是SIP協議裏的概念。
我們經常可以看到在Router字段中設置的SIP URI經常有一個lr的屬性,例如<sip:a.b.c.d;lr>,這就是
表示這個地址所在的Proxy Server是一個Loose Router,如果沒有lr屬性,它就是一個Strict Router。
Loose Router實際上表示Proxy Server根據的是RFC3261處理Route字段的規則,而Strict Router表示
Proxy Server根據的是RFC2357處理Route字段的規則。Strict Router要求SIP消息的Request URI爲其自
身的地址。
1、Loose Router和Strict Router首先都會檢查Router字段的第一個地址是否爲自己,如果是則從Router
字段中刪除自己。
2、Strict Router在發往下一跳時將使用Router字段中的下一跳地址更新Request URI。
3、Loose Router首先會檢查Request URI是否爲自己:如果不是,則不作處理;如果是,則取出Route字
段的最後一個地址作爲Request URI地址,並從Route字段中刪去最後一個地址。
4、Loose Router其次會檢查下一跳是否爲Strict Router:如果不是,則不作處理;如果是,則將
Request URI添加爲Route的最後一個字段,並用下一跳Strict Router的地址更新Request URI。
可以看到步驟3、4其實是Loose Router爲了兼容Strict Router而做的額外工作。