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