FreeSWITCH
ClueCon Weekly – April 20, 2016 – Robin Raymond
Since July, 2013, the W3C Object Real-Time Communications (ORTC) Community Group has been actively working on a next generation WebRTC API, called ORTC. Robin will discuss the latest updates of the ORTC API, the remaining challenge areas, and the implementation status of ORTC-lib. I will show the detailed event capabilities for ORTC-lib.Links:
http://ortc.org/
http://hookflash.com/
FreeSWITCH Week in Review (Master Branch) April 9th – April 16th
This week mod_hiredis had some wonderful improvements and the addition of session logging added to it.
Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! And, head over to freeswitch.com to learn more about FreeSWITCH support.
New features that were added:
- FS-9052 [mod_hiredis] Add connection pooling, improve dropped connection resiliency, and allow 0.10.0 of hiredis for CentOS 6
- FS-9054 [mod_hiredis] Add ignore-connect-fail profile parameter so that calls do not get killed if limit fails due to lost connection
- FS-9059 [mod_hiredis] Add session logging
- FS-9050 [avmd] Fixed APP interface so avmd now exposes single avmd_start_function() for handling APP calls and splits the function into independent calls
- FS-9039 [avmd] Use FS enumeration
- FS-9072 [mod_syslog] Allow logging of messages containing tab character
- FS-9077 [mod_verto] Adding verto_hangup_disposition variable to indicate who hangup
Improvements in build system, cross platform support, and packaging:
- FS-9075 [Debian] Re-worked the freeswitch-all package
The following bugs were squashed:
- FS-7317 [mod_event_socket] Fixed a hang caused by a series of blocks
- FS-9049 [mod_sofia] Fixed a DTMF issue
- FS-9058 [mod_hiredis] Allow auto decrement of non-interval limits on channel hangup and fixed rate counters so the keys expire after interval completes. Do not auto decrement rate counters. Do not log null responses.
- FS-9056 [mod_av] Fixed an issue causing mobile H.264 video to be blank
- FS-9074 [mod_skinny] Fixed incorrect location of free causing memory leak of xml when certain errors occur
- FS-8949 [core] Fixed an issue with the send end packet for DTMF RTP event not being recognized
FreeSWITCH Week in Review (Master Branch) April 2nd – April 9th
This week we had a number of wonderful improvements to mod_avmd as well as more work toward languages in mod_verto.
Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! And, head over to freeswitch.com to learn more about FreeSWITCH support.
New features that were added:
- FS-9019 [avmd] Extend syntax description to include “[start|stop]” at the end of AVMD_SYNTAX ” ”
- FS-9023 [avmd] Add console auto completion
- FS-9020 [avmd] Implement checking of proper configuration of avmd session being started on internal/external channels. Check for read/write codec, CF_MEDIA_SET
- FS-9027 [avmd] Remove assertion from INIT_CIRC_BUFFER and check buffer’s pointer to raw memory dynamically
- FS-9028 [avmd] Check SMA buffer for successful memory allocation
- FS-9031 [avmd] Check session initialization for errors
- FS-9038 [verto] Add translations to support Danish
- FS-9006 [verto_communicator] Add-combobox for languages
- FS-9025 [mod_callcenter] Bypass_media_after_bridge working for member channel
- FS-9043 [mod_kazoo] Add kz_export of multiple variables instead of calling export application
Improvements in build system, cross platform support, and packaging:
- FS-9000 [build] Fixed compiling on bsd and with libyuv disabled
- FS-8883 [build] Fixed compiling due to unused result failure on gnu compiler with –disable-debug
- FS-8780 [build] Fixed the include for Windows builds that point to in tree library
- FS-8623 [build] Fixed Solaris studio build errors building libvpx
- FS-8779 [Windows] Fixed the include for Windows builds that point to in tree library
- FS-8875 [mod_avmd] Fixed the windows build from this change
- FS-9036 [avmd] Fix warnings on Windows builds
The following bugs were squashed:
- FS-9015 [verto_communicator] Minor fixes in Polish translation
- FS-9016 [mod_avmd] Fixed a segfault on NULL read codec
- FS-8562 [mod_sofia] Add update support for Mitel user agents
- FS-8294 [freetdm] Pass in modinstdir to freetdm configure
- FS-8623 [configure] Fixed an issue with a necessary flag having issues with the libvpx configure
- FS-9042 [core] Fixed assert when recording native file
FreeSWITCH Week in Review (Master Branch) March 26th – April 2nd
This week we had a number of awesome new features, but the most work went into adding translations to the verto communicator application! And we definitely couldn’t have done it without help from our wonderful community members! So far, we have translations for English, Spanish, Portuguese, Italian, French, Danish, German, Polish, Russian, Swedish, Indonesian, and Chinese. If you speak another language and would like to see that language available please submit a pull request with a translation!
Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! This week we have Chad Phillips talking about his FreeSWITCH Kickstart project! And, head over to freeswitch.com to learn more about FreeSWITCH support.
New features that were added:
- FS-8983 [mod_avmd] Enable on outbound channel to make debugging easier
- FS-8875 [mod_avmd] Enable faster beep detection
- FS-8688 [mod_vpx] Implement vp9 processing to avoid chrome hang
- FS-8972 [verto_communicator] Add i18n using angular-translate and static file loader
- FS-7125 [mod_sofia] Added an event “wrong_calls_state”. This is for fail2ban logging.
- FS-8990 [mod_verto] Adding verto_login header to verto::client_disconnect event
- FS-8991 [verto_communicator] Adding translations for French. Thanks Tristan Mahé
- FS-8989 [verto_communicator] Adding Portuguese i18n translations
- FS-8991 [verto_communicator] Adding French Canadian
- FS-8998 [verto_communicator] Adding German, Spanish, Catalan, Chinese, Polish, Russian, Swedish and Indonesian translations.
- FS-8992 [core] Indicate end of candidates in SDP to aid in the resolution of an interop issue with Mozilla
- FS-9000 [mod_conference] Set conference flags or conference member flags with individual variables per flag
Improvements in build system, cross platform support, and packaging:
- FS-8988 [mod_avmd] Rename files to include avmd in their name.
- FS-8971 [mod_amqp] There are two different status variables with two different meanings. This splits them back apart.
- FS-8933 [scripts] WIP Fix some breakage on raspbian as we don’t want the FS repos there yet because we don’t have armhf packages at this time
The following bugs were squashed:
- FS-8982 [core] Fixed an issue with play_fsv and play_yuv writing blank_img in parallel
- FS-8918 [core] Fixed an issue with a 10 Second timeout after Notify during Proxy refer
- FS-9002 [core] Fixed an issue with rtp timeout code parsing on video but its designed for audio
- FS-8749 [mod_conference] Fixed an issue when loading a video (mp4) for a conference using the “conference play” command “conference pause_play”
- FS-8993 [mod_av][mod_conference] Fixed a sync issue on conference playback for a video that is faster frame rate than the conference
- FS-8995 [verto_communicator] Added missing toastr in settings controller
- FS-8990 [verto communicator] Added verto_client_address to verto and presence events
- FS-8996 [verto_communicator] Fixed a typo in CAMERA_SETTINGS id and added some Italian translation
- FS-8997 [verto_communicator] Fixed fallbackLanguage
- FS-9012 [verto_communicator] Fixing sidebar in narrow resolutions clipping the video
- FS-8999 [mod_erlang_event] Fixed broken outbound connection
- FS-8913 [mod_sofia] Fixed a transfer issue when using bypass_media + SRTP + Inbound late negotiation
- FS-9004 [mod_http_cache] Set http get timeout on thread that is actively downloading with the value from the download-timeout configuration and added download-timeout param to prevent http_get from waiting unbound time for downloading to finish. Prevented prefetch threads from blocking if another thread is already downloading the same URL.
The FreeSWITCH 1.6.7 release is here!
The FreeSWITCH 1.6.7 release is here! This is a routine maintenance release and the resources are located here:
Release files are located here:
- Tarball: http://files.freeswitch.org/releases/freeswitch/freeswitch-1.6.7.tar.gz
- Packaging: https://freeswitch.org/confluence/display/FREESWITCH/Installation (Please Note the updated location for 1.6 packages)
New features that were added:
- FS-8908 [verto communicator] Link to preview camera and microphone under settings
- FS-7800 [verto communicator] Added support for calling extra screens with same extension as the original and place the parameter conferenceCanvasID with the desired canvas id into the call parameters in the same place bandwidth preferences are added
- FS-8972 [verto_communicator] Fixed mute video translation and added i18n using angular-translate and static file loader
- FS-8989 [verto_communicator] Adding Portuguese i18n translations
- FS-8991 [verto_communicator]Adding translations for French and added French Canadian. Thanks Tristan Mahé
- FS-8998 [verto_communicator] Adding German, Catalan, Polish, Russian, Swedish, Chinese, and Indonesian translations.
- FS-8990 [mod_verto] Adding verto_login header to verto::client_disconnect event
- FS-8735 [mod_sofia] Display update support for Panasonic devices
- FS-6833 [mod_sofia] Allow FreeSWITCH to initiate late offer calls
- FS-8879 [mod_sofia] Work on SIP UPDATE and attended transfer for IPv6
- FS-8964 [mod_sofia] Make it possible to disable picture_fast_update INFO requests to de-clutter trace and logs
- FS-7125 [mod_sofia] Added an event “wrong_calls_state”. This is for fail2ban logging
- FS-8864 [core][mod_av] Improve video file playback
- FS-8977 [mod_av][core] Add functionality to support the NVENC hardware encoded h264 in codec and files and set default to enable hardware encoder on conference too
- FS-8862 [core] Auto adjust on passthru
- FS-8876 [core] Add CPU affinity to each video thread in a round robin fashion.
- FS-8909 [core] Add feature to play background video while recording inbound video. This feature is suitable to provide some kind of feedback like an animation of a glowing record light etc.
- FS-8870 [core] Add human-readable call quality statistics logs on call hangup
- FS-7776 [mod_kazoo] Integrate the module into build system
- FS-8737 [mod_kazoo] Add required variables to default filter
- FS-8595 [mod_conference] Improve auto bitrate in personal canvas mode and do not let auto bitrate exceed native picture size
- FS-8921 [mod_conference] Re-designed the banner code
- FS-8685 [mod_conference] Multiple member arguments for conference related API command. The new format is: ‘conference foo relate 1 2,3,4 nohear’ or ‘conference foo relate 1,2 3 nospeak
- FS-9000 [mod_conference] Set conference flags or conference member flags with individual variables per flag
- FS-8822 [mod_callcenter] Added a real-time counter for calls in a queue.
- FS-8903 [mod_local_stream] Add a logo image and some parameters to control its behavior
- FS-8932 [mod_managed] Add in process load in-process plugins
- FS-8688 [mod_vpx] Add more detailed logs and tweak some parameters for the coming libvpx 1.5.0 and implement vp9 processing to avoid chrome hang
- FS-8728 [mod_amqp] Adding logging profile and functionality and added default configurations
- FS-8971 [mod_amqp] There are two different status variables with two different meanings. This splits them back apart.
- FS-8983 [mod_avmd] Enable avmd on outbound channel to make debugging easier
- FS-8875 [mod_avmd] Enable faster beep detection
Improvements in build system, cross platform support, and packaging:
- FS-8111 [mod_sofia] ‘sofia’ API command auto-complete cleanup
- FS-8763 [mod_sofia] Changed to set is_auth only after the results for switch_ivr_set_user
- FS-8782 [mod_verto] Fixed build error for missing __bswap_64 on Solaris
- FS-8778 [mod_verto] Define __bswap_64 for FreeBSD as well
- FS-8195 [src] Allow Solaris privileges to work on both Solaris and derivatives
- FS-8776 [build] Support GNU make parallel builds
- FS-8942 [build] Pass compiler to libvpx configure to account for environments without gcc
- FS-8871 [configuration] Fixed encoding “&” and “<” symbols in vanilla configuration
- FS-8808 [core] Fixed ^D in fs_cli with editline to delete char under cursor, not just backspace
- FS-8818 [core] Refactor X-PRE include to not toss error if there are no files that match the include.
- FS-8992 [core] Indicate end of candidates in SDP to aid in the resolution of an interop issue with Mozilla
- FS-8788 [Debian] Enabling stacksize limits for Debian packaging
- FS-8933 [Debian] Basic FreeSWITCH from source installer that works on Raspian and Debian. Also installs VertoCommunicator and LetsEncrypt SSL Certs. LetsEncrypt requires the machine to have a public IP and DNS for the FDQN functioning properly in public DNS
- FS-8948 [Debian] Handle non-existent configuration in Debian postinst causing failure to copy vanilla configuration on installation
- FS-8841 [Debian] Prevent hanging by pushing events to another queue to be processed in a different sofia thread.
- FS-7389 [CentOS] Correct the location of the freeswitch users homedir in the specfile
- FS-8186 [Windows] Fixed build with –disable-libyuv to ensure projects don’t incorrectly depend on libapr directly
- FS-8952 [Windows] Fixed an issue with unreachable code preventing build and simplify conditions
- FS-8779 [mod_shout] Properly detect lame/lame.h for FreeBSD
- FS-8808 [mod_avmd] Code refactor to fix indentation and conditional loops
- FS-8961 [mod_avmd] Add optional requirement of consecutive streak of estimations in SMA buffer to avoid false positives, fix definitions, and add options to control debugging/printing
- FS-8988 [mod_avmd] Rename files to include avmd in their name.
- FS-8878 [mod_amr] Fixed compiling without the library installed
- FS-8756[mod_say_nl] Improve dutch localisation
- FS-8933 [scripts] WIP Fixed some breakage on Raspbian as we don’t want the FS repos there yet as we don’t have armhf packages at this time
The following bugs were squashed:
- FS-8719 [mod_conference] Fixed a segfault caused by building without video support, but specifying video_mute_png variable for a conference member
- FS-8752 [mod_conference] Fixed a pixelation issue in initial seconds of recording a conference
- FS-8354 [mod_conference] Fix for G722 audio issues
- FS-8938 [mod_conference] Clear res_id when setting the same res_id to another member
- FS-8951 [mod_conference] Video lockup in conference due to race condition
- FS-8957 [mod_conference] Fix for video image blipping on personal canvas mode when 1 participant is watching video on hold
- FS-8750 [mod_conference] Fixed a set but not used variable warning
- FS-8749 [mod_conference] Fixed an issue when loading a video (mp4) for a conference using the “conference play” command “conference pause_play”
- FS-7915 [mod_sofia] Parse and store multiple path fields
- FS-8663 [mod_sofia] Added saftey checks for ;fs_path= command
- FS-8759 [mod_sofia] Fixed a segfault caused by device or provider timing interactions
- FS-8879 [mod_sofia] Fixed SIP UPDATE and attended transfer for ipv6
- FS-8898 [mod_sofia] Log setVariable at debug to easier tell what variables are being set from scripts
- FS-8913 [mod_sofia] Fixed a transfer issue when using bypass_media + SRTP + Inbound late negotiation
- FS-8796 [mod_verto] Fixed and cleaned up the mcast code
- FS-7132 [mod_verto] Fixed an issue with multiple websockets overwriting the jsock hash entry for a given sessionid causing a disconnection with the verto javascript application.
- FS-8842 [verto] Fixed an issue where calls created using the originate command lose audio when left on hold for 45 seconds
- FS-8877 [verto] Fixed an issue caused by Chrome Canary removing some audio mandatory constraints that break Verto
- FS-8805 [verto] Added a sanity check on array
- FS-8945 [verto_communicator] Don’t show preview_settings window during a video conference call or you will lose conference video stream until you refresh the page
- FS-8842 [verto] Fixed an issue where calls created using the originate command lose audio when left on hold for 45 seconds
- FS-8877 [verto] Fixed an issue caused by Chrome Canary removing some audio mandatory constraints that break Verto
- FS-8839 [verto_communicator] Fixed screenshare not displaying in the proper conference when caller is transferred to another conference.
- FS-8963 [verto_communicator] Fixed the status call label
- FS-8966 [verto_communicator] Fixed the ability to cancel dialing while doing speed test
- FS-8970 [verto_communicator] Set useSpeak/useMic/useCamera to ‘none’ when calling a secondary canvas
- FS-8765 [verto_communicator] Make the preview button work properly
- FS-7800 [verto_communicator] Disable video floor changes on multi-canvas
- FS-8995 [verto_communicator] Added missing toastr in settings controller
- FS-8990 [verto communicator] Added verto_client_address to verto and presence events
- FS-8996 [verto_communicator] Fixed a typo in CAMERA_SETTINGS id and added some Italian translation
- FS-8997 [verto_communicator] Fixed fallbackLanguage
- FS-9012 [verto_communicator] Fixing sidebar in narrow resolutions clipping the video
- FS-8720 [core] Fixed a segmentation fault when switch_channel_str2cause is called
- FS-8960 [core] Reset the buffer position to zero to ensure correct calculation of average
- FS-8975 [core] Fixed the dtmf_type and sofia profile parameter dtmf-type variables
- FS-8731 [core] Fixed a crash when leg-b invite video in voice call
- FS-8734 [core] Cleaned up video jitter buffer by adding some formatting to the debugging logs so the text jumps around less and fixing sequence number rollover code to handle rollover better.
- FS-8713 [core] Fixed a crash on bad video rtp stream by pushing a patch to make the sizes match. This was the original intention since we want to preserve the packet as-is while in the jitter buffer
- FS-8721 [core] Fixed an eavesdrop memory leak caused by moving bug_remove_all after destroy where it’s more than safe to kill bugs indiscriminately
- FS-8673 [core] Fixed a core dump on playback after “Decode Codec is not initialized!” log message
- FS-8571 [core] Add missing ENABLE_SRTP ifdef to allow building without SRTP
- FS-8770 [core] Fixed media_bug_answer_req=true creating a file for unanswered calls
- FS-8786 [core] Fixed a fax hangup problem when testing long faxes over T.38 and rtp-timeout-sec is set to 300
- FS-8802 [core] Fixed an issue caused by the sent timestamp of RTP rolling over to 0 and hitting an error condition causing it to stop sending audio
- FS-8726 [core] Fixed a spurious case of a thread stuck and saturating CPU
- FS-8812 [core] Respect in_thread_only parameter in switch_channel_check_signal()
- FS-8809 [core] Fixed an undeclared MAP_POPULATE causing compliation failure
- FS-8816 [core] Fixed switch_core_hash_insert_destructor not checking switch_hashtable_insert_destructor() returns
- FS-8830 [core] Added SDP line separator fix for SDP generated by the core. Sofia when giving an SDP through SOA was parsing the SDP and rewriting it. For endpoints that use the core SDP as is will have more accurate SDP now.
- FS-8806 [core] Change group_confirm_cancel_timeout to apply only to the legs that answer the call to prevent the remaining legs ringing indefinitely if the answered leg hangs up while executing the group confirm script.
- FS-8821 [core] Fixed switch_core_hash_insert_locked and switch_core_hash_insert_wrlock to make sure they check the status of the operation before returning a switch_status.
- FS-8862 [core] Auto adjust on passthru
- FS-8811 [core] Fixed an intermittent crash
- FS-8851 [core] Fix for codec for recording negotiated before call answered
- FS-8904 [core] Fix memory leak in img_write_text
- FS-8905 [core] Fixed for a heap buffer overflow detected by ASAN in the img patch/img overlay and it may show up as a rare segfault when using video with banners
- FS-8864 [core] Set video ready on first push to avoid catch 22 on some video files and improve video file playback
- FS-8910 [core] Properly negotiate SDES when receiving an SDP with a=crypto:0 with the wanted crypto suite, we should maintain that crypto tag in the local SDP in order for SDES setup to succeed.
- FS-8914 [core] Fixed mp4 recording cutting off the end in some cases by adding code to mitigate the sync of the end of the file encoding to add some padding to the end
- FS-8761 [core] Fixed a memory leak
- FS-8855 [core] Fixed the calculation of variance of tone’s frequency estimator to prevent flawed audio
- FS-8928 [core] Flag a binding error when using EventConsumer::bind with invalid event name instead of blindly using custom
- FS-8168 [core] Use copy image functions from libyuv instead of our home rolled versions as the libyuv versions have optimizations
- FS-8982 [core] Fixed an issue with play_fsv and play_yuv writing blank_img in parallel
- FS-8918 [core] Fixed an issue with a 10 Second timeout after Notify during Proxy refer
- FS-9002 [core] Fixed an issue with rtp timeout code parsing on video but its designed for audio
- FS-8847 [core] When a call ends sometimes the RTP stack complains of a bad poll. This is normal caused by shutting down the rtp on hangup. Add some code to catch the condition that is ok and still print the error otherwise
- FS-8789 [mod_conference][mod_av] Fix warning thats printed when it shouldn’t be and remove ability to swap to personal canvas while recording and prevent recording while personal canvas is on.
- FS-8864 [mod_av] Fixed regression to recording to improve file playback
- FS-8868 [mod_av] Set recording app to respect bandwidth set in SDP
- FS-8916 [mod_av] Fixed an issue with newer x264 library returning Encoding Error -1 for newer x264 libraries
- FS-8836 [mod_av] Fixed a deprecated warning on newer ffmpeg to support ffmpeg 2.8 and 3.0 in addition to 2.6
- FS-8914 [mod_av] Adding code to mitigate the sync of the end of the file encoding to add some padding to the end
- FS-8973 [mod_av] Enable libavcodec experimental native implementation features (such as AAC) by default
- FS-8959 [mod_av] Refactor to improve memory processing and prevent leaks in encoding h264
- FS-8993 [mod_av][mod_conference] Fixed a sync issue on conference playback for a video that is faster frame rate than the conference
- FS-8656 [src] Fix switch_event_channel_broadcast identifier redeclared
- FS-8777 [mod_redis] Add the missing netinet/in.h include required to build mod_redis/credis.c for FreeBSD
- FS-8768 [mod_callcenter] Releasing database handle after reserving agent
- FS-8856 [mod_callcenter] Updating a member fails because the agent_dispatch_thread removed the member just before it tried to update it.
- FS-8838 [mod_rayo] Improve logging and error handling when executing API on output component. Attempt to make output component stop a little more robust and do a better job of detecting when output component completed because of hangup and preventing operations on output component when call has ended.
- FS-8811 [mod_local_stream] Fixed an intermittent segfault and a crash caused by dividing by 0
- FS-8866 [mod_erlang_event] Fixed memory leaks caused by not destroying session event_hash and events in queue
- FS-8999 [mod_erlang_event] Fixed broken outbound connection
- FS-8871 [configuration] Fixed encoding “&” and “<” symbols in vanilla configuration
- FS-8943 [configuration] Fixed misspellings in two comments
- FS-8884 [build] Add –disable-libyuv and –disable-libvpx configure arguments to disable building these libraries on FreeBSD and smartos
- FS-8915 [mod_smpp] Shortened event header name
- FS-8950 [mod_skinny] Fixed a few memory leaks
- FS-8946 [mod_xml_cdr] Fixed a segfault on call after loading with no config file or event bind failure causing the module load to fail
- FS-8937 [mod_easyroute] Handle a segfault when using bad customer query or on query error
- FS-8775 [mod_say_de] Add function SST_SHORT_DATE_TIME to mod_say_de.c and some language tweaks
- FS-8406 [mod_rtmp] Add options to scale down cavas size, fps, and bandwidth
- FS-8736 [spandsp] Fixed missing MEMMOVE macro in spandsp autoconf
- FS-8891 [RTP] Fix for T38 fax failing between 2 freeswitch boxes with high cpu usage
- FS-8312 [mod_sangoma_codec] Some maintenance clean-up and reset the whole trans-coding session memory on destroy to make debugging easier
- FS-8971 [mod_amqp] Resolve global structure handling issue causing a core dump. Thanks to Ben Hood for reporting the issue.
FreeSWITCH Week in Review (Master Branch) March 19th – March 26th
This week we have added functionality to support the NVENC hardware encoded h264 codec, files, and default on conference.
Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! And, head over to freeswitch.com to learn more about FreeSWITCH support.
New features that were added:
- FS-8964 [mod_sofia] Make it possible to disable picture_fast_update INFO requests to de-clutter trace and logs
- FS-8977 [mod_av][core] Add functionality to support the NVENC hardware encoded h264 in codec and files and set default to enable hardware encoder on conference too
Improvements in build system, cross platform support, and packaging:
- FS-8186 [Windows] Fixed build with –disable-libyuv to ensure projects don’t incorrectly depend on libapr directly
- FS-8961 [mod_avmd] Add optional requirement of consecutive streak of estimations in SMA buffer to avoid false positives, fix definitions, and add options to control debugging/printing
The following bugs were squashed:
- FS-8960 [core] Reset the buffer position to zero to ensure correct calculation of average
- FS-8975 [core] Fixed the dtmf_type and sofia profile parameter dtmf-type variables
- FS-8312 [mod_sangoma_codec] Some maintenance clean-up and reset the whole trans-coding session memory on destroy to make debugging easier
- FS-8963 [verto_communicator] Fixed the status call label
- FS-8966 [verto_communicator] Fixed the ability to cancel dialing while doing speed test
- FS-8970 [verto_communicator] Set useSpeak/useMic/useCamera to ‘none’ when calling a secondary canvas
- FS-8765 [verto_communicator] Make the preview button work properly
- FS-7800 [verto_communicator] Disable video floor changes on multi-canvas
- FS-8914 [mod_av] Adding code to mitigate the sync of the end of the file encoding to add some padding to the end
- FS-8973 [mod_av] Enable libavcodec experimental native implementation features (such as AAC) by default
- FS-8959 [mod_av] Refactor to improve memory processing and prevent leaks in encoding h264
- FS-8836 [mod_av] Fixed a deprecated warning on newer ffmpeg to support ffmpeg 2.8 and 3.0 in addition to 2.6
- FS-8750 [mod_conference] Fixed a set but not used variable warning
- FS-8971 [mod_amqp] Resolve global structure handling issue causing a core dump. Thanks to Ben Hood for reporting the issue.
FreeSWITCH Week in Review (Master Branch) March 12th – March 19th
The biggest news this week is the edition of a Raspberry Pi installation script adding by Ken Rice. Grab yourself a Raspberry Pi and go try it out!
Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! This week we are talking about Raspberry Pi and the Internet of Things! And, head over to freeswitch.com to learn more about FreeSWITCH support.
New features that were added:
- FS-8932 [mod_managed] Add in process load in-process plugins
- FS-8933 [Debian] Basic FreeSWITCH from source installer that works on Raspbian and Debian. Also installs VertoCommunicator and LetsEncrypt SSL Certs. LetsEncrypt requires the machine to have a public IP and DNS for the FDQN functioning properly in public DNS
- FS-8870 [core] Add human-readable call quality statistics logs on call hangup
- FS-7800 [verto communicator] Added support for calling extra screens with same extension as the original and place the parameter conferenceCanvasID with the desired canvas id into the call parameters in the same place bandwidth preferences are added
Improvements in build system, cross platform support, and packaging:
- FS-8948 [Debian] Handle non-existent configuration in Debian postinst causing failure to copy vanilla configuration on installation
- FS-8841 [Debian] Prevent hanging by pushing events to another queue to be processed in a different sofia thread.
- FS-8942 [build] Pass compiler to libvpx configure to account for environments without gcc
- FS-8952 [Windows] Fixed an issue with unreachable code preventing build and simplify conditions
The following bugs were squashed:
- FS-8938 [mod_conference] Clear res_id when setting the same res_id to another member
- FS-8951 [mod_conference] Video lockup in conference due to race condition
- FS-8957 [mod_conference] Fix for video image blipping on personal canvas mode when 1 participant is watching video on hold
- FS-8943 [configure] Fixed misspellings in two comments
- FS-8950 [mod_skinny] Fixed a few memory leaks
- FS-8946 [mod_xml_cdr] Fixed a segfault on call after loading with no config file or event bind failure causing the module load to fail
- FS-8937 [mod_easyroute] Handle a segfault when using bad customer query or on query error
- FS-8855 [core] Fixed the calculation of variance of tone’s frequency estimator to prevent flawed audio
- FS-8928 [core] Flag a binding error when using EventConsumer::bind with invalid event name instead of blindly using custom
- FS-8168 [core] Use copy image functions from libyuv instead of our home rolled versions as the libyuv versions have optimizations
- FS-8406 [mod_rtmp] Add options to scale down cavas size, fps, and bandwidth
- FS-7915 [mod_sofia] Parse and store multiple path fields
- FS-8663 [mod_sofia] Added saftey checks for ;fs_path= command
- FS-8945 [verto_communicator] Don’t show preview_settings window during a video conference call or you will lose conference video stream until you refresh the page
FreeSWITCH Install Script for RaspberryPi
An install script for Raspbian and Debian 8 is now available.
This script makes it easy to deploy FreeSWITCH from source on your Raspberry Pi running Raspbian or on a standard machine running Debian Jessie.
Along with installing FreeSWITCH, Verto Communicator and LetsEncrypt are installed and configured. (Note: For LetsEncrypt to be configured you must have a valid public IP and hostname in DNS pointed at the machine.)
To use this script:
wget -O FreeSWITCH-debian-raspbian-installer.sh "https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/scripts/FreeSWITCH-debian-raspbian-installer.sh?raw"
chmod +x ./FreeSWITCH-debian-raspbian-installer.sh
./FreeSWITCH-debian-raspbian-installer.sh
Once the script completes, you will have FreeSWITCH installed to /usr/local/freeswitch, Verto Communicator in /var/www/html/vc, and if you set up the public IP and DNS name, LetsEncrypt SSL certificates installed.
FreeSWITCH Week in Review (Master Branch) March 5th – March 12th
This week the verto communicator link to previewing the camera and microphone in the settings, the ability to play background video while recording inbound video, and a re-design of the banner code in mod_conference.
Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! This week we have Doug Waller from Flowroute! And, head over to freeswitch.com to learn more about FreeSWITCH support.
New features that were added:
- FS-8908 [verto_communicator] Link to preview camera and microphone under settings
- FS-8909 [core] Add feature to play background video while recording inbound video. This feature is suitable to provide some kind of feedback like an animation of a glowing record light etc.
- FS-8921 [mod_conference] Re-designed the banner code
Improvements in build system, cross platform support, and packaging:
- FS-8878 [mod_amr] Fixed compiling without the library installed
- FS-7389 [CentOS] Correct the location of the freeswitch users homedir in the specfile
The following bugs were squashed:
- FS-8811 [mod_local_stream] Fixed a crash caused by dividing by 0
- FS-8905 [core] Fixed a heap buffer overflow issue
- FS-8910 [core] Properly negotiate SDES when receiving an SDP with a=crypto:0 with the wanted crypto suite, we should maintain that crypto tag in the local SDP in order for SDES setup to succeed.
- FS-8914 [core] Fixed mp4 recording cutting off the end in some cases by adding code to mitigate the sync of the end of the file encoding to add some padding to the end
- FS-8761 [core] Fixed a memory leak
- FS-8866 [mod_erlang_event] Fixed memory leaks caused by not destroying session event_hash and events in queue
- FS-8864 [mod_av] Fixed regression to recording to improve file playback
- FS-8868 [mod_av] Set recording app to respect bandwidth set in SDP
- FS-8916 [mod_av] Fixed an issue with newer x264 library returning Encoding Error -1 for newer x264 libraries
- FS-8836 [mod_av] Fixed to support ffmpeg 2.8 and 3.0 in addition to 2.6
- FS-8911 [mod_conference] Fixed a typo in conference_member
- FS-8752 [mod_conference] Fixed a pixelation issue in initial seconds of recording a conference
- FS-8898 [mod_sofia] Log setVariable at debug to easier tell what variables are being set from scripts
- FS-8915 [mod_smpp] Shortened event header name
FreeSWITCH 1.7 Installed on Raspberry Pi 2
Original post can be found here: http://www.algissalys.com/how-to/freeswitch-1-7-raspberry-pi-2-voip-sip-server
Installing, Compiling and running FreeSWITCH on the Pi 2The long and awaited for… FreeSWITCH 1.7 running on a Raspberry Pi 2 guide.
We’ll be using the latest (at the time of this writing) Raspbian image 2015-11-21-raspbian-jessie.img on a Raspberry Pi 2. Thanks to the awesome FreeSWITCH team at https://freeswitch.org/ especially Brian West, Ken Rice, and William King for all of their efforts with the FreeSWITCH project and helping me to get this working.
Raspbian running on your Pi
You’ll first need to have the Raspbian image running on your Raspberry Pi.
In order to compile FreeSWITCH and it’s modules, you need to install some dependencies.
Update your Pi packages
sudo apt-get update && sudo apt-get upgradeThe following packages were installed and I was able to successfully compile FreeSWITCH with the default modules in the modules.conf file, that were selected when I cloned the git master branch. My default modules.conf of enabled modules is located at the bottom of this page for reference. Note, If you enable/uncomment other modules in the modules.conf that gets created after running ./bootstrap.sh -j command below, you may require some additional dependencies.
sudo apt-get install autoconf automake devscripts gawk libjpeg-dev libncurses5-dev libtool-bin python-dev libtiff5-dev \libperl-dev libgdbm-dev libdb-dev gettext libssl-dev libcurl4-openssl-dev libpcre3-dev libspeex-dev libspeexdsp-dev \
libsqlite3-dev libedit-dev libldns-dev libpq-dev libsndfile-dev libopus-dev liblua5.1-0-dev
These packages are required, but were already installed on my Raspbian (here for reference)
sudo apt-get install g++ git-core make pkg-configThese packages are required, but Installed by other packages. (here for reference)
sudo apt-get install libjpeg62-turbo-dev libtoolClone git FreeSWITCH Repo
You can clone to any directory, but we’ll use the directory /usr/local/src and need to make it r/w to our user ($USER is a system variable, which will = the current user, pi in our case)
sudo chown $USER /usr/local/srcchange to that directory
cd /usr/local/srcClone the git repo (master branch)
git clone https://freeswitch.org/stash/scm/fs/freeswitch.gitCompile FreeSWITCH on the Raspberry Pi 2
Goto the FreeSWITCH source directory
cd /usr/local/src/freeswitch/Confirm master branch
git checkout masterReturned: Already on ‘master’ Your branch is up-to-date with ‘origin/master’.
Build config files
./bootstrap.sh -jNow we’re at the point where you can enable/disable custom modules to compile along with the FreeSWITCH framework. In this build, I left all the modules in modules.conf default (My enabled modules in modules.conf file is located below for reference). You can always compile additional modules at a later point when they are needed. I recommend leaving the modules.conf file alone if this is your first time compiling, you can read more about it below in the section Enabling additional Modules in modules.conf
Run configure
./configure -CMake (use jobs flag -j set to 3) in attempt to speed things up (this took ~30 minutes)
make -j3Success!
Install FreeSWITCH
sudo make installThe FreeSWITCH binary is now located in the /usr/local/freeswitch/bin directory.
Compile sounds for FreeSWITCH
make cd-sounds-install cd-moh-install -j3Goto FreeSWITCH bin directory
cd /usr/local/freeswitch/binStart FreeSWITCH
*It is advisable to skip this step if you are configuring FreeSWITCH to start up automatically at boot, as it creates files that are needed during run-time and it will fail when you use the init script/systemd to run it automatically.
./freeswitchcheck to see if it is running (just to make sure it compiled ok to this point)
ps aux | grep "freeswitch" Auto Run FreeSWITCH at bootWe’ll add FreeSWITCH as a user, change a few permission, copy the startup script and test the auto start of Freeswitch.
Create FreeSWITCH user, add password and set permissions
cd /usr/local/ sudo adduser --quiet --gecos "FreeSWITCH Voice Platform" --ingroup daemon freeswitch sudo chmod -R ug=rwx,o= /usr/local/freeswitch/ sudo chmod -R u=rwx,g=rx /usr/local/freeswitch/bin/* sudo chown -R freeswitch:daemon /usr/local/freeswitch
Create link from source build to expected locations
sudo ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/freeswitch sudo ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/fs_cli sudo mkdir /etc/freeswitch sudo ln -s /usr/local/freeswitch/conf/freeswitch.xml /etc/freeswitch/freeswitch.xml sudo chmod ug=rwx,o= /etc/freeswitch sudo chown freeswitch:daemon /etc/freeswitch sudo mkdir /var/lib/freeswitch sudo chmod -R ug=rwx,o= /var/lib/freeswitch sudo chown freeswitch:daemon /var/lib/freeswitch sudo cp /usr/local/src/freeswitch/debian/freeswitch-sysvinit.freeswitch.default /etc/default/freeswitch sudo chmod ug=rw,o= /etc/default/freeswitch sudo chown freeswitch:daemon /etc/default/freeswitchCreate working log directory
sudo mkdir /var/log/freeswitch sudo chmod -R ug=rwx,o= /var/log/freeswitch sudo chown freeswitch:daemon /var/log/freeswitchCopy the start-up script to /etc/init.d/ directory and change permissions
sudo cp /usr/local/src/freeswitch/debian/freeswitch-sysvinit.freeswitch.init /etc/init.d/freeswitch sudo chmod u=rwx,g=rx,o= /etc/init.d/freeswitch sudo chown freeswitch:daemon /etc/init.d/freeswitch sudo update-rc.d freeswitch defaultsFreeSWITCH will now auto start when the Raspberry Pi boots up
Reboot to confirm everything is working
sudo rebootCheck the status of FreeSWITCH
sudo /etc/init.d/freeswitch statusManually start FreeSWITCH (for reference)
sudo /etc/init.d/freeswitch startYou may also want to confirm FreeSWITCH is listening on port 5060 (for troubleshooting)
netstat -lnRegister to Extension 1000
FreeSWITCH has a few default extensions. As a simple test to see if FreeSWITCH is working, we’ll register a sip client to extension 1000, with the default password is 1234.
Change to user FreeSWITCH for editing of files or logging into fs_cli, since we have changed permissions of the directories in the above steps.
su freeswitchLog into FreeSWITCH command line to assist in troubleshooting (type /exit to exit the FreeSWITCH command line)
fs_cliUsing your favorite SIP client on the same network as the FreeSWITCH server, register with extension 1000
- SIP Proxy/Server = <raspberry-pi-ip-address>
- SIP Port = 5060
- User ID/Name = 1000
- Password/Authentication = 1234
While you are logged into the fs_cli, turn on sip trace debug
// sofia global siptrace on
Then from your SIP client, attempt to register, viewing the SIP trace can greatly assist in troubleshooting.
Once you are registered, try to call some test extensions
- 9198 = tetris music
- 9197 = mw tone
- 9196 = echo test
- 5000 = Default IVR
9198 was called from a sip client
References:
Raspberry Pi Model:
Raspberry Pi 2 Model B
Raspberry Pi Image:
2015-11-21-raspbian-jessie.img
cat /etc/*-release:
Raspbian GNU/Linux 8 (jessie)
Kernel (uname -ro):
4.1.19-v7+ GNU/Linux
FreeSWITCH Version:
FreeSWITCH Version 1.7.0+git~20160308T015910Z~b7227465b6~32bit (git b722746 2016-03-08 01:59:10Z 32bit)
Clean Git Folder (bring back to last commit state, deletes all untracked files, directories)
git clean -d -x -fGet commit hash (only here for reference, on the specific commit that I used for compiling)
git log -1 --format="%H"Returned: b7227465b6943588bf7d1a1e61e0fcc829d6f43e
https://freeswitch.org/confluence/display/FREESWITCH/Debian+7
FreeSWITCH Week in Review (Master Branch) February 20th – February 27th
This week we had some fun new updates to mod_avmd and began the process of moving libvpx into tree. This is a big change and should be carefully noted. There were too many issues associated with maintaining and updating it so the developers decided to instead link to a static version in tree.
Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! And, head over to freeswitch.com to learn more about FreeSWITCH support.
New features that were added:
- FS-8852 [mod_avmd] Now we use predefined table length instead of hardcoded computation in stop condition of for loop
- FS-8854 [mod_avmd] Now all members of buffer are initialized in INIT_CIRC_BUFFER macro
- FS-8867 [mod_vpx][core] Build using in tree libvpx, vpx no longer optional and does not use system libvpx due to issues with having to update it, frequently conflicting with system libraries, now we link to the static in tree version instead. Also, mod_vpx is now a core module instead of a loadable module, so mod_vpx.so will no longer be built
- FS-8876 [core] Add CPU affinity to each Video thread in a round robin fashion.
- FS-8878 [mod_amr] Make AMR NB transcode in octet-align mode (when compiled with HAVE_AMR)
The following bugs were squashed:
- FS-8856 [mod_callcenter] Updating a member fails because the agent_dispatch_thread removed the member just before it tried to update it.
- FS-8842 [verto] Fixed an issue where calls created using the originate command lose audio when left on hold for 45 seconds
- FS-8877 [verto] Fixed an issue caused by Chrome Canary removing some audio mandatory constraints that break Verto
- FS-8862 [core] Auto adjust on passthru
- FS-8871 [configuration] Fixed encoding “&” and “<” symbols in vanilla configuration
- FS-8879 [mod_sofia] Fixed SIP UPDATE and attended transfer for ipv6
- FS-8864 [core][mod_av] Improve video file playback
ClueCon Weekly – March 9, 2016 – Blake Priddy
Blake Priddy joins the ClueCon Weekly team to talk experiences deploying FreeSWITCH in rural public schools and some of the technical and political challenges he faced.
If you think VoIP is new, you might just be new to VoIP.
FreeSWITCH Week in Review (Master Branch) February 27th – March 5th
This week we had the addition of CPU affinity to each video thread in a round robin fashion and a logo image and parameters were added to mod_local_stream.
Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! And, head over to freeswitch.com to learn more about FreeSWITCH support.
New features that were added:
- FS-8876 [core] Add CPU affinity to each video thread in a round robin fashion.
- FS-8903 [mod_local_stream] Add a logo image and some parameters to control its behavior
The following bugs were squashed:
- FS-8884 [build] Add –disable-libyuv and –disable-libvpx configure arguments to disable building these libraries on FreeBSD and smartos
- FS-8891 [RTP] Fix for T38 fax failing between 2 freeswitch boxes with high cpu usage
- FS-8354 [mod_conference] Fix for G722 audio issues
- FS-8811 [core] Fixed an intermittent crash
- FS-8851 [core] Fix for codec for recording negotiated before call answered
- FS-8904 [core] Fix memory leak in img_write_text
- FS-8905 [core] Fixed for a heap buffer overflow detected by ASAN in the img patch/img overlay and it may show up as a rare segfault when using video with banners
- FS-8864 [core] Set video ready on first push to avoid catch 22 on some video files
Thank-you FreeSWITCHers!
Dear FreeSWITCHers,
We would like to share this open letter with you to say thank-you for your support. You really came through and helped keep our developers fueled and functioning during our annual summit. With your donations we were able to provide lunches and dinners for our team while they worked hard to keep FreeSWITCH moving forward.
This meeting allowed us to coordinate some awesome plans for ClueCon 2016 and formulate exciting additions for the code base! Meetings like these are extremely beneficial to the team and allow in depth discussions to help work through some of the more difficult problems. We also have some exciting news for our community coming down the pipeline! So, once again, thank-you so much for your support!
Thank-you!
Dear FreeSWITCHers,
We would like to share this open letter with you to say thank-you for your support. You really came through and helped keep our developers fueled and functioning during our annual summit. With your donations we were able to provide lunches and dinners for our team while they worked hard to keep FreeSWITCH moving forward.
This meeting allowed us to coordinate some awesome plans for ClueCon 2016 and formulate exciting additions for the code base! Meetings like these are extremely beneficial to the team and allow in depth discussions to help work through some of the more difficult problems. We also have some exciting news for our community coming down the pipeline! So, once again, thank-you so much for your support!
FreeSWITCH Week in Review (Master Branch) February 13th – February 20th
This week we had a minor improvement to the error response on hang up of a video call. And, for those of you Ubuntu fans out there, we have started a Ubuntu Packages GoFundMe to help get officially supported Ubuntu 14.x and 15.x packages! Please donate to support the cause! The developers work hard to create and maintain these packages and we need support from the community to make that happen.
Join us Wednesdays at 12:00 CT for some more FreeSWITCH fun! This week we have Fred Posner from Kamailio! And, head over to freeswitch.com to learn more about FreeSWITCH support.
New features that were added:
- FS-8847 [core] When a call ends sometimes the RTP stack complains of a bad poll. This is normal caused by shutting down the rtp on hangup. Add some code to catch the condition that is ok and still print the error otherwise.
The following bugs were squashed:
- FS-8838 [mod_rayo] Improve logging and error handling when executing API on output component. Attempt to make output component stop a little more robust and do a better job of detecting when output component completed because of hangup and preventing operations on output component when call has ended.
- FS-8839 [verto_communicator] Fixed screenshare not displaying in the proper conference when caller is transferred to another conference.
- FS-7132 [mod_verto] Fixed an issue with multiple websockets overwriting the jsock hash entry for a given sessionid causing a disconnection with the verto javascript application.
- FS-8806 [core] Change group_confirm_cancel_timeout to apply only to the legs that answer the call to prevent the remaining legs ringing indefinitely if the answered leg hangs up while executing the group confirm script.
- FS-8821 [core] Fixed switch_core_hash_insert_locked and switch_core_hash_insert_wrlock to make sure they check the status of the operation before returning a switch_status.
- FS-8811 [mod_local_stream] Fixed an intermittent segfault