我使用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 BYE上,opensips生成404 not here响应。
根据opensips的配置,loose_route()返回false。将从不向客户端输入send BYE。
注意: BYE消息与Invite请求具有相同的对话框.
发布于 2018-03-03 12:48:44
在使用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);
}https://stackoverflow.com/questions/48987660
复制相似问题