FreeSWITCH(版本1.7.0 -907-0b3f776 64位)
我一直在使用Freeswitch Python ESL,但我注意到以下内容: 我使用originate命令创建了2个调用:
originate {ignore_early_media=true,bridge_early_media=false,originate_timeout=24,call_timeout=24,execute_on_answer='sched_hangup 18',origination_uuid=5d56e91e-dfb7-4269-92cd-2967fa2d1d81,origination_caller_id_number=+18623079305}sofia/gateway/asterisk/+14084070000 handle_calls
使用新的ESL实例创建每个调用。
流量:
API请求 - > HTTP - >芹菜任务 - >新的ESL实例 - >发送始发请求。
我收集了数据包捕获和ESL日志,并在接听电话时: 我开始在同一个TCP套接字上看到CHANNEL_ANSWER的重复事件。我使用SRC端口而不是Freeswitch DST端口进行过滤。进一步的调试表明,我正在接收所有活动呼叫的所有事件(我订阅的事件)。
当我订阅事件时,我是否应该通过同一套接字接收所有呼叫的所有事件?这是预期的行为吗? 或者我应该只接收originate命令使用的调用实例的事件?
events = "BACKGROUND_JOB " \
"CHANNEL_OUTGOING " \
"CHANNEL_CREATE " \
"CHANNEL_ANSWER " \
"RECORD_START " \
"CHANNEL_HANGUP " \
"CHAN_NOT_IMPLEMENTED "
self.connection.events("plain", events)
现在我在收到事件后使用:Channel-Call-UUID进行过滤。这是最好的方法吗?