其它討論
- Erlang在這里是完全異步的。所以,當(dāng)你通知FreeSWITCH執(zhí)行一個application時(如playback),你必須等待收到CHANEL_EXECUTE_COMPLETE事件再進(jìn)行下一步操作。這比起直接在dialplan或lua腳本中要麻煩一些,但正因?yàn)槟闶钱惒降模憧梢噪S時終止正在執(zhí)行的application。當(dāng)然,如果你非要同步并且你知道某程序要執(zhí)行多長時間時(如你知道要playback的聲音文件的長度),你也可以用timer:sleep延時一下。
- 當(dāng)我們覺得不再需要Erlang的特性時,我們會把流程轉(zhuǎn)到dialplan,畢竟修改XML要容易些。
- mod_fifo在Erlang中不能很好工作,除非你在fifo結(jié)束時將流程transfer到其它地方。因?yàn)閏hannel在送到Erlang關(guān)是park的,而fifo中bridge到另一分機(jī)時無法解除park狀態(tài)。這也是為什么我們在最后都送流程再送回dialplan。
- 代碼已經(jīng)很清晰了,但我想,如果有時間能現(xiàn)寫個gen_fs_behaviour之類的東東把FreeSWITCH的事件消息包裝一下會更好看。