最初的req.Header.From.FromURI是01186xxxxxx,中国固定电话打入。移动的还没试过。
我用这个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
我也试了一下
所有跟帖:
•
你的行动还真快,不错
-出入自在-
♂
(607 bytes)
()
03/15/2010 postreply
10:16:53
•
美国的SG号码。SS local运行在NAT后面。ATA注册SS
-kzch-
♂
(334 bytes)
()
03/15/2010 postreply
10:58:44
•
看来ss local不错
-出入自在-
♂
(0 bytes)
()
03/15/2010 postreply
13:30:55
•
so far, very stable
-kzch-
♂
(49 bytes)
()
03/15/2010 postreply
14:44:11
•
I did have to fix a few problems
-kzch-
♂
(0 bytes)
()
03/15/2010 postreply
15:02:26