2017-04-25 13 views
0

freeswitch에 연결하고 유선 전화 나 내부 모금 장치 용 게이트웨이에 전화를 걸고 일부 소리를 재생하는 웹 응용 프로그램을 작성하려고합니다 (루아 스크립트에서 일부 논리를 수행 할 수 있음).대상 교환 전화를받은 후 freeswitch에서 전화를 걸고 파일을 재생하는 방법은 무엇입니까?

freeswitch 위키를 읽은 후에 원래 명령을 찾았지만 내게는 효과가 없습니다 (내부 모집단 번호 - sofia/internal/username @ ip). originate 명령이이를 수행 할 수 있다면 제대로 사용하는 방법은 무엇입니까? 다른 방법이 있으면 알려주세요.

감사합니다.

답변

0

한 가지 방법은 내가 테스트하는 것이 그것은 작품은 freeswitch 콘솔 또는 ESL에서 루아 스크립트 실행 : (예 : "luarun test.lua")를

https://freeswitch.org/confluence/display/FREESWITCH/Lua+API+Reference#LuaAPIReference-session:hangupCause

obSession = freeswitch.Session("sofia/192.168.0.4/1002") 
 
    
 
    -- Check to see if the call was answered 
 
    if obSession:ready() then 
 
    -- Play file here 
 
    else 
 
    -- This means the call was not answered ... Check for the reason 
 
    local obCause = obSession:hangupCause() 
 
    freeswitch.consoleLog("info", "obSession:hangupCause() = " .. obCause) 
 
    if (obCause == "USER_BUSY") then    -- SIP 486 
 
     -- For BUSY you may reschedule the call for later 
 
    elseif (obCause == "NO_ANSWER") then 
 
     -- Call them back in an hour 
 
    elseif (obCause == "ORIGINATOR_CANCEL") then -- SIP 487 
 
     -- May need to check for network congestion or problems 
 
    else 
 
     -- Log these issues 
 
    end 
 
    end

+0

난 당신이 내가로부터 outgoingcall하게 원하는, 소득 호출하지 않고 dialplan을 실행하는 방법 RECOVERY_ON_TIMER_EXPIRE – YumYumYum

0

다이얼 플랜에서 매우 쉽게 할 수 있습니다.

<action function="play-file" data="myfile.wav"/> 
+0

가 계속 웹 앱. 그리고 귀하의 코드에 대해 freeswitch dialplan은 'action app = "playback"data = "myfile.wav"/>와 같아야한다고 생각합니다. –

+0

하나의 아이디어는 JVoIP와 같은 freeswitch를 통해 전화를 걸기 위해 명령 행 기반 다이얼러를 사용하는 것입니다 자바 VoIP 클라이언트. 실제로 JVoIP는 음성 파일을 스트리밍 할 수도 있습니다. –

0

누군가가 통화를 시작할 때 wav를 재생하게하려면 다음 단계를 따르십시오.

  1. 파도를 freeswitch/conf 폴더에 배치하십시오.
  2. 은 freeswitch/conf의/autoload_configs

  3. 실행 POST 요청을 수신하고 (당신의 WAV 재생 freeswitch을 말한다) 당신의 dialplan을 반환하는 HTTP 서버에 울부 짖는 코드를 추가합니다.

  4. 이 도움이
<param name="gateway-url" value="http://yourIP:yourServerPort/dialplan.xml" bindings="dialplan"/> 

희망처럼 freeswitch/conf의/autoload_configs/xml_curl.conf.xml 보이는 있는지 확인합니다.

+0

답장을 보내 주셔서 감사합니다. 전화를 건 사람에게 파일을 재생합니다. 하지만 나는 전화를 걸고 나가는 전화 (예를 들어 광고)를 시작하고 싶다. 나는 전에 내 질문에 대답했다. –

+0

[this] (https://pastebin.com/LQRCS6g9)와 같은 의미입니까? Dialplan.xml에 들어가는 방법 – ArthurG

0

당신은 소켓 [ESL] 응용 프로그램을 사용하여 얻을 수 있습니다.

https://wiki.freeswitch.org/wiki/Event_Socket_Outbound

+0

링크에 답변이 포함되어있을 수 있지만 링크가 끊어 질 경우를 대비하여 답변에 관련 솔루션을 게시하는 것이 가장 좋습니다. – Bram

+1

의견을 보내 주셔서 감사합니다. 아직 답변을 구청에서 게시 할 예정입니다. – bhanuchandar

0

발원지 명령이 호출을하는 데 사용되며 다리 명령은 ESL 소켓을 사용하여 외부에서 명령을 기원 호출 할 수 call.you을 연결하는 데 사용됩니다.

예 :

originate {ignore_early_media=true,originate_timeout=60}sofia/gateway/name/number &playback(message) 

Node.js를 작성 ESL이 참조 https://github.com/englercj/node-esl

+0

아직 작동하지 않습니다. 나는 어떤 전화도받지 못한다. – YumYumYum