FreeSWITCH是⼀个B2BUA。
家用管道疏通机主要呼叫流程有以下两种:
* bob 向 FreeSWITCH 发起呼叫,FreeSWTICH 接着启动另⼀个 UA 呼叫 alice,两者通话; 一周药盒
* FreeSWITCH 同时呼叫 bob 和 alice,两者接电话后 FreeSWITCH 将 a-leg 和 b-leg 桥接(bridge)到⼀起,两者通话。
确定取消
其中第⼆种⼜有⼀种变种。如市场上有⼈利⽤上、下⾏通话的不对称性卖电话回拨卡获取不正当利润:bob 呼叫
FreeSWITCH,FreeSWITCH 不应答,⽽是在获取 bob 的主叫号码后直接挂机;然后 FreeSWITCH 回拨 bob;bob 接听后FreeSWITCH 启动⼀个 IVR 程序指⽰ bob 输⼊ alice 的号码;然后 FreeSWITCH 呼叫 Alice……
Session 与 Channel
净烟器
对每⼀次呼叫,FreeSWITCH 都会启动⼀个 Session(会话,它包含SIP会话,SIP会在每对UAC-UAS之间⽣成⼀个 SIP Session),⽤于控制整个呼叫,它会⼀直持续到通话结束。其中,每个 Session 都控制着⼀个 Channel(信道),Channel 是⼀对 UA 间通信的实体,相当于 FreeSWITCH 的⼀条腿(leg),每个 Channel 都有⼀个唯⼀的 UUID。另外,Channel 上可以绑定⼀些呼叫参数,称为Channel Variable(信道变量)。Channel 中可能包含媒体(⾳频或视频流),也可能不包含。通话时,FreeSWITCH 的作⽤是将两个Channel(a-leg 和 b-leg,通常先创建的或占主动的叫 a-leg)桥接(bridge)到⼀起,使双⽅可以通话。 滑石粉母粒通话中,媒体(⾳频或视频)数据流在 RTP 包中传送(不同于 SIP, RTP是另外的协议)。⼀般来说,Channel是双向的,因此,媒体流会有发送(Send/Write)和接收(Receive/Read)两个⽅向。