|
基于目前對SIP服務器的理解,SIP_PROXY需實現如下功能:
1、 注冊服務器
注冊需要認證,采用服務器認證方式或者WWW認證方式
a、當客戶端注冊到服務器,則認為是未授權的,需要受權,應該采用401認證;
RESPONSE-STATUS : 401 -------- 未授權的
b 、當用戶發起INVITE請求或者其他消息請求時,若需要經由代理服務器轉發,且服務器需要認證,則采用服務器認證;
RESPONSE-STATUS : 407 -------服務器需要認證(可選)
2、 代理服務器
a、 支持NAT轉換
支持NAT方式實際上,當SIP客戶端是通過NAT以后才可以和外網通信的情況下,代理服務器和能夠識別SIP客戶端是經過NAT,并能使它同外網的其他SIP客戶端進行通信;
能夠識別NAT,將給隨后的SIP消息是否需要經過SIP_PROXY,提供幫助;
b、 可向更上一級服務器注冊
可向上級服務器通信,可理解為服務器之間的通信,如果兩個客戶端注冊到2個不同的代理服務器上,如需要通信,則服務器之間必須要可以路由,實現該功能就是為服務器之間添加路由;
3、 RTP代理服務器
可作為客戶端之間的RTP代理服務器;實現語音視頻的轉發;
4、 分支代理服務器
代理服務器還可以分支請求,當某個用戶注冊到多個位置上時就需要用到該功能;當代理服務器接受到這樣的INVITE請求時,會把這個請求發送到沒一個注冊位置上。如果接受到其中一個位置的應答,代理服務器將提交CANCEL消息到其他地方上,通知它們不用繼續振鈴;
(分支代理服務器必須是有狀態的;)
5、 邊緣代理服務器(outbound_proxy)
通過邊緣代理服務器,SIP客戶端可以穿越NAT/FIREWALL,從而實現與Internet上的其他SIP客戶端通信
|
|