我用這個dialplan做in dialplan,out dialplan還是原來的GV 撥出的dialplan,GV撥出不受影響。
不過,我對出入自在的 dialplan做了改動,除去了else的部分。我想,出入自在的dialplan的else部分是為了處理中國手機打入時,cid沒有01186開頭的情形。但這樣,即使是美國電話打入,也會被加上01186回撥,打到中國的什麽地方去了,當然很可能是空號。但最起碼本地收不到美國電話了。
如果中國手機來電cid沒有01186,而還是想你回撥手機,可以選擇幾個指定的手機號碼,在case語句中識別這幾個號碼,加01186回撥,除了這幾個手機外,其它的不支持,同普通打入一樣處理。
我的dialplan:
# Ruby
sys.Trace = true
if sys.In then
sys.Log("Incoming call from #{req.Header.From.FromURI.ToString()} to #{req.URI.User}.")
case req.Header.From.FromURI.User
when /^00/
callercid = "#{req.Header.From.FromURI.User.to_str[2..-1]}"
else
callercid = req.Header.From.FromURI.User
end
sys.Log("cid #{callercid}")
callback = false
case callercid
when /^86/
callback = true
nb = "011"
when /^01186/
callback = true
nb = ""
else
callback = false
end
sys.Log("Callback = #{callback}")
if callback then
sys.Log("patching call between #{nb}#{callercid}@rynga and #{req.URI.User}@local")
sys.Callback("#{nb}#{callercid}@rynga","#{req.URI.User}@local",15)
else
sys.Dial "#{req.URI.User}@local"
end
end