[Freeswitch-users] Lua not playing any wav files

Marc de Corny marcdecorny at gmail.com
Tue Dec 21 18:17:39 MSK 2010


RESOLVED :

for anyone with the same problem, I have just foudn the solution.

My action was being executed inline
<action inline="true" application="lua" data="ivr_mysql.lua
${destination_number:3}"/>

This does not allow you to playback anything.

Thanks
Marc

On Tue, Dec 21, 2010 at 2:51 PM, Marc de Corny <marcdecorny at gmail.com>wrote:

> Hi Chris
>
> That seemed to work I got audio in both scnearios, in the XML and LUA
> script.
>
> so the only difference between my originial issue and the successful moh
> test. is that I was trying to playback a file and here we are playing a
> local stream://moh.
>
> I have changed all the files too chmod 777, is there any thing else on the
> rights point of view that I need to know in order to get it to work?
>
> I am grateful for any ideas or anything else that could help me understand
> what the issue is
>
> thanks
> Marc
>
>
>
>
> On Sat, Dec 18, 2010 at 8:42 AM, Chris Burns <chris at cloudtel.com> wrote:
>
>> Hmmm no help for you yet huh ... you may have solved it on your own
>> already, but ...
>>
>> You want to answer the call there, and not pre-answer. Pre-answer is for
>> early media, which is for exchanging media before committing to answer the
>> call. Admittedly you should hear something either way, but you definitely
>> want to answer the call in your case. If your XML dialplan works as you
>> said, you should compare the log output between these 2 extensions:
>>
>> <extension name="testXML">
>>   <condition field="destination_number" expression="^9001$">
>>     <action application="answer"/>
>>     <action application="playback" data="local_stream://moh"/>
>>   </condition>
>> </extension>
>>
>> <extension name="testLUA">
>>   <condition field="destination_number" expression="^9002$">
>>     <action application="lua" data="test.lua"/>
>>   </condition>
>> </extension>
>>
>> Contents of test.lua:
>> session:answer();
>> session:execute("playback","local_stream://moh");
>>
>>
>>   On Wed, Dec 15, 2010 at 1:59 AM, Marc de Corny <marcdecorny at gmail.com>wrote:
>>
>>>  Hi all,
>>>
>>> I have run into an issue on something so basic that I must be as simple
>>> as enabling a feature somewhere.
>>>
>>> I have been trying to get lua to play a message from a WAV file. I have
>>> tried session:execute("playback", main_msg) and
>>> session:streamFile(ivr_invalid_msg) but neither of them play any music to
>>> the caller. I tried both to answer and preAnswer the call first but it made
>>> no difference. However if I put the same file into the XML dialplan and play
>>> it with the commands below I hear the music fine.
>>> <action application="set" data="playback_terminators=#"/>
>>> <action application="playback" data="${401_sound_file_path}"/>
>>>
>>> The issue only seems to be from lua when playing any type of wav file and
>>> those files are definitelly there as can be read by the XML
>>>
>>> The error message is below for the execute(playback) command, but nothing
>>> can be seen for the
>>> 2010-12-01 11:56:01.534727 [DEBUG] switch_core_session.c:1827 Application
>>> playback Requires media! pre_answering channel
>>> sofia/external/2031701665 at 194.0.147.16:5060 EXECUTE
>>> sofia/external/2031701665 at 194.0.147.16:5060playback(/usr/local/freeswitch/sounds/svc_sound_files/default_autoattendant.wav)
>>> But there is no mention of the streamFile command. I have had similar
>>> issue with the PlayAndGetDigits command.
>>> Is there something that I need to enable in lua so that is can playback
>>> messages to the caller.
>>>
>>> Many thanks to anyone who can help.
>>> Marc
>>>
>>>
>>> below is the XML dialplan and lua script as well as the log at the very
>>> end.
>>>
>>> XML DIALPLAN:
>>> <include>
>>> <extension name="IVR_FROM_MYSQL">
>>> <condition field="caller_id_number" expression="Anonymous" break="never">
>>> <action application="set" data="effective_caller_id_number=0000000000"/>
>>> </condition>
>>> <condition field="destination_number" expression="^(404)">
>>> <action inline="true" application="lua" data="ivr_mysql.lua
>>> ${destination_number:3}"/>
>>> <action application="set" data="effective_caller_id_name=${404_tag}"/>
>>> <action application="bridge" data="${404_dial}"/>
>>> </condition>
>>> </extension>
>>> </include>
>>>
>>> The LUA script ivr_mysql.lua is callsed and this is it.
>>> -- IVR : PLAY IVR WAV FILES
>>> -- Global Variables:
>>> local dialstr_prefix = "sofia/gateway/CS2k/"
>>> local dialstr_main = ""
>>> local breakoutcode = "184"
>>> local sound_file_folder = "/usr/local/freeswitch/sounds/svc_sound_files/"
>>> local ddi = argv[1]
>>> -- answer the call
>>> session:preAnswer();
>>> freeswitch.consoleLog("info", "All Answered\n");
>>> ivr_invalid_msg = sound_file_folder .. "invalid_msg.wav"
>>> main_msg = sound_file_folder .. "default_autoattendant.wav"
>>> -- Play with Execute
>>> session:execute("playback", main_msg)
>>> -- Play with StreamFile
>>> session:streamFile(ivr_invalid_msg);
>>> dialstr_main  = dialstr_main .. dialstr_prefix .. breakoutcode ..
>>> "02031701665"
>>> session:setVariable("404_dial",dialstr_main)
>>> session:setVariable("404_tag","IVR")
>>>
>>>
>>> RELEVANT LOGS :
>>> Dialplan: sofia/external/2031701665 at 194.0.147.16:5060 Regex (PASS)
>>> [IVR_FROM_MYS                          QL] destination_number(4042031956241)
>>> =~ /^(404)/ break=on-false
>>> Dialplan: sofia/external/2031701665 at 194.0.147.16:5060 Action
>>> lua(ivr_mysql.lua $                          {destination_number:3}) INLINE
>>> EXECUTE sofia/external/2031701665 at 194.0.147.16:5060 lua(ivr_mysql.lua
>>> 2031956241                          )
>>> 2010-12-01 11:56:01.525426 [INFO] switch_cpp.cpp:584 Sending early media
>>> 2010-12-01 11:56:01.525426 [DEBUG] sofia_glue.c:2972 AUDIO RTP
>>> [sofia/external/2                          031701665 at 194.0.147.16:5060]
>>> 10.5.2.105 port 29900 -> 194.0.147.164 port 50202 c
>>> odec: 8 ms: 20
>>> 2010-12-01 11:56:01.525426 [DEBUG] switch_rtp.c:1418 Starting timer
>>> [soft] 160 b                          ytes per 20ms
>>> 2010-12-01 11:56:01.532280 [DEBUG] sofia_glue.c:3190 Set 2833 dtmf send
>>> payload                           to 101
>>> 2010-12-01 11:56:01.532280 [DEBUG] sofia_glue.c:3195 Set 2833 dtmf
>>> receive paylo                          ad to 101
>>> 2010-12-01 11:56:01.532280 [DEBUG] mod_sofia.c:2172 Ring SDP:
>>> v=0
>>> o=FreeSWITCH 1291174661 1291174662 IN IP4 10.5.2.105
>>> s=FreeSWITCH
>>> c=IN IP4 10.5.2.105
>>> t=0 0
>>> m=audio 29900 RTP/AVP 8 101
>>> a=rtpmap:8 PCMA/8000
>>> a=rtpmap:101 telephone-event/8000
>>> a=fmtp:101 0-16
>>> a=silenceSupp:off - - - -
>>> a=ptime:20
>>> a=sendrecv
>>> 2010-12-01 11:56:01.532280 [NOTICE] mod_sofia.c:2175 Pre-Answer
>>> sofia/external/2                          031701665 at 194.0.147.16:5060!
>>> 2010-12-01 11:56:01.532280 [DEBUG] switch_channel.c:2544
>>> (sofia/external/2031701                          665 at 194.0.147.16:5060)
>>> Callstate Change RINGING -> EARLY
>>> 2010-12-01 11:56:01.534727 [DEBUG] sofia.c:4576 Channel
>>> sofia/external/203170166                          5 at 194.0.147.16:5060skipping state [early][183]
>>> 2010-12-01 11:56:01.534727 [DEBUG] switch_core_session.c:676 Send signal
>>> sofia/e                          xternal/2031701665 at 194.0.147.16:5060[BREAK]
>>> 2010-12-01 11:56:01.534727 [INFO] switch_cpp.cpp:1181 All Answered
>>> 2010-12-01 11:56:01.534727 [DEBUG] switch_core_session.c:1827 Application
>>> playba                          ck Requires media! pre_answering channel
>>> sofia/external/2031701665 at 194.0.147.16:                          5060
>>> EXECUTE sofia/external/2031701665 at 194.0.147.16:5060playback(/usr/local/freeswit
>>> ch/sounds/svc_sound_files/default_autoattendant.wav)
>>> 2010-12-01 11:56:01.537644 [DEBUG] switch_cpp.cpp:972
>>> sofia/external/2031701665@                          194.0.147.16:5060destroy/unlink session from object
>>> Dialplan: sofia/external/2031701665 at 194.0.147.16:5060 Action
>>> set(effective_calle                          r_id_name=${404_tag})
>>> Dialplan: sofia/external/2031701665 at 194.0.147.16:5060 Action
>>> bridge(${404_dial})
>>> 2010-12-01 11:56:01.537644 [DEBUG] switch_core_state_machine.c:119
>>> (sofia/extern                          al/2031701665 at 194.0.147.16:5060)
>>> State Change CS_ROUTING -> CS_EXECUTE
>>> 2010-12-01 11:56:01.537644 [DEBUG] switch_core_session.c:1057 Send signal
>>> sofia/                          external/2031701665 at 194.0.147.16:5060[BREAK]
>>> _______________________________________________
>>> FreeSWITCH-users mailing list
>>> FreeSWITCH-users at lists.freeswitch.org
>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>>> http://www.freeswitch.org
>>>
>>>
>>
>> _______________________________________________
>> FreeSWITCH-users mailing list
>> FreeSWITCH-users at lists.freeswitch.org
>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
>> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
>> http://www.freeswitch.org
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20101221/657070b4/attachment-0001.html 


More information about the FreeSWITCH-users mailing list