?????????????+???????????????????????????????????????????????????(????????????????????)???????????????????????μ???????????????У????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????п????????????????????????????????????????Щ??????
????1.????SIP?????????SIP????
??????????????????????????????磬???·????????????IP???磬???????PSTN????(???綽??)???????????????綏????????ж???????????SIP???????е?????
????SIP(Session Initiation Protocol????????Э??)??????VoIP(Voice over IP??????Э?????????)?????????Э????????????SDP(Session Description Protocol????????Э??)?????SDPЭ????????????????y????????磺??????IP?????????????????????????
???????SIP??????????У??????????????????????????????????????????δ???????δ?????????????????????????????????Щ?????????????????仯???????????????????????п????SIP???????????????????e????????豸???????????????????????????????????????Ч??????????????????????
????2.SIP?????????Щ????
????SIP???????????????????????????????????????????????????????????????????????????????????????????????????
??????ν?????????????????????????????????????????У?????????SIP???????PSTN???????·?????????
???????????????????????SIP???????PSTN?????????????????????????????????????????????????????????
????3.??????????????????
?????????????????????????????????????????????SIP?????????????????????????е?綽?????С?
??????????У?????????????????SIP??????-FreeSWITCH???÷?????????lua????????????????????lua???????????????????С?
???????о?????к?е?????????£?
function call( callee )
--????????
local callStr = "?????????????????"
--?????????? ??λ??
local timeout = 20
--??????????????
freeswitch.consoleLog("err"??callStr)
--??????
local callSession = freeswitch.Session(callStr)
--???sched_hangup ??????????????????
callSession:execute("sched_hangup"??"+"..timeout.." alloted_timeout")
--???????????????????????
if( callSession:ready() ) then
freeswitch.consoleLog("notice"?? "call success ");
callSession:execute("echo");
else
local cause = callSession:hangupCause();
local causeQ850 = callSession:getVariable("hangup_cause_q850") or '';
freeswitch.consoleLog("notice"?? "call fail??cause:"..cause.."??causeQ850:"..causeQ850.." ");
end
end