Opensips不向客户端生成BYE消息

时间:2018-02-26 11:38:32

标签: opensips

我正在使用opensips作为透明代理服务器。消息的原始流程如下

Client -------> OpenSips (Invite request)
OpenSips ------------> FS (Invite to Freeswitch)
FS -------------> Opensips (Reply from FreeSwitch)
Opensips ------------------> Client (Reply back to Client)

我正在使用dialog module保存对话框状态,使用topological_hiding模块来更改contact header。它在FreeSwitch发送BYE消息之前正常工作。在Freeswitch BYEopensips生成404 not here响应。

根据opensips loose_route()返回false的配置。 Opensips 从不send BYE到客户端。

注意:BYE消息与Invite请求具有相同的对话框。

1 个答案:

答案 0 :(得分:0)

使用topology_hiding()时,您必须使用topology_hiding_match()而非loose_route()匹配顺序请求。所以,如果你正在做这样的事情:

if (has_totag()) {
    if (!loose_route()) {
        xlog("cannot match request to a dialog\n");
        send_reply("404", "Not found");
    }
    route(RELAY);
}

你应该把它改成:

if (has_totag()) {
    if (!topology_hiding_match()) {
        xlog("cannot match request to a dialog\n");
        send_reply("404", "Not found");
    }
    route(RELAY);
}