如果你做过 FreeSWITCH 和业务系统集成,大概率会遇到一个绕不开的问题:ESL 很强大,但业务系统真正接入时,工程复杂度并不低。你需要维护 ESL 长连接,需要处理断线重连,需要从大量底层事件里还原通话状态,还要把 `uuid_kill`、`uuid_transfer`、`uuid_record`、`originate` 等命令再封装成业务接口。等到项目进入 AI 外呼、智能客服、语音机器人这类实时语音场景时,事情会更复杂:呼叫控制、通话状态、音频推流、播放打断、PCM 回灌,往往会分散在多个服务和多层逻辑里。所以我做了一个 FreeSWITCH 原生模块:`mod_fcc`。
它想解决的问题很明确:让业务系统不用直接面对 ESL,而是像调用普通服务接口一样使用 FreeSWITCH 的呼叫能力。