FreeSWITCH 拨号脚本之public.xml

#!/usr/bin/lua --Author:jncheng --Version:20150520 --Email:butte@sina.com ---------------------------------------------------------------------------------------- session:setVariable("continue_on_fail","USER_BUSY,NO_ANSWER,TIMEOUT,NO_USER_RESPONSE") --get the dial extension number exten = session:getVariable("destination_number") exten_len=string.len(exten) fs_ivr_dir = "/usr/local/freeswitch/sounds" cai_lin = fs_ivr_dir.."/ring.wav" session:setVariable("ringback",cai_lin) --session:setVariable("effective_caller_id_name",src_exten) if (exten_len == 4) then --Connect the local MySQL database(DBname,User,Password) --local dbh = freeswitch.Dbh("test","fs","123qwe") --Connect the ODBC DSN Database(odbcsourcename:Username:Passwod),in odbc.ini local dbh = freeswitch.Dbh("odbc://fs:fs:123qwe") assert(dbh:connected()) --Get the SIP User's Dial string dbh:query("select url from registrations where reg_user="..exten,function(row) --freeswitch.consoleLog("NOTICE","------------------------------------------") --freeswitch.consoleLog("NOTICE",string.format("%s\n",row.url)) --freeswitch.consoleLog("NOTICE","------------------------------------------") exten_url = string.format("%s",row.url) end); --If the user not registration,answer the call,and tell the user call net called if (exten_url == nil) then session:answer() session:sleep(2000) session:streamFile(fs_ivr_dir.."/dialed_again.wav") session:sleep(2000) session:hangup() else ---define the split string function,to get the dial string.Not write by me,From internet function Split(szFullString,szSeparator) local nFindStartIndex = 1 local nSplitIndex = 1 local nSplitArray = {} while true do local nFindLastIndex = string.find(szFullString,szSeparator,nFindStartIndex) if not nFindLastIndex then nSplitArray[nSplitIndex] = string.sub(szFullString,nFindStartIndex,string.len(szFullString)) break end nSplitArray[nSplitIndex] = string.sub(szFullString,nFindLastIndex - 1) nFindStartIndex = nFindLastIndex + string.len(szSeparator) nSplitIndex = nSplitIndex + 1 end return nSplitArray end local list = Split(exten_url,";") local str_url = list[1] session:execute("bridge",str_url) --Add tell why not scueefull bridge session:answer() local fail_cause=session:getVariable("originate_disposition") session:streamFile(fs_ivr_dir.."/"..fail_cause..".wav") session:sleep(2000) session:hangup() end --if the dial length is not 4,tell check the number else session:answer() session:setVariable("call_time_out","20") session:sleep(2000) session:streamFile(fs_ivr_dir.."/check_number.wav") session:sleep(2000) session:hangup() end

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


xml怎么加入图片路径
rss源错误怎么解决
文件后缀xml是什么意思
xml格式电子发票怎么获取
xml格式是什么意思
rss是什么意思啊
xml格式电子发票怎么打开
rss订阅源是什么意思
rss源是什么
xml注释怎么写
php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类