讨论这个问题的前提是,不在同一个域的两个用户通信
如下图,手机1位于域1,手机2位于域2,手机1要给手机2打IP电话
手机1和手机2都在网络中的SIP代理服务器中注册了信息
使用重定向功能
建立会话的过程如下:
- 手机1发起呼叫,向代理服务器1发起会话邀请
- 代理服务器1收到手机2的电话号
- 通过电话号,代理服务器1发现手机2在其它域
- 代理服务器1使用重定向功能,获取到了对应域的代理服务器2的ip地址
- 代理服务器1将代理服务器2的ip地址发送给手机1
- 手机1再次向代理服务器2发起会话邀请
- 代理服务器2向注册服务器2发出请求,要求查找手机2的ip地址
- 代理服务器2收到手机2的ip地址后,将手机1的会话邀请转发给手机2
- 手机2如果不占线则接受邀请,并将接受邀请的消息发送给代理服务器2
- 代理服务器2再将消息发送给手机1,手机1和手机2就可以进行交互通信了
不使用重定向功能
建立会话的过程如下:
- 手机1发起呼叫,向代理服务器1发起会话邀请
- 代理服务器1收到手机2的电话号
- 通过电话号,代理服务器1发现手机2在其它域
- 代理服务器1代理呼叫代理服务器2,将手机1的会话邀请发送给代理1服务器2
- 代理服务器2向注册服务器2发出请求,要求查找手机2的ip地址
- 代理服务器2代理呼叫手机2,将手机1的会话邀请发送手机2
- 手机2如果不占线则接受邀请,并将接受邀请的消息发送给代理服务器2
- 代理服务器2再将消息发送给代理服务器1
- 代理服务器1再将消息发送给手机1,手机1和手机2就可以进行交互通信了
cs