Ubuntu 通过Kamailio的两个代理建立SIP会话
我想通过两个SIP代理实现会话建立SIP调用。为此,我正在使用Kamailio服务器,但我不知道如何更改Kamailio.cfg(/etc/Kamailio/Kamailio.cfg)配置文件来实现这一点。有什么帮助吗 这就是我想要实现的场景,其中Alice和Bob是SIP客户端(ekiga、blink、twinkle…),Proxy 1和Proxy 2是两个Kamailio服务器Ubuntu 通过Kamailio的两个代理建立SIP会话,ubuntu,proxy,sip,kamailio,Ubuntu,Proxy,Sip,Kamailio,我想通过两个SIP代理实现会话建立SIP调用。为此,我正在使用Kamailio服务器,但我不知道如何更改Kamailio.cfg(/etc/Kamailio/Kamailio.cfg)配置文件来实现这一点。有什么帮助吗 这就是我想要实现的场景,其中Alice和Bob是SIP客户端(ekiga、blink、twinkle…),Proxy 1和Proxy 2是两个Kamailio服务器 Alice Proxy 1 Proxy 2 Bob
Alice Proxy 1 Proxy 2 Bob
| | | |
| INVITE F1 | | |
|--------------->| | |
| 407 F2 | | |
|<---------------| | |
| ACK F3 | | |
|--------------->| | |
| INVITE F4 | | |
|--------------->| INVITE F5 | |
| 100 F6 |--------------->| INVITE F7 |
|<---------------| 100 F8 |--------------->|
| |<---------------| |
| | | 180 F9 |
| | 180 F10 |<---------------|
| 180 F11 |<---------------| |
|<---------------| | 200 F12 |
| | 200 F13 |<---------------|
| 200 F14 |<---------------| |
|<---------------| | |
| ACK F15 | | |
|--------------->| ACK F16 | |
| |--------------->| ACK F17 |
| | |--------------->|
| Both Way RTP Media |
|<================================================>|
| | | BYE F18 |
| | BYE F19 |<---------------|
| BYE F20 |<---------------| |
|<---------------| | |
| 200 F21 | | |
|--------------->| 200 F22 | |
| |--------------->| 200 F23 |
| | |--------------->|
| | | |
Alice代理1代理2 Bob
| | | |
|邀请F1 | ||
|--------------->| | |
|407 F2 | ||
|| | |
|邀请F4 | ||
|--------------->|邀请F5 ||
|100 F6 |----------------->邀请F7|
||
||如果每个代理都有自己的DNS域,那么路由是通过DNS完成的——例如,当alice@a.com(代理服务器1上的用户)正在呼叫bob@b.com(代理2上的用户)。默认配置中不需要任何特定更改
如果两个代理具有相同的域,则必须从默认配置文件开始,并更改为:
- 在路由[LOCATION]中,如果查找(“LOCATION”)为false且请求不是来自其他服务器,则将请求发送到其他服务器,如:
- 如果请求来自另一台服务器,并且查找(“位置”)仍然为false,那么被调用方处于脱机状态,让kamailio返回404
if(src_ip!=the.other.proxy.ip) {
$du = "sip:the.other.proxy.ip";
route(RELAY);
}