没有合适的资源?快使用搜索试试~ 我知道了~
freeswitch LUA 脚本reference
需积分: 50 14 下载量 20 浏览量
2019-04-12
18:36:27
上传
评论
收藏 72KB PDF 举报
温馨提示
试读
25页
freeswitch LUA 脚本reference lua 脚本reference lua 开发脚本指南
资源推荐
资源详情
资源评论
Lua API Reference
About
This page provides the documentation of the Lua FreeSWITCH API.
Click here to expand ToC
API Events
event:addBody
event:addHeader
event:delHeader
event:fire
event:getBody
event:getHeader
event:getType
event:serialize
event:setPriority
event:fire (Sending an Event)
API Sessions
session:answer
session:answered
session:bridged
session:check_hangup_hook
session:collectDigits
session:consoleLog
session:destroy
session:execute
session:executeString
session:flushDigits
session:flushEvents
session:get_uuid
session:getDigits
session:getState
session:getVariable
session:hangup
session:hangupCause
session:hangupState
session:insertFile
session:mediaReady
session:originate
session:playAndGetDigits
Syntax
Arguments
Discussion
Examples
session:preAnswer
session:read
session:ready
session:recordFile
session:sayPhrase
session:sendEvent
session:setAutoHangup
session:setHangupHook
session:setInputCallback
session:setVariable
session:sleep
session:speak
session:say
session:streamFile
session:transfer
session:unsetInputCallback
session:waitForAnswer
Docs Help Needed
session:execSome API aren't documented, so please feel free to improve the documentation and complete the API examples.
Non-Session API
freeswitch.API
freeswitch.bridge
freeswitch.consoleCleanLog
freeswitch.consoleLog
freeswitch.Dbh
freeswitch.email
freeswitch.Event
freeswitch.EventConsumer
freeswitch.getGlobalVariable
freeswitch.IVRMenu
freeswitch.msleep
freeswitch.Session
stream:write
API commands
Web page interaction (via mod_xml_rpc)
Example: Call Control
Special Case: env object
Known issues
See also
API Events
These methods apply to generating events.
event:addBody
event:addBody helps in creating custom event.
--Create Custom event
custom_msg = "dial_record_id: " .. dial_record_id .. "\n" ..
"call_disposition: " .. Disposition .. "\n" ..
"campaign_number: " .. Campaign .. "\n" ..
"called_number: " .. dial_num .."\n" ;
local e = freeswitch.Event("custom", "dial::dial-result");
e:addBody(custom_msg);
e:fire();
You can add as much data to the body as you like, in this case 4 items are to be sent.
The result will be:
Click here to expand the result
[Content-Length] => 555
[Content-Type] => text/event-plain
[Body] => Array
(
[Event-Subclass] => dial::dial-result
[Event-Name] => CUSTOM
[Core-UUID] => 2dc7cc50-b157-4868-ae16-04e5f4b95dae
[FreeSWITCH-Hostname] => pp6.noble.co.uk
[FreeSWITCH-IPv4] => 192.168.0.106
[FreeSWITCH-IPv6] => ::1
[Event-Date-Local] => 2009-02-17 23:15:49
[Event-Date-GMT] => Tue, 17 Feb 2009 23:15:49 GMT
[Event-Date-Timestamp] => 1234912549610060
[Event-Calling-File] => switch_cpp.cpp
[Event-Calling-Function] => fire
[Event-Calling-Line-Number] => 297
[Content-Length] => 85
[Body] => Array
(
[dial_record_id] => 1234
[call_disposition] => AA
[campaign_number] => 20
[called_number] => 7777777
)
)
)
event:addHeader
event:delHeader
event:fire
local event = freeswitch.Event("message_waiting");
event:addHeader("MWI-Messages-Waiting", "no");
event:addHeader("MWI-Message-Account", "sip:1000@10.0.1.100");
event:addHeader("Sofia-Profile", "internal");
event:fire();
event:getBody
event:getHeader
This is a generic API call.
event:getHeader("Caller-Caller-ID-Name")
Or, This can be used inside of a dialplan.lua to get certain information
params:getHeader("variable_sip_req_uri")
event:getType
event:serialize
Use this to dump all available Headers to the console.
-- Print as text
io.write(params:serialize());
io.write(params:serialize("text"));
-- Print as JSON
io.write(params:serialize("json"));
Or this to display them as an info message.
freeswitch.consoleLog("info",params:serialize())
event:setPriority
event:fire (Sending an Event)
Using luarun to execute this code you can toggle the MWI on a registered phone on and off.
local event = freeswitch.Event("message_waiting");
event:addHeader("MWI-Messages-Waiting", "no");
event:addHeader("MWI-Message-Account", "sip:1002@10.0.1.100");
event:fire();
API Sessions
The following methods can be applied to existing sessions.
session:answer
Answer the session:
session:answer();
session:answered
Checks whether the session is flagged as answered (true anytime after the call has been answered)
session:bridged
Check to see if this session's channel is bridged to another channel.
if (session:bridged() == true) do
-- Do something
end
session:check_hangup_hook
session:collectDigits
session:consoleLog
Log something to the FreeSWITCH logger from session. Arguments are log level and message.
session:consoleLog("info", "lua rocks\n");
session:consoleLog("notice", "lua rocks\n");
session:consoleLog("err", "lua rocks\n");
session:consoleLog("debug", "lua rocks\n");
session:consoleLog("warning","lua rocks\n");
session:destroy
Destroys the session and releases resources. This is done for you when your script ends, but if your script contains an infinite loop you can use
this to terminate the session.
session:execute
session:execute(app, data)
local mySound =
"/usr/local/freeswitch/sounds/music/16000/partita-no-3-in-e-major-bwv-1006-1-preludio.
wav"
session:execute("playback", mySound)
NOTE: Callbacks (DTMF and friends) CAN NOT EXECUTE during an execute.
session:executeString
session:execute(api_string)
剩余24页未读,继续阅读
资源评论
PKU1254
- 粉丝: 19
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功