通Inbound模式连接Freeswitch控制呼叫,有的时候发现ESL Client的连接总是发送消息没有回。往往致任务的超时。
通过观察发现,一般出现这种情况往往是在Freeswitch crash之后。
重现问题
根据这一线索,先尝试本地复现该问题。
首先,我们在一台主机上(192.168.2.108)运行Freeswitch,然后我们在另外一台主机上(192.168.2.133)上运行ESL Client
通过netstat -anp | grep 8021
查看一下当前的连接情况。
当把Freeswitch重启后,可见该TCP连接由ESTABLISHED变成了CLOSE WAIT
但是ELS client的连接还在,此时如果在client发送命令的话,client就发生了crash,然后这个tcp连接就结束了。
这个是c写的client,可能没有保护一些异常,所以crash了,从而导致了tcp连接彻底释放。
但是实际的问题现象与这个稍有不同。 出现问题时,没有出现CLOSE_WAIT状态
网友评论