Hello, We are using FreeSWITCH as a third-party recording application, i.e. we are receiving SIP calls with the complete audio of conversations taking place on another switch and we are saving this audio to a file. To achieve this we are using a simple script similar to this: session:answer() while(session:ready() == true) do test = session:recordFile("/usr/local/freeswitch/recordings/test.wav", 18000, 0, 300) session:setAutoHangup(false) session:hangup() end This script will be invoked by the following dialplan: <extension name="Recording"> <condition field="destination_number" expression=".*"> <action application="lua" data="record.lua"/> </condition> </extension> Basically it seems to work quite well, but sometimes there are missing audio at the end of the recorded file. Usually it's only a few seconds, but sometimes it seems to be more. (It's like the recording sometimes goes behind the real call and when the hangup event is received the remaining audio is discarded.) What could be the reason for this behavior? Is there something wrong with the script or is there a better way to achieve our goal? Many thanks in advance. Best regards, Sven Uszpelkat Departamento I+D Comunycarse Network Consultants, S.L. [Descripción: Descripción: http://www.comunycarse.com/email_images/facebook_16.jpg]<http://www.facebook.com/pages/Comunycarse/227218309114> [Descripción: Descripción: http://www.comunycarse.com/email_images/linkedin_16.jpg] <http://www.linkedin.com/company/comunycarse-s.l.> [Descripción: Descripción: http://www.comunycarse.com/email_images/twitter_16.jpg] <https://twitter.com/#!/comunycarse> [Descripción: Descripción: http://www.comunycarse.com/email_images/wordpress_16.jpg] <http://www.blog.comunycarse.com/> Joaquín Turina, 2 28224 Pozuelo de Alarcón MADRID Tlf. +34 917 498 700 Fax +34 917 498 720 Sabino Arana, 18 08028 BARCELONA Tlf. +34 934 098 480 Fax +34 934 098 490 http://www.comunycarse.com<http://www.comunycarse.com/> AVISO LEGAL La presente comunicación y sus anexos tiene como destinatario la persona a la que va dirigida, por lo que si usted lo recibe por error debe notificarlo al remitente y eliminarlo de su sistema, no pudiendo utilizarlo, total o parcialmente, para ningún fin. Su contenido puede tener información confidencial o protegida legalmente y únicamente expresa la opinión del remitente. El uso del correo electrónico vía internet no permite asegurar ni la confidencialidad de los mensajes ni su correcta recepción. En el caso de que el destinatario no consintiera la utilización del correo electrónico deberá ponerlo en nuestro conocimiento inmediatamente. DISCLAIMER This message and its attachments are intended exclusively for the named addressee. If you receive this message by mistake, please delete it immediately from your system and notify the sender. You may not use this message or any part of it for any purpose. The message may contain information that is confidential or protected by law, and any opinions expressed are those of the individual sender. Internet email guarantees neither the confidentiality nor the proper receipt of the message sent. If the addressee of this message does not consent to the use of internet e-mail, please inform us immediately.
On 15 June 2017 at 09:49, Sven Uszpelkat <USZPELSV@comunycarse.com> wrote:
Hello,
We are using FreeSWITCH as a third-party recording application, i.e. we are receiving SIP calls with the complete audio of conversations taking place on another switch and we are saving this audio to a file. To achieve this we are using a simple script similar to this:
session:answer()
while(session:ready() == true) do
test = session:recordFile("/usr/local/freeswitch/recordings/test.wav", 18000, 0, 300)
session:setAutoHangup(false)
session:hangup()
end
This script will be invoked by the following dialplan:
<extension name="Recording">
<condition field="destination_number" expression=".*">
<action application="lua" data="record.lua"/>
</condition>
</extension>
Basically it seems to work quite well, but sometimes there are missing audio at the end of the recorded file. Usually it’s only a few seconds, but sometimes it seems to be more. (It’s like the recording sometimes goes behind the real call and when the hangup event is received the remaining audio is discarded.)
What could be the reason for this behavior? Is there something wrong with the script or is there a better way to achieve our goal?
One first question come to my mind: why do you use a script here? A simple extension can do exactly the same, if you just want to record the session... https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools:+record_ses... Anyway, if you want to use the script, why you first session:setAutoHangup(false) and after that you session:hangup() ? Also, you made the silence_threshold equal 0 (zero). Have you has the same problems using a silence_threshold of, let's say, 30 (thirty), like in documentation? ( https://freeswitch.org/confluence/display/FREESWITCH/Lua+API+Reference#LuaAP... ) Hope this helps, -giovanni
Many thanks in advance.
Best regards,
Sven Uszpelkat Departamento I+D Comunycarse Network Consultants, S.L.
[image: Descripción: Descripción: http://www.comunycarse.com/email_images/facebook_16.jpg] <http://www.facebook.com/pages/Comunycarse/227218309114> [image: Descripción: Descripción: http://www.comunycarse.com/email_images/linkedin_16.jpg] <http://www.linkedin.com/company/comunycarse-s.l.> [image: Descripción: Descripción: http://www.comunycarse.com/email_images/twitter_16.jpg] <https://twitter.com/#%21/comunycarse> [image: Descripción: Descripción: http://www.comunycarse.com/email_images/wordpress_16.jpg] <http://www.blog.comunycarse.com/>
Joaquín Turina, 2 28224 Pozuelo de Alarcón MADRID Tlf. +34 917 498 700 <+34%20917%2049%2087%2000> Fax +34 917 498 720 <+34%20917%2049%2087%2020>
Sabino Arana, 18 08028 BARCELONA Tlf. +34 934 098 480 <+34%20934%2009%2084%2080> Fax +34 934 098 490 <+34%20934%2009%2084%2090>
AVISO LEGAL La presente comunicación y sus anexos tiene como destinatario la persona a la que va dirigida, por lo que si usted lo recibe por error debe notificarlo al remitente y eliminarlo de su sistema, no pudiendo utilizarlo, total o parcialmente, para ningún fin. Su contenido puede tener información confidencial o protegida legalmente y únicamente expresa la opinión del remitente. El uso del correo electrónico vía internet no permite asegurar ni la confidencialidad de los mensajes ni su correcta recepción. En el caso de que el destinatario no consintiera la utilización del correo electrónico deberá ponerlo en nuestro conocimiento inmediatamente.
DISCLAIMER This message and its attachments are intended exclusively for the named addressee. If you receive this message by mistake, please delete it immediately from your system and notify the sender. You may not use this message or any part of it for any purpose. The message may contain information that is confidential or protected by law, and any opinions expressed are those of the individual sender. Internet email guarantees neither the confidentiality nor the proper receipt of the message sent. If the addressee of this message does not consent to the use of internet e-mail, please inform us immediately.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Sincerely, Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18
Hi Giovanni, Thank you for your response. 1.) The code example I provided was only a fragment of the script. The actual script is doing more than just recording but we will try the dialplan approach as well. 2.) The session:hangup was thought to leave the while loop but maybe it’s not necessary if the session is already finished or we change the while for an if. I think I copied this from another example I found. 3.) We set the silence threshold to 0 because the documentation is not very clear how to disable the silence detection. We don’t want the recording to stop in response to a period of silence. The point is to record everything. Best regards, Sven De: FreeSWITCH-users [mailto:freeswitch-users-bounces@lists.freeswitch.org] En nombre de Giovanni Maruzzelli Enviado el: jueves, 15 de junio de 2017 11:19 Para: FreeSWITCH Users Help Asunto: Re: [Freeswitch-users] Call recording On 15 June 2017 at 09:49, Sven Uszpelkat <USZPELSV@comunycarse.com<mailto:USZPELSV@comunycarse.com>> wrote: Hello, We are using FreeSWITCH as a third-party recording application, i.e. we are receiving SIP calls with the complete audio of conversations taking place on another switch and we are saving this audio to a file. To achieve this we are using a simple script similar to this: session:answer() while(session:ready() == true) do test = session:recordFile("/usr/local/freeswitch/recordings/test.wav", 18000, 0, 300) session:setAutoHangup(false) session:hangup() end This script will be invoked by the following dialplan: <extension name="Recording"> <condition field="destination_number" expression=".*"> <action application="lua" data="record.lua"/> </condition> </extension> Basically it seems to work quite well, but sometimes there are missing audio at the end of the recorded file. Usually it’s only a few seconds, but sometimes it seems to be more. (It’s like the recording sometimes goes behind the real call and when the hangup event is received the remaining audio is discarded.) What could be the reason for this behavior? Is there something wrong with the script or is there a better way to achieve our goal? One first question come to my mind: why do you use a script here? A simple extension can do exactly the same, if you just want to record the session... https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools:+record_ses... Anyway, if you want to use the script, why you first session:setAutoHangup(false) and after that you session:hangup() ? Also, you made the silence_threshold equal 0 (zero). Have you has the same problems using a silence_threshold of, let's say, 30 (thirty), like in documentation? ( https://freeswitch.org/confluence/display/FREESWITCH/Lua+API+Reference#LuaAP... ) Hope this helps, -giovanni Many thanks in advance. Best regards, Sven Uszpelkat Departamento I+D Comunycarse Network Consultants, S.L. [Descripción: Descripción: http://www.comunycarse.com/email_images/facebook_16.jpg]<http://www.facebook.com/pages/Comunycarse/227218309114> [Descripción: Descripción: http://www.comunycarse.com/email_images/linkedin_16.jpg] <http://www.linkedin.com/company/comunycarse-s.l.> [Descripción: Descripción: http://www.comunycarse.com/email_images/twitter_16.jpg] <https://twitter.com/#%21/comunycarse> [Descripción: Descripción: http://www.comunycarse.com/email_images/wordpress_16.jpg] <http://www.blog.comunycarse.com/> Joaquín Turina, 2 28224 Pozuelo de Alarcón MADRID Tlf. +34 917 498 700<tel:+34%20917%2049%2087%2000> Fax +34 917 498 720<tel:+34%20917%2049%2087%2020> Sabino Arana, 18 08028 BARCELONA Tlf. +34 934 098 480<tel:+34%20934%2009%2084%2080> Fax +34 934 098 490<tel:+34%20934%2009%2084%2090> http://www.comunycarse.com<http://www.comunycarse.com/> AVISO LEGAL La presente comunicación y sus anexos tiene como destinatario la persona a la que va dirigida, por lo que si usted lo recibe por error debe notificarlo al remitente y eliminarlo de su sistema, no pudiendo utilizarlo, total o parcialmente, para ningún fin. Su contenido puede tener información confidencial o protegida legalmente y únicamente expresa la opinión del remitente. El uso del correo electrónico vía internet no permite asegurar ni la confidencialidad de los mensajes ni su correcta recepción. En el caso de que el destinatario no consintiera la utilización del correo electrónico deberá ponerlo en nuestro conocimiento inmediatamente. DISCLAIMER This message and its attachments are intended exclusively for the named addressee. If you receive this message by mistake, please delete it immediately from your system and notify the sender. You may not use this message or any part of it for any purpose. The message may contain information that is confidential or protected by law, and any opinions expressed are those of the individual sender. Internet email guarantees neither the confidentiality nor the proper receipt of the message sent. If the addressee of this message does not consent to the use of internet e-mail, please inform us immediately. _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org<mailto:consulting@freeswitch.org> http://www.freeswitchsolutions.com Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<mailto:FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Sincerely, Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18
On 15 June 2017 at 12:50, Sven Uszpelkat <USZPELSV@comunycarse.com> wrote:
3.) We set the silence threshold to 0 because the documentation is not very clear how to disable the silence detection. We don’t want the recording to stop in response to a period of silence. The point is to record everything.
The silence_threshold determines what is considered silence, eg below what level of acoustic energy we state the stream is containing silence. Then, we wait for "how_many_silence_seconds" or until hangup before stopping recording. So, maybe you are right, and setting it to 0 will consider silence only when there is absolute silence in the stream, so for all practical purposes, until hangup. I have no mean to check source code now. On another hand, I can think at other possible causes for the premature end of the recorded file: maybe you move the file before it has been flushed by FreeSWITCH or by operating system? Maybe the hangup in the script interrupts the recording in the script and close the file descriptor before is flushed? (I am shooting in the dark) You can try to leave out those two lines, and test again. Also, you can insert a line that sync (flush) the filesystem before exiting, just to be sure. I would insert it after the while(session:ready()) A system(sync), or something similar will probably do. Hope this helps, -giovanni
Best regards,
Sven
*De:* FreeSWITCH-users [mailto:freeswitch-users-bounc es@lists.freeswitch.org <freeswitch-users-bounces@lists.freeswitch.org>] *En nombre de *Giovanni Maruzzelli *Enviado el:* jueves, 15 de junio de 2017 11:19 *Para:* FreeSWITCH Users Help *Asunto:* Re: [Freeswitch-users] Call recording
On 15 June 2017 at 09:49, Sven Uszpelkat <USZPELSV@comunycarse.com> wrote:
Hello,
We are using FreeSWITCH as a third-party recording application, i.e. we are receiving SIP calls with the complete audio of conversations taking place on another switch and we are saving this audio to a file. To achieve this we are using a simple script similar to this:
session:answer()
while(session:ready() == true) do
test = session:recordFile("/usr/local/freeswitch/recordings/test.wav", 18000, 0, 300)
session:setAutoHangup(false)
session:hangup()
end
This script will be invoked by the following dialplan:
<extension name="Recording">
<condition field="destination_number" expression=".*">
<action application="lua" data="record.lua"/>
</condition>
</extension>
Basically it seems to work quite well, but sometimes there are missing audio at the end of the recorded file. Usually it’s only a few seconds, but sometimes it seems to be more. (It’s like the recording sometimes goes behind the real call and when the hangup event is received the remaining audio is discarded.)
What could be the reason for this behavior? Is there something wrong with the script or is there a better way to achieve our goal?
One first question come to my mind: why do you use a script here? A simple extension can do exactly the same, if you just want to record the session...
https://freeswitch.org/confluence/display/FREESWITCH/mod_ dptools:+record_session
Anyway, if you want to use the script, why you first
session:setAutoHangup(false)
and after that you
session:hangup()
?
Also, you made the silence_threshold equal 0 (zero). Have you has the same problems using a silence_threshold of, let's say, 30 (thirty), like in documentation? ( https://freeswitch.org/conflue nce/display/FREESWITCH/Lua+API+Reference#LuaAPIReference- session:recordFile )
Hope this helps,
-giovanni
Many thanks in advance.
Best regards,
Sven Uszpelkat Departamento I+D Comunycarse Network Consultants, S.L.
[image: Descripción: Descripción: http://www.comunycarse.com/email_images/facebook_16.jpg] <http://www.facebook.com/pages/Comunycarse/227218309114> [image: Descripción: Descripción: http://www.comunycarse.com/email_images/linkedin_16.jpg] <http://www.linkedin.com/company/comunycarse-s.l.> [image: Descripción: Descripción: http://www.comunycarse.com/email_images/twitter_16.jpg] <https://twitter.com/#%21/comunycarse> [image: Descripción: Descripción: http://www.comunycarse.com/email_images/wordpress_16.jpg] <http://www.blog.comunycarse.com/>
Joaquín Turina, 2 28224 Pozuelo de Alarcón MADRID Tlf. +34 917 498 700 <+34%20917%2049%2087%2000> Fax +34 917 498 720 <+34%20917%2049%2087%2020>
Sabino Arana, 18 08028 BARCELONA Tlf. +34 934 098 480 <+34%20934%2009%2084%2080> Fax +34 934 098 490 <+34%20934%2009%2084%2090>
AVISO LEGAL La presente comunicación y sus anexos tiene como destinatario la persona a la que va dirigida, por lo que si usted lo recibe por error debe notificarlo al remitente y eliminarlo de su sistema, no pudiendo utilizarlo, total o parcialmente, para ningún fin. Su contenido puede tener información confidencial o protegida legalmente y únicamente expresa la opinión del remitente. El uso del correo electrónico vía internet no permite asegurar ni la confidencialidad de los mensajes ni su correcta recepción. En el caso de que el destinatario no consintiera la utilización del correo electrónico deberá ponerlo en nuestro conocimiento inmediatamente.
DISCLAIMER This message and its attachments are intended exclusively for the named addressee. If you receive this message by mistake, please delete it immediately from your system and notify the sender. You may not use this message or any part of it for any purpose. The message may contain information that is confidential or protected by law, and any opinions expressed are those of the individual sender. Internet email guarantees neither the confidentiality nor the proper receipt of the message sent. If the addressee of this message does not consent to the use of internet e-mail, please inform us immediately.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
--
Sincerely,
Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18
-- Sincerely, Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18
Hi Giovanni, Thank you for your help. We changed our script to something like this: session:answer() while(session:ready() == true) do test = session:recordFile("/usr/local/freeswitch/recordings/test.wav", 18000, 0, 300) os.execute("sync"); session:setAutoHangup(false) session:hangup() end As result we note an improvement primarily in short recordings (<1:30 min). These are now practically all complete. In longer recordings there are still losses and it seems that they are increasing with the duration of the recording. I’m not sure how to interpret this but to me it looks like this: with the sync call we achieved to write the buffer content to the file, however in longer calls there is remaining audio which hasn’t even been read to the buffer. Is that correct? If so then the recording function doesn’t ensure to read the remaining audio after hangup. (With tcdump we checked that all audio packets arrived before the BYE message) Does this mean that this behavior is by design? Best regards, Sven De: Giovanni Maruzzelli [mailto:gmaruzz@gmail.com] Enviado el: jueves, 15 de junio de 2017 13:17 Para: Sven Uszpelkat CC: FreeSWITCH Users Help Asunto: Re: [Freeswitch-users] Call recording On 15 June 2017 at 12:50, Sven Uszpelkat <USZPELSV@comunycarse.com<mailto:USZPELSV@comunycarse.com>> wrote: 3.) We set the silence threshold to 0 because the documentation is not very clear how to disable the silence detection. We don’t want the recording to stop in response to a period of silence. The point is to record everything. The silence_threshold determines what is considered silence, eg below what level of acoustic energy we state the stream is containing silence. Then, we wait for "how_many_silence_seconds" or until hangup before stopping recording. So, maybe you are right, and setting it to 0 will consider silence only when there is absolute silence in the stream, so for all practical purposes, until hangup. I have no mean to check source code now. On another hand, I can think at other possible causes for the premature end of the recorded file: maybe you move the file before it has been flushed by FreeSWITCH or by operating system? Maybe the hangup in the script interrupts the recording in the script and close the file descriptor before is flushed? (I am shooting in the dark) You can try to leave out those two lines, and test again. Also, you can insert a line that sync (flush) the filesystem before exiting, just to be sure. I would insert it after the while(session:ready()) A system(sync), or something similar will probably do. Hope this helps, -giovanni Best regards, Sven De: FreeSWITCH-users [mailto:freeswitch-users-bounces@lists.freeswitch.org] En nombre de Giovanni Maruzzelli Enviado el: jueves, 15 de junio de 2017 11:19 Para: FreeSWITCH Users Help Asunto: Re: [Freeswitch-users] Call recording On 15 June 2017 at 09:49, Sven Uszpelkat <USZPELSV@comunycarse.com<mailto:USZPELSV@comunycarse.com>> wrote: Hello, We are using FreeSWITCH as a third-party recording application, i.e. we are receiving SIP calls with the complete audio of conversations taking place on another switch and we are saving this audio to a file. To achieve this we are using a simple script similar to this: session:answer() while(session:ready() == true) do test = session:recordFile("/usr/local/freeswitch/recordings/test.wav", 18000, 0, 300) session:setAutoHangup(false) session:hangup() end This script will be invoked by the following dialplan: <extension name="Recording"> <condition field="destination_number" expression=".*"> <action application="lua" data="record.lua"/> </condition> </extension> Basically it seems to work quite well, but sometimes there are missing audio at the end of the recorded file. Usually it’s only a few seconds, but sometimes it seems to be more. (It’s like the recording sometimes goes behind the real call and when the hangup event is received the remaining audio is discarded.) What could be the reason for this behavior? Is there something wrong with the script or is there a better way to achieve our goal? One first question come to my mind: why do you use a script here? A simple extension can do exactly the same, if you just want to record the session... https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools:+record_ses... Anyway, if you want to use the script, why you first session:setAutoHangup(false) and after that you session:hangup() ? Also, you made the silence_threshold equal 0 (zero). Have you has the same problems using a silence_threshold of, let's say, 30 (thirty), like in documentation? ( https://freeswitch.org/confluence/display/FREESWITCH/Lua+API+Reference#LuaAP... ) Hope this helps, -giovanni Many thanks in advance. Best regards, Sven Uszpelkat Departamento I+D Comunycarse Network Consultants, S.L. [Descripción: Descripción: http://www.comunycarse.com/email_images/facebook_16.jpg]<http://www.facebook.com/pages/Comunycarse/227218309114> [Descripción: Descripción: http://www.comunycarse.com/email_images/linkedin_16.jpg] <http://www.linkedin.com/company/comunycarse-s.l.> [Descripción: Descripción: http://www.comunycarse.com/email_images/twitter_16.jpg] <https://twitter.com/#%21/comunycarse> [Descripción: Descripción: http://www.comunycarse.com/email_images/wordpress_16.jpg] <http://www.blog.comunycarse.com/> Joaquín Turina, 2 28224 Pozuelo de Alarcón MADRID Tlf. +34 917 498 700<tel:+34%20917%2049%2087%2000> Fax +34 917 498 720<tel:+34%20917%2049%2087%2020> Sabino Arana, 18 08028 BARCELONA Tlf. +34 934 098 480<tel:+34%20934%2009%2084%2080> Fax +34 934 098 490<tel:+34%20934%2009%2084%2090> http://www.comunycarse.com<http://www.comunycarse.com/> AVISO LEGAL La presente comunicación y sus anexos tiene como destinatario la persona a la que va dirigida, por lo que si usted lo recibe por error debe notificarlo al remitente y eliminarlo de su sistema, no pudiendo utilizarlo, total o parcialmente, para ningún fin. Su contenido puede tener información confidencial o protegida legalmente y únicamente expresa la opinión del remitente. El uso del correo electrónico vía internet no permite asegurar ni la confidencialidad de los mensajes ni su correcta recepción. En el caso de que el destinatario no consintiera la utilización del correo electrónico deberá ponerlo en nuestro conocimiento inmediatamente. DISCLAIMER This message and its attachments are intended exclusively for the named addressee. If you receive this message by mistake, please delete it immediately from your system and notify the sender. You may not use this message or any part of it for any purpose. The message may contain information that is confidential or protected by law, and any opinions expressed are those of the individual sender. Internet email guarantees neither the confidentiality nor the proper receipt of the message sent. If the addressee of this message does not consent to the use of internet e-mail, please inform us immediately. _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org<mailto:consulting@freeswitch.org> http://www.freeswitchsolutions.com Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org<mailto:FreeSWITCH-users@lists.freeswitch.org> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org -- Sincerely, Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18 -- Sincerely, Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18
I would not use lua, dialplan works great ;) Sent from my iPhone
On 16 Jun 2017, at 09:53, Sven Uszpelkat <USZPELSV@comunycarse.com> wrote:
Hi Giovanni,
Thank you for your help. We changed our script to something like this:
session:answer() while(session:ready() == true) do test = session:recordFile("/usr/local/freeswitch/recordings/test.wav", 18000, 0, 300) os.execute("sync"); session:setAutoHangup(false) session:hangup() end
As result we note an improvement primarily in short recordings (<1:30 min). These are now practically all complete. In longer recordings there are still losses and it seems that they are increasing with the duration of the recording. I’m not sure how to interpret this but to me it looks like this: with the sync call we achieved to write the buffer content to the file, however in longer calls there is remaining audio which hasn’t even been read to the buffer. Is that correct? If so then the recording function doesn’t ensure to read the remaining audio after hangup. (With tcdump we checked that all audio packets arrived before the BYE message) Does this mean that this behavior is by design?
Best regards, Sven
De: Giovanni Maruzzelli [mailto:gmaruzz@gmail.com] Enviado el: jueves, 15 de junio de 2017 13:17 Para: Sven Uszpelkat CC: FreeSWITCH Users Help Asunto: Re: [Freeswitch-users] Call recording
On 15 June 2017 at 12:50, Sven Uszpelkat <USZPELSV@comunycarse.com> wrote:
3.) We set the silence threshold to 0 because the documentation is not very clear how to disable the silence detection. We don’t want the recording to stop in response to a period of silence. The point is to record everything.
The silence_threshold determines what is considered silence, eg below what level of acoustic energy we state the stream is containing silence. Then, we wait for "how_many_silence_seconds" or until hangup before stopping recording.
So, maybe you are right, and setting it to 0 will consider silence only when there is absolute silence in the stream, so for all practical purposes, until hangup. I have no mean to check source code now.
On another hand, I can think at other possible causes for the premature end of the recorded file: maybe you move the file before it has been flushed by FreeSWITCH or by operating system? Maybe the hangup in the script interrupts the recording in the script and close the file descriptor before is flushed? (I am shooting in the dark)
You can try to leave out those two lines, and test again.
Also, you can insert a line that sync (flush) the filesystem before exiting, just to be sure.
I would insert it after the while(session:ready())
A system(sync), or something similar will probably do.
Hope this helps, -giovanni
Best regards, Sven
De: FreeSWITCH-users [mailto:freeswitch-users-bounces@lists.freeswitch.org] En nombre de Giovanni Maruzzelli Enviado el: jueves, 15 de junio de 2017 11:19 Para: FreeSWITCH Users Help Asunto: Re: [Freeswitch-users] Call recording
On 15 June 2017 at 09:49, Sven Uszpelkat <USZPELSV@comunycarse.com> wrote: Hello,
We are using FreeSWITCH as a third-party recording application, i.e. we are receiving SIP calls with the complete audio of conversations taking place on another switch and we are saving this audio to a file. To achieve this we are using a simple script similar to this:
session:answer() while(session:ready() == true) do test = session:recordFile("/usr/local/freeswitch/recordings/test.wav", 18000, 0, 300) session:setAutoHangup(false) session:hangup() end
This script will be invoked by the following dialplan:
<extension name="Recording"> <condition field="destination_number" expression=".*"> <action application="lua" data="record.lua"/> </condition> </extension>
Basically it seems to work quite well, but sometimes there are missing audio at the end of the recorded file. Usually it’s only a few seconds, but sometimes it seems to be more. (It’s like the recording sometimes goes behind the real call and when the hangup event is received the remaining audio is discarded.)
What could be the reason for this behavior? Is there something wrong with the script or is there a better way to achieve our goal?
One first question come to my mind: why do you use a script here? A simple extension can do exactly the same, if you just want to record the session...
https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools:+record_ses...
Anyway, if you want to use the script, why you first
session:setAutoHangup(false)
and after that you
session:hangup()
?
Also, you made the silence_threshold equal 0 (zero). Have you has the same problems using a silence_threshold of, let's say, 30 (thirty), like in documentation? ( https://freeswitch.org/confluence/display/FREESWITCH/Lua+API+Reference#LuaAP... )
Hope this helps,
-giovanni
Many thanks in advance.
Best regards,
Sven Uszpelkat Departamento I+D Comunycarse Network Consultants, S.L.
<image001.jpg> <image002.jpg> <image003.jpg> <image004.jpg>
Joaquín Turina, 2 28224 Pozuelo de Alarcón MADRID Tlf. +34 917 498 700 Fax +34 917 498 720
Sabino Arana, 18 08028 BARCELONA Tlf. +34 934 098 480 Fax +34 934 098 490
AVISO LEGAL La presente comunicación y sus anexos tiene como destinatario la persona a la que va dirigida, por lo que si usted lo recibe por error debe notificarlo al remitente y eliminarlo de su sistema, no pudiendo utilizarlo, total o parcialmente, para ningún fin. Su contenido puede tener información confidencial o protegida legalmente y únicamente expresa la opinión del remitente. El uso del correo electrónico vía internet no permite asegurar ni la confidencialidad de los mensajes ni su correcta recepción. En el caso de que el destinatario no consintiera la utilización del correo electrónico deberá ponerlo en nuestro conocimiento inmediatamente.
DISCLAIMER This message and its attachments are intended exclusively for the named addressee. If you receive this message by mistake, please delete it immediately from your system and notify the sender. You may not use this message or any part of it for any purpose. The message may contain information that is confidential or protected by law, and any opinions expressed are those of the individual sender. Internet email guarantees neither the confidentiality nor the proper receipt of the message sent. If the addressee of this message does not consent to the use of internet e-mail, please inform us immediately.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
--
Sincerely,
Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18
--
Sincerely,
Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18 _________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
On 16 June 2017 at 18:20, Tihomir Culjaga <tculjaga@gmail.com> wrote:
I would not use lua, dialplan works great ;)
Sent from my iPhone
On 16 Jun 2017, at 09:53, Sven Uszpelkat <USZPELSV@comunycarse.com> wrote:
Hi Giovanni,
Thank you for your help. We changed our script to something like this:
session:answer()
while(session:ready() == true) do
test = session:recordFile("/usr/local/freeswitch/recordings/test.wav", 18000, 0, 300)
os.execute("sync");
session:setAutoHangup(false)
session:hangup()
end
I would put an "if-end" instead of a "while-do", and put sync outside the "ifend", setautohangup before the ifend, hangup after the ifend you can also use sync-sleeponesecond-syncagain (after the ifend block), just to be very proactive :) -giovanni
As result we note an improvement primarily in short recordings (<1:30 min). These are now practically all complete. In longer recordings there are still losses and it seems that they are increasing with the duration of the recording. I’m not sure how to interpret this but to me it looks like this: with the sync call we achieved to write the buffer content to the file, however in longer calls there is remaining audio which hasn’t even been read to the buffer. Is that correct? If so then the recording function doesn’t ensure to read the remaining audio after hangup. (With tcdump we checked that all audio packets arrived before the BYE message) Does this mean that this behavior is by design?
Best regards,
Sven
*De:* Giovanni Maruzzelli [mailto:gmaruzz@gmail.com <gmaruzz@gmail.com>] *Enviado el:* jueves, 15 de junio de 2017 13:17 *Para:* Sven Uszpelkat *CC:* FreeSWITCH Users Help *Asunto:* Re: [Freeswitch-users] Call recording
On 15 June 2017 at 12:50, Sven Uszpelkat <USZPELSV@comunycarse.com> wrote:
3.) We set the silence threshold to 0 because the documentation is not very clear how to disable the silence detection. We don’t want the recording to stop in response to a period of silence. The point is to record everything.
The silence_threshold determines what is considered silence, eg below what level of acoustic energy we state the stream is containing silence. Then, we wait for "how_many_silence_seconds" or until hangup before stopping recording.
So, maybe you are right, and setting it to 0 will consider silence only when there is absolute silence in the stream, so for all practical purposes, until hangup. I have no mean to check source code now.
On another hand, I can think at other possible causes for the premature end of the recorded file: maybe you move the file before it has been flushed by FreeSWITCH or by operating system? Maybe the hangup in the script interrupts the recording in the script and close the file descriptor before is flushed? (I am shooting in the dark)
You can try to leave out those two lines, and test again.
Also, you can insert a line that sync (flush) the filesystem before exiting, just to be sure.
I would insert it after the while(session:ready())
A system(sync), or something similar will probably do.
Hope this helps,
-giovanni
Best regards,
Sven
*De:* FreeSWITCH-users [mailto:freeswitch-users- bounces@lists.freeswitch.org <freeswitch-users-bounces@lists.freeswitch.org>] *En nombre de *Giovanni Maruzzelli *Enviado el:* jueves, 15 de junio de 2017 11:19 *Para:* FreeSWITCH Users Help *Asunto:* Re: [Freeswitch-users] Call recording
On 15 June 2017 at 09:49, Sven Uszpelkat <USZPELSV@comunycarse.com> wrote:
Hello,
We are using FreeSWITCH as a third-party recording application, i.e. we are receiving SIP calls with the complete audio of conversations taking place on another switch and we are saving this audio to a file. To achieve this we are using a simple script similar to this:
session:answer()
while(session:ready() == true) do
test = session:recordFile("/usr/local/freeswitch/recordings/test.wav", 18000, 0, 300)
session:setAutoHangup(false)
session:hangup()
end
This script will be invoked by the following dialplan:
<extension name="Recording">
<condition field="destination_number" expression=".*">
<action application="lua" data="record.lua"/>
</condition>
</extension>
Basically it seems to work quite well, but sometimes there are missing audio at the end of the recorded file. Usually it’s only a few seconds, but sometimes it seems to be more. (It’s like the recording sometimes goes behind the real call and when the hangup event is received the remaining audio is discarded.)
What could be the reason for this behavior? Is there something wrong with the script or is there a better way to achieve our goal?
One first question come to my mind: why do you use a script here? A simple extension can do exactly the same, if you just want to record the session...
https://freeswitch.org/confluence/display/FREESWITCH/ mod_dptools:+record_session
Anyway, if you want to use the script, why you first
session:setAutoHangup(false)
and after that you
session:hangup()
?
Also, you made the silence_threshold equal 0 (zero). Have you has the same problems using a silence_threshold of, let's say, 30 (thirty), like in documentation? ( https://freeswitch.org/ confluence/display/FREESWITCH/Lua+API+Reference#LuaAPIReference-session: recordFile )
Hope this helps,
-giovanni
Many thanks in advance.
Best regards,
Sven Uszpelkat Departamento I+D Comunycarse Network Consultants, S.L.
<image001.jpg> <http://www.facebook.com/pages/Comunycarse/227218309114> <image002.jpg> <http://www.linkedin.com/company/comunycarse-s.l.> <image003.jpg> <https://twitter.com/#%21/comunycarse> <image004.jpg> <http://www.blog.comunycarse.com/>
Joaquín Turina, 2 28224 Pozuelo de Alarcón MADRID Tlf. +34 917 498 700 <+34%20917%2049%2087%2000> Fax +34 917 498 720 <+34%20917%2049%2087%2020>
Sabino Arana, 18 08028 BARCELONA Tlf. +34 934 098 480 <+34%20934%2009%2084%2080> Fax +34 934 098 490 <+34%20934%2009%2084%2090>
AVISO LEGAL La presente comunicación y sus anexos tiene como destinatario la persona a la que va dirigida, por lo que si usted lo recibe por error debe notificarlo al remitente y eliminarlo de su sistema, no pudiendo utilizarlo, total o parcialmente, para ningún fin. Su contenido puede tener información confidencial o protegida legalmente y únicamente expresa la opinión del remitente. El uso del correo electrónico vía internet no permite asegurar ni la confidencialidad de los mensajes ni su correcta recepción. En el caso de que el destinatario no consintiera la utilización del correo electrónico deberá ponerlo en nuestro conocimiento inmediatamente.
DISCLAIMER This message and its attachments are intended exclusively for the named addressee. If you receive this message by mistake, please delete it immediately from your system and notify the sender. You may not use this message or any part of it for any purpose. The message may contain information that is confidential or protected by law, and any opinions expressed are those of the individual sender. Internet email guarantees neither the confidentiality nor the proper receipt of the message sent. If the addressee of this message does not consent to the use of internet e-mail, please inform us immediately.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
--
Sincerely,
Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18
--
Sincerely,
Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Sincerely, Giovanni Maruzzelli OpenTelecom.IT cell: +39 347 266 56 18
participants (3)
-
Giovanni Maruzzelli
-
Sven Uszpelkat
-
Tihomir Culjaga