我们在Java客户端应用程序中使用了使用ESL (异步满)的Freeswitch。当入站呼叫到达时,应用程序通过filter Channel- call -UUID aLegUuid进行筛选,该入站通常被桥接到bLeg (使用park_after_bridge的桥命令)。所以我们在同一个中接收来自两条腿的事件。
据我所知,在同一个Netty中,我们可以接收来自不同腿的事件:插座
filter plain all
filter plain CUSTOM conference::maintenance
filter Unique-ID $participantB
filter Unique-ID $participantA
filter Unique-ID $participantC 有一种情况是,bLeg通过按DTMF,将() aLeg传输到“fifo”,然后bLeg再拨另一个号码。bLeg在这里停放(park_after_bridge)。
在解桥aLeg和bLeg之前,我们应用另一个过滤器来侦听来自A和B过滤器的事件,即唯一ID aLeg和过滤器唯一ID bLeg,但我们特别接收来自B的事件。有些测试是好的,而有些则不行。
Insted,如果我们创建到FS的入站连接并应用相同的过滤器,则在桥接器之前和之后接收来自A、B的事件。
那么,为什么在网桥被破坏后,即使应用了过滤器,我们也不能在主中接收来自B的事件呢?Netty频道是如何与来自A的事件联系在一起的?
提前感谢您的帮助
发布于 2017-07-12 16:12:50
在其HipChat上的Freeswitch会话之后,Mike指出了解释为什么不像我所期望的那样工作的一段代码:
if (send && switch_test_flag(l, LFLAG_MYEVENTS)) {
char *uuid = switch_event_get_header(event, "unique-id");
if (!uuid || (l->session && strcmp(uuid, switch_core_session_get_uuid(l->session)))) {
send = 0;
}
}在出站套接字连接上,只会看到调用支腿调用套接字应用程序的事件。
感谢"Matthew Vale“(@Mafoo)
https://stackoverflow.com/questions/44849053
复制相似问题