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