1.什么是Proxy模式?

按照RFC3261中的定义,Proxy服务器是一个中间的实体,它本身即作为客户端也作为服务端,为其他客户端提供请求的转发服务。一个Proxy服务器首先提供的是路由服务,也就是说保证请求被发到更加”靠近”目标用户的地方。Proxy服务器在施行某些强制政策时也有用(比如,确认一个用户是否允许建立一个呼叫等)。而一个Proxy服务器翻译,如果有需要的话在转发消息前会重写该请求消息。

2.什么是B2BUA?

按照RFC3261中的定义,背对背的用户代理(B2BUA)是一个逻辑实体,它就像用户代理服务器(UAS)一样接收和处理请求。为了决定该如何应答一个请求,B2BUA就像UAC一样工作,并且发出请求。但是它不像代理服务器(proxy),它维持对话状态,并且参与已经建立的对话中的每一个请求。由于它是直接的UAC和UAS的串连,所以,不需要对他有额外的定义。

 

3.Proxy模式和B2BUA模式有什么不同?各有什么优缺点?

最常见的Proxy服务器仅仅完成两个UA的连接。而B2BUA服务器则是一个智能的实体,更为强大,它有一些Proxy无法做到的功能,它更灵活,并渐渐取代一般的Proxy服务器而成为SIP服务器的主流。

根据sip-router.org的描述,Proxy模式和B2BUA的最大区别是前者是事物有状态(transaction-stateful),而后者是呼叫有状态(call stateful)。也就是说,代理服