Call Us Today! 877.742.2583

Page tree
Skip to end of metadata
Go to start of metadata

Label Heatmap


Space Index

0-9 ... 2 A ... 47 B ... 33 C ... 117 D ... 62 E ... 76
F ... 119 G ... 25 H ... 20 I ... 41 J ... 32 K ... 10
L ... 70 M ... 300 N ... 17 O ... 54 P ... 174 Q ... 2
R ... 90 S ... 231 T ... 33 U ... 16 V ... 52 W ... 11
X ... 9 Y ... 2 Z ... 6 !@#$ ... 0    


Page: 180 vs 183 vs Early Media
About 180 vs. 183 vs. Early Media Discussion If you know that the phone is ringing (an ALERT Q.931 message, for instance) you send a 180 Ringing. If you receive a notification indicating that the call is progressing, but you do not know for sure whether t
Page: 2n
About 2n make a range of Cellular Gateways with varying interface options (SIP/PRI/BRI/FXS). The Voiceblue Lite is available in either 2 or 4 SIM variati


Page: Aastra
Aastra Products Later than 2.3.1, Aastra Phones (55i, 57i) are working very well behind NAT, tested with rport enabled, very reliable, and also connecting with proxy/registrar ports other than 5060. These have been tested with firmwares later than 2.3.1.
Page: Aastra XML
Placeholder for the moment Code coming soon..
Page: absolute_codec_string
absolute_codec_string string Sets the absolute codec string to use (nothing will be appended). Usage <action application="set" data="absolute_codec_string=PCMU,GSM"/> <action application="bridge" data="sofia/gateway/myprovider/5551231234"/>
Page: accountcode
accountcode string Account code is mostly an arbitrary value that you can assign on a per leg basis. An important feature of accountcode is that if its value matches one of the CDR CSV templates defined in cdr_csv.conf.xml then that CDR template will be u
Page: ACL
About A.C.L. stands for Access Control List and is a list of permissions associated with an object. The list defines what network entities are allowed to access the object. Definitions Access Control Lists are named and defined in autoload_configs/acl.con
Page: acl_token
acl_token string If an incoming SIP INVITE message matches against a user ACL, this variable is set to the user ID and domain name.
Page: ACN
Iris 3000 Video phone that was used by ACN, but once unlocked the following features below seem to work: Registration: works Caller Id: works Call in/out: works Call waiting: works Transfer calls: not tested Park calls: not tested MWI: not tested SRTP: no
Page: Adopt A Module
About The idea behind Adopt-a-Module... TO-DO Responsibilities of Adopter Keep the wiki updated. Help others on the mailing list, IRC, and other outlets with questions regarding your module(s). Tickets on JIRA regarding your module(s) will be automatica
Page: Advanced SBC with mod_lcr and mod_easyroute
About by delphiworld Below you'll find a step by step guide for installing as a SBC. The LCR engine is provided by mod_lcr. The DID routing is done by mod_easyroute This is all still development work and needs testing. Installation Install Debian stab
Page: Agent iPhone
Pause-dialing from an iPhone to a FreeSWITCH directory The iPhone comes with a nice feature for automating navigation of a closed FreeSWITCH dialplan, or even open systems which you might use regularly (DISA, for example). Pauses may be entered into any C
Page: alert_info
alert_info string Add an Alert-Info Header like Snom and other Phones need for Ring or Ringtone information. Usage Load an external WAV ringtone on all calls: <action application="export" data="alert_info="/> Use the Ext
Page: ALG
About An ALG (Application Layer Gateway) is a security component, commonly found in a router or firewall device, that is supposed to enhance the ability for certain protocols to traverse NAT. A more complete discussion can be found here http://en.wikipedi
Page: Amazon EC2
About This page covers how to install and configure FreeSWITCH on Amazon EC2 Virtualization Opening Firewall Ports Create Security Group via EC2 Management Console Create a Security Group with the following ports. The ports
Page: answer_epoch
answer_epoch integer
Page: answer_stamp
answer_stamp string
Page: answer_uepoch
answer_uepoch integer
Page: answermsec
answermsec integer
Page: answersec
answersec integer
Page: answerusec
answerusec integer
Page: api_after_bridge
api_after_bridge string Execute an API command after bridge. Usage Paging to PA System via Portaudio (with chime before and after announcement): <extension name="paging-with-chime"> <condition field="destination_number" expression="^7243$"> <action applic
Page: api_hangup_hook
api_hangup_hook string Execute an API command on hangup. See also: session_in_hangup_hook api_reporting_hook - like api_hangup_hook but after reporting state (both honor session_in_hangup_hook) Usage <action application="set" data="api_hangup_hook=jsrun c
Page: api_on_answer
api_on_answer string Execute an api (not an application) when the called party answers. To set an application, use execute_on_answer. Usage <action application="export" data="nolocal:api_on_answer=uuid_broadcast ${uuid} beep.wav both"/><action application
Page: api_on_media
api_on_media string Execute a FreeSWITCH API when the far end sends media, i.e. ringing or 183/SDP. The command is executed only on channels that are not already answered. Just use export or export with nolocal: prefix to make sure it is executed when b-l
Page: api_on_originate
api_on_originate string
Page: api_on_post_originate
api_on_post_originate string
Page: api_on_pre_answer
api_on_pre_answer string
Page: api_on_pre_originate
api_on_pre_originate string
Page: api_on_ring
api_on_ring string
Page: api_on_sip_extra_headers
api_on_sip_extra_headers string
Page: api_on_startup
api_on_startup string Execute an api (not an application) when the switch starts up. Usage <X-PRE-PROCESS cmd="set" data="api_on_startup=sofia recover"/>
Page: api_on_tone_detect
api_on_tone_detect string
Page: ARCHIVE_Sip_execute_on_image
About Execute an application as soon as you get a T.38 invite. This variable is similar to execute_on_answer. You can run t38_gateway or rxfax etc when you get a T.38 re-invite but no CNG tone, or you want to ignore the tone and only react when getting a
Page: Archived Linux Installation Instructions
About See sub documents
Page: ASR
About The Automatic Speech Recognition engine is used to convert speech to text. It is an alternative User Interface to DTMF in IVR applications. Introduction Automated Speech Recognition is currently available via mod_pocketsphinx and mod_unimrcp. En
Page: asr_intercept_dtmf
asr_intercept_dtmf string
Page: Asterisk
About Configuration instructions for exchanging calls between and Asterisk using SIP. Connecting FreeSWITCH and Asterisk Using SIP With ACLs These are the steps and how I did to connect FreeSWITCH and Asterisk. I first tried to use auth gateways to do the
Page: Audio Codecs
Transcodable Audio Codecs The following codecs can be used when setting codec_string and absolute_codec_string. OPUS opus@48000h@10i - Opus 48khz using 10 ms ptime (mono and stereo) opus@48000h@20i - Opus 48khz using 20 ms ptime (mono and stereo) opus@48
Page: AudioCodes Gateways
About AudioCodes gateways information. AudioCodes Audiocodes has a few lines of equipment: FXS/FXO gateways (MP series). PRI gateways (Mediant series). IP phones (currently two models: HD310, HD320). FXS/FXO gateways AudioCodes MediaPack MP114 FXS SIP Aud
Page: AudioCodes Phones
About Audiocodes has a few lines of equipment: FXS/FXO gateways (MP series). PRI gateways (Mediant series). IP phones (currently two models: HD310, HD320). The IP phones product line is in GA phase (general availability), is targeted for various go to m
Page: Authors
About The authors and contributors to the Community project. Anthony_Minessale_profile.jpg Anthony Minessale II is the lead developer and creator of FreeSWITCH™, an open source telephony project. He is continuously developing improvements for his projec
Page: Auto Nat
About The FreeSWITCH "auto-nat" feature allows FreeSWITCH to use NAT-PMP or UPnP to discover the external IP address. No STUN lookup is needed. The device performing the NAT must support UPnP or NAT-PMP for the auto-nat feature to work. When the auto-nat
Page: auto_answer_destination
auto_answer_destination string In an inbound call, the remote side may send a SIP NOTIFY message with the event type talk, telling Sofia endpoint to answer the call. In this case, the variable auto_answer_destination is set to the channel's destination_nu
Page: auto_hunt
auto_hunt boolean Setting auto_hunt to true will alter the normal sequential processing of dialplan extensions. auto_hunt will cause the dialplan to 'jump' to a specific extension name, not processing any other extension. The destination_number and extens
Page: AutoProvisioning and Dynamic Directories
About Example of quick and nasty auto-provisioning, dynamic directories, and queues for Snom and Polycom. Last updated 2013.05.18 by wikimedia user Alexcrow Introduction We have an LDAP server which we use for organisation-wide directory services. I
Page: Auxiliary Knowledge and Utilities
About To become a master at FreeSWITCH™, we have to gain wisdom in other places. These pages describe knowledge that might be helpful in our journey.
Page: Avaya
Avaya Avaya 4610SW IP October 2010: SIP-Firmware: 2.2.2 This phone works once the SIP firmware has been installed. The only issue I came across was that after some time, the phone would no longer make or receive calls. The problem was that it doesn't like
Page: AVM
AVM Products FRITZ!Box Fon WLAN 7050 Registration: works Caller Id: works Call in/out: works Call waiting: not tested Transfer calls: not tested TLS: not tested (maybe not be supported, have to look it up) SRTP: not tested FRITZ!Box Fon WLAN 7270 Registra


Page: base_dir
base_dir string This defines the base directory for most other directory settings
Page: Before You Start
About A brief discussion of topics to consider before configuring your new FreeSWITCH installation. If you are going to setup FreeSWITCH it is worth planning ahead before you start. This gives you a better idea of what you want to configure. Later you can
Page: Billing Solutions
DIY Billing for FreeSWITCH Do it yourself billing for FreeSWITCH by Avi Marcus (talk For post-paid, you can simply post-process the CDRs. To enforce a
Page: billmsec
billmsec integer
Page: billsec
billsec integer
Page: billusec
billusec integer
Page: bind_meta_key
bind_meta_key dtmf digit Selects the meta key to use with the bind_meta_app dialplan application. Usage <action application="set" data="bind_meta_key=#"/>
Page: Book
The FreeSWITCH Book, aka The Bridge Book We did it! We actually got a book published! Check it out here Errata Like all books, there are bugs. You can view err
Page: Bounties Completed
About A bounty is an offer of cold hard cash to repair a bug, add a feature, or improve the performance of FreeSWITCH in some way. We keep this page as an archive in order to keep track of who is paying the bounties and who has a history of completing tas
Page: Bounty
About This is the list of the available bounties Bounties paid It's just as important to know who has a history of paying and who has a history of completing tasks, so the Bounties Completed page lists those. Improving doc on bitpacking / G726-XX codecs
Page: bridge_answer_timeout
bridge_answer_timeout integer Timeout in seconds how long to tolerate a bridge that is in early media without being answered (can be set on either leg). Introduced in build 15057. See also: Early Media Usage <action application="set" data="bridge_answer_t
Page: bridge_channel
bridge_channel string
Page: bridge_early_media
bridge_early_media boolean By default this is false. Set to true, this makes the bridge use the live audio from the b-leg as ringback to the a-leg. Setting bridge_early_media=true means the early media will be buffered. Consider setting this to true if: y
Page: bridge_epoch
bridge_epoch integer
Page: bridge_filter_dtmf
bridge_filter_dtmf boolean Setting this variable to true will prevent DTMF digits received on this channel when bridged from being sent to the other channel. Usage In the dialplan: <action application="set" data="bridge_filter_dtmf=true" /> Dialstring: {b
Page: bridge_generate_comfort_noise
bridge_generate_comfort_noise string Generates comfort noise when bridged session is receiving discontinuous audio frames (silence suppression). When greater than 0, this variable is set to the divisor of the silence generating function. 400 or 1400 are c
Page: bridge_hangup_cause
bridge_hangup_cause string This is set to the hangup cause of the last bridged B leg of the call. If you have continue_on_fail=true and hangup_after_bridge=false you can do checks on this to see what "really" happened to the call. You can for instance do
Page: bridge_pre_execute_aleg_app
bridge_pre_execute_aleg_app string Command or api to be executed on the A leg before bridging the two channels. App arguments can be passed by setting bridge_pre_execute_aleg_data. this is executed AFTER the call is setup but BEFORE the media (audio) is b
Page: bridge_pre_execute_aleg_data
bridge_pre_execute_aleg_data string Arguments to be used with bridge_pre_execute_aleg_app.
Page: bridge_pre_execute_bleg_app
bridge_pre_execute_bleg_app string Command or api to be executed on the B leg before bridging the two channels. Useful when originating a call from the event socket, CLI or XML-RPC. It could for instance be used to do a HTTP GET with a script or mod_http
Page: bridge_pre_execute_bleg_data
bridge_pre_execute_bleg_data string Arguments to be used with bridge_pre_execute_bleg_app. Usage <action application="set" data="bridge_pre_execute_bleg_app=bind_meta_app"/> <action application="set" data="bridge_pre_execute_bleg_data=1 a s att_xfer::sofi
Page: bridge_stamp
bridge_stamp string
Page: bridge_terminate_key
bridge_terminate_key dtmf digit Allows you to bind a key and the bridge will terminate if the DTMF matches. You can set bridge_terminate_key on either or both legs which will end the bridge, if it hangs up or not is decided by hangup_after_bridge=false or
Page: bridge_to
bridge_to string
Page: bridge_uepoch
bridge_uepoch integer
Page: bridge_uuid
bridge_uuid string
Page: Build libopus RPMs for CentOS 7
This procedure will build RPMs for both libopus and libopus-devel. This was initially written for version 1.1.1 but in fact by updating the version number has been tested until 1.1.3. Use a opus.spec file like (note the version appears twice): Name: opus
Page: Building debs for other architectures
About This page explains how to build FreeSWITCH Debian packages for other architectures, like ARM or MIPS. Building procedure The following instructions build Debian 8 packages for architectures that are not available from official FreeSWITCH repositorie
Page: Busy Call Retry
All the text below was last edited in 2009, it is therefore likely out-of-date, inaccurate and in dire need of a refresh console_log("notice", "*********** STARTING TO DIAL NUMBER! ***********\n"); //session.answer(); while (callTry()){}; function callTry
Page: Bypass Media Overview
About No media mode is an SDP Passthrough feature that permits two endpoints that can see each other (no funky N.A.T.) to connect their media sessions directly while FreeSWITCH maintains control of the SIP signaling. This is useful if you have two end-poi
Page: bypass_keep_codec
bypass_keep_codec boolean By doing export bypass_keep_codec=true to force re-invite with the same codec it was using previously.
Page: bypass_media
bypass_media boolean When set, the media (RTP) from the originating endpoint is sent directly to the destination endpoint and vice versa. The signaling (SIP) for both endpoints still goes through FreeSWITCH, but the media is point-to-point. See also: Bypa
Page: bypass_media_after_bridge
bypass_media_after_bridge boolean Same as bypass_media but will handle media for a call until it has reached the answered state (and has processed a few RTP frames.) At this point FreeSWITCH will use a ReInvite to take itself out of the media path. This h


Page: C# ESL
About About text. For C# ESL you might check this project.
Page: cache_dir
cache_dir string
Page: cache_speech_handles
cache_speech_handles string
Page: Cacti
How to make a pretty Cacti graph of calls like this: 14:52 <@SwK> hey say your cacti
Page: Call Camping
About Call camping, or camp-on, allows setting the the incoming call to wait if the bridge destination is occupied. Variables This behavior is controlled by a number of channel variables that need to be set up before calling bridge application: campon ca
Page: Call Center
About A discussion of inbound call center functionality. FIFO versus ACD FIFO (First In, First Out) and ACD (Automatic Call Distribution) are two similar paradigms for sending inbound calls to a group or groups of call-taking agents. In simple terms, an A
Page: Call Forward Example
About This is an example of how to create a simple call forwarding dialplan. In this example, it utilizes hash, but you may prefer db. The choice is yours. <extension name="call_forwarding_activativation"> <condition field="destination_number" expressio
Page: Call Group intercept
About A callgroup refers to a group of users who belong together in some logical way. For example, all the users in the accounting department can be in a callgroup. A user in a callgroup can perform a "call pickup" (or an "intercept") of a ringing phone b
Page: Call Groups
About Ring several phones at once. Ring all phone extensions in a group all at once or in order. Any two digit group number may be used. The following example will use group number 01. Group Extensions Add to Group 81[2 digit group number] Calling Extensi
Page: Call Legs
About You will frequently find the terms Channel, Call, Call Leg (the A leg and the B Leg) and Bridged Call. We will explain these terms here. When you place a phone call to another phone number, from the perspective of the switch that's handling the cal
Page: call_clientcode
call_clientcode string This is used by SNOM phones. When FreeSWITCH receives a SIP INFO message with x-clientcode header, this variable is set to the value of that header.
Page: call_timeout
call_timeout integer Controls how long (in seconds) to ring the B leg of a call when using the bridge application. The timeout is set on the A leg, and applies to any bridges that happen in the channel. If you need to set a timeout on a call that has no A
Page: callee_id_name
callee_id_name string
Page: callee_id_number
callee_id_number string
Page: Caller ID LDAP Lookup
About A simple script to sort incoming calls based on an LDAP entry, sort of a roll-your-own Grand Central. This is rather hackish: for example, I (ab)used the destinationIndicator field- this is an old field meant for directing telegraphs, but I didn't w
Page: Caller ID Privacy
About There are various methods to restricting the presentation of Caller*ID. Setting CID Method In the channel: Channel_Variables#Caller_ID_Related, specifically: sip_cid_type In the ga
Page: Caller Profile Field
About A Caller Profile Field can be used as a condition in the dialplan. Fields The following fields are available: username the username of the caller dialplan name of the dialplan module in use caller_id_name caller ID name caller_id_number caller ID
Page: caller_id_name
caller_id_name string readonly The caller id name set by the inbound call, not a real variable. Practically it is read only.
Page: caller_id_number
caller_id_number string readonly The caller id phone number set by the inbound call, not a real variable. Practically it is read only. From sofia.c, the values used (in precedence) are the user parts from: P-Preferred-Identity, P-Asserted-Identity, Remote
Page: campon
campon boolean Controls whether camping is enabled or not. Default: false Usage <action application="set" data="campon=true"/> <action application="bridge" data="sofia/gateway/myprovider/5551231234"/>
Page: campon_announce_sound
campon_announce_sound string File to play back after the first bridge fails (e.g. to announce what key to press to skip to fallback extension). Default: none Usage <action application="set" data="campon=true"/> <action application="set" data="campon_stop_
Page: campon_fallback_context
campon_fallback_context string Optional context name where the call is transferred for fallback
Page: campon_fallback_dialplan
campon_fallback_dialplan string Optional dialplan name where the call is transferred for fallback
Page: campon_fallback_exten
campon_fallback_exten string Extention number where the call is transferred for fallback
Page: campon_hold_music
campon_hold_music string Optional hold music to play while camping instead of default hold_music. Usage <action application="set" data="campon=true"/> <action application="set" data="campon_hold_music=/data/campmusic/RelaxingCampSounds.wav"/> <action appl
Page: campon_retries
campon_retries integer Controls how many times the bridge will be retried before falling back. Default: 100 Usage <action application="set" data="campon=true"/> <action application="set" data="campon_retries=13"/> <action application="bridge" data="sofia/
Page: campon_sleep
campon_sleep integer Controls how long to wait before starting a retry. Default: 10 Usage <action application="set" data="campon=true"/> <action application="set" data="campon_sleep=30"/> <action application="bridge" data="sofia/gateway/myprovider/5551231
Page: campon_stop_key
campon_stop_key dtmf digit DTMF digit that breaks the campon loop and skips directly to fallback extension Default: none Usage <action application="set" data="campon=true"/> <action application="set" data="campon_stop_key=1"/> <action application="set" da
Page: campon_timeout
campon_timeout integer This variable controls how long to attempt each bridge before timing out. It works exactly like call_timeout but only applies to camping. Default: 10 Usage <action application="set" data="campon=true"/> <action application="set" dat
Page: Category:TTS
About Text-To-Speech Information Freeswitch currently supports several TTS options. mod_unimrcp - TTS using MRCP protocol mod_cepstral - Commercial high-quality [Cepstral] voices & Text to Speech engine. mod_flite - An FOSS option
Page: Cause Code Substitution Example
About eschmidbauer created a simple Lua script that sends a replacement cause code to Leg A instead of the cause code received from Leg B. Cause Code Substitution Script Invoke the following Lua script in a parameter to a bridge command similar to the f
Page: CDR
About Call Detail Records are the data recorded during each call session. A CDR may contain attributes specific to each call session and eventually each leg of the call. CDR contain the phone numbers originating the call and receiving the call, time of th
Page: CDR and accounting variables
About These variables are used in various modules related to CDR and accounting: Module name mod_cdr_csv mod_cdr_sqlite mod_xml_ldap mod_nibblebill accountcode Account code is mostly an arbitrary value that you can assign on a per leg basis. An important
Page: CDR via ESL
About Event Socket Library allows one to retrieve CDRs in realtime. The CDR information are provided in the event CHANNEL_HANGUP_COMPLETE. If you set channel variable hangup_complete_with_xml=true, then the body of that event will be a full XML CDR Exam
Page: cdr_csv_base
cdr_csv_base string
Page: CentOS 5
About CentOS 5 is is deprecated. Please use CentOS 7 and RHEL 7 If you must use CentOS 5, the team has developed a build script that will only work with CentOS 5.10 You MUST be on CentOS 5.10 64–bit, as 32–bit is broken. CentOS 5.10 build script https://s
Page: CentOS 6
About This a FreeSWITCH installation manual tested in virtual machines with CentOS 6.5 32-bit and 64-bit operating systems. CentOS 6 is deprecated. Please use CentOS 7 and RHEL 7 FreeSWITCH 1.6 depends on many updated system libraries which are available
Page: CentOS 7
About CentOS 7 support is developing. Please help us update information about CentOS 7 to determine what steps are necessary to install and ensure proper operation of on CentOS 7. A number of things have changed to generate a basic operating system, so it
Page: CentOS 7 and RHEL 7
About This article contains installation instructions on hosts with CentOS7 or RHEL7 operating system. Installing from RPM Packages Release can be installed from packages as follows yum install -y
Page: Certificates
Certificate requirements are found in several areas of Freeswitch, and it's optional in a lot of other places. It's not always obvious how to manage your certificate files, for instance where to put them, what the format should be and how to configure Fre
Page: certs_dir
certs_dir string
CHANNEL string
Page: Channel States
About A channel (a call) will go through many different states during its lifetime. Here we will describe the different states that a channel might find itself in, and what each of those states mean. States State Description CS_NEW Channel is newly crea
Page: Channel Variables
About Channel variables are used to manipulate dialplan execution, to control call progress, and to provide options to applications. They play a pervasive role, as frequently consults channel variables as a way to customize processing prior to a channel's
Page: Channel Variables Catalog
Page: channel_name
channel_name string
Page: Cisco
About Cisco has SIP images for both old and new generations of their phones. All of them have been reported to work by many people on the IRC channel. There have been many issues with the older Cisco SIP implementations (buggy and non-RFC), but almost all
Page: Cisco 7960 SIP
About This page discusses the Cisco 796x series phones when used with SIP signaling. If you intend to use SCCP (skinny protocol) beware of the limitations in outbound dialing from Cisco phones as outlined in CISCO 7960 / 7960G LAB ENVIRONMENT: Firmware
Page: Cisco Sample XML Config
Introduction This page includes a Cisco Sample XML Configuration for XML-based phones, such as the 7945, 7965, 7970 models. Replace Freeswitch_IP_Address, Freeswitch_Extension, Freeswitch_Password and Freeswitch_Voicemail with your own settings. This conf
Page: Cisco SPA5XX
About Example configuration XML file for Cisco SPA500 series phones. Here is sample XML for provisioning two extensions. The first extension, 3000, is just a private line, the second extension, 2000, has SCA/SLA enabled. The third extension acts as a sp
Page: Cisco UC520 HowTo
NOTE The Cisco UC520 is obsolete hardware, went EOL March 2011 and end of sale date September 2011 xxx NOTE All the text below was last edited in 2009, it is therefore likely out-of-date, inaccurate and in dire need of a refresh xxx Introduction The UC5
Page: Client and Developer Interfaces
About Many languages can directly build FreeSWITCH modules or be run directly from the dialplan or from the fs_cli. There are a few ways that you can connect your own applications with FreeSWITCH: mod_xml_curl The curl module is used to provide FreeSWITCH
Page: Clock
This page is an attempt to collect all the information about clock and timing updated at December 2011. You can read the full thread on the freeswitch-dev mailing list with the subject: "Epoch current time difference"
Page: ClueCon Weekly Conference call
About This is the main page for our weekly conference calls to help the FreeSWITCH project. Sub-projects like programming tasks and goals, documentation, and janitorial will be discusse
Page: Codec Negotiation
About Codec negotiation can be a confusing subject. If you are not familiar with SDP (Session Description Protocol) then this adds an extra layer of mystery. If you are new to the subject (or are j
Page: codec_string
codec_string string Sets the base codec string to use. Usage <action application="set" data="codec_string=PCMU,GSM"/>
Page: Codecs and Media
About A codec is an encoding and compression scheme for a media stream or file format. The term is an acronym derived from COding and DECoding. See this article for more technical information:
Page: Coding Guidelines
About When submitting patches or otherwise adding code to the project please follow some basic coding guidelines. Most .c files will have this information at the very end for your reference: /* For Emacs: * Local Variables: * mode:c * indent-tabs-mode:t *
Page: Command Line Switches
About A list of command line switches to start in different modes and configurations. The options available may differ, depending on the operating system. Use the following command to see what is available. /usr/local/freeswitch/bin/freeswitch -help In ad
Page: Command-Line Interface fs_cli
About The fs_cli program is a Command-Line Interface that allows a user to connect to a running instance. The fs_cli program can connect to the process on the local machine or on a remote system. (Network connectivity to the remote system is, of course,
Page: Commit Message Guidelines
About How to better format your commit messages to meet the standards of the FreeSWITCH project. Guidelines for a Good Commit To the extent possible and appropriate, address only one issue per commit. When we review your commit, anything that doesn't need
Page: Common Errors
Hangup Causes See Hangup Causes for hangup causes. SIP Error Codes Many error codes you may run into while trying to debug your freeswitch installation are actually SIP error codes. You can find more information about them at RFC 3261 https://tools.ietf.o
Page: Community
About The FreeSWITCH Open Source Community welcomes your good ideas, code patches, donations of money and hardware, and documentation efforts; we will all benefit from these contributions. Contribute Code There are various ways you can contribute whether
Page: Compiling FreeSWITCH Tips and Shortcuts
About About text. Introduction This page contains useful tips on how the different Makefile options can help you with compiling. Discussion Compiling FreeSWITCH requires compiling lots of libraries and lots of files in various sub-directories. Sometimes y
Page: Conceptual overview
Endpoint, Dialplan, Session From pg. 10 of FreeSWITCH 1.0.6 book: "Endpoint modules are critically important and add some of the key features which make FreeSWITCH the powerful platform it is today. The primary role of these modules is to take certain c
Page: conf_dir
conf_dir string
Page: confcall JS
About Early JavaScript example for FreeSwitch using mod_spidermonkey with mod_spidermonkey_odbc. by krice (SwK @ #freeswitch) This application is only meant to be an example of the power and ease of using FreeSWITCH. This file includes work ripped off fr
Page: Conference
About The conference subsystem is quite flexible, offering both inbound and outbound conference calling. Configuration Configuration of the basic conference operation is discussed in mod_conference. Examples See Also mod_conference
Page: Conference Add Call Example
About Allows a moderator to add a conferee to an established conference. Discussion Some folks like the idea that a conference moderator (or any caller with "proper access") should be able dynamically to add a call to a conference. There are many ways to
Page: Conference Announce Count Inline
About This example is a very quick and dirty dialplan and conference config that lets you hear how many callers are in conference. Configuration First, add this group to your caller-controls in $FS_conf/autoload_configs/conference.conf.xml: <group name=
Page: Conference CDR
About This page describes how to enable conference CDRs and his contents. Introduction To understand how conference CDRs works and what we can do with it we'll configure a simple scenario and after making some calls we'll learn how to find the CDR file l
Page: Conference Javascript Dialer
About JavaScript: Dial a conferee, prompt to dial a digit to enter conference. Introduction This script, when set as an extension in the dial plan, will allow an internal caller to enter a phone number. That phone number will then be called on the con
Page: conference_auto_outcall_announce
conference_auto_outcall_announce string File name of audio message to play to conference member joining conference via the conference_set_auto_outcall application. Because the conference would be originating an outbound call to a member this typically wou
Page: conference_auto_outcall_caller_id_name
conference_auto_outcall_caller_id_name string Caller ID name to use when dialing endpoints to join the conference via the conference_set_auto_outcall application. Usage <action application="set" data="conference_auto_outcall_caller_id_name=$${effective_ca
Page: conference_auto_outcall_caller_id_number
conference_auto_outcall_caller_id_number string Caller ID number to use when dialing endpoints to join the conference via the conference_set_auto_outcall application. Usage <action application="set" data="conference_auto_outcall_caller_id_number=${effecti
Page: conference_auto_outcall_flags
conference_auto_outcall_flags string Conference flags to set for members joining conference via the conference_set_auto_outcall application. Usage <action application="set" data="conference_auto_outcall_flags=mute"/>
Page: conference_auto_outcall_maxwait
conference_auto_outcall_maxwait integer Maximum time in seconds that the channel that initiated the conference_set_auto_outcall will wait for members to join the conference. Usage <action application="set" data="conference_auto_outcall_maxwait=10"/>
Page: conference_auto_outcall_prefix
conference_auto_outcall_prefix string The value of conference_auto_outcall_prefix is prepended to each of conference_set_auto_outcall values, of which there can be more than one. Usage <extension name="mad_boss_intercom"> <condition field="destination_num
Page: conference_auto_outcall_profile
conference_auto_outcall_profile string Conference profile to use for members joining the conference via the conference_set_auto_outcall application. Usage <action application="set" data="conference_auto_outcall_profile=default"/>
Page: conference_auto_outcall_timeout
conference_auto_outcall_timeout integer Originate timeout to use when joining a member to a conference via conference_set_auto_outcall. Usage <action application="set" data="conference_auto_outcall_timeout=60"/>
Page: conference_controls
conference_controls string Set this variable to specify which conference control set to use when transferring a caller into a conference. This allows you, for example, to have a control set for the conference moderator and another control set for regular
Page: conference_enforce_security
conference_enforce_security boolean Allows the conference security to be overridden. This applies in two different scenarios, one for inbound and one for outbound. By default, conference security is always applied to inbound calls and is always skipped fo
Page: conference_enter_sound
conference_enter_sound string When set, this channel variable will override the enter-sound param on conference profile for any conferences into which the call leg is transferred. Usage <action application="set" data="conference_enter_sound=silence_stream
Page: conference_exit_sound
conference_exit_sound string Usage <action application="set" data="conference_exit_sound=silence_stream://10"/>
Page: conference_last_matching_digits
conference_last_matching_digits dtmf digit readonly Contains the last matching digits that the user on this channel sent into the conference. Usage <action application="log" data="INFO Last digits sent by this user: ${conference_last_matching_digits}"/>
Page: conference_member_id
conference_member_id string Contains the conference_member_id value for any conference to which the channel may be connected.
Page: conference_moderator
conference_moderator boolean Is true if the channel is connected to a conference as a moderator.
Page: conference_recording
conference_recording string Contains the file name of the conference recording for the conference to which the channel is connected.
Page: conference_uuid
conference_uuid string Every instance of a conference has its own UUID. This channel variable stores the conference UUID for the most recent conference in which the channel was a member. It is set as soon as the channel enters the conference, and will sho
Page: Configuration
About While this entire Confluence wiki provides configuration guidance, the sections below are good starting points to understand how to make do what you wish.
Page: Configuration OpenZAP - DigiumTDM400P Example
About Instructions on using the Digium TDM400P 4-port analog card in . OpenZAP has been superseded by FreeTDM. OpenZAP development is stalled and no new features will be developed. Use FreeTD
Page: Configuration Recipes
About The intention of this page is to come up with a series of 'recipes' which describe how to do various 'standard' tasks in FreeSWITCH. The hope is that enough of a functional description of the process is given, perhaps with examples, so that a new us
Page: Configuring Audiocodes Behind NAT
About About text. Configuring Audiocodes Behind NAT If there is a better way to accomplish this, please update this page! The scenario is this: FS with public IP <----- Internet -----> NAT <----- Audiocodes -----> PSTN The audiocodes is a gateway to the P
Page: Configuring AudioCodes MP-114/118
About Originally I really completely over thought this one and made far it more complex than needed be. Failed, of course. Then I went super simple with it. Worked! I hope I don’t get flamed for poor design, but it works!. I needed to create an unauthen
Page: Configuring FreeSWITCH
About Multi-tenant How to decide what modules to use? How to configure ? FreeSWITCH™ has a modular design. This design allows it to be extended without breaking functionality or requiring massive recoding efforts. Each module provides specific functiona
Page: Configuring SIP
About The SIP configuration is made in three different config files. Configuration vars.xml In this file, there is only one parameter that you need to specify. That parameter is $${domain}. This parameter should contain the domain name (or text string lik
Page: Confluence Wiki Standards and Guidelines
About Documentation Team: Please observe these standards and guidelines when editing Confluence wiki pages to maintain a consistent user experience. Copy the page excluding the wiki generated table of contents and paste it directly into a new Confluence p
Page: Connecting with Nortel
About This is to show how the Nortel type boxes can be connected as gateways/calling can occur between the systems. We are new to FreeSWITCH and Nortel so this may not all make perfect sense but is a start, this was started because basic calls are working
Page: Connecting your Avaya and FreeSWITCH via SIP
About this Example The following Example explains how to get FreeSWITCH and Avaya working with one another without the use of station licenses. Example requirements * Avaya's SES Server
Page: Contact Mapping
About Map a "friendly" phone number to a unique directory user address. Usage There are times when you would like to have a directory username which is very different from the contact information for reaching that user. For instance, maybe you want each
Page: continue_on_fail
continue_on_fail string Controls what happens when the called party can not be reached (busy/offline). If true the dialplan continues to be processed. If false the dialplan will stop processing. Can contain the return messages that will continue on fail a
Page: Contributing Code
About So you've compiled and installed FreeSWITCH on your system and you think to yourself "Hey this is pretty cool" I wonder how I'd like to help these guys out and contribute to this project. Well we would love to have you. There are various ways you ca
Page: Contributing Documentation
About This page explains how to get involved and help with the FreeSWITCH documentation project. This is a great opportunity for non-programmers to contribute to FreeSWITCH and ensure that FreeSWITCH has great documentation to match the great code base. J
Page: Convert Asterisk Dialplans to FreeSWITCH
Introduction In switching from Asterisk to FreeSWITCH™ you may discover that it's a little different doing things in the dialplan when compared to what you're used to, especially when you're dealing with IVRs. This page shows how I chose to convert my Ast
Page: Converting Asterisk to FreeSWITCH
About This document is an effort to help with the roadbumps that come up in the conversion from Asterisk to . Summary If you've been involved in open source VoIP and are now looking into FreeSWITCH, chances are you came from a background in Asterisk. In s
Page: copy_xml_cdr
copy_xml_cdr string Copies the other leg's XML CDR into this leg's CDR. For example, the A leg's CDR will contain a variable named b_leg_cdr whose contents are the URL-encoded XML CDR data from the B leg. This variable must be set on the B leg, so use {co
Page: Core Outline
About A discussion of the architecture and interfaces of FreeSWITCH. History 1999 Start of Asterisk and OpenH323 2003 anthm and bkw Join Asterisk 2005 First ClueCon, Asterisk 1.2 Released 200
Page: core_uuid
core_uuid string
Page: created_time
created_time string Contains the start time (in microseconds) of when the call was created. In the event that a call is transferred, this will contain the time of when the entire call was created, not that specific transfer. If you need the transfer creat
Page: Creating a freeswitch.log pastebin
If you are asking for assistance you may be asked to post a log to 's pastebin. This guide is advice to get the relevant information captured and displayed to make viewing the log file easier for the persons assisting you. it is recommended to perform the
Page: Creating a New Endpoint: Lifecycle of a Session
About FreeSWITCH endpoints are designed to create, handle and destroy media streams. This page describes sessions and channels from the point of view of writing an extension module for FreeSWITCH. FreeSWITCH Sessions and Channels A FreeSWITCH session is
Page: Creating New Modules
About This page outlines some of the structure available to build a new module. Before You Begin... Ensure that the functionality you're looking for has not already been implemented somewhere else. Collaborate with the original authors if there is somet
Page: Creating RPM repository
About This article explain how to create RPM repository of FreeSwitch modules and of FreeSwitch dependency libs. Pre Requirements Before you start you need to make sure that the host on which you are compiling RPM packages have: operating system RHEL 7, C
Page: current_application
current_application string
Page: current_application_data
current_application_data string
Page: current_application_response
current_application_response string
Page: CUSTOM Event SUBCLASSES (Event-Subclass)
About CUSTOM events are characterized by their subclass. You can filter on it. Follow is a list of subclasses, grepped from source code. CUSTOM events subclasses CUSTOM events are characterized by their subclass. You can filter on it. Follow is a list of


Page: D-Link
D-Link Products D-Link DIV-140 In general not very functional, with little technical support. Have never been able to actually dial out on the box, and there does not seem to be any way to have it automatically dial a call on a PSTN line. The documentatio
Page: data
data string
Page: Databases
About The FreeSWITCH core provides the API for modules to make connections to databases. DSN Data Source Names. Database connections are defined with DSN in XML configuration parameters like "core-db-dsn" and "odbc-dsn". Format The generic DSN format is <
Page: db_dir
db_dir string
Page: Debian 7
About These archived instructions apply to Debian 7 "Wheezy". Substantial changes were made to version 1.6 that depend on libraries included in Debian 8 "Jessie". You have the choice of either installing a pre-compiled snapshot package or downloading and
Page: Debian 8 Jessie
About Please NOTE that Debian 9 “Stretch” is now officially supported by . Debian 8 "Jessie" was the reference platform for as of version 1.6. We recommend Debian 9 "Stretch" as it's most suitable for the 1.8 release. echo "deb
Page: Debian 9 Stretch
About Debian 9 “Stretch” is now officially supported by . Dependencies are available from FreeSWITCH repository via the "apt-get build-dep freeswitch" command. Debian 9 "Stretch" is the reference platform for as of version 1.8 and is STRONGLY recommend
Page: Debian Post-Install Tasks
About After the final "make" command to build from source, you might want to perform these tasks to set permissions and ownership of files and directories. Starting FreeSWITCH If you start FreeSWITCH for the first time without setting permissions and file
Page: Debugger
About This page is about using a debugger with FreeSWITCH. This is an advanced topic. For an introduction to troubleshooting please see Troubleshooting FreeSWITCH Troubleshooting Handy Troubleshooting Links Troubleshooting FreeSWITCH Packet Capturing http
Page: Debugging
About Welcome to FreeSWITCH debugging! As with all major software projects there will be occasional issues. You want your issue fixed quickly. We want your issue fixed quickly. The best way to quick resolution is to follow a few steps presented here. You
Page: Debugging Event Socket Message
You may want to see what's going back and forth between FreeSWITCH and your application when you are developing an ESL application. Sure there are many ways to do this, here is just one: The idea is to put a Man in the Middle, and he tells us whatever he
Page: Debugging Freeswitch
About This page is about using a debugger with FreeSWITCH. If you are new to troubleshooting, asking for help, or filing bug reports, please read this first. It will save you a l
Page: Default Configuration
About A discussion of the default configuration files and how they interact. fs_default_config.jpg Introduction FreeSWITCH ships with a large number of configuration files. This page will help explain the various configuration files and their default
Page: Default Dialplan QRF
About The default dialplan (conf/dialplan/default.xml) sets up some basic functionality for testing and building a phone system. This includes the ability to dial between extensions which are set up in the User Directory and to pseudo-destinations like th
Page: default_language
default_language string Controls the default language the Say Phrase engine will use when no language is explicitly specified in the API call. This permits you to easily support multiple languages by only changing a single variable at call time. Usage <ac
Page: Demo IVR
About This is the new version of the demo IVR XML <include> <menu name="demo_ivr" greet-long="phrase:demo_ivr_main_menu" greet-short="phrase:demo_ivr_main_menu_short" invalid-sound="ivr/ivr-that_was_an_invalid_entry.wav" exit-sound="voicemail/vm-goodbye
Page: deny_refer_requests
deny_refer_requests string If this variable is set to true on either leg of a bridged SIP call, and the other end sends a REFER request, this will be denied by FreeSWITCH.
Page: Deployment Notes
Multiple FreeSWITCH Instances in One Box Different Base Directories Follow the Installation Guide twice: Instance A ./configure --prefix=/usr/local/instance_a/ Instance B ./configure --prefix=/usr/local/
Page: destination_number
destination_number string
Page: Detect Active Channels
About Methods to list active call sessions. Heartbeat >From: bkw__ Even more efficient is to subscribe to the HEARTBEAT, as it has the session count in there. This fires every few seconds. Lua Script >From: Marcel Haldemann Sent: Tuesday, 26 January, 2016
Page: detect_speech_result
detect_speech_result string readonly The result of play_and_detect_speech.
Page: Developer Documentation
Development FreeSWITCH maintains a Team City Continuous Integration (CI) server at (Thanks DRK!) Contact if you would like access and wish to set up a buil
Page: Developer Potpourri
About There are lots of tidbits that don't easily fall into a specific category for developers, so here are some miscellaneous and somewhat random tips that have been gleaned from conversations with the FreeSWITCH™ authors. Apache Portable Runtime https:/
Page: Developers
About Information for developers who wish to create custom applications based on FreeSWITCH or contribute improvements and bug fixes back to the FS community. See also: Contributing Code. Stash Repository For Commiters HTTPS git clone https://${YOUR_U
Page: Dial by name directory
About dial_by_name_directory.js is a refactor of the original dial by name script, scripts/aadir.js Concept The script prompts the caller to enter the user they are trying to reach, last name/first name. The caller enters letters until a unique match is
Page: Dial Plan Action Perl Example
About The following is an example of how you can have Perl assume the role of your dial plan. Script requirements * mod_perl Example script <?xml version="1.0" encoding="utf-8"?> <\!-- In this XML file (/usr/local/freeswitch/conf/dialplan/default.xm), we'
Page: dialed_domain
dialed_domain string
Page: dialed_group
dialed_group string
Page: dialed_user
dialed_user string
Page: Dialing tel links with freeswitch
General Write a handler for tel links in your dialplan. <include> <extension name="handle_tel"> <condition field="destination_number" expression="^tel:(.*)$"> <action application="transfer" data="$1 XML default"/> </condition> </extension> </include> Fire
Page: Dialplan
About The dialplan is a decision tree that provides routing services to bridge call legs together, execute dialplan applications, and invoke custom scripts that you write, among other things. Much of your effort will be focused on configuring a dialplan t
Page: Dialplan FollowMe
About Follow Me is the idea of ringing one or more extensions or gateways when trying to connect a call. Frequently the best example is given as the travelling worker, who may be at his office phone, or at his cell phone, you would like to try his office
Page: Dialplan Recipes
About This page is a "Dial Plan Cookbook" Limit Examples Multi-line rollover Paging Multicast Paging Conferencing and Int
Page: digits_dialed
digits_dialed string
Page: Dinstar GSM gateway FreeSwitch HowTo
About Dinstar's products include E1/T1 gateway, VoIP GSM/CDMA gateway, access gateway, softswitch, IP phone, billing systems, and Internet voice value-added service total solutions, etc., which are characterized by complete specifications and good compati
Page: direction
direction string It is used to determine if the particular leg of the call is inbound or outbound. Usage <condition field="${direction}" expression="^inbound$">
Page: Directory
About The user directory holds credentials and configuration information for devices that register with . Default Config Parent User Directory The default parent XML directory file is conf/directory/default.xml and traverses child file system director
Page: disable_app_log
disable_app_log boolean
Page: disable_q850_reason
disable_q850_reason boolean When set to true, this disables sending of the Reason header, which includes the Q.850 reason code, in responses and BYEs. For a list of hangup causes and their Q.850 codes, see Hangup Causes
Page: disable_radius_start
disable_radius_start boolean
Page: disable_radius_stop
disable_radius_stop boolean
Page: disable_rtp_auto_adjust
disable_rtp_auto_adjust string Disable rtp auto adjust if it is not behaving as you expected. It stops the switch from rewriting the RTP destination based on the source. When RTP Auto-Adjust is ON FreeSWITCH will change the destination RTP address to matc
DISPLACE_HANGUP_ON_ERROR boolean When set to true this channel variable will cause the call to hangup if there is an error when trying to mod_commands the call. The default is false. The default behavior before 2013/03/21 was to hangup. Usage <action appl
Page: dl_cid_msg
dl_cid_msg string
Page: dl_from_host
dl_from_host string
Page: dl_from_user
dl_from_user string
Page: dl_host
dl_host string
Page: dl_user
dl_user string
Page: DNS
About Here we list several types of DNS records that integrate quite nicely with FreeSWITCH and IP communications. ENUM A way to query E.164 numbers to keep calls "on-net". SRV These records can give you a pseudo redundant network. Allowing failover (or p
Page: Docs Team
About This page tracks efforts of the FreeSWITCH Documentation Team. Any community user can ask to edit a page; this is a great way to give back to the community even if you don't write code. If you would like to help with the documentation, please follow
Page: Documentation Guidelines
About First of all, thanks for wanting to share your knowledge. The wiki is growing each day and these guidelines will help us to get that knowledge documented in a structured way. You can add anything that will help users to install, configure and use Fr
Page: domain_name
domain_name string
Page: DragonFlyBSD
About Instructions for installing on DragonFlyBSD as vetted by bkw__ in June, 2014. We need YOU to maintain this port of FreeSWITCH. Please contact one of the FreeSWITCH core developers on Freenode IRC channel #freeswitch or the freeswitch-users@lists.f
Page: drop_dtmf
drop_dtmf boolean Set this on an inbound channel before answer or on an outbound channel before the bridge/originate in order to prevent DTMF events from being sent to the channel. Only tested with RFC2833, may also work for INFO / inband. See Commit 60f7
Page: drop_dtmf_masking_digits
drop_dtmf_masking_digits dtmf digit If drop_dtmf is true play specified tone for every tone received. Usage Each DTMF tone that is entered into the a-leg will be dropped and a "d" sent to the b-leg. <action application="set" data="drop_dtmf=true"/> <actio
Page: drop_dtmf_masking_file
drop_dtmf_masking_file string If drop_dtmf is true, play specified file for every tone received. Usage Each DTMF tone that is entered into the a-leg will be dropped and the file dtmf_masking_tone played to the b-leg. <action application="export" data="dro
Page: DTMF
Mode Overview In the context of two bridged analog channels we need to consider 5 possible approaches to DTMF handling per audio path (tx and rx). DTMF behavior for a single audio path can be captured by a triple of booleans as follows: Matrix Mode Suppre
Page: dtmf_type
dtmf_type string For inband DTMF, start_dtmf must be used in the dialplan. Usage <action application="set" data="dtmf_type=info"/><action application="set" data="dtmf_type=rfc2833"/><action application="set" data="dtmf_type=none"/>
Page: dtmf_verbose
dtmf_verbose boolean Enables verbose logging of Spandsp DTMF detector. Default is false. Set this variable prior to executing spandsp_start_dtmf. Usage <action application="set" data="dtmf_verbose=true"/> <action application="spandsp_start_dtmf" />
Page: DUALPhone
DUALphone 3081 Registration: works Caller Id: works Call in/out: works Call waiting: works Transfer calls: works Park calls: unknown
Page: duration
duration integer
Page: Dynamic Payloads
About FreeSWITCH supports dynamic payloads. Payload Information RTP payloads are a 7 bit number 0-128 divided in 2. 0-95 are reserved by the IANA. 96-128 are considered dynamic. When matching codecs between 0 and 95: The payload MUST be matched by the _nu


Page: Early Media
About The concept of "early media" can sometimes confuse those new to telephony. RFC 3960 defines it this way: Early media refers to media (e.g., audio and video) that is exchanged before a particular session is accepte
Page: easy_acctcode
easy_acctcode string
Page: easy_destnum
easy_destnum string
Page: easy_dialstring
easy_dialstring string
Page: easy_group
easy_group string
Page: easy_limit
easy_limit string
Page: eavesdrop_annnounce_macro
eavesdrop_annnounce_macro string
Page: eavesdrop_announce_id
eavesdrop_announce_id string
Page: eavesdrop_group
eavesdrop_group string
Page: eavesdrop_indicate_failed
eavesdrop_indicate_failed string
Page: eavesdrop_indicate_idle
eavesdrop_indicate_idle string
Page: eavesdrop_indicate_new
eavesdrop_indicate_new string
Page: eavesdrop_require_group
eavesdrop_require_group string
Page: effective_ani
effective_ani string
Page: effective_aniii
effective_aniii string
Page: effective_caller_id_name
effective_caller_id_name string Sets the effective callerid name. This is automatically exported to the B-leg; however, it is not valid in an origination string. In other words, set this before calling bridge, otherwise use origination_caller_id_name. If
Page: effective_caller_id_number
effective_caller_id_number string Sets the effective callerid number. This is automatically exported to the B-leg; however, it is not valid in an origination string. In other words, set this before calling bridge, otherwise use origination_caller_id_numbe
Page: effective_sip_cid_in_1xx
effective_sip_cid_in_1xx boolean Prevents FreeSWITCH when it receives 183 from leg-B to automatically insert RPID before sending 183 to leg-A. Usage <action application="set" data="sip_cid_in_1xx=false"/>
Page: Email2callback
About A Python script that triggers a call from an e-mail message. Steps These instructions assume you are using postfix on a debian based system. Please adapt to your own system appropriately. To use the following system, send an email to callback@FQDN
Page: Embedding FreeSWITCH
About Just as FreeSWITCH™ can run embedded languages you can also embed FreeSWITCH™ into other programs in a variety of languages. FreeSWITCH™ is designed so you can interact with it through modu
Page: enable_file_write_buffering
enable_file_write_buffering string Enable file buffering when recording a file, defaults to true if not set. Buffer size defaults to SWITCH_DEFAULT_FILE_BUFFER_LEN but can be overridden by putting bytes size instead of true (see below example). Mailing li
Page: enable_heartbeat_events
enable_heartbeat_events boolean
Page: end_epoch
end_epoch integer
Page: end_stamp
end_stamp string
Page: end_uepoch
end_uepoch integer
Page: endpoint_disposition
endpoint_disposition string
Page: Endpoints
About Every call leg (channel) is by definition a connection between FreeSWITCH and something else. That something else can be a VoIP phone, a PRI connection or even an audio device on your computer. Each type of device has their own protocol for setting
Page: Energy Levels, Silence Thresholds, Silence Hits
About This article is aimed at guiding you through source code modifications to you help you discover the actual reported values FreeSWITCH uses to determine silence and modify your threshold/hits values accordingly to provide optimal usage of silence det
Page: Enterprise Deployment
About All listings beneath the quote here are considered a work of fiction as of 14 May 2008. Please read it and know that you will have to do your own due diligence to scale FreeSWITCH. "Routinely my FreeSWITCH routing servers reach > 400 sessions Per Se
Page: Enterprise deployment Clustered File Systems
About Clustered File Systems are filesystems that can be accessed by multiple nodes on the network. This is generally similar to NFS but in general dont rely on one system as the server, eliminating the single point of failure. External Links Oracle Clu
Page: Enterprise Deployment Debian Wheezy Corosync Pacemaker
About by andee This page documents my personal experience with setting up an Active/Passive FreeSWITCH configuration on Debian Wheezy using only binary packages available from the official Debian and FreeSWTICH repositories, although this guide may help w
Page: Enterprise deployment DNS SRV
About DNS supports SRV records for advertising IPs for a service. These support priorities and weights and are somewhat similar to MX mail server records. They can be used to provide through DNS one or more IPs for accessing a domain via SIP. IPs can be g
Page: Enterprise deployment IP Failover
About To provide high availability to protect from a single server meltdown, crash, or to have minimum downtime maintenance e.g. (1-4 seconds of lost audio, with no dropped calls) , use this configuration. NOTE: This is not a cluster, each single machine
Page: Enterprise deployment OpenSIPS
About A load balancer setup can share load between multiple FS hosts according to load. A single ingress IP can be presented to the customer for the entire cluster simplifying the customer configuration (this can be combined with DNS SRV
Page: Enterprise deployment UltraMonkey
About This method provides load balancing, and scalability. It should work across many protocols such as SIP, IAX, Woomera, H.323, and others. You may use this method on your FreeSWITCH™ servers regardless of operating system or platform. The Director Ser
Page: Enterprise Deployment with Corosync
About by vipkilla This is uses the same concept discussed here, which I also wrote. This setup was tested on Debian Squeeze. There are two example servers here, fs01-a ( and
Page: Enterprise deployment Xen
Why should I use Xen? Load management Move heavy use processes to idle servers Move idle processes to busy servers Reduce costs Buy less servers by making better use of idle CPU time This thing this is so g
Page: ENUM Caller ID lookup
About Performing CNAM dips with ENUM/E.164 and mod_perl This is a simple example of how to perform ENUM Caller-Name (CNAM) dips via the service. This was written as a proof-of-concept and comes with no support, warranty, guarantee, or implication
Page: Enum.conf.xml
Default Configuration File From SVN trunk See Also Default Configuration
Page: ep_codec_prefer_sdp
ep_codec_prefer_sdp string ep_codec_prefer_sdp contains the "endpoint" codec string on the A leg. The order of preference is chosen by the A leg
Page: ep_codec_string
ep_codec_string string ep_codec_string contains the "endpoint" codec string on the A leg. This codec list includes only the codecs that both the A leg and FreeSWITCH agree upon. This variable is set only when inbound-late-negotiation is enabled on the SIP
Page: Erlang event.conf.xml
Default Configuration File <configuration name="erlang_event.conf" description="Erlang Socket Client"> <settings> <param name="listen-ip" value=""/> <param name="listen-port" value="8031"/> <param name="nodename" value="freeswitch"/> <param name="c
Page: Event List
About The current up-to-date list of events can be found in src/switch_event.c in a char array called EVENT_NAMES and is summarized here. Event Types (Classes) Most of FreeSWITCH events belongs to one of those types (grepped from source code): ADD_SCHEDUL
Page: Event multicast.conf.xml
Default Configuration File From SVN trunk See Also: Default Configuration
Page: Event Socket Library
About Event Socket Library - see mod_event_socket to see examples and uses for ESL. This page describes how to use the Event Socket Library to talk to FreeSWITCH. ESL has no dependencies on FreeSWITCH. It can be built and moved to client/remote machines.
Page: Event Socket Outbound
About Discussion and examples for using the Outbound Event Socket. mod_event_socket's "socket" app is similar to the network based fast-agi (FAGI
Page: Event Types (Classes, or Names, of Events)
About Events comes in many "types" or "classes". You can filter on Event type so you get only a subset of the events in FreeSWITCH Event System Event Type (Name or Class) List Event Types (Classes) Most of FreeSWITCH events belongs to one of those types (
Page: Example Email Conference Control
About by excelsio 2010.04.20 (ancient) Currently we have a nice script Examples_JavaScript_Conference_IVR for setting up a publicly available conferencing system. Unfortunatela
Page: Example Extension Status
About The following dialplan example shows how to implement what is a common scenario for me: If a particular extension is registered to the SIP server the call should be bridged to the extension immediately and sent to the answerphone after 30s if there
Page: Example Hangup hook
About About text. Example function on_hangup(hup_session, how) { console_log("err", how + " HOOK" + " name: " + + " cause: " + hup_session.cause + "\n"); //exit here would end the script so you could cleanup and just be done exit(); } /
Page: Example Offsite phones
About Below are steps to get remote Exts 20xx able to call one another and call on-site telephones. In the default directory, register the phones as normal: <include> <user id="2001" mailbox="2001"> <params> <param name="password" value="1234"/> <param
Page: Example Recipewizard
About Example speech recognition application in python. Many instructions and comments exist in the script file itself. Configuration This tutorial assumes you have mod_python
Page: Example Starting A Script With Systemd
About 2017.01.19 by boteman I modified a script originally written by anthm that responds to particular events emitted by the FreeSWITCH conference module. During development it was natural to stop and start the script manually whenever I needed to edit i
Page: Example:
About This is an old example NOTE All the text below was last edited in 2008, it is therefore likely out-of-date, inaccurate and in dire need of a refresh NOTE: There appears to be an issue with mod_python on FreeSWITCH ( or with this .py file ) since seg
Page: Example:
About You will need mod_python working for this... also this script was adapted from a working script, but the script below in its exact form was not actually tested. There might be minor bugs. from freeswitch
Page: Examples
About This category is the parent category for examples.
Page: Examples of /etc/init.d/freeswitch
Unix-style /etc/init.d/freeswitch The various unix-based systems often start FreeSWITCH from a script that lives in /etc/init.d/freeswitch. Linux Debian/Ubuntu You should only need to use this if you are not installing from a pre-built package. The existi
Page: Examples spoof py
About by 'Chrismoos' Caller ID spoofing, TTS, and getDigits. This first prompts a caller to enter an access code, and if correct, the caller can then enter a number to spoof, and a destination number. Also, this example will send an email whenever a spoof
Page: exec_after_bridge_app
exec_after_bridge_app string Execute an application command after the bridge has been terminated. To be used with exec_after_bridge_arg. By contrast, to execute when the bridge has been established use execute_on_answer. Usage <action application="set" da
Page: exec_after_bridge_arg
exec_after_bridge_arg string Argument passed to exec_after_bridge_app. Usage <action application="set" data="exec_after_bridge_app=transfer"/> <action application="set" data="exec_after_bridge_arg=2102"/>
Page: execute_on_answer
execute_on_answer string Execute an application (not an api) when the called party answers. To set an api, use api_on_answer. execute_on_answer will also allow for more control when dealing with no answer conditions in cases where you cannot ignore early
Page: execute_on_fax_detect
execute_on_fax_detect string
Page: execute_on_fax_failure
execute_on_fax_failure string
Page: execute_on_fax_result
execute_on_fax_result string
Page: execute_on_fax_success
execute_on_fax_success string
Page: execute_on_media
execute_on_media string Execute an application when the far end sends media, i.e. ringing or 183/SDP. The command is executed only on channels that are not already answered. Just use export or export with nolocal: prefix to make sure it is executed when b
Page: execute_on_media_timeout
execute_on_media_timeout string Execute an application if the far end stops sending media and times out. Usage <action application="export" data="nolocal:execute_on_media_timeout=lua oops_timeout.lua ${uuid}"/><action application="set" data="execute_on_me
Page: execute_on_originate
execute_on_originate string Execute syntax: <app> <arg> Asynchronous syntax: <app>::<arg> Executes code on successful origination. Successful origination means the remote server responds, NOT when the call is actually answered. Usage originate {ignore_ear
Page: execute_on_pre_answer
execute_on_pre_answer string Execute an application (not an api) when the called party "preanswers" - that is, when some form of early media is coming or the far end sends a 180 Ringing. The command is executed only on channels that are not already answer
Page: execute_on_ring
execute_on_ring string Execute a command when the called party rings. Usage <action application="set" data="nolocal:execute_on_ring=lua markring ${uuid}"/>
Page: execute_on_sip_extra_headers
execute_on_sip_extra_headers string Execute a command when SIP extra headers are detected in a SIP message.
Page: execute_on_sip_reinvite
execute_on_sip_reinvite string Execute a command when SIP Reinvite.
Page: export_vars
export_vars string export_vars lists variables to be exported to the other leg upon bridge. Unlike export, it only lists the variables to export without actually setting them. This is useful to transfer information from a-leg (INVITE) to the future b-leg
EXTEN string
Page: Extensions.conf
About Example configuration for Asterisk Dialplan module Default configuration file From freeswitch vanilla configuartion
Page: External Profile
About This page holds information about the external profile, which is supplied by Freeswitch default environment. Overview By default FreeSWITCH supplies an external profile that runs on port 5080. The external profile handles external or outbound regi


Page: Fail2Ban
About Fail2Ban is an intrusion prevention system that works by scanning log files and then taking actions based on the log entries. Fail2ban specifically supports FreeSWITCH as part of its base configuration and can be easily enabled. Fail2ban scans FreeS
Page: fail_on_single_reject
fail_on_single_reject string This is useful when using the , AND operator in the data field of a bridge. The AND operator notifies a list of destinations, bridging to the first destination that accepts the call. Typically if a destination in the list reje
Page: failed_xml_cdr_prefix
failed_xml_cdr_prefix string If you set that on the A leg and any and all failed B originates generate a full XML CDR report and set it as a variable, this includes during a forked dial. So say you try to call sofia/profile/a@xxxxxxx,sofia/profile/b@xxxxx
Page: failure_causes
failure_causes string Controls which failure causes will be considered as a failure to the bridge(s). This will change the values for which continue_on_fail will fail by default unless continue_on_fail is set to true. Usage <action application="set" data=
Page: FAQ
(This FAQ will be farmed into explanatory narratives in the appropriate sections. - JB) Q: So where do I find wishlists for the developers of this awesome software? A: You can find the wish list for each developer here: Anthony Minessale (anthm) - http://
Page: Fax on AudioCodes Mediant
About This page shows how to handle Fax on AudioCodes Mediant Gateway Fax on Audiocodes Mediant PRI gateway Fax on this gateway is slightly tricky: Do not enable fax at all on this gateway, but when FreeSwitch will ask it to use T.38 it will do that hap
Page: fax_bad_rows
fax_bad_rows string
Page: fax_disable_v17
fax_disable_v17 boolean fax_disable_v17 prevents the use of the V.17 (9,600bps to 14,400bps) FAX modem. This means FAXes will be limited to the use of V.29 (9,600bps and 7,200bps) and V.27ter (4,800bps). Some VoIP systems handle V.17 so poorly there are o
Page: fax_document_total_pages
fax_document_total_pages integer
Page: fax_document_transferred_pages
fax_document_transferred_pages integer
Page: fax_ecm_requested
fax_ecm_requested boolean
Page: fax_ecm_used
fax_ecm_used boolean
Page: fax_end_page
fax_end_page string
Page: fax_filename
fax_filename string
Page: fax_force_caller
fax_force_caller boolean
Page: fax_header
fax_header string
Page: fax_ident
fax_ident string
Page: fax_image_resolution
fax_image_resolution string
Page: fax_image_size
fax_image_size string
Page: fax_local_station_id
fax_local_station_id string
Page: fax_prefix
fax_prefix string
Page: fax_remote_station_id
fax_remote_station_id string
Page: fax_result_code
fax_result_code string Result Code Message 0 OK 2 Timed out waiting for initial communication 3 Timed out waiting for the first message 5 The HDLC carrier did not stop in a timely manner 6 Failed to train with any of the compatible modems 13 Unexpected me
Page: fax_result_text
fax_result_text string
Page: fax_start_page
fax_start_page string
Page: fax_success
fax_success boolean
Page: fax_transfer_rate
fax_transfer_rate string
Page: fax_use_ecm
fax_use_ecm boolean
Page: fax_v17_disabled
fax_v17_disabled boolean
Page: fax_verbose
fax_verbose boolean
Page: Faxlib documentation
Will this ever be accurate again? FreeSWITCH uses v8 for Javascript now. About This is the documentation for an object based approach to faxing for FreeSWITCH with Javascript ( mod_spidermonkey
// -*- mode:c; tab-width:4; c-basic-offset:4; c-indent-level:4; indent-tabs-mode:nil; -*- /* * Version: MPL 1.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in comp
Page: Features
About is full of awesome features that can help you on your daily basis. Here we will show you some of them FreeSWITCH Features Default implementation is for a PBX or Softswitch The core (libfreeswitch ca
Page: Fedora 29
About This article contains installation instructions on hosts with CentOS7 or RHEL7 operating system. Building from source Release can be built from source if you desire but it is not recommended. dnf install -y git alsa-lib-devel autoconf automake bis
Page: fifo_announce
fifo_announce string If you invoke fifo without providing an announce file as an argument, mod_fifo will fall back to the value of fifo_announce.
Page: fifo_bridged
fifo_bridged boolean mod_fifo sets fifo_bridged to true when manually tracking a call.
Page: fifo_caller_consumer_import
fifo_caller_consumer_import string Import list of variables from the caller to the consumer. Usage <action application="set" data="fifo_caller_consumer_import=var1,var2"/>
Page: fifo_caller_exit_key
fifo_caller_exit_key dtmf digit When the caller dials one of the digits you define in fifo_caller_exit_key, they will exit the fifo.
Page: fifo_chime_freq
fifo_chime_freq integer The time to wait between playing each chime.
Page: fifo_chime_list
fifo_chime_list string A , delimited list of files to broadcast while the customer is waiting for someone to answer.
Page: fifo_consumer_caller_import
fifo_consumer_caller_import string Import list of variables from the consumer to the caller. Usage <action application="set" data="fifo_consumer_caller_import=var1,var2"/>
Page: fifo_consumer_exit_key
fifo_consumer_exit_key dtmf digit When fifo_consumer_exit_key is pressed, we hangup on the caller (unless we've put the caller on hold).
Page: fifo_consumer_id
fifo_consumer_id string If set, mod_fifo will set the fifo_serviced_by variable to this value when the consumer answers a call from the fifo.
Page: fifo_consumer_wrapup_key
fifo_consumer_wrapup_key dtmf digit If this variable is set and the consumer is in wait mode, mod_fifo will cause the consumer to reenter the fifo when they press fifo_consumer_wrapup_key or the fifo_consumer_wrapup_time milliseconds timeout is met.
Page: fifo_consumer_wrapup_sound
fifo_consumer_wrapup_sound string Played at the end of a serviced caller when wrapup starts.
Page: fifo_consumer_wrapup_time
fifo_consumer_wrapup_time string A timeout in milliseconds that, when reached, will cause the consumer to reenter the fifo.
Page: fifo_hold_music
fifo_hold_music string The music played to the consumer when they place a caller on hold by pressing 0. It falls back to fifo_music and then the default hold music if fifo_music is not set.
Page: fifo_manual_bridge
fifo_manual_bridge boolean readonly mod_fifo sets this variable to true when a manually tracking a call.
Page: fifo_member_wait
fifo_member_wait string If this variable is set to wait, the consumer's leg will not hangup when the caller hangs up. This is the default behavior. If set to nowait, the consumer's leg will hangup when the caller hangs up. Usage <action application="set"
Page: fifo_music
fifo_music string
Page: fifo_orbit_announce
fifo_orbit_announce string This file will be played to the caller before transferring the caller to fifo_orbit_exten.
Page: fifo_orbit_context
fifo_orbit_context string Sets the context for fifo_orbit_exten. Must be set prior to placing the caller in the queue. Usage <action application="set" data="fifo_orbit_context=MyContext"/>
Page: fifo_orbit_exten
fifo_orbit_exten string Syntax: exten:timeout Set a destination extension and timeout, and it will cause FreeSWITCH to run the caller through the FIFO until the specified timeout, then the caller will get transferred to the destination extension. Can be s
Page: fifo_outbound_announce
fifo_outbound_announce string Play this to a member.
Page: fifo_outbound_uuid
fifo_outbound_uuid string Used by mod_fifo to track manual calls.
Page: fifo_override_announce
fifo_override_announce string Play this announcement to the consumer.
Page: fifo_pop_order
fifo_pop_order string A , delimited list of priorities to answered from most important to least important. Usage <action application="set" data="fifo_pop_order=1,2" />
Page: fifo_position
fifo_position integer readonly mod_fifo writes the caller's position to this variable.
Page: fifo_priority
fifo_priority string
Page: fifo_record_template
fifo_record_template string If set, this is the file where the session will record to, expanded on the caller channel.
Page: fifo_role
fifo_role string For reporting purposes, i.e. in the CDRs, the variable will contain "consumer" or "caller" depending upon the call leg.
Page: fifo_serviced_by
fifo_serviced_by string
Page: fifo_serviced_uuid
fifo_serviced_uuid string
Page: fifo_status
fifo_status string The status of the consumer or caller. Usually WAITING or TALKING.
Page: fifo_strategy
fifo_strategy string
Page: fifo_target
fifo_target string
Page: fifo_timestamp
fifo_timestamp string Contains the timestamp of when the caller was bridged to the consumer.
Page: fire_asr_events
fire_asr_events boolean If set, fire an event when speech is detected.
Page: Firewall
About If you are going to route traffic across your network, you need to ensure that you do not have a firewall blocking traffic on the specified network paths. Commonly firewalls are installed at egress points, where your local network connects to the
Page: flow_billmsec
flow_billmsec integer
Page: flow_billsec
flow_billsec integer
Page: flow_billusec
flow_billusec integer
Page: Force transfer context example
About by sward How to use force_transfer_context in a dialplan. Getting the page started... Example: Making a transfer-handling context <?xml version="1.0" encoding="utf-8"?> <!-- This context is designed only to be accessed by channels which are bridge
Page: force_transfer_context
force_transfer_context string When handling transfer/REFER FreeSWITCH normally inherits the context from the original channel. This variable forces the context in which to handle the transfer/REFER. Usage <action application="bridge" data="{force_transfer
Page: force_transfer_dialplan
force_transfer_dialplan string When handling transfer/REFER FreeSWITCH normally inherits the diaplan from the original channel. This variable forces the dialplan in which to handle the transfer/REFER.
Page: FreeBSD
About These docs are BARE minimum to allow Freeswitch to compile. It will use the default compiler on your platform unless you override it with CC and CXX variables prior to configure. None of the extra hoops need to be jumped through any longer. It shoul
Page: FreeSWITCH 1.6 Video
THIS PAGE IS BEING RETIRED, USE Debian 8 Jessie INSTEAD. MOST OF THESE STEPS HAVE ALREADY BEEN INTEGRATED INTO THE PACKAGES. About Detailed information on how to properly build and test the new 1.6 with awesome video c
Page: FreeSWITCH 1.6.19 release notes
Today we are excited to announce the release of 1.6.19! Some of the wonderful improvements to this release include: adding wav support to mod_av, support for a bigger dialstring in mod_callcenter, and a video blind feature to start/stop the receiving of v
Page: FreeSWITCH 1.6.x Release notes
FreeSWITCH 1.8.x is available. See FreeSWITCH 1.8.x Release notes. List of releases: 1.6.20 (Release date: 24 Jan 2018) We are excited to announce the release of 1.6.20! This was a routine release. Tarball:
Page: FreeSWITCH 1.8.x Release notes
List of releases: 1.8.5 (Release date: 24 Jan 2019) Tarball: Packaging:
Page: FreeSWITCH And The Opus Audio Codec
About This page derives from a document written initially by Dragos and Giacomo in October 2016 (you can find the original attached here for historical reasons). It is an attempt to provide a general view of the interaction between FreeSWITCH and Opus, un
Page: FreeSWITCH Databases
About The default FreeSWITCH configuration uses a series of SQLite databases that are stored the /usr/local/freeswitch/db directory of a FreeSWITCH installation. This configuration can be changed to connect to other databases like PostgreSQL (native) or M
Page: FreeSWITCH DB in RAMdrive
About Moving the ephemeral databases to a RAM disk will greatly improve performance, and it is CRITICAL to move them to a RAM disk if you use SSDs. More info on running FreeSWITCH on SSDs is here. Disc
Page: FreeSWITCH Dependencies
About FreeSWITCH tries to leverage existing Open Source libraries and projects. Note that when a "make installall" is done, these are downloaded for you; you do not have to download and install them yourself (in fact even if you do, they are ignored). Th
Home page: FreeSWITCH Explained
Start Here Welcome to FreeSWITCH™, the future of telephony. Introduction to newcomers to . The sprint that copied remaining pages from the old mediawiki to Confluence has given us all the documentation fit to print, however they are not organized well.
Page: Freeswitch Fax Printer
About Stub, will add more info once everything has been tested. Introduction Freeswitch has great fax capabilities using mod_spandsp. This article is intended to take this concept one step further: to implement an easy user interface to this capability in
Page: FreeSWITCH First Steps
About A quick guide to help you with the installation of Debian and FreeSWITCH. Table of Contents Get an Account You'll want to create a FreeSWITCH™ Jira account. After signing up you can use the same credentials to ac
Page: Freeswitch for new people
About This is a quick introduction to FreeSWITCH in layman's terms. It is assumed you have FreeSWITCH installed (or will soon to apply this introduction), know what XML is, know what regular expressions are, know how to compile something, or at least foll
Page: Freeswitch GUI
About FreeSWITCH GUI can use XML-RPC, ESL, Erlang and several communication methods to communicate with FreeSWITCH. The powerful method is the useful ESL library that is translated to several languages, including Perl, Lua, Python, Ruby, .NET and others.
Page: FreeSWITCH in OpenVZ
About OpenVZ is an open source container-based virtualization solution built on Linux. OpenVZ creates isolated, secure containers (otherwise known as VEs or VPSs) on a single physical server enabling better server utilization and ensuring that application
Page: FreeSWITCH In The News
Articles There are more entries, but there are only so many hours in the day to list them all. Feel free to add to this list. [2011-02-02] What’s new in FreeSWITCH? VoIPon Interviews the Founders
Page: Freeswitch IVR Originate
IVR originate data syntax Call a normal channel Default pattern for originating calls: endpoint_name/endpointdata Originating by profile: sofia/${profile_name}/ Or by gateway(the sofia/gateway/ has special meaning make sure you include it w
Page: Freeswitch munin module
For external monitoring munin modules as well as other monitoring software modules could be very helpful. Example * modules for munin can be found here for a starting point: http://rodolphe.quiedevi
About The FreeSWITCH OID is a registered OID used for SNMP, LDAP, or others to identify an object. Defined in: src/include/switch.h:#define FREESWITCH_PEN "27880" src/include/switch.h:#define FREESWITCH_OID_PREFIX "." FREESWITCH_PEN Currently
Page: FreeSWITCH PBX Example
About This document presents a short tutorial that allows you to start using a server as a basic PBX. It is part of the minimal FreeSWITCH configuration which is available at
Page: Freeswitch Portal
The GUI builtin FreeSWITCH, can be used out of the box. It is based on mod_xml_rpc, the module is built by default but not loaded, so you just need to load it (un-comment it in conf/autoload_configs/modules.conf.xml) load mod_xml_rpc open your browser (Ch
Page: FreeSWITCH Repository Guide
About A small guide outlining the available repositories for FreeSWITCH. About text. PUBLIC REPOSITORIES RELEASE BRANCH STRETCH echo "deb stretch main" > /etc/apt/sources.list.d/freeswitch.list echo "de
Page: FreeSWITCH Scheduler API
About FreeSWITCH supports a scheduler API that permits the application to create scheduled events that will fire at some point in the future. It also supports a few sample applications that make use of the scheduler as documented below: Scheduled hangup
Page: FreeSWITCH Softphone
About Configuration ideas using PortAudio as a means to exchange audio between and the outside world. Most of the work on this page on the old wiki was prior to March of 2010. Some configurations and variable names have changed since then. Configuration S
Page: FreeSWITCH Testimonial on
About How FreeSWITCH has created hundreds of job opportunities and changed lives. The Testimonial We want to share our experience working with FreeSWITCH. FreeSWITCH has been a key enabler of our business. We hope this story can be a small way to say a
Test program for connecting to the FreeSWITCH XML-RPC interface. Ruby Example #!/usr/bin/env ruby require 'xmlrpc/client' require 'xmlrpc/marshal' exit unless ARGV[0] port = 8080 server = '' directory = '/RPC2' def fixup(value) value.gsub(/
Page: Freeswitch-Custom-VSC
About This is a Page to List any Custom Vertical Service Codes. custom-vsc.xml <--*XX - Custom VSC--><--*XX - Privicy Manager-->
Page: Freeswitch-nanpa-project
About This page desribes an effort to provide a US-standard configuration file for PBX vertical service codes. The NANPA vertical service codes are listed at
Page: Freeswitch.xml.fsxml
Located under the {freeswitch_installation}/log/ directory. This file is the how the FreeSWITCH pre-processor compiles your {freeswitch_installation}/conf/* files together. This file is a great place to start when troubleshooting XML and/or configuration
Page: FreeTDM
Introduction FreeTDM is a library implementing unified high level API for both signaling and I/O for multiple telephony boards (Digium and Sangoma are most popular). FreeSWITCH uses a module called "mod_freetdm". If you come from Asterisk world, think of
Page: FreeTDM OpenR2
FreeTDM OpenR2 Installation If you want to use MFC-R2 signaling with FreeTDM (most likely to use it with FreeSWITCH), follow this steps: 1. You need first to download openr2 svn trunk. $ svn co openr2 2.
Page: Freetdm.conf Examples
Please read the FreeTDM page before trying to use these examples! Examples for specific cards Wildcard T100P Wildcard T100P (should also work with similar DAHDI/Zaptel cards), This example will apply for Digium T1 cards as well: [span zt name_of_span] tru
Page: FS Air
About by seven FreeSWITCH AIR is an Adobe AIR-based GUI for FreeSWITCH. It makes FreeSWITCH as easy to use as a softphone. The idea is to connect to FreeSWITCH mod_event_socket and control mod_portaudio by using API commands. Also it listens to the events
Page: Fs gui
FsGui Description FsGui is an extend able platform for call control applications. Making intensive use of Qt plugin infrastructure and lib ESL, FsGui intention is to provide means for applications to enable use of call control f
About is primarily a tool to assist with the collection of logging data from . It runs fs_cli at the core and accepts all the parameters that fs_cli takes in addition to its own. It also provides some extended features around fs_cli and data
About by trixter will operate in a similar fashion to Asterisk's app_rpt originally written by Jim Dixon. This will let you build a repeater, a simple radio endpoint, or other operations as the situation dictates. This was written in Perl specif
Page: FSClient
About FSClient is a full Windows sip client that uses Embedded FreeSWITCH and is written in WPF/.NET 4.0. It supports external and internal contact books and full headset features through a plugin system. FSClient is meant to be a full featured SIP client
Page: FSComm
About FSComm is a FreeSWITCH™ based communicator. It is developed using libfreeswitch and does not require FreeSWITCH™ running, because the core runs dedicated to FSComm inside the same process. All you need to do is open it and start making calls. Refere
Page: FSmerge
About FreeSWITCH has long needed a mechanism to update the installed configuration files and merge in any local changes. This script is designed to fit that need, in an optional manner. It is based on sysmerge(8)
Page: Function cond
About Function cond Allowed operators allowed operators are: equal to, not equal to, greater than, greater than or equal to, less than, less than or equal to, less than, less than or equal to. == (Equal To) two strings are compared as strings two numbers
Page: Function db
About Allows inserting and removing of thing to a db during runtime. Synopsis [insert|select|delete]/<realm>/<key>[/<val>] Example Select <action application="playback" data="${db(select/music/${caller_id_number})}"/> Insert <action application="db" data=
Page: Function sofia_contact
About Sofia_contact is a function that returns the contact string of a sofia user. If it's not registered, the contact string is "error/user_not_registered". Usage sofia_contact [profile]/[user](@domain) Profile may be * for all. @domain is not required i
Page: Function sofia_dig
About sofia_dig is an API command for looking up SIP NAPTR/SRV/AAAA/A records. Usage usage: sofia_dig [OPTIONS] [@dnsserver] uri Examples freeswitch@internal> sofia_dig Preference Weight Transport Port Address ===================
Page: funny_stun
funny_stun string


Page: G729 on openvz
About Installing the g729 codec license on OpenVZ Installing The open source phone software FreeSWITCH has a unique problem when you are trying to set it up inside a VE. If you buy licenses for the G729 codec and run the registration program it will fail.
Page: Gateway Dinstar
About DAG1000-4S4O is an 4 FXS and 4 FXO gateway based on the SIP2.0 standard.Providing one WAN port and three LAN ports, It allows up to four computers to share an ADSL line in office or at home. Gateway Dinstar DAG1000-4S4O Features ● Primar
Page: Gateway prefixes
About How to configure gateway prefixes Configuring easy gateway prefixes To address the problem being able to dial out utilizing the gateway of your choice, you can setup T9 digit sequences to match the gateway names. For example in your FS/conf/dialpl
Page: Gateways
This section describes how to connect FreeSWITCH to a variety of hardware gateways. Some bridges/gateways such as the Cisco SPA series may be grouped with other equipment from the same vendor in the Phones section. If you don't find your gateway here ch
Page: Gateways Configuration
About Small guide on how Gateways are configured in . Introduction This has been a source of confusion for some, but it's really rather simple. A bare-bones gateway setup for outbound calls with no username/pass (because you have ACL permission): <include
Page: Gateways Other
Multipoint MultiVoip Media Gateway This is a dual PRI to SIP gateway intended to be used to provide a SIP gateway to a legacy PBX with PRI. I have tested it as a SIP to PRI gateway between FreeSWITCH and a CopperCom CSX, and Lucent 5ESS switch. While the
Page: General NAT example scenarios
Scenario 1 FS ( -> NAT (Public IP -> INTERNET -> NAT (Public IP -> FS ( In this scenario you have to do two things. Setup a profile with ext-sip-ip and ext-rtp-ip set. If you setup ext-sip-ip and ext-rtp-ip on a p
Page: Generating TLS certificates (win32)
About This is how to Generate TLS certificates in win32. A temporary solution for Windows users until an automatic script is available. Creating new CA and certificate OpenSSL is built with FreeSWITCH - no additional files needed for setup. Create a CA di
Page: Gentoo
About Gentoo is aimed towards advanced users, it requires a certain amount of prior experience. If this is your first encounter with Linux/Unix this distribution is most likely not what you want to use (for a mission-critical system). People with prior ex
Page: Git Install
About This page is archived for reference by confluence editors while it is revised to match the new Confluence schema. Debian apt-get update apt-get install git CentOS Install Git from RPM RPMforge EPEL http://fedoraproject.or
Page: Global Variable local ip v4
local_ip_v4 This global variable is automatically set by FreeSWITCH. You may override this global variable in vars.xml Usage: <!-- Set local_ip_v4 to hard-coded IP --> <X-PRE-PROCESS cmd="set" data="local_ip_v4="/> <!-- Set local_ip_v4 to eth1
Page: Global Variables
About At startup FreeSWITCH creates some global variables, these are read-only (technically, you can change them, but changing the value has no effect). Some of these are used heavily in the default configuration, others are just there for informational p
Page: Glossary
About Here are some important terms used generally in telephony and specifically in FreeSWITCH. What's also needed is a broad but precise conceptual overview, written for the layman. The terms can sometimes be confusing and trip up understanding; hopefull
Page: Goip HowTo
About Goip is just a GSM Gateway model made in China. There are several companies that offer this device under different brand names such us MadCom, Hybertone, Etross etc. They are cheap and quite popular in sites like, etc. They all
Page: Golang ESL
Introduction GoESL is a very simple and straight forward Go package designed to interact with FreeSWITCH ESL GoESL supports both cl
Page: Google Voice
About Making calls using google voice Make Free Outgoing Calls to USA/Canada using Google Voice Google recently launched free voice calling to USA/CANADA phones right from Gmail. Tony opened the doors for this to work from any SIP client, using FreeSWIT
Page: Google Voice API
Adding Google Voice as an outgoing destination Create yourself a Google Voice account (or reconfigure an existing one) a) Go to b) Login to Google voice, creating a new Google voice number if you don't have one yet c) Add a destinatio
Page: Googletalk
FreeSWITCH and Google Talk One of the reasons I chose to spend time with freeswitch over yate was google talk integration. Was a good choice, I think, for more than just gtalk. The endpoint that talks to gtalk is mod_dingaling, and it’s not compiled by
Page: grammar_dir
grammar_dir string
Page: Grandstream
Grandstream Products Grandstream BudgeTone 100 Registration: works Caller Id: works Call in/out: works Call waiting: not tested Transfer calls: not tested Park calls: not tested Grandstream BudgeTone 200 Codec selection is broken as well as G722. It will
Page: group_confirm_cancel_timeout
group_confirm_cancel_timeout integer If set, cancels leg_timeout after the call is answered. originate_timeout still remains active. When using group confirm, a call passes through three phases: Call is ringing. Call is answered, waiting to be confirmed.
Page: group_confirm_file
group_confirm_file string This variable is used together with group_confirm_key. In group_confirm_file, you specify the wav file you want to play when the called party picks up the call. See answer confirmation for more examples. Usage <action application
Page: group_confirm_key
group_confirm_key dtmf digit In the group_confirm_key variable, you define the DTMF that the called party should send to FS to bridge the call. If a wrong DTMF or no DTMF is sent, the called won't be bridged and the wav file will be repeated. Usage <actio
Page: group_context
group_context string
Page: GSoC
Google Summer of Code - Ideas Page Google Summer of Code 2015 page Org Application Starts: February 09 at 19:00 UTC Please list your ideas for a GSoC project! Android WebRTC client Proper IAX sta


Page: HA keepalived
About Example configuration for setting up Freeswitch using Keepalived to manage the IP address failover. This was done due to heavy complexity of the corosync/pacemaker approach, and difficulties getting that setup to actually fail over properly in respo
Page: HA PBX
About High Availability Class 5 Switch/PBX. This page currently captures my company's attempt at building a high availability Class 5 PBX using FreeSWITCH. What is a Class 5 Switch/PBX A Class 5 switch is a phone switch that provides end-subscriber featur
Page: Ham Radio
About Amateur radio is commonly used during and after a disaster. FreeSWITCH provides the ability to bridge users with multiple different communications capabilities, and makes a perfect hub to bridge together people with mobile phones, VoIP connects, and
Page: Handling SIP Redirect
About This page describes how to manually handle SIP redirect messages (3xx). Channel Variables Like everything else on FreeSWITCH, manual redirects are controlled and informed using channel variables. Next, we present the related variables dividing them
Page: Hangup Cause Code Table
About The default code is NORMAL_CLEARING (if you do not specify one) The codes are documented in src/switch_channel.c and SIP Protocol Messages IE stands for Information Element Q.850 to SIP Code Table The following table describes the mappings implemen
Page: hangup_after_bridge
hangup_after_bridge boolean Controls what happens to a calling (A) party when in a bridge state and the called (B) party hangs up. If true the dialplan will stop processing and the A leg will be terminated when the B leg terminates. If false (default) the
Page: hangup_after_conference
hangup_after_conference boolean Controls what happens to a calling (A) party when in a conference and the conference ends (e.g. endconf flag set and moderator leaves). If true (default) the dialplan will stop processing and the A leg will be terminated. I
Page: hangup_cause
hangup_cause string This is set to the hangup cause of the A leg of the call (note that as such it doesn't make much sense before the end of the call). Often this will take the hangup cause from the B leg of the call, if there is one. For a list of hangup
Page: hangup_cause_q850
hangup_cause_q850 string This is set to the Q850 numeric code of the hangup cause of the A leg of the call (note that as such it doesn't make much sense before the end of the call). Often this will take the hangup cause from the B leg of the call, if ther
Page: has_t38
has_t38 boolean
Page: High Availability
About High availability configurations including failover and central databases. Introduction At ClueCon 2010 the FreeSWITCH team announced the call recovery feature that's now available in FreeSWITCH. This feature means you can restart FreeSWITCH a
Page: hold_hangup_xfer_exten
hold_hangup_xfer_exten string Controls what happens to a calling (A) party when in a bridge state and the bridge ends while the called (B) party is on hold. If not set on leg B (ie. the default), then A leg is hung up. If it is set on leg B, then leg A is
Page: hold_music
hold_music string Per-channel hold music. Supports all audio formats and audio streams. The hold_music variable can also be set globally in vars.xml. Usage <action application="set" data="hold_music=/sounds/holdmusic.wav" /><action application="set" data=
Page: Holding Bin
About The Holding Bin is a nice place to store useful information before there exists a final destination for it. Many of these notes and ideas come from the development team and power users on the IRC channel or mailing list and are too valuable to be lo
Page: holding_uuid
holding_uuid string
Page: Home PBX Example
About This page documents a simple home PBX using FreeSwitch. It is currently being used at my (mmurdock) home but is a work in progress. I will attempt to add more features as I get them developed or tested. Updated 03-20-2007 - Using the new FS
Page: hostname
hostname string This global variable is set dynamically by the FreeSWITCH core and is set to the host name of the server on which FreeSWITCH is running. You cannot override the value of this variable by setting it. However if you change the host name of t
Page: How To's
About This pages contains tutorials for common use. All dialplan recipes gathered from emails or conversations could stay here. Lock negotiated codec In the middle of a call if one side puts the other one on hold a re-invite will occur and a new codec neg
Page: htdocs_dir
htdocs_dir string
Page: HylaFax
About Hylafax is "The world's most advanced open source fax server". Download Dependencies apt-get update apt-get install libtiff4-dev Installation c


Page: id
id string
Page: ignore_display_updates
ignore_display_updates string Tells freeswitch not to send display UPDATEs to the leg of the call. (update_display) Usage From dialplan/default.xml, to set on A-Leg: <action application="set" data="ignore_display_updates=true"/> To set on B-Leg: <action a
Page: ignore_early_media
ignore_early_media string Controls if the call returns on early media or not. Default is false. Usage <action application="set" data="ignore_early_media=true"/> You may also specify a value for ignore_early_media in the argument to the bridge application,
Page: Iksemel MSVS project example
Download “gnutls-2.9.9.exe” from and install. Add the GnuTLS include path to the in
Page: import
import string The import variable, when used before a bridge, imports the variables of the other channel on the actual channel. Implemented by mod_lcr. Usage <action application="set" data="import=this_is_a_variable_name"/>
Page: IMT
About An Inter-Machine Trunk sends calls from one box to another. All calls get routed through the public context on the destination server. Each server allows the other access via the ACL. IP authentication Let us assume you have BoxA ( with e
Page: inbound_dialplan
inbound_dialplan string
Page: Index
Label Heatmap
Page: inherit_codec
inherit_codec boolean If late negotiation is on, and you set inherit_codec=true on the A leg, the negotiated codec of the B leg will be forced onto the A leg. Usage <action application="set" data="inherit_codec=true"/>
Page: initial_callee_id_name
initial_callee_id_name string Sets the callee id name during the 183. This allows the phone to see the name of the called party prior to the phone being answered. Usage An example of setting this to the caller id name of the number being dialed: <action a
Page: Inline Dialplan
Are you looking for inline actions in the dialplan? Description Allows you to specify a dialplan in code where you might normally specify an extension and dialplan. Basic syntax is a comma-separ
Page: Installation
About This page describes FreeSWITCH™ numbering conventions, basic download instructions, and directions to useful installation pages. Conventions The FreeSWITCH™ numbering format is "version.release.maintenance". The release numbering convention is eve
Page: Installation and Setup on OS X
Archived Page As of October 7, 2015, this page is no longer maintained by the original author and is marked as archived. It is replaced by: macOS macOS Installation macOS Customization Introduction What Can You Do With FreeSWITCH™? FreeSWITCH™ http:/
Page: Installation ARCHIVED
Operating Systems Linux and Unix The primary Linux distributions supported include the latest versions of Debian and CentOS. Be sure to use CentOS versions later than 6.3 to avoid a kernel timing bug that affected the proper operation of FreeSWITCH. Cen
Page: Installation on OS X 10.10 Yosemite
Archived Page As of December 31, 2017, FreeSWITCH is longer tested on OS X Yosemite. Apple dropped support and no longer issues security patches. Also, Homebrew no longer officially supports Yosemite. FreeSWITCH installed and worked on Yosemite as of the
Page: Installation on OS X 10.11 El Capitan
Archived Page As of December 31, 2018, FreeSWITCH is longer tested on OS X El Capitan. Apple dropped support and no longer issues security patches. Also, Homebrew no longer officially supports El Capitan. FreeSWITCH installed and worked fine on El Capitan
Page: Installation on OS X 10.6 Snow Leopard
Archived Page As of September 30, 2015, the OS X 10.6 page is no longer maintained by the original author and is marked as archived. The reasons are: The FreeSWITCH web pages and normal download sites are now protected by TLS 1.2. OS X 10.6 does not suppo
Page: Installation on OS X 10.7 Lion
Archived Page As of September 30, 2015, the OS X 10.7 page is no longer maintained by the original author and is marked as archived. The reasons are: The FreeSWITCH web pages and normal download sites are now protected by TLS 1.2. OS X 10.7 does not s
Page: Installation on OS X 10.8 Mountain Lion
Archived Page As of September 30, 2015, the OS X 10.8 page is no longer maintained by the original author and is marked as archived. The reasons are: The FreeSWITCH web pages and normal download sites are now protected by TLS 1.2. OS X 10.8 does not suppo
Page: Installation on OS X 10.9 Mavericks
Archived Page As of December 31, 2016, FreeSWITCH is no longer tested on OS X Mavericks. Apple dropped support and no longer issues security patches. Homebrew also no longer officially supports Mavericks. At the time of this notice, FreeSWITCH still insta
Page: Installation on OS X Alternatives
Archived Page As of October 7, 2015, this page is no longer maintained by the original author and is marked as archived. It is replaced by: macOS Installation About This page describes methods of installing FreeSWITCH™ and its prerequisites on OS X withou
Page: Installing LuaSocket
To install Luasocket on FreeSWITCH 1.4 (it uses Lua5.2, not compatible with luasocket 2.0.2), you need luasocket 3.0.rc1. Download, unpack, modify, compile and install (edit LUAINC_linux dir to reflect your settings): cd /usr/src wget
Page: Installing LuaSQL
About LuaSQL is a simple interface from Lua to a DBMS - It is also possible to use the FS ODBC support through freeswitch.Dbh, without i
Page: instant_ringback
instant_ringback boolean When set, ringback will not wait for indication before sending ringback tone to calling party. Usage this may cause undesirable effects, like ringing for 3 seconds that turns into a busy signal. <action application="set" data="ins
Page: intercept_unanswered_only
intercept_unanswered_only boolean If set to true, the leg will only be intercepted if the channel is not answered. Default: false Usage <action application="set" data="intercept_unanswered_only=true"/> <action application="intercept" data="myUUID"/>
Page: intercept_unbridged_only
intercept_unbridged_only boolean If set to true, the leg will only be mod_dptools: intercept if the channel is not bridged to anyone. Default: false Usage <action application=
Page: Intercom
About A discussion and examples of implementing intercom paging on some VoIP desk phones. Goal Some phones like Snom will utilize a multicast paging method, which is actually quite nice if everyone is on the same LAN, or if you're into setting up mult
Page: Internet Service Provider
ISP & Router Interoperability Some ISP and their default modem/router configurations can cause interoperability issues with VoIP traffic. This page provides information on ISP/router interoperability issues that you might encounter. United Kingdom O2/Be U
Page: Interoperability
About This section describes how to connect FreeSWITCH to a variety of hardware, software, systems, and ITSPs. Click on one of the pages under Interoperability in the page tree left column or the child page macro below.
Page: Introduction
About In this Introduction we provide a brief overview of FreeSWITCH in laymen's terms. We will then introduce all the key concepts in FreeSWITCH and guide you on how to navigate the documentation. By following this introduction, you should be able to set
Page: ip_invite_params
ip_invite_params string
Page: IRC
About IRC (Internet Relay Chat) channels used by the FreeSWITCH Open Source Community Project. Channels FreeSWITCH IRC channels are hosted on the Freenode IRC network (FAQ You can connect to Freenode
Page: is_loopback
is_loopback boolean A variable added during the hangup phase that distinguishes loopback channels from real channels. This is useful for processing CDRs. is_loopback was made available as of 6/26/2013 this variable is only available after the channel has
Page: is_outbound
is_outbound boolean
Page: ISDN: Integrated Services Digital Network
About ISDN: Integrated Services Digital Network - ISDN Documentation and specfications: What is ISDN, Summary links http://www
Page: ISN
About FreeSWITCH's organizational ITAD number is is 543, below are some numbers you can call from your default FreeSWITCH installation. The FreeSWITCH Conference 888*543 An Echo Test (not yet implemented) Just For Fun 1234*543
Page: IVR
About Interactive Voice Response (IVR) is an automated telephony system that interacts with callers, gathers information and routes calls to the appropriate recipient. Please note that if you are speaking to someone with a traditional telephony background
Page: IVR in Perl
About This example demonstrates the usage of mod_perl in the dialplan. It requires mod_perl to be activated in the FreeSWITCH XML configuration. Example Dialplan XML <?xml version="1.0" encoding="utf-8"?> <\!-- In this XML file (/usr/local/freeswitch/co
Page: ivr_menu_status
ivr_menu_status string ivr_menu_status is a channel variable that returns the status of the IVR menu: success failure timeout
Page: ivr_menu_terminator
ivr_menu_terminator dtmf digit You can set to none or the dtmf chars you want to terminate input. Usage <action application="set" data="ivr_menu_terminator=#"/>
Page: IVRd
About The FreeSWITCH IVR daemon ("ivrd") is a handy abstraction layer that sits on top of the ESL. The basic idea is that the ivrd will allow the user to have a STDIN/STDOUT interface for simple call control. This makes it even easier to use the powerful


Page: Janitorial Tasks
Auditing all Freeswitch modules and fix command and option help and auto complete Fixing the Doxygen docs Audit and compile list of clang(latest) compiler warnings(enabled with -Weverything) with which FS fails to build Fix/Triage one of the issues repo
Page: Java CDR Logger
About CDRLogger is a Java servlet application that works together with mod_xml_cdr to store CDR records into a database table. The application parses the CDR XML data and stores it into pre-configured fields. Current application 'war' packaging only inclu
Page: Java ESL
About Overview of options available for using Java to connect with the Event Socket Java Connection Options There are at least three options for using Java to connect to the FreeSWITCH Event Socket. esl.jar (freeswitch core) License: Same as FreeSWITCH Av
Page: Java ESL Client
About This page documents the org.freeswitch.esl.client library maintained in the freeswitch-contrib git repository. See Java ESL page for overview of other options for using Java with the FreeSWITCH Event Socket. Features Licensed under Apache License ve
Page: JavaScript
About A light discussion of JavaScript in . V8 Supersedes SpiderMonkey FreeSWITCH originally used the Mozilla SpiderMonkey JavaScript (ECMAScript) engine. It supports all the standard JavaScript language elements, f
Page: JavaScript API Reference
About This page provides the documentation of the Javascript FreeSWITCH API. Most API aren't documented, so please feel free to improve the documentation and complete the API examples. This page is in process, having been copied from Lua (for consistent f
Page: JavaScript Conference IVR
About Example JS IVR that adds security to publicly available conference room. Original example contributed by wiki user J3flight. The background for this code came from confcall.js. Thanks to krice who wrote that because it gave me a good template to w
Page: JavaScript Event
About JavaScript event handling. Invoking Event Object // Define callback function function on_event(session, type, event_obj, user_data) { if (type == "event") { console_log("notice", "Event: " + event_obj.serialize() + "\n"); } } // Start tone detection
Page: JavaScript Event Handler
About EventHandler class for JavaScript. Constructor use('EventHandler'); var eh = new EventHandler([string eventType, ...]); Constructs a new EventHandler instance, and (optionally) starts subscribing to the events provided. Before using the EventHandler
Page: Javascript Example - AfterHoursIVR
About After-hours interactive voice response menu example JavaScript. Example function getThreeDigits( session, type, data, arg ) { if ( type === "dtmf" ) { arg.digits += data.digit; if ( arg.digits.length < 3 ) { return true; } } return false; } if ( s
Page: Javascript Example - Answering Machine
About This is a basic answering machine application designed for the typical home pbx. It will play a greeting message you have previously recorded, then beep, and record the callers message. It then emails the voice message to one or more email addresse
Page: JavaScript Example - cidspoof
About Simple script to specify caller ID and place a call. Example /** cidspoof.js - Simple script to specify caller ID and place a call. JavaScript Application for FreeSwitch::mod_spidermonkey. Not responsible for your use of this script. Please cons
Page: JavaScript Example - cnam
About This CNAM java script is a wrapper script for the ULTIMATE CNAM perl script ( Place this .js file in your FS_ROOT/scripts di
Page: Javascript Example - Collect Account Number
About Basic prompt and collect DTMF application. Code function sayphrase(phrase, args) { console_log("sayphrase: phrase=[" + phrase + "] args=[" + args + "]\n"); var rtn = session.execute("phrase", phrase + "," + args); return(rtn); } var dtmf; if (sess
Page: JavaScript Example - dbIVRmenu
About by Paul Davis (pist @ #freeswitch) This application uses CoreDB module to create & populate an SQLite database for a simple IVR menu. This will work with the default dialplan! It is only meant to be an example of the power and ease of using FreeSwi
Page: Javascript Example - DISA (direct inward system access)
About Direct Inward System Access (DISA). It allows inbound callers to make internal or outbound calls. // is a javascript comment. The comment tells the interpreter not to process the line. To un-comment a line simply remove the two forward slashes. Exam
Page: Javascript Example - DTMF Callback
About Example of calling a dtmf callback function while playing a file. Example JS Code /* example of calling a dtmf callback function while playing a file. */ function onPlayFile(s, type, obj, arg) { try { if (type == "dtmf") { console_log("info", "D
Page: Javascript Example - FollowMe
About When an extension is called ring multiple extensions or external phone numbers simultaneously or in order. Dialplan /usr/local/freeswitch/conf/dialplan/default.xml Do a find for "Local_Extension" inside the file modify the bottom of that section. Co
Page: Javascript Example - HelloWorld
About This quick start aims to help you with creating your first JavaScript application. Paths If you place the script in the "[FS root dir]/scripts" you may access them by their basename without any path information; if you place them elsewhere you m
Page: Javascript Example - Intercom
About Add intercom recipients to a conference bridge. This script works by originating a channel to each of your Intercom recipients. The call will be auto-answered by default, but you may specify it to ring in case you are dealing with older or non-sip i
Page: Javascript Example - Prompt For Digits
About Prompt the caller for a specified quantity of dialed digits. Dialplan Entry Add the following section to your freeswitch.xml around the extension 1000 section. <extension name="1200"> <condition field="destination_number" expression="^1200$"> <act
Page: JavaScript Example - Say IVR Menu
About Uses "sayphrase" to speak IVR menu and collect a single DTMF digit. Requirements To use the "say" TTS feature of you must load the Speech Phrase Management module for the appropriate language. By default, the English module is uncommented in c
Page: Javascript Example - Say IVR OfficeHours
About IVR with holiday, after-hours and weekday detection //IVR with Holiday, AfterHours, and Weekday detection var dtmftimeout = 4000; var domain = ""; //by default this is the ipv4 address of FreeSWITCH used for transfer to voicemail var Open
Page: JavaScript Example - Session in Hangup Hook
About A simple example for accessing the session object after hangup when invoking the JS from the XML dialplan. More specifically, we're capturing the duration of the call and are saving it in a mySQL database with ODBC. Dialplan For the session to still
Page: Javascript Example - set hook
Illustrates how to set a hook. function on_hangup(hup_session, how) { console_log("err", how + " HOOK" + " name: " + + " cause: " + hup_session.cause + "\n"); //exit here would end the script so you could cleanup and just be done exit();
Page: JavaScript Example - Test Tones
About Define some Teletone TGML sequences, collect digits, and generate corresponding tone sequences. A demonstration. /** Original code by anthm, comments by pist, but it's mostly self explanatory :-) **/ use("TeleTone"); // Load the TeleTone module s
Page: JavaScript example - XML
About A list of examples of JavaScript XML in FreeSWITCH. Examples The new V8 module relies on XML support built into FS, since Google V8 doesn't have this built-in like Spidermonkey. var xmldata = new XML("<mydata><item>this is my data</item><item>this i
Page: Javascript Examples
About This regroup all the Javascript code examples
Page: JIRA in Command Line
About We'll introduce and which can be used to create and close JIRA issues from command line. Getting the Scripts Both script are under support-d/utils in source tree. If you don't want to clone the repository in your machine, here
Page: JitterBuffer
About The jitter buffer is implemented in the Sort Transportable Framed Utterances (STFU) library. The jitter buffer is not enabled by default. As of version 1.6 all variables relating to media have been normalized to begin with the string "rtp_" If you s
Page: jitterbuffer_msec
jitterbuffer_msec string Activates the jitter buffer. The jitter buffer has three params: length, max length, and max drift. Usage <action application="set" data="jitterbuffer_msec=60:200:20"/> <action application="answer"/> Or to set it on the subsequent
Page: JS Flite
About Example demonstrating how to invoke Flite text-to-speech. Example if ( session.ready( ) ) { session.answer( ); session.execute("set", "tts_engine=flite"); session.execute("set", "tts_voice=kal"); session.execute("speak", "This is an example of fli


Page: Kamailio basic setup as proxy for FreeSWITCH
About Below is two example sample configurations of Kamailio as a SIP proxy to FreeSWITCH. Simple Setup is the IP of Kamailio is the IP of FreeSWITCH memdbg=5 memlog=5 log_facility=LOG_LOCAL0 fork=yes children=4 disable_tcp=yes
Page: Khomp
About This document covers information about the Endpoint of Khomp as a whole, including the options, applications, CLI commands, among others. First considerations For first installation procedures, please see the Khomp README. It does not work on Win
Page: Khomp/Bridge application parameters
About The bridge application is responsible for generating calls from the FreeSWITCH from a dialplan. This application can be used to generate calls from different Endpoints technologies, following a specific format to define destination, dialing options
Page: Khomp/Commands
About This document covers information about Khomp Commands. Khomp/Commands khomp channels disconnect : Disconnect one or more channels. This command sends a message directly to the physical channel of the card in question, requesting a disconnection. Use
Page: Khomp/Contexts
Contexts for E1 channels For E1 boards, inbound contexts are predefined as option context-digital with default value as following: <param name="context-digital" value="khomp-DD-LL"/> This standard defines the context that links will be redirected in accor
Page: Khomp/Description of Variables
KDropCollectCall When activated, causes the Endpoint to drop Khomp collect calls through dual service (available for signaling 'R2 Digital' and FXO), through information available on the ISDN protocol and R2/MFC, or by detecting the audio call collect (av
Page: Khomp/Error Codes
Channel state Reflect the state of the channel on the board. In the case of E1 links, the state may have one or more of the following: Free: the channel is free; Busy: the channel is not free (or occupied, or failure); Outgoing: the channel has an output
Page: Khomp/README
About This document covers information about the first installation procedures. Quick guide After installing the card in the system and run the installation program for the first time, the drivers and Khomp services will be added at system startup, and au
Page: Khomp/Settings
<channels> Define general settings of all channels of Khomp: Sintaxe: <param name="..." value="..."/> accountcode: Sets the default account code to calls in the Endpoint. This option can be any alphanumeric string; dialplan: Name of the dialplan module in
Page: Khomp/Variables
KDropCollectCall: When set before ringing or answer an incoming call, enables ("yes") or disables ("no", default) the drop of collect calls based on signaling received from the central public, double answer, audio tone recognition (can be defined globally


Page: language
language string
Page: Language Files
About FreeSWITCH comes with a number of English sound files. Some of these are stand-alone sound prompts while others are used in mod_conference, mod_voicemail, and mod_say_en. All English sounds are listed in the FreeSWITCH source directory (src/docs/phr
Page: last_app
last_app string
Page: last_arg
last_arg string
Page: last_bridge_hangup_cause
last_bridge_hangup_cause string This is set to the hangup cause of the last bridged B leg of the call. For a list of hangup causes, see Hangup Causes. Usage <action application="log" data="B-leg hangup cause: ${last_bridge_hangup_cause}"/>
Page: last_bridge_proto_specific_hangup_cause
last_bridge_proto_specific_hangup_cause string This shows the last bridge hangup cause by SIP response code, e.g. "sip:404"
Page: last_bridge_to
last_bridge_to string
Page: last_dtmf_duration
last_dtmf_duration string
Page: last_file_position
last_file_position string deprecated This is possibly deprecated.
Page: last_matching_digits
last_matching_digits string Contains the last set of digits that the user dialed when using the "dmachine" digit-handling. This is most commonly used with the bind_digit_action dialplan application. Usage <action application="log" data="INFO User just dia
Page: last_transferred_conference
last_transferred_conference string readonly Contains the name of the last conference that this channel was connected to. Usage <action application="log" data="INFO Last conference this person visited was [${last_transferred_conference}]"/>
Page: lcr_auto_route
lcr_auto_route string
Page: lcr_route_count
lcr_route_count integer
Page: LDAP Directory
About The Directory dialplan allows for LDAP queries to be made to decide where to route calls. Example Configuration <?xml version="1.0"?> <document type="freeswitch/xml"> <section name="configuration" description="Various Configuration"> ... <configurat
Page: left_hanging_extension
left_hanging_extension string
Page: leg_delay_start
leg_delay_start string Specifies a wait time in seconds before each leg is called in a forked dial scenario. Can be used in per-leg [], but not in global {} for the dialstring. Usage <action application="bridge" data="sofia/profile/dest1,[leg_delay_start=
Page: leg_progress_timeout
leg_progress_timeout string Usage Make all bridged calls fail over to the next in 6 seconds: <action application="export" data="leg_progress_timeout=6"/>
Page: leg_timeout
leg_timeout integer Timeout for each leg in an originate dialstring. Can be used in per-leg [], but not in global {} for the dialstring. For global, use originate_timeout. You can also use leg_progress_timeout to specify the maximum time we will wait befo
Page: Licensing
About This document covers information about the licensing. FreeSWITCH is Licensed under the MPL 1.1 License Libraries included are licensed as follows. APR - Apache Portable Runtime - Apache License v2.0 Broadvoice - Broadvoice 16 and 32 codecs - LGPL v2
Page: Life Cycle of a Call
About A description of how FreeSWITCH processes a typical SIP call. Typical SIP Call Between Registered Extensions title Typical SIP Call From Registered Extension start -> INVITE; partition CS_NEW { :Create new channel\n A-leg; if (Match ACL?) then
Page: limit_id
limit_id string
Page: limit_ignore_transfer
limit_ignore_transfer string
Page: limit_max
limit_max string
Page: limit_rate
limit_rate string
Page: limit_realm
limit_realm string
Page: limit_usage
limit_usage string
Page: Linksys
Linksys Products Notes: Linksys products from Linksys Voice System line work just fine with FreeSWITCH. Majority of PBX functions made to work with SPA 9000 Linksys PBX can be used with FreeSWITCH. Since newest phone firmware version (6.1.3a), support is
Page: Linux
About Installation guidance for various linux distributions. The core development team has standardized on Debian and recommends it for all deployments. Users who are familiar with other distributions are welcome to help the project maintain these install
Page: Linux Quick Install Guide
This page is archived for reference by confluence editors while it is revised to match the new Confluence schema. This page must remain generic with no references to specific distributions. Please place notes for specific distributions in the proper locat
Page: Load balancing
Return to Enterprise_Deployment Load balancing is the method of sending requests to different servers according to some algorithm, such that the load across the servers as a whole is fairly even on each individual server. This is useful for environments t
Page: Load_testing
About This document covers information about load testing tools. Load testing Load testing is a dark art. If you don't have extensive experience with load testing in a telephony environment then nothing on this page will be of any use to you. You are much
Page: local_ip_v4
local_ip_v4 string This global variable is set dynamically by the FreeSWITCH core by asking the underlying OS for the IP address of the server on which FreeSWITCH is running. If the server has multiple IP addresses this will be set to the first one return
Page: local_ip_v6
local_ip_v6 string This global variable is set dynamically by the FreeSWITCH core by asking the underlying OS for the IPv6 address of the server on which FreeSWITCH is running (if it supports IPv6). If the server has multiple IPv6 addresses this will be s
Page: local_mask_v4
local_mask_v4 string This global variable is set dynamically by the FreeSWITCH core by using the network mask received from the underlying OS when determining the local_ip_v4.
Page: local_media_ip
local_media_ip string
Page: local_media_port
local_media_port string
Page: local_video_ip
local_video_ip string
Page: local_video_port
local_video_port string
Page: log_dir
log_dir string
Page: Logging
Dialplan Tools - log Description Logs a string of text to the console. See mod_logfile for more information on logging. Usage log [loglevel] <log message> loglevel defaults to DEBUG if not specified. This application may be run inline https://wiki.freeswi
Page: Loopback Endpoint
About The Loopback special channel emulates an endpoint to route a call back into the start of the specified dialplan. As soon as the loopback channel is able to connect together the two real channels it will disappear as if the two channels had been conn
Page: loopback_bowout_on_execute
loopback_bowout_on_execute boolean Set to true to have one-legged loopback channels "bow out" (remove the loopback legs) of the call. loopback_bowout_on_execute is only useful to single leg calls. You never have to set it: loopback_bowout is true by defau
Page: loopback_export
loopback_export string A list of channel variables to pass from loopback-a to loopback-b.
Page: loopback_leg
loopback_leg string
Page: LRN
About This document covers information about storing LRN. Storing Entire LRN data in redis This is an article written by avimarcus about storing the entire LRN DB, not about caching entries. Reasons Why not MySQL? Storing LRN data in MySQL was very fast t
Page: Lua API Reference
About This page provides the documentation of the Lua FreeSWITCH API. session:execSome API aren't documented, so please feel free to improve the documentation and complete the API examples. API Events These methods apply to generating events. event:addBod
Page: Lua arguments calling functions
About This article is brief code snippet to show how you can call functions in a script by using arguments to the script. Call a lua function via an argument passed to the script. add this to your dialplan, and dial 582 <extension name="test lua"> <condit
Page: Lua ASR TTS Directory example
About This guide should allow you to install FreeSWITCH and configure automatic speech recognition to look up users in a company directory. By Matt Williams (Hmmhesays in #freeswitch) and Brian West (bkw_) This guide hasn't been updated in a long time, s
Page: Lua Conference Room Management example
About This Lua example adds simple conference room management. The caller will be prompted to enter a conference number and a PIN to access the conference room. DB Schema Description of the database table "conferences": conferencing=> \d+ conferences Tab
Page: Lua Database agent login example
About Simple agent login script using a PostgreSQL database. Script db_agent_login.lua --[[ db_agent_login.lua - Simple agent login script using a PostgreSQL database. Lua Application for FreeSWITCH::mod_lua. by Daniel Swarbrick (pressureman @ #freeswitch
Page: Lua Directory example
About Takes input of the first 3 chars of a FreeSWITCH user's last name and lets the caller choose which returned result to connect. You will need mod_lua working for this. Example -- directory.lua -- written by Brian Snipes <> -- on 2
Page: Lua DISA Example
About Lua script contributed by bdfoster to perform D.I.S.A. (Direct Inward System Access) function in . Usage NOTICE: There are some inherit security concerns when allowing DISA. Mainly, we're transferring an untrusted external call into the default co
Page: Lua example Bridging two calls with retry
About The following code makes one call first, retries max_retries1 times, alternating between 2 different gateways, once the call has been established, it plays a greeting message, it makes the second call, retries max_retries2 times and once the second
Page: Lua example Send mail when no answer
About In this example we show how to test the bridge status and send mail to the destination's owner telling him/her that someone was looking for them. This assumes that the user has in his directory entry a variable named sendNoans; if it has a valuie of
Page: Lua examples
About This page will list all FreeSWITCH Lua examples. Lua Welcome IVR example - A simple Lua IVR to start with. Lua Intercom example - Calls a defined list of extensions that are not currently active in a call then auto answers the call. Lua MythTV ale
Page: Lua Fakecall responder example
About A small and simple lua script that simulates a call with random wait time before answering, randomly not answering at all (with various hangup causes) and saying things for a random times once answered. This would be useful for testing purposes simu
Page: Lua FreeSWITCH Dbh
About The FreeSWITCH Database Handler (freeswitch.Dbh) allows you to connect to databases from your Lua script. The advantage of this method is that it makes use of connection pooling provided by FreeSWITCH which gives a nice increase in speed when compar
Page: Lua Group Pickup example
About We will try in this example to simulate group pickup as in Asterisk. How it works The theory is that you put users in the groups table specifying the group_id they belongs. Then somebody can dial *4 and pickup the first call ringing in the group to
Page: Lua Install dependencies
About When using Lua to build IVR applications or serving configurations, you would likely need to install some dependencies. This page contains some of the most common dependencies. Lua Deps List Installing LuaSQL - Installing LuaSQL Installing LuaSocket
Page: Lua Intercom example
About Calls a defined list of extensions that are not currently active in a call then auto answers the call. Dialplan entry <extension name="intercom" > <condition field="destination_number" expression="^\*468$"> <action application="set" data="sounds_dir
Page: Lua IVR Menu Example
The Lua API allows us to create IVR menus dynamically. In this example, we are recreating demo_ivr.xml For more information about how to use freeswitch.I
Page: Lua Mail Call example
About This script takes one argument, a filename, and mails that file using lua. You must have the lua socket lib loaded. Call it like this in the dialplan: <action application=
Page: Lua Mail on NoAnswer example
About In this example we show how to test the bridge status and send mail to the destination's owner telling him/her that someone was looking for them. This assumes that the user has in his directory entry a variable named sendNoans; if it has a valuie of
Page: Lua MythTV alert example
About Example to send alert to MythTV require("socket") hosts = {} hosts[''] = 6948 hosts[''] = 6948 hosts[''] = 6948 cid_text = [[<mythnotify version="1"> <container name="notify_cid_info"> <textar
Page: Lua Numeric Paging Example
About Numeric pagers have become less fashionable, but are still in use. In this example, we will synthesize multiple concepts to create a Lua script that calls a numeric pager and enters a numeric message Numeric Pagers Numeric pagers have been around fo
Page: Lua TeleCaptcha example
About The following LUA script can be used for tele-captcha. Please be sure to read the description and set the config variables needed to point to your audio files. Lua Script Telecaptcha.lua --[[ title: tele-captcha author: johnnyvoip date: October 15,
Page: Lua Toolkit Jester
About Jester is a scripting toolkit for FreeSWITCH written in the Lua programming language. It's functionality sits squarely between the feature set of the XML dialplan, IVR menus, and custom scripting. The goal of Jester is to ease development of voice w
Page: Lua Welcome IVR example
About Lua script example for IVR, in this example we will to prompt user for digit and transfer to the chosen destination. This IVR is designed to be easy to use and easy to understand. Lua is a great easy, readable and embedded scripting language. Prereq
Page: Lua with Database
About Lua scripts allow one to connect to databases and external resources. Two Lua options are available if you are developing a FreeSWITCH application interfacing with a DBMS. Accessing a Database There are two ways to access databases from Lua: LuaSQL
Page: Lua: send SMS via Flowroute when voicemail is received
Brought to you by Steven Schoch on the FreeSwitch mailing list in June 2016. Assuming Lua is already installed on your system and configured with FreeSwitch. If you don't have an account with, sign up and enable the developer account needed.


Page: Mac OS X Archive
About This page contains information and links to pages that are no longer maintained. macOS Archive No archived versions yet. OS X FreeSWITCH™ Archive OS X Archived Page Testing/Updates Ended Reason Installation on OS X 10.11 El Capitan https://freeswi
Page: macOS
About This is a complete guide for installing FreeSWITCH™ and its prerequisites on macOS, and for establishing 24x7 operation. What Can You Do With FreeSWITCH™? FreeSWITCH™ is an application
Page: macOS 24x7 Preparation
About This section describes how to prepare macOS for running FreeSWITCH™ 24x7. It is part of the FreeSWITCH™ macOS documentation. Why 24x7 Operation? Once all of the FreeSWITCH™ configuration is completed and phones are in place, macOS must be prepared
Page: macOS Customization
About This section describes how to customize macOS and FreeSWITCH™ to provide additional benefits. It is part of the FreeSWITCH™ macOS documentation. Configuration Introduction Read Configuring FreeSWITCH to learn about the various configuration files an
Page: macOS Email Voicemail
About This section describes how to customize macOS and FreeSWITCH™ to send voicemail files as emails automatically. It is part of the FreeSWITCH™ macOS documentation. Email Voicemail to an iPhone When a voicemail is left with FreeSWITCH™ the voicemail fi
Page: macOS Installation
About This page describes FreeSWITCH™ installation methods available for the macOS releases below. It is part of the FreeSWITCH™ macOS documentation. --- Testing Status Testing is performed using clean installs of macOS onto erased volumes, not upgraded
Page: macOS macFI Installation
About This page describes automated installation using the macOS FreeSWITCH™ Installer (macFI). It is part of the FreeSWITCH™ macOS documentation. What Can the macOS FreeSWITCH™ Installer (macFI) do? Install FreeSWITCH™ from the latest public release or
Page: macOS Manual Installation
About This page describes the process of installing, updating and removing FreeSWITCH™ and its prerequisites on macOS using the Terminal application instead of the macFI. This page is part of the FreeSWITCH™ macOS documentation. --- Knowledge What You Sh
Page: macOS Testing and Diagnostics
About This page describes basic testing and diagnostics of FreeSWITCH™ on macOS. It is part of the FreeSWITCH™ macOS documentation. --- Testing FreeSWITCH Before testing FreeSWITCH™ verify that the installation was completed normally. If using macFI open
Page: Making Event Socket behave like the console
About A handy trick to allow mod_event_socket commands to be treated like they are being run from the FreeSWITCH console. Problem The console includes some features that are not active when a command is sent over the Event Socket. A good example is the sy
Page: Manipulating Channel Variables
Basic Dialplan Usage It's easy to use the pre-existing value of a variable to change call flow, an example, found in the default configuration: <condition field="${call_debug}" expression="^true$" break="never"> <action application="info"/> </condition> T
Page: max_forwards
max_forwards integer Contains the current Max-Forwards value provided in the originating request. The Max-Forwards value is decremented by one for each hop in a SIP call, when the Max-Forwards value is depleted the receiving agent must not pass the call o
Page: mduration
mduration string
Page: Media5
Media5 Mediatrix Media5 has a big product range on different gateways. The tested product was a 4102s. As most of their products are using (more or less) the same firmware I would expect the same results with them. Firmware Version dgw Registr
Page: media_bug_answer_req
media_bug_answer_req boolean Start recording only when the channel has been answered. Usage <action application="set" data="media_bug_answer_req=true"/>
Page: media_mix_inbound_outbound_codecs
media_mix_inbound_outbound_codecs boolean Set which list of codecs is offered to the B-leg. FreeSWITCH used to take the codecs from the inbound A-leg and offer them out to the B-leg mixed with the configured list of outbound codecs. With large lists of co
Page: media_webrtc
media_webrtc boolean Used to instruct FS to generate an INVITE for a WebRTC call. For example, in case you need to originate a WebRTC call but you are not calling a SIP UA that is registered with FS (if the UA is registered with FS, FS knows it should ori
Page: memory_debug
memory_debug boolean
Page: Message_broadcasting
About This document covers information about message broadcasting. Voice broadcasting Please publish guidelines on what can and cannot be added. HELP section provides no guidance. Thanks!
Page: MGCP
About MGCP, or Media Gateway Control Protocol is a protocol used within a distributed Voice over IP system. MGCP is defined in RFC 3435, which obsoletes an earlier definition in RFC 2705
Page: Microsoft Exchange UM
Exchange 2007 UM Exchange 2007 offer a new role called Unified Messaging allowing TTS, ASR and DTMF navigation enabled telephony and voice services such as: Voicemail 2 emailFax 2 emailOutlook Voice AccessListen to new and saved e-mail and voice mail mess
Page: MikesNotes
About You've heard of Cliff's Notes? These are mine on FreeSWITCH ("FS"). I'm Mike, a telephony newbie living near Washington, D.C., and often A.K.A. zoiks or MikesNotes on freenode's IRC #freeswitch. These are my Notes, learned and earned slowly and pain
Page: min-idle-cpu
About min-idle-cpu specifies the minimum CPU idle time below which FreeSWITCH will refuse additional calls. min-idle-cpu Used in: autoload_configs/switch.conf.xml min-idle-cpu reserves the specified percentage of CPU idle time for other processes. This
Page: min_dup_digit_spacing_ms
min_dup_digit_spacing_ms integer Duplicate inband DTMF that starts sooner than this time will be ignored. That is, this is the minimum gap from the end of the first digit and the start of the repeated digit required for two digits to be detected. This val
Page: Misc Destinations
Create an extension that transfers to any number such as cell phone, home phone, or any number you wish. /freeswitch/conf/dialplan/default.xml <extension name="8334"> <condition field="destination_number" expression="8334"> <action application="transfer"
Page: Mitel
Mitel devices Mitel 3300 ur3 Using a SIP Trunk, works well calling Mitel phones over SIP or Minet, voicemail, etc. Note: you may have issues with ptime discrepancies. Try using absolute_codec_string=PCMU and see if it clears up the audio. It seems to be a
Page: Mobile and Wifi
Mobile Phones Nokia N95, N82, E51, E52, E71, E72, E60 and others Registration: works Caller Id: works Call in/out: works Call waiting: works Transfer calls: works Park calls: unknown All newer Nokia phones suppor
Page: Mod lcr parse scripts
About Below is example of how to parse HTML pages of rate lists for mod_lcr usage. 1. is called by cron on a daily basis, which is the action script that holds all the perl scripts together cron entry 45 01 * * * freeswitch ( cd /opt/freeswitch/scr
Page: Mod perl hangup hook
About Simple perl hangup hook test w/ session data avail in $env obj How to One cannot use $session in a hangup hook, so we need to extract the data from $env # simple perl hangup hook test # # be sure to have this line in your dp: # <action application="
Page: Mod pocketsphinx
About Pocketsphinx is an open source speech recognition engine developed by Carnegie Mellon University. mod_pocketsphinx allows FreeSWITCH™ to recognize speech. Works on Windows, Mac OS X and Linux. 8k and 16k acoustical models
Page: Mod ssh
About This document covers information about mod_ssh. mod_ssh This module is still in development, it may or may not work as expected and features may be missing Version This is an external module and not part of the FreeSWITCH package. Introduction mod_s
Page: mod_abstraction
About mod_abstraction links a new API function to another using a regular expression parser to adapt the provided arguments. It allows for simplified, standardized script replacement API. You MUST reload mod_abstraction when changing the XML to add or rem
Page: mod_amqp
About mod_amqp gives ability to send events through an amqp server like RabbitMQ and listen for api commands. You can configure one or more connections and filter for which events to send. Loading Once you have installed FreeS
Page: mod_amr
About AMR incorporates patented technologies to do an Adaptive Multi-Rate on the bandwidth a codec will use. Due to the patent concerns this module can only be distributed to individuals with prior licensing in place from the patent holders. Licensing is
Page: mod_amr_wb
About AMR Widband Codec module also knowne as G.722.2 TBD (To Be Documented)
Page: mod_avmd
avmd_example_confluence.png About Advanced Voice Mail Detection module is designed to detect the single-frequency constant-amplitude tone in audio signal. Common usage is to detect "beep" sound at the end of the voicemail or answering machine greetings (s
Page: mod_bert
About mod_bert provides bert_test, an application that generates and captures a milliwatt tone and prints an error rate at the end. It also provides ESL events that can be used to load-test equipment and detect if there are audio gaps in some of the sessi
Page: mod_blacklist
About The blacklist module is a tool designed to be called from a dialplan or script which returns a boolean value of 'true' or 'false'. The bulk of this wiki content is paraphrased from mazilo's post
Page: mod_callcenter
About mod_callcenter is an inbound call queuing application that can be used for call center needs. The callcenter dialplan application provides call center functionality by distributing calls to agents using various scenarios and rules. A score-based sys
Page: mod_cdr_csv
About This module allows you to log call detail records (CDRs) to a text file using text generation templates. These templates along with the default configuration are stored in the file <tt>''freeswitch''/conf/autoload_configs/cdr_csv.conf.xml</tt>. Whic
Page: mod_cdr_mongodb
About This module stores CDRs (Call Detail Record) directly to a MongoDB database. Install & Configure To compile the module in FreeSWITCH, uncomment the module in modules.conf and add the module to freeswitch/conf/autoload_configs/modules.conf.xml for au
Page: mod_cdr_pg_csv
About This module logs call detail records (CDRs) directly to a PostgreSQL database, using the schema defined in the config file (freeswitch/conf/autoload_configs/cdr_pg_csv.conf.xml). If a record insert fails for whatever reason, the record will be local
Page: mod_cdr_sqlite
About This module logs call detail records (CDRs) directly to a SQLite database, using templates to define the field order for the SQL insert. These templates along with the default configuration are stored in the filefreeswitch/conf/autoload_configs/cdr_
Page: mod_celt
About mod_celt allows you to have the HD CELT audio codec in FreeSWITCH. Setup Uncomment mod_celt in src/modules.conf and in conf/autoload_configs/modules.conf.xml Test Brian has set up a test that plays a 48kHz sound file: See Al
Page: mod_cepstral
About Cepstral is a TTS (Text to Speech) engine, Cepstral provides realistic synthetic voices in the following languages : US English, UK English, Italian, German, Canadian French & Americas Spanish For further information about Cepstral, please visit the
Page: mod_cidlookup
About mod_cidlookup is a Caller*ID lookup API. This FreeSWITCH module allows one to: lookup a number to name mapping in a local database lookup a number to name mapping from a URL cache the results of the URL lookup in memcache (if the cache module is ins
Page: mod_cluechoo
About mod_cluechoo implements Toyoda Masashi's famous Steam Locomotive (SL) command for FreeSWITCH.
Page: mod_codec2
About codec2 is a narrow band codec created by the developer of the speex codec. Instalation codec2 is included in the freeswitch source tree, just add it in module.conf codecs/mod_codec2 save, and do: ./configure make make install. Usage Add mod_codec2 t
Page: mod_com_amd
About mod_com_amd is a commercial module used to analyze call progress and identify if it was answered by a human or a machine. Introduction provides a licensed commercial Answering Machine Detection module. A key technology for autodialers is the abili
Page: mod_com_g729
About mod_com_g729 allows you to have the G.729/A audio codec in FreeSWITCH. It supports G.729 and G.729 Annex A (a=fmtp:18 annexb=no). G.729 is a toll-quality, low-bandwidth audio codec supported by many VoIP providers. The voice quality of a G.729-encod
Page: mod_commands
About mod_commands processes the API commands that can be issued to FreeSWITCH via its console, fs_cli, the event socket interface, and scripting interfaces. The set of available commands is dependent on which modules are loaded. The authoritative set of
Page: mod_conference
About mod_conference provides both inbound and outbound conference bridge service for . It can process multiple bit rates, load various profiles that specify DTMF controls, play prompt sounds and tones, and many other functions. You can create as many con
Page: mod_console
About mod_console simply lets the user control the console messages. Configuration There are just a few global options in console.conf.xml, which are found in the <settings> section: <settings> <param name
Page: mod_curl
About This application allows one to make a HTTP request and receive the response. Output can be plain text (headers optional) or a json object. Setup & Configuration In order to use mod_curl, you have to tell FreeSWITCH to compile in this module by editi
Page: mod_db
About mod_db implements an API and dialplan interface to a database backend. The database can either be in sqlite or ODBC. It also provides support for group dialing and provides database backed limit interface. Requirements ODBC must be configured to use
Page: mod_dialplan_asterisk
About Once loaded in modules.conf.xml it can be used in your sofia profile by adding "asterisk" as the dialplan parameter. You can also transfer calls to it by specifying it as the dialplan param in the transfer or execute_extension apps. It's not entirel
Page: mod_dialplan_xml variables
About These are the variables defined for mod_dialplan_xml module. auto_hunt Setting auto_hunt to "true" will alter the normal sequential processing of dialplan extensions. auto_hunt will cause the dialplan to 'jump' to a specific extension name, not proc
Page: mod_dingaling
About mod_dingaling is a generic xmpp registration that can be used for Google talk or any other XMPP integration. More information about Jingle can be found here: Wikipedia Jingle Protocol It has been an
Page: mod_dir
mod_dir string
Page: mod_directory
About mod_directory is a dial by name directory application. directory <profile_name> <domain name> <transfer context> Caller can search for a member of a domain using their telephone keypad. They can search by first or last name. Single or multiple resul
Page: mod_distributor
About mod_distributor distributes calls to gateways in a weighted round-robin fashion. It is configured via XML file and can use multiple lists of gateways. Installing Edit modules.conf and add the following line: applications/mod_distributor Then, make m
Page: mod_dptools
About Dialplan tools provide the apps (commands) to process call sessions in XML dialplans. Curated List This list is manually created and maintained until all pages have been migrated from the old wiki. A answer - Answer the call for a channel. att_xfer
Page: mod_dptools: answer
About Answer the call for a channel. This sets up duplex audio between the calling ''A'' leg and the FreeSwitch server. It is not about other endpoints. The server might need to 'answer' a call to play an audio file or to receive DTMF from the call. Once
Page: mod_dptools: att_xfer
About Make an attended transfer. Usage att_xfer <channel_url> Bridge a third party specified by channel_url onto the call, speak privately, then bridge original caller to target channel_url of att_xfer. From revision '''14650''', there is new parame
Page: mod_dptools: bgsystem
About Execute an operating system command in the background and continue traversing the dialplan. Usage bgsystem <command> Example <action application="bgsystem" data=""/> Get the information back as a channel variable! <action applicati
Page: mod_dptools: bind_digit_action
About Bind a key sequence or regex to an action. Description The bind_digit_action application is very similar to bind_meta_app but is better and more flexible. It can be used to replace bind_meta_app in all cases. bind_digit_action uses the concept o
Page: mod_dptools: bind_meta_app
About Execute a dialplan application on DTMF command on specified call legs during a bridge. Description bind_meta_app binds an application to the specified call leg(s). During a bridged call, the DTMF sequence on the bound call leg will trigger the e
Page: mod_dptools: break
About Cancel an application currently running on the channel. Dialplan execution proceeds to the next application. Optionally clears all unprocessed events (queued applications) on the channel. Usage break [all] Example <action application="break" data="$
Page: mod_dptools: bridge
About Bridge a new channel to the existing one. Generally used to route an incoming call to one or more endpoints. Multiple endpoints can be dialed simultaneously or sequentially using the comma and pipe delimiters, respectively. Usage <action application
Page: mod_dptools: bridge export
About Export a channel variable across any bridge. This application differs from export in that it works with *any* kind of bridge, not just a bridge called from the dialplan. For example, bridge_export will export its variables across a uuid_transfer whe
Page: mod_dptools: capture
About Capture digits into a channel variable array. Examples Here are some raw examples you can put into a dialplan to get an idea of what happens with arrays: <extension name="arrays"> <condition field="destination_number" expression="^110(\d*)$"> <act
Page: mod_dptools: chat
About Send a text message to an IM client. Usage <action application="chat" data="protocol | from_jid | to_jid | message | [<content-type>]"/> Fields are separated with the pipe | character. Whitespace is allowed between the pipe character and the data fi
Page: mod_dptools: check_acl
About Block originating address unless it matches an ACL. Test the i.p. address that originates the call against an Access Control List or CIDR mask and terminate the call if the originating address does not match. If it matches, the call proceeds through
Page: mod_dptools: clear_digit_action
About Clear all digit bindings. Destroy a bind digit realm or all realms created with mod_dptools: bind_digit_action Usage clear_digit_action <realm>|all[,target] If no arguments are specified, it is the same as specifying all. The argument target takes t
Page: mod_dptools: clear_speech_cache
About Clears out the speech handle cache. Usage <action application="clear_speech_cache"/>
Page: mod_dptools: cng_plc
About Applies packet loss concealment and comfort noise generation. cng_plc performs packet loss concealment on lost packets and execute on originate. It is like execute on answer, etc. but only for outbound calls during originate. Comfort noise is artifi
Page: mod_dptools: deflect
About Deflect sends a SIP REFER to the originator of an answered call. The deflect application allows to be removed from the list of connection hops and tell the originator to reroute the call. When using the deflect application, FreeSWITCH first hangs u
Page: mod_dptools: delay_echo
About Places the calling channel in delayed audio loopback mode. It simply returns all audio sent, including voice, DTMF, etc after the specified delay [ms]. It is generally useful for checking if RTP audio path works both ways. Normal echo app can fail w
Page: mod_dptools: detect_speech
About Implements speech recognition. Usage detect_speech <mod_name> <gram_name> <gram_path> [<addr>] detect_speech grammar <gram_name> [<path>] detect_speech grammaron <gram_name> detect_speech grammaroff <gram_name> detect_speech grammarsalloff detect_sp
Page: mod_dptools: digit_action_set_realm
About Used with to bind_digit_action select the realm for which digits will be applied when digits are bound. See mod_dptools: bind_digit_action for examples. Usage <action application="digit_action_set_realm" data="my_realm"/> See Also mod_dptools: bind_
Page: mod_dptools: displace_session
About Displace file. Plays a file or stream to a channel. Usage application="displace_session" data="<path> [<flags>] [+time_limit_ms]" Parameters path: any sound format FreeSWITCH supports, wav, local_steam, shout etc. flags: mlr m/mux = mux, so both end
Page: mod_dptools: eavesdrop
About eavesdrop provides the ability to spy on a channel. It often referred to as call barge. For persistent spying on a user see mod_spy. Usage eavesdrop [<uuid>|all] Variables <action application="set" data="eavesdrop_require_group=<groupID>"/> <action
Page: mod_dptools: echo
About Places the calling channel in loopback mode. It simply returns everything sent, including voice, DTMF, etc. Consider it an "echo test". It is generally useful for checking delay in a call path. Example From the Dialplan <action application="echo" da
Page: mod_dptools: endless_playback
About This application is used to play a file endlessly and the playing cannot be stopped externally. Usage <action application="endless_playback" data="filename"/> Notes Call control events, particularly hangup, will terminate endless playback. DTMF de
Page: mod_dptools: eval
About Eval can be used to execute an internal API or simply log some text to the console. Usage eval <string to eval> This application may be run inline fro
Page: mod_dptools: event
About Event application can be used to fire aribtrary events. Usage Event Event-Name=$event_name[,Event-Subclass=$event_subclass][,header=value,header=value] This application may be run inline
Page: mod_dptools: execute_extension
About Execute an extension from within another extension and return. execute_extension executes an extension like a macro then returns, whereas transfer does not r
Page: mod_dptools: export
About Exports a channel variable from the A leg to the B leg. Variables and their values will be replicated in any new channels created in the one in which export was called. Usage <action application="export" data="name_of_var_to_export=value"/> Note:
Page: mod_dptools: fax detect
About Fax detection tool. Usage To detect a fax, you can use the following XML in your dialplan: <action application="tone_detect" data="fax 1100 r +5000 transfer fax XML default" /> When a fax is detected, the call will be routed to context=default, ext
Page: mod_dptools: file_string
About file_string is a useful way of specifying multiple sound files to be played or written sequentially. It is a convenience feature. file_string is implemented by mod_dptools Discussion The idea behind file_string is simple: when you have multiple so
Page: mod_dptools: flush dtmf
About Flushes DTMFs received on a channel. Useful in cases where callers may have entered extra digits in one dialog and you want to flush them out before sending them into another dialog. (See mod_dptools: play_and_get_digits). Usage <action application=
Page: mod_dptools: hangup
About Hangs up a channel, with an optional cause code supplied. Usage <action application="hangup" data="USER_BUSY"/> If you use hangup after a bridge overrides the cause with the cause received from the bridge application. You can avoid this using sip_i
Page: mod_dptools: info
About Dumps channel information to console. Usage info <action application="info"/> To execute on B-leg: <action application="set" data="bridge_pre_execute_bleg_app=info"/> Example with a different loglevel from a Lua script: session1:execute("info","no
Page: mod_dptools: Inline Dialplan
About Allows you to specify a dialplan in code where you might normally specify an extension and dialplan. Basic syntax is a comma-separated list of 'app:arg' pairs: 'app1:arg1,app2:arg2,app3:arg3' inline Single quotes generally are necessary except in
Page: mod_dptools: intercept
About Allows one channel to bridge itself to the a or b leg of another call. The remaining leg of the original call gets hungup (or does this only happen with hangup_after_bridge?) Usage intercept [-bleg] <uuid> Examples <action application="intercept" da
Page: mod_dptools: IVR Menu
About The IVR Menu documentation page. General Concept You may also want to reference this; The IVR M
Page: mod_dptools: Limit
About Set a limit on number of calls to/from a resource. Limit is designed to provide limit management on resources. This is useful if you want to limit the number of calls to or from an arbitrary resource. When the limit is reached, the call is automatic
Page: mod_dptools: log
About Logs a string of text to the console. See mod_logfile for more information on logging. Usage log [loglevel] <log message> loglevel defaults to DEBUG if not specified. This application may be run inline from the XML dialplan. Examples <action appli
Page: mod_dptools: loop_playback
About Playback a file to the channel looply for limted times. But it can not set pause time in between, like playback,playback_sleep_val,file_string
Page: mod_dptools: media_reset
About Reset all bypass/proxy media flags. Usage Use this application if you need to reset the media flags of a session before bridging a subsequent call. Consider this use case: Initially, A-Leg is bridged with: <action application="set" data="continue_
Page: mod_dptools: mkdir
About Creates a directory. Also creates parent directories by default (When they don't exist). Freeswitch must have write permission in the given path - No error message is send to the log when the path could not be created due to permission problems. U
Page: mod_dptools: multiset
About Set multiple channel variables for the channel calling the application. Usage multiset [^^<delim>]<varname>=<value> <var2>=<val2>" This application may be run [[Dialplan_XML#Inline_Actions|inline]] from the XML dialplan. The default separator is a
Page: mod_dptools: mutex
About Block on a call flow only allowing one at a time. Usage mutex <keyname> [on|off] Examples Examples needed See Also Dialplan XML Dialplan mod_dptools: system
Page: mod_dptools: page
About Play a recorded file to a list of channels , waiting until answered. Set page_path to the audio file to play once the channel is answered. This command is even more useful when the sip auto answer flag is set to deliver the page message to the endpo
Page: mod_dptools: park
About Places a channel "on hold" in the switch, instead of in the phone. Allows for a number of different options, including: Set caller in a place where the channel won't be hungup on, while waiting for someone to talk to. Generic "hold" mechanism, where
Page: mod_dptools: phrase
About Speak a phrase of text using a predefined phrase macro. (For more information on TTS see mod_cepstral and [[OpenMRCP]].) See also the Speech_Phrase_Management page for more information and examples; This command relies on the configuration in the ph
Page: mod_dptools: pickup
About Permits proper answering of multiple simultaneous calls to the same pickup group. Basically the pickup endpoint is a dummy channel that never answers to which you can originate from anywhere you can place calls. Call it alone or place it in a list f
Page: mod_dptools: play_and_detect_speech
About Play while doing speech recognition. Result is stored in the [[Variable_detect_speech_result | detect_speech_result]] channel variable. Usage <file> detect:<engine>[:<mrcp_profile>] {param1=val1,param2=val2}<grammar> Parameters file : file to play
Page: mod_dptools: play_and_get_digits
About Play a prompt and get digits. The prompt file can be interrupted by dialed digits. Usage <min> <max> <tries> <timeout> <terminators> <file> <invalid_file> [<var_name> [<regexp> [<digit_timeout> [<transfer_on_failure>]]]] Parameters min = Minimum num
Page: mod_dptools: playback
About Plays a sound file on the current channel. Usage <action application="playback" data="<sound-file-to-play>[@@seek-offset]"/> sound-file-to-play — sound file in a format that is understood by libsndfile
Page: mod_dptools: pre answer
About pre_answer establishes media (early media) but does not answer. Description pre_answer is equivalent to a SIP status code 183 with SDP. (This is the same as cmd Progress in Asterisk.) It establishes media (early media) but does not answer. You can u
Page: mod_dptools: presence
About Sends an event of either type PRESENCE_IN or PRESENCE_OUT. Currently, this function is not very useful in conjunction with sofia. This does not affect the presence of hook state for use with BLF either, but sending an event that expresses the user's
Page: mod_dptools: privacy
About Set caller privacy on calls. Usage privacy no|yes|name|full|number Examples <action application="privacy" data="yes"/> Worth noting As of 2009-02-06 this is not working with Q931 (EuroISDN) PRIs. I am not sure why, but a bug report will be issued. S
Page: mod_dptools: queue_dtmf
About Send DTMF digits after a bridge is successful from the session using the method(s) configured on the endpoint in use. Usage queue_dtmf <dtmf digits>[@<tone_duration>] Use the character w for a .5 second delay and the character W for a 1 second de
Page: mod_dptools: read
About Read DTMF (touch-tone) digits. Usage read <min> <max> <sound file> <variable name> <timeout> <terminators> Parameters min = Minimum number of digits to fetch. max = Maximum number of digits to fetch. sound file = Sound file to play before digits ar
Page: mod_dptools: record
About Record to a file from the channel's input media stream. Usage record,Record File,<path> [<time_limit_secs>] [<silence_thresh>] [<silence_hits>] Record is used to record voice messages, such as in a voicemail system. This application will record to
Page: mod_dptools: record_session
About Records an entire phone call or session. Multiple media bugs can be placed on the same channel. File Formats Simply set the file extension to define the recorded file's format. Use the console command show file to display available formats. record
Page: mod_dptools: redirect
About Can redirect a channel to another endpoint, you must take care to not redirect incompatible channels, as that wont have the desired effect. Examples If you redirect to a SIP url it should be a SIP channel. By providing a single SIP URI FreeSWITCH wi
Page: mod_dptools: regex
About Executes a Regular Expression. Technically this is not a dialplan application but rather an API. API's are normally done at the CLI, however using the ${my_api(my_args)} syntax with the ''set'' application allows for the use of many API's inside the
Page: mod_dptools: remove_bugs
About Removes all media bugs from the channel, including those set by record_session, tone_detect, and other applications that use media bugs. Usage <action application="remove_bugs"/>
Page: mod_dptools: rename
About Rename a file. Usage rename <from_path> <to_path> Examples <action application="rename" data="/path/to/file /path/to/renamed_file"/> See Also Dialplan Configuration Modules mod_dptools
Page: mod_dptools: respond
About Send SIP session respond code to the SIP device. Usage <action application="respond" data="response_info"/> Example Respond can be used to do (probably amongst other things) authentication in the dialplan. For example if you want some of the extensi
Page: mod_dptools: ring_ready
About This causes an 180 Ringing to be sent to the originator. Usage ring_ready Examples <action application="ring_ready" /> <!-- Request a certain tone/file to be played while you wait for the call to be answered--> <action application="set" data="ringba
Page: mod_dptools: say
About The say application will use the pre-recorded sound files to read or say various things like dates, times, digits, etc. The say application can read digits and numbers as well as dollar amounts, date/time values and IP addresses. It can also spell o
Page: mod_dptools: sched broadcast
About Schedule future broadcast. Usage application="sched_broadcast" data="[+]<time> <path> [aleg|bleg|both]" As of commit 116ebc0 the following syntax is also valid: application="sched_broadcast" data="[[+]<time>|@time] <uuid> <path> [aleg|bleg|both]" Wh
Page: mod_dptools: sched cancel
About Cancel a scheduled future broadcast/transfer. Usage application="sched_cancel" data="[groupid|taskid]" Examples <action application="sched_cancel" data="123"/> When a scheduled broadcast or scheduled transfer is executed, the session variable "las
Page: mod_dptools: sched hangup
About The sched_hangup application allows you to schedule a hangup action for a call, basically to limit call duration. Recipe 1 Before you call bridge add another action that executes the sched_hangup application. <action application="sched_hangup" data=
Page: mod_dptools: sched transfer
About Schedule a transfer in the future. Usage application="sched_transfer" data="[+]<time> <extension> [<dialplan> <context>]" As an API: sched_transfer [+]<time> <uuid> <extension> [<dialplan> <context>]" When a scheduled transfer is executed, the sess
Page: mod_dptools: send display
About Sends an info packet with a sipfrag. If the phone supports it will show message on the display. Usage send_display <message> Example <action application="send_display" data="Hello world"/> Compatibility List Polycom Tested on a soundpoint 670 runnin
Page: mod_dptools: send dtmf
About Send DTMF digits from the session using the method(s) configured on the endpoint in use. Use the character w for a .5 second delay and the character W for a 1 second delay. Usage send_dtmf <dtmf digits>[@<tone_duration>] Example <action application=
Page: mod_dptools: send_info
(This is a place-holder for lirakis to document send_info and setting set fs_send_unsupported_info. TNX. - JB)
Page: mod_dptools: session loglevel
About Overrides the system loglevel set in switch.conf.xml for this channel only. Usage <action application="session_loglevel" data="debug"/> Examples Let's say that your switch.conf.xml has this: <param name="loglevel" value="info"/> Yet you'd like certa
Page: mod_dptools: set
About Set a channel variable for the channel calling the application. Usage set <channel_variable>=<value> This application may be run [[Dialplan_XML#Inline_Actions|inline]] from the XML dialplan. Examples <action application="set" data="effective_calle
Page: mod_dptools: set audio level
About Increase or decrease audio level for a channel's incoming (read) audio stream our outgoing (write) audio stream. This allows you to alter the volume of the call and make it louder or quieter. Usage set_audio_level <direction> <level> Examples <actio
Page: mod_dptools: set zombie exec
About Sets the zombie execution flag on the current channel. If the channel is hung up the session will continue executing commands. Useful for additional post call processing (ex: where you would still need access to channel variables). Usage set_zombie_
Page: mod_dptools: set_global
About Sets a global channel variable that all other channels can access. The variable will remain even after the channel which created it has hung up. Usage set_global <channel_variable>=<value> This application may be run inline from the XML dialplan. E
Page: mod_dptools: set_name
About renames a channel (sets ${channel_name} variable) Usage set_name STRING Example <action application="set_name" data="My_new_channel">
Page: mod_dptools: set_profile_var
About Adds a header to the CHANNEL events. Usage set_profile_var <profile_variable>=<value> This application may be run inline from the XML dialplan. Examples <action application="set_profile_var" data="accountcode=${accountcode}"/> OR <action applicati
Page: mod_dptools: set_user
About Pulls all of the channel variables defined for a user as if the user had auth'd. Usage set_user <user@domain> [prefix] This application may be run inline from the XML dialplan. Example <action application="set_user" data="5551212@${domain}"/> Or, t
Page: mod_dptools: sleep
About Pause the channel for a given number of milliseconds, consuming the audio for that period of time. Calling sleep also will consume any outstanding RTP on the operating system's input queue, which can be very useful in situations where audio becomes
Page: mod_dptools: soft_hold
About Place bridged channels on hold on . Only works when two channels are bridged. Usage <action application="soft_hold" data="<unhold_key> [moh_a] [moh_b]"/> unhold_key : dtmf key to unhold moh_a : moh to play on leg a moh_b : moh to play on leg b If n
Page: mod_dptools: sound_test
About Dumps information about a channels packets to the console (but not the log file). Sample output: 2013-02-01 18:31:01.278139 [CONSOLE] switch_ivr.c:109 packet_avg=6281 packet_peak=32510 period_avg=32493 global_avg=32290 2013-02-01 18:31:01.298140 [CO
Page: mod_dptools: speak
About Speaks a string or file of text to the channel using the defined speech engine. Usage <action application="speak" data="<engine>|<voice>|<text>|[timer_name]"/> Flite Voices Flite is a free TTS engine that isn't suitable for production environments b
Page: mod_dptools: start_dtmf
About You can use start_dtmf in a dialplan to enable in-band DTMF detection (i.e. the detection of DTMF tones on a channel). You should do this when you want to be able to identify DTMF tones on a channel that doesn't otherwise support another signaling m
Page: mod_dptools: start_dtmf_generate
About Generate DTMF on current channel. Usage <action application="start_dtmf_generate"/> Example As an example, placing this in the dialplan prior to bridging a call will allow a phone set to rfc2833 OR info to send DTMF tones inband out to the recipient
Page: mod_dptools: stop_displace_session
About Stop displace file. Usage <action application="stop_displace_session" data="path"/> Example <action application="stop_displace_session" data="/tmp/sound_file.wav"/> See Also mod_dptools displace_session
Page: mod_dptools: stop_dtmf
About Stop in-band DTMF detection. Usage <action application="stop_dtmf"/>
Page: mod_dptools: stop_dtmf_generate
About Disable generation of DTMF on current channel. Usage <action application="stop_dtmf_generate"/> See Also start_dtmf_generate
Page: mod_dptools: stop_record_session
About Stop record session. Usage <action application="stop_record_session" data="path"/> Example <action application="stop_record_session" data="${record_file_name}"/> See Also Misc._Dialplan_Tools_record_session Variable RECORD_TITLE Variable RECORD_COPY
Page: mod_dptools: stop_tone_detect
About Stop tone detection on the channel. Usage <extension name="stop_tone"> <condition field="destination_number" expression=".*"> <application="stop_tone_detect"/> </condition> </extension> See Also mod_dptools tone_detect
Page: mod_dptools: strepoch
About Returns the number of seconds since the Unix epoch (UTC of midnight January 1, 1970) Examples The following extension will only start to play music on hold if called before the date/time specified by the epoch. <extension name="moh"> <condition fiel
Page: mod_dptools: strftime
About Displays the current time in various formats. For time zone enabled time zone function, see strftime_tz For a list of what args are available, see this table (better link? list here?) Usage
Page: mod_dptools: strftime_tz
About Displays the current time in the specified timezone, in various formats. See also mod_dptools#strftime. Usage strftime_tz [timezone [format_string]] Returns the system time in the timezone specified. If the timezone is not specified, it defaults to
Page: mod_dptools: strmicroepoch
About Returns the number of microseconds since the Unix epoch (UTC of midnight January 1, 1970) From the Dialplan <action application="set" data="rec_full=/var/spool/freeswitch/audio_rec/${strmicroepoch()}_${uuid}.wav"/> <action application="set" data="re
Page: mod_dptools: system
About Execute an operating system command and wait for the result (blocking). Usage system <command> Because this command blocks further execution of the dialplan until it completes, do not execute long-running commands this way. An alternative is the
Page: mod_dptools: three_way
About Barge in the given call, i.e., join some channel to an active call without invitation. Description Three way is implemented using eavesdrop and therefore DTMF signals sent by the third party will have the same affect. Usage <action application="thre
Page: mod_dptools: tone_detect
About About text. Usage If you are trying to detect fax tones, using mod_spandsp spandsp_start_fax_detect is recommended. Updated, preferred behavior: <action application="set" data="execute_on_tone_detect=set my_tone=true"/> <action application="set" dat
Page: mod_dptools: transfer
About Immediately transfer the calling channel to a new context. If there happens to be an xml extension named <destination_number> then control is "warped" directly to that extension. Otherwise it goes through the entire context checking for a match. Des
Page: mod_dptools: unbind_meta_app
About Use unbind_meta_app to unbind a key previously bound with bind_meta_app. Takes the key value as its ARG. If no argument (key value) is provided, then ALL keys bound on the channel will be unbound. Examples <!-- Unbind a particular key - in this ca
Page: mod_dptools: unset
About This page describes how to use unset application. Description Clears out a channel variable. Usage <application="unset" data="variable_name"> This application may be run inline from the XML dialplan. Example <action application="unset" data="foo"/>
Page: mod_dptools: verbose_events
About About text. Usage This application may be run inline from the XML dialplan. Also, you can set the following in autoload_configs/switch.conf.xml, <param name="verbose-channel-events" value="yes"/> fsctl verbose_events on|off works, too Example <con
Page: mod_dptools: wait_for_answer
About This page describes how application wait_for_answer works. Description Wait for the session to be answered before continuing. Usage <action application="wait_for_answer"/>
Page: mod_dptools: wait_for_silence
About This page describes how the application wait_for_silence works. Usage wait_for_silence <silence_thresh> <silence_hits> <listen_hits> <timeout_ms> [<file>] Description Pause dialplan execution while waiting for a certain length of silence on the chan
Page: mod_dptools:gentones
About Generate TGML tones. Usage gentones <TGML>[|loops] Examples <pre> <!-- Generate a 500ms beep at 800Hz --> <action application="gentones" data="%(500,0,800)"/> <!-- Generate a DTMF string --> <action application="gentones" data="0800500005"/> <!-- Ge
Page: mod_dptools:group
About This application adds/deletes groups to/from the db(internal db or ODBC) and allows calls to these groups in conjunction with the bridge-application. Depends on mod_db and mod_dptools. Usage group,[insert|delete|call]:<group name>:<url>,group [inser
Page: mod_easyroute
About Easyroute is a simple DID routing engine that uses a database lookup to determine how to route an incoming call. It uses a simple principle of numbers and gateways, with a many-to-one relationship. The lookup is performed by submitting the DID numbe
Page: mod_enum
About ENUM (Electronic Number Mapping System) is a system that uses standard phone numbers as a key to lookup addressing and identification information that can potentially let Freeswitch servers communicate directly, thus bypassing the PSTN, reducing cos
Page: mod_erlang_event
About mod_erlang_event is a derivative of mod_event_socket that sends events and receives commands in erlang's binary term format. This allows FreeSWITCH™ to behave like just another er
Page: mod_esf
About mod_esf implements extra SIP functionality such as multicast paging support. Some phones and many IP public address paging devices can accept IGMP multicast RTP streams. The benefit of using IP multicast is that one RTP stream can propagate to many
Page: mod_esl
About mod_esl provide function to communicate with a remote FreeSwitch. Currently implement to execute API remotely Description In a multi server setup. It might be interesting to query a remote to gather informations. This module will include different
Page: mod_event_multicast
About mod_event_multicast sends FreeSWITCH events from the machine via multicast to a configurable address/port combination. Other hosts can be configured to listen for these events and parse them, potentially also triggering events to happen on those hos
Page: mod_event_socket
About mod_event_socket is a TCP based interface to control FreeSWITCH. The default values are to bind to port 8021 and the default password is ClueCon. See the Configuration section below for a note on when to use instead of T
Page: mod_event_socket_dotnet
About The .NET interface is still under heavily development, which means that the API can be changed without warning. The event socket part should be pretty stable. The source code can be found in freeswitch\scripts\contrib\verifier folder or at CodePlex
Page: mod_event_zmq
About This module provides on and off-machine connectivity (inproc, IPC, TCP, Multicast) to FreeSWITCH using the ØMQ library This page is not meant to be an exhaustive reference of how 0MQ can be used, for that we recommend going t
Page: mod_expr
About mod_expr implements Brian Allen Vanderburg's ExprEval expression evaluation library for FreeSWITCH. Overview This module provides expression evaluation so that you can do math inside any context where module code can
Page: mod_fail2ban
About Logs all inbound registration attempts, and failed registrations to a log file "/usr/local/freeswitch/log/fail2ban.log" (configurable) The advantage to using this module for fail2ban rather than the standard FS log is that you don't have to keep you
Page: mod_fifo
About mod_fifo is a call center app which allows you to make custom call queues with assigned priorities. FIFO stands for "First In, First Out". As calls enter the queue, they are arranged in order so that the call that has been in the queue for the longe
Page: mod_fifo variables
About These are the variables defined for mod_fifo module. fifo_announce Description needed! Please contribute one. Usage: Example needed! Please contribute one. See also: Implemented By: Module Name Source File Last Revised mod_fifo mod_fifo.c 8689 f
Page: mod_file_string
About file_string is a useful way of specifying multiple sound files to be played or written sequentially. It is a convenience feature. file_string is implemented by mod_dptools. Discussion The idea behind file_string is simple: when you have multiple sou
Page: mod_flite
About Flite (aka Festival Lite) is a small embeddable TTS (Text to Speech) engine that's totally free. Works on FreeBSD, Mac, Linux and Windows. Don't load mod_cepstral and mod_flite at the same time. (symbol collision). Voices are 16khz, and are: slt (fe
Page: mod_format_cdr
About Multi Format CDR CURL logger. Configuration Default values are shown. <configuration name="format_cdr.conf" description="Multi Format CDR CURL logger"> <!-- You can have multiple profiles, to allow logging to both JSON and XML simultaneously, or to
Page: mod_fsk
About This module is used to send and receive information via Frequency-shift keying This can be used to send and receive Caller ID. Installing Edit modules.conf and add the following line: applications
Page: mod_fsv
About mod_fsv implements functions to record and play back RTP video frames in FreeSWITCH. play_fsv record_fsv Format Interface You could use the file interface for audio only record/playback Dialplan app: <action application="record" data="/tmp/testrec
Page: mod_g711
About 8 kHz codec supporting both A-law and u-law modes. This is what the PSTN generally uses on digital circuits.
Page: mod_g723_1
About G.723.1 codec is only supported in passthrough mode. FreeSWITCH does not do any transcoding with G.723.1 yet.
Page: mod_g729
About G.729 is available in two ways: Passthrough Transcoding The passthrough method does not require licensing; however, it has some limitations. G.729 licenses are now available for purchase from the main FreeSWITCH
Page: mod_gsmopen
About GSMopen is a endpoint (channel driver) that allows an SMS message to be sent to and from FreeSWITCH as well as incoming and outgoing GSM voice calls that can be bridged, originated, answered, etc. as in all other endpoints, e.g. sofia/SIP). An SMS
Page: mod_h323
About mod_h323 is an endpoint module based on the H.323plus telephony library. Status In development Installation Method 1: Use the script provided with FreeSWITCH by running the script in the build directory. Method
Page: mod_ha_cluster
About The High Availability Cluster Module module is currently under development by Eliot Gable <>. Please speed up creation by contributing to FreeSWITCH consulting earmarked mod_ha_cluster. Contact Sharon Wh
Page: mod_hash
About mod_hash implements an API and application interface for manipulating a hash table. It also provides a limit backend. Concepts Realm and key are arbitrary strings. Consider realm as a container for keys. The insert_ifempty and delete_ifmatch perform
Page: mod_hiredis
About mod_hiredis implements an interface for running basic redis commands on configured servers and also deprecated old mod_redis implementing the limit backend. Loading Once you have installed FreeSWITCH from packages, configure FreeSWITCH to load mod
Page: mod_httapi
About This module provides an HTTP based Telephony API using a standard FreeSWITCH application interface as well as a cached http file format interface. Usage The file format plugin can be used like this: <action application="playback" data="http://some.c
Page: mod_http_cache
About mod_http_cache allows one to make an HTTP GET request to cache a document and HTTP PUT to store a document. The primary use case is to download and cache audio files from a web server. mod_http_cache will only respect the max-age cache-control direc
Page: mod_iLBC
About iLBC is a good low bitrate codec, offering compression similar to G.729 however the MOS is higher when there are some lost packets. iLBC mean Internet Low Biterate Codec. Dynamic Payload Numbers iLBC utilize
Page: mod_isac
About iSAC is a HD codec kit similar to G.722 anthony extracted iSAC codec from WebRTC project and built mod_iSAC on top of it. How to build cd to your freeswitch top directory like: cd /usr/src/freeswitch if you have allready bootstraped and configur
Page: mod_janus
About mod_janus currently awaiting a Pull Request to be completed. Then, presumably, it will only be available in the master branch until the next FreeSWITCH release. The mod_janus endpoint provides an interface to the Janus audiobridge (https://janu
Page: mod_java
About mod_java is based on the swig wrapper used for mod_python so look there for any issues. It's been tested with 1 call with Sun's Java 1.6 running the example script below and found to work. NOTE: Sun JDK has a bug which causes freeswitch (am
Page: mod_json_cdr
<configuration name="json_cdr.conf" description="JSON CDR"> <settings> <!-- Global parameters --> <param name="log-b-leg" value="true"/> <param name="prefix-a-leg" value="false"/> <!-- Whether to URL encode the individual JSON values. Defaults to true, se
Page: mod_kazoo
About Kazoo is an API-based platform that lets you use your existing phones, programming languages and IT skills to build voice, video and SMS services. Instalation Steps are documented on github's project page:
Page: mod_ladspa
About mod_ladspa is a module that allow to use Linux Audio Developer's Simple Plugin API inside freeswitch in realtime. Quick Install These are basic instruction to get thing running quickly on CentOS 5 64bit: CentOS 5 64Bit sudo yum -y install ladspa-dev
Page: mod_lcr
About mod_lcr implements LCR (Least Cost Routing) for FreeSWITCH. You can use multiple profiles - that sort using different methods, e.g. quality rather than price. It can be called in many ways: transferred to in the dial plan, bridged to, save the resul
Page: mod_ldap
About mod_ldap provide access for LDAP via directory layer. It can be used over the directory layout and does not have any global variables. It use simple unencrypted auth and deprecated functions :). So all what we need is to start a rewrite. New module
Page: mod_local_stream
About This module stream files from a directory and multiple channels connected to the same stream will hear the same (looped) file playback .. similar to a shoutcast stream. Useful for Music-on-hold type scenarios. Configuration This comes from the sampl
Page: mod_logfile
About The FreeSWITCH log file is, as its name implies, a detailed log of what FreeSWITCH has been doing. By default, all log messages get stored in the log file. This behavior can be customized
Page: mod_lua
About Lua is the preferred scripting language for custom applications based on FreeSWITCH. The Lua API documentation is provided here Lua API Reference Since FreeSWITCH 1.4, you need to use Lua5.2 (
Page: mod_managed
About mod_managed allows execution of Common Language Infrastructure code inside FreeSWITCH. It supports the Microsoft CLR (".NET") on Windows, as well as Mono on Windows and other platforms. Effectively, this allows use of any .NET language, such as F#,
Page: mod_memcache
About mod_memcache implements an API interface to memcached which is a "high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviat
Page: mod_mongo
About API for MongoDB API mod_mongo provides 2 APIs: mongo_find_one mongo_mapreduce Configuration file mongo.conf.xml <configuration name="mongo.conf"> <settings> <!-- connection-string handles different ways to connect to mongo mongodb://[username:passwo
Page: mod_mp4v2
About mod_mp4v2 implemented a record_mp4 APP and the mp4 file format. Configuration mod_mp4v2 implemented a record_mp4 APP and the mp4 file format. So you could do (with video echoed back like record_fsv) <action application="record_mp4" data="/tmp/test.m
Page: mod_native_file
About The native file module is designed to make it easy to play sound files where no transcoding is necessary. The default FreeSWITCH sound files are in wav format. Generally, these require transcoding when being played to callers. However, if a native f
Page: mod_nibblebill
About mod_nibblebill is a credit/debit module for . The module was initially written by Darren Schreiber to fill the gaps of a professional grade trunking system that lacked the ability to detect fraud real-time. It's purpose is to allow real-time debitin
Page: mod_odbc_cdr
About Insert channel variables directly into database after call ends. Configuration Default values are shown. <configuration name="odbc_cdr.conf" description="ODBC CDR Configuration"> <settings> <!-- <param name="odbc-dsn" value="database:username:passwo
Page: mod_odbc_query
About This module can be used for doing ODBC queries as an APP from the dialplan or through the API interface. Compiling/Enabling You can find the source in the git contrib repository in ledr/c/mod_odbc_query. make/gmake the mod make install copy the .xm
Page: mod_opal
About mod_opal is a multi-protocol capable endpoint module, based on the Opal telephony library. It adds H.323 and IAX2 support to FreeSWITCH. This module is still considered beta quality. It may or may not work as expected and so
Page: mod_opus
About Opus codec implementation in Freeswitch. Use the Opus libraries from the FreeSWITCH repository; the Debian repo has versions that are too old to work with newer builds of FS. Add the repo using the instructions on the FS 1.6 Video installation page.
Page: mod_oreka
About A Module for Media Recording with Oreka -- this module adds a media bug to a channel which sends the media to a listening oreka server for recording. Usage <action application="oreka_record"/> Also, if you prefix heade
Page: mod_osp
About Open Settlement Protocol (OSP) To query an external route server and to report XML based Call Detail Records (CDRs). Installation Prerequisites You need to install the "OSP Toolkit" from TransNexus, see
Page: mod_perl
About mod_perl is supported as of RC4. Keep in mind that if you just want to execute perl scripts (or talk to FreeSWITCH using sockets through perl) you do not need mod_perl. Generally the only time you will need mod_perl support is if you want to interac
Page: mod_perl examples by Mitch Capper
About Control FreeSWITCH, intercept a session with Perl scripts. These examples rely on mod_perl scripting, initially published by Mitch Capper. Console IVR Example use strict; our $session; # A simple IVR system that is meant to allow you to dial into
Page: mod_pocketsphinx
About Pocketsphinx is an open source speech recognition engine developed by Carnegie Mellon University. mod_pocketsphinx allows FreeSWITCH™ to recognize speech. Works on Windows, Mac OS X and Linux. 8k and 16k acoustical models
Page: mod_portaudio
About mod_portaudio is used for interfacing with sound card. This scenario is usually used when FreeSWITCH is used for a softphone basis, or as an easy way to get a local connection for development. Interaction with mod_portaudio usually happens at the Fr
Page: mod_posix_timer
About mod_posix_timer uses the POSIX timers API (timer_create, timer_settime, timer_delete) to create and use a kernel timer that delivers timer expire notifications via a sigevent. This timer works on older Linux kernels like 2.6.18. Configuration You ca
Page: mod_python
About This module allows one to write FreeSWITCH applications using Python Install & Configure Building mod_python Install python-dev package on Debian/Ubuntu: apt-get install python python-dev Enable compilation in modules.conf
Page: mod_rad_auth
About Module rad_auth does only RADIUS authentication (and not the accounting). The truly magic thing about the rad_auth is that you can specify your own list of VSAs (Vendor-Specific Attributes) to be included in the packet along with the standard ones t
Page: mod_radius_cdr
About About text. Building & Installation This module is not built by default. In order to build this module, you will need to perform the following steps: Download and install the 'freeradius-client' library. You will need to run the CVS head version.
Page: mod_rayo
About mod_rayo is a server implementation of the Rayo protocol for FreeSWITCH. Rayo clients, like Adhearsion use this protocol to control calls. Installing To use mod_rayo tell FreeSWITCH to compile in this module by
Page: mod_redis
About mod_redis supplies a call-limiting back-end that uses Redis. Note: This backend does NOT support rate based limits. Setup and Configuration Download Redis and install it per the instructions. (As of this
Page: mod_rss
About mod_rss will parse and read an XML based RSS feed, then read the entries aloud via a TTS engine such as mod_cepstral While its reading you can fast forward through articles, rewind, etc. Make sure you are us
Page: mod_rtc
About mod_rtc supports media streaming used by WebRTC and mod_verto
Page: mod_rtmp
About mod_rtmp is an RTMP (Real time media protocol) endpoint for FreeSWITCH. The RTMP protocol is primarily used by Flash for streaming audio, video, and data over the Internet. Installation The
Page: mod_ruby
About mod_ruby support is currently disabled because the code needs bug fixes and somebody to take on maintaining it. If someone is interested in reviving this, you may wish to look at: Rubinius See Also mod_perl mod_lua mod_python Javas
Page: mod_sangoma_codec
About mod_sangoma_codec enables FreeSWITCH to use Sangoma Transcoding cards Installation You first need to install the Sangoma transcoding software. see
Page: mod_say_he
About mod_say_he is based on mod_say_en and modified to support Hebrew language. It comes also with recordings. The Hebrew audio files are still incomplete. The required sound files should be up soon. Configuration Start by enabling or adding the followin
Page: mod_shell_stream
About Mod shell stream is a module to allow you to stream audio from an arbitrary shell command. You could use it to read audio from a database, from a soundcard, etc. Usage To use it, you call it from the dialplan like this: <action application="playback
Page: mod_shout
About This module allow one to play local and remote mp3 files at any sample rate. Configure and Install Install Dependencies libvorbis libogg development libraries for both On Debian: apt-get install libvorbis0a libogg0 libogg-dev libvorbis-dev On CentOS
Page: mod_signalwire
SignalWire CLOUD | FreeSWITCH Connector Product Description Table of Contents SignalWire CLOUD | FreeSWITCH Connector Table of Contents htt
Page: mod_siren
About mod_siren allows you to have the Polycom Siren™ audio codecs in FreeSWITCH. Setup Uncomment mod_siren in src/modules.conf and in conf/autoload_configs/modules.conf.xml Test You'll need devices that support these codecs to test See Also Siren7 page h
Page: mod_skel
About mod_skel provides a template for new modules. It has the basic components to allow a new module to be written, with no code that does anything useful beyond loading the module into FreeSWITCH mod_skel is part of the FreeSWITCH source tree. To get it
Page: mod_skinny
About SCCP (or Skinny), is a ToIP protocol used in Cisco products like Cisco IP Phones 79xx. For more info, see Skinny Call Control Protocol on Wikipedia. If you use SCCP please test the Patterns
Page: mod_skypopen
mod_skypopen does not work anymore About mod_skypopen was the Skype endpoint implemented by FreeSWI
Page: mod_sms
About This page is working on progresss .... mod_sms provide a way to route messages in freeswitch, potentially allowing one to build a powerful chatting system like in XMPP using using SIP SIMPLE on SIP clients. Just like XML Dialplan has dialplan, mod_s
Page: mod_snapshot
About mod_snapshot allows recording a sliding window of audio and taking snapshots to disk. After loading mod_snapshot, the fs_cli command "uuid_snapshot" is available freeswitch@default> uuid_snapshot USAGE: <uuid> snap|start [<sec> read|write <base>] re
Page: mod_snmp
About This module is still under development, and by no means intended to be a complete read/write SNMP interface. Reserved Object Identifier (OID) The OID . has been reserved for FreeSWITCH.
Page: mod_snom
About mod_snom is an application for controlling the functionality and appearance of the programmable softkeys on a Snom phone. It also adds the possibility to send KEY events to snoms embedded webserver. It was tested with firmware s
Page: mod_sofia
About mod_sofia is the SIP endpoint implemented by FreeSWITCH. Configuration sofia.conf.xml accept-blind-auth|true,false accept-blind-reg|true,false aggressive-nat-detection|true,false alias|arbitrary all-reg-options-ping|true,false apply-candidate-acl|ac
Page: mod_sofia variables
About These channel variables are used in mod_sofia. acl_token If an incoming SIP INVITE message matches against a user ACL, this variable is set to the user ID and domain name. alert_info Add an Alert-Info Header like Snom and other Phones need for Ring
Page: mod_sonar
About NOTE: This is just a stub page. Seven Du described this mod on the ML. I just did a C&P here to overcome the blank page effect: Looks like mod_sonar is just like a real Sonar that: - You setup a remote server which can echo - Generate some tones o
Page: mod_soundtouch
About It's a module that uses the soundtouch library, which can do pitch shifting and other audio effects, so you can pipe the audio of a call(or any other channel audio) through this module and achieve those effects. You can specifically adjust pitch, ra
Page: mod_spandsp
About The family of modules including mod_fax, mod_t38gateway, and the mod_voipcodecs have now been merged into one module called mod_spandsp which takes advantage of all the DSP features found in the spandsp library including T.38
Page: mod_speex
About Speex provides fairly good audio qualities at reasonable CPU and bandwidth requirements. The speex codec has been obsoleted by opus-codec RFC 6716 Codec negotiation
Page: mod_spy
About The module implements userspy application which provides persistent eavesdrop on all channels bridged to a certain user using mod_dptools: eavesdrop. Installing Tell FreeSWITCH to compile this module by editing modules.conf in /usr/src/freeswitc
Page: mod_ssml
About mod_ssml implements the SSML (Speech Synthesis Markup Language) and TTS (text-to-speech) file formats. This module is used primarily by mod_rayo. Installing Tell FreeSWITCH to compile in this module by editing
Page: mod_stress
About mod_stress attempts to detect stress in a person's voice and generates FreeSWITCH events based on that data. How does this work? The module uses FFT to calculate the power spectrum of the call. I
Page: mod_syslog
The possible ${VARNAME} substitutions in the format param are: ${time} - time in %Y-%m-%d %T format ${file} ${func} ${line} ${message} There is currently no way to insert the level, nor to change the date format.
Page: mod_timerfd
About Mod_timerfd uses the Linux kernel timerfd API to create and use a kernel timer that delivers timer expire notifications via a file descriptor. Requires kernel >= 2.6.25, libc >= 2.8, and FreeSWITCH commit 48b1193552983e37f1724bd9a87d48ade5de74e5 or
Page: mod_timezone
Functions provided by mod_timezone were moved into core by Michael Jerris (r:54ef5547) @ 2008-09-29 See Also strftime_tz __Variables Time of Day and Holiday Routing
Page: mod_tone_stream
About tone_stream://[L=x;][v=y;]%(<on-duration>, <off-duration>, <freq-1> [, freq-2] [, freq-3] [, freq-n] [;loops=x]) Durations are specified in milliseconds Frequencies are specified in Hz L=x; create x copies of the specified tone stream in memory befo
Page: mod_translate
About This module was created to format numbers into a specified format (preferably e.164) for doing ENUM or LCR lookups, based on a
Page: mod_tts_commandline
About Run a command line and play the output file. It is mainly for testing purpose. It may not fit for extensive use (but it may). Once you have chosen your TTS engine, write a native module! Installing mod_tts_commandline In modules.conf, add asr_tts/m
Page: mod_unimrcp
About mod_unimrcp is the FreeSWITCH module that allows communication with Media Resource Control Protocol (MRCP) servers. MRCP allows client machines to control media resources on a network. MRCP version 1 uses the Real Time Streaming Protocol (RTSP) whil
Page: mod_v8
About From commit b76233266931ca0b53f3bcc589277b972d714216 (January 14'th 2014) in git master, FreeSWITCH has support for the Google V8 JavaScript (ECMAScript) engine. It supports all the standard JavaScript language elements
Page: mod_valet_parking
About Places a channel "on hold" in the switch, instead of in the phone. Allows for a number of different options, including: Set caller in a place where the channel won't be hung up on while waiting for someone to talk to. Generic "hold" mechanism, where
Page: mod_verto
About Verto (VER-to) RTC is a FreeSWITCH endpoint that implements a subset of a JSON-RPC connection designed for use over secure websockets. The initial target is WebRTC to simplify coding and implementing calls from web browsers and devices to FreeSWIT
Page: mod_vlc
About You HAVE to have libvlc version 1.2 or later for mod_vlc to work. Both for the reason that libvlc version 1.2 is LGPL and because there are new APIs in 1.2 that are required. The Debian Wheezy package for vlc had a segfault in one of the lua playlis
Page: mod_vmd
About NOTE: There is a new Advanced Voice Mail Detection (AVMD). It is suggested that you use mod_avmd rather than this (mod_vmd). VMD stands for "Voice Mail Detection" and mod_vmd is designed to detect the beep sound at the end of voicemail or answering
Page: mod_voicemail
About mod_voicemail is a Dialplan Application that provides voicemail services via Diaplans. It lets you send calls to voicemail, which allows callers to leave messages for users and allows users to retrieve and manage any messages left by callers. Synops
Page: mod_voicemail key map
About Key map of Voicemail Module. All the text below was last edited in 2009, it is therefore likely out-of-date, inaccurate and in dire need of a refresh. Main Menu play_new_messages_key play_saved_messages_key config_menu_key terminator_key Control Pla
Page: mod_voicemail_callpage
About This module is used to perform an originate automatically when a new voice message is left in a mailbox. By default the module will originate the first call after X seconds (set by page-first-wait) and a new call every X seconds (set by page-wait) a
Page: mod_voicemail_ivr
About mod_voicemail_ivr provide a audio navigation system to a backend voicemail system. WARNING: Some specs here might change in the next months following discussions (2011-12-24) voicemail_ivr <check> profile domain [id] For pre-auth: set voicemail_au
Page: mod_watson
About This is will cover the purchase, installation, and configuration of our commercial module mod_watson. This is a mod to interface with IBM's Watson TTS and ASR interfaces. Out-of-the-box this package is ONLY Available on Debian 8, when FreeSWITCH is
Page: mod_xml_cdr
About Outputs CDR records in XML format to local file or to a webserver via HTTP POST. Example Here is an Example XML CDR: <?xml version="1.0"?> <cdr> <variables> <sip_received_ip></sip_received_ip> <sip_received_port>39368</sip_received_p
Page: mod_xml_curl
About There is also some leaking into , at some point that URL should also be updated. (original wiki note) mod_xml_curl can be used to dynamically control the behaviour of FreeSWITCH.
Page: mod_xml_curl C sharp example
About The following page will show you how to include a web server in your .NET application, and how to let the web server generate a dialplan. Requirements MiniHTTPd is a C# project released under the artistic license. It is coded in .NET 1.1 and will gi
Page: mod_xml_curl C++ example
About This is just another example of mod_xml_curl in action, done in C++ rather than a scripted language. In principle it is quite similar to the Ruby directory example. The Basics The program executes without any command-line options and, by default, da
Page: mod_xml_curl CGI example
About mod_xml_curl usage example using CGI. From email list (James Jones <james _AT_>): Here is a little script that I have start to write to use with mod_xml_curl. It is nothing special. It is real
Page: mod_xml_curl PHP example
About mod_xml_curl examples written in PHP programming language. Quick 'n' dirty PHP example This code should output a small sample config which can be used to call the FreeSwitch conference (More to be added later) <?php header('Content-Type: text/xml');
Page: mod_xml_curl Python example
About Example of mod_xml_curl using Python programming language. Configuring mod_xml_curl cd /usr/local/src/freeswitch make mod_xml_curl-install cd /usr/local/freeswitch/conf/autoload_configs Edit modules.conf.xml and uncomment mod_xml_curl Edit xml_curl.
Page: mod_xml_curl Ramaze/Sequel groups example
About mod_xml_curl example using Ramaze Ruby web framework and Sequel database toolkit. This is the portion of TinyQueue which returns the dial groups. This is written using Sequel for the
Page: mod_xml_curl Ruby directory example
About This example show how to build a directory application in Ruby. This example is old, but included to provide guidance. #!/usr/bin/env ruby # # 2007-10-16 -- # ########################################################################
Page: mod_xml_diaplan
Page: mod_xml_radius
About Provides RADIUS authentication, also useful for connecting to billing packages such as Jerasoft. Features Implemented Authorization: Directory lookup for sip registrations(hash only, no passwords) Dialplan app for authorization Accounting: Per leg a
Page: mod_xml_rpc
About mod_xml_rpc allows you to use the webapi - firing any API from the web browser just as you would from the FS console! API command documentation can be found in the mod_commands section. webapi To use, you must enable this module within the conf/auto
Page: Modules
About The functionality of FreeSWITCH can be expanded through the addition of modules that perform a particular task, whether that task is simple or complex. The modules can be grouped into broad categories as tagged with labels on their individual module
Page: monitor_early_media_fail
monitor_early_media_fail string Monitors early media for failure conditions, such as a busy signal. This allows faster processing of failed calls when ignoring early media. The syntax is a series of ! delimited early media conditions in the following form
Page: monitor_early_media_ring
monitor_early_media_ring string Monitors early media for a user-specific ring tone. Each time the tone is heard, the switch will increment an internal counter for that leg. Once the counter reaches monitor_early_media_ring_total (or this variable has not
Page: monitor_early_media_ring_total
monitor_early_media_ring_total string Specifies the number of user defined ring tones that can be heard before failing. To be used with monitor_early_media_ring. Usage <action application="bridge" data="{ignore_early_media=true,monitor_early_media_ring_to
Page: monitor_fail_dispo
monitor_fail_dispo string This variable can be used to provide a custom originate_disposition as the result of an early media failure using monitor_early_media_fail or monitor_early_media_ring. If this variable is not set, a default value of monitor_early
Page: monitor_ring_dispo
monitor_ring_dispo string
Page: Monitoring
About This document covers information about monitoring. Nagios kjhosein wrote a plugin (in Perl) that checks various health parameters on a FreeSWITCH server. It takes advantage of the *fs_cli* FreeSWITCH command-line tool. It may be extended to check pr
Page: Move Tracker
About areski set up a spreadsheet on Google Docs open to Docs Team members to track the migration of wiki pages to Confluence. You need to have the right permissions in order to update the google spreadsheet, please contact boteman or areski with question
Page: Multi home tutorial
About This document covers information about a multi home tutorial by Michael Gende back in October, 2009 so proceed with caution. FREESWITCH FOR DUMMIES: DUAL-HOMED HOST EXAMPLE The name tells all. STUFF ONE OUGHT TO KNOW BEFORE STARTING PURPOSE OF THIS
Page: Multi Homed Dual NIC How To
About This tutorial was created from an install of Freeswitch 1.0.6 on Centos 5.5 using the sample configuration files. The system has eth0 on the public network using dhcp and eth1 was on the private network using a static ip address. Depending on your s
Page: Multi-line rollover
About Emulate shared call appearance on 2-line phones. Emulate a phone system where each phone has 2 extension numbers. When the first line is called, if it is busy the call rolls over to the second line for that phone. If the second line is busy, the cal
Page: Multi-tenant
About Note: There is also some useful information on the Multiple Companies page, which needs merging. FreeSWITCH can be configured to host multiple separate companies and clients in a multi-tenant scenario, such as a multi-tenant building served by a sin
Page: Multiple Companies
About Note: There is also some useful information on the Multi-tenant page, which needs merging. This is HOWTO to make one FreeSWITCH server act as a multi-tenant system for two or more companies, each with its own domain/users and independent dialplans.
Page: Multiple Servers in Irssi
About For those who want to keep track of their chats while not online, run irssi in a screen on a Linux box. You can then detach and re-attach your screen (with Irssi in it) from anywhere. More info on Irssi IRC client Startup docum
Page: Mumble Conference With ALSA
About by ver How to set up a Mumble conference with ALSA. Prerequisites You'll need to verify you have a few things installed before you can get started: * Linux 2.6+ * ALSA Loopback Module (snd-aloop or snd_aloop) * Xorg, Xvfb, or Xvnc * Mumble (1.2.2
Page: Music on Hold
About Music on Hold (MOH) is not a central component, and it's dependent on endpoints supporting it. To download the default FreeSWITCH Music on Hold files at all the sample rates (8000, 16000, 32000, 48000) you must run this command inside the FreeSWITCH
Page: MWI
About FreeSWITCH, contrary to popular belief, does support Subscriptions and MWI. Presence In order to enable Subscriptions, add the following line to the profile settings. <param name="manage-presence" value="true"/> Sending Events Notifications can be s
Page: myid
myid string


Page: NAT
About About text. Introduction NAT, or Network Address Translation, is a necessary evil in the world of network computing. FreeSWITCH tries very hard to make your life easier when dealing with NAT scenarios. One problem, however, is that there are differi
Page: Nat stun debug irc
About The question on how to get SIP devices working behind NAT just keeps coming up... here are some informative conversations regarding debugging particular setups that might be relevant. Conversation 1 <brettnem> is there anyway to connect to NATed SIP
Page: NAT Traversal
About Some difficulties have been encountered with devices that have poor NAT support. FreeSWITCH goes to great lengths to repair broken NAT support in phones and gateway devices. In order to aid FreeSWITCH in traversing NAT please see the External profil
Page: nat_private_addr
nat_private_addr string If you use auto-nat and a public IP address was detected, this variable will be set with the private IP address to which the detected public IP address is mapped.
Page: nat_public_addr
nat_public_addr string If you use auto-nat and FreeSWITCH was able to identify the public IP address pointing to your server, this variable will be set with the auto detected public IP address.
Page: nat_type
nat_type string If you use auto-nat FreeSWITCH will set this global variable to the type of auto nat device it detected this can be either pmp or upnp.
Page: NDLB
About NDLB: No Device Left behind NDLB: No Device Left behind List of all NDLB Option NDLB-connectile-dysfunction Rewrites contact IP and port Enables 'NATHACK' {EXAMPLE} <user id="100" mailbox="100"> <params> <param name="password" value="1234"/> <param
Page: NDLB_support_asterisk_missing_srtp_auth
NDLB_support_asterisk_missing_srtp_auth boolean
Page: NetBSD
We need YOU to maintain this port of FreeSWITCH. Please contact one of the FreeSWITCH core developers on Freenode IRC channel #freeswitch or the mailing list to help them k
Page: Networking
About A discussion of various issues to consider when configuring a installation. Bandwidth The bandwidth required by a FreeSWITCH installation depends on the codecs used to transport the RTP voice streams and the maximum simultaneous number of calls expe
Page: new_name
new_name string
Page: No-Media Mode (SDP pass through) Example
About Late Negotiation delays negotiation of the codec and allows you to hit the dialplan before deciding on the codec. No Media and Late Negotiation will result in NO early media.
Page: no_throttle_limits
no_throttle_limits boolean You set this variable to true on your outbound calls to have them not count in sps Usage {no_throttle_limits=true}
Page: Nokia N95
About How to connect Nokia Devices to FreeSWITCH™ Connecting Nokia Devices to FreeSWITCH It is assumed you have a Wi-Fi access point called 'homeap' defined already and your FreeSWITCH box is at with the default config available. Go to the mai
Page: Nokia_N95_Settings
About This document covers information about the Nokia N95 Settings. A number of Wi-Fi equipped Nokia handsets have inbuilt SIP client software, the following example describes typical settings configuring this software to connect to FreeSWITCH. The examp
Page: nonexistantvar
nonexistantvar string
Page: Nortel
Nortel/Avaya Nortel BCM Series (Rel 4.0) Registration: Not Supported Caller Id: not tested Call in/out: Works (With a minor modification as detailed here Call waiting: not tested Transfer c


Page: Obihai
See for information on these units as well as manuals. Obi100 Registration:works -v1.2.1 (Build: 2196M7C9DCA28) FW or Greater, expand text below for more information Caller Id: works Call in/out: works Call waiting
Page: ODBC
About Basic documentation about using ODBC with freeswitch ODBC Freeswitch supports ODBC, enabling various aspects of a system configuration and state to be stored within a database. SIP registrations, call/channel state, voicemail messages and voicemail
About Now (2012-11) that FreeSWITCH supports multiple core database options (PostgreSQL, ODBC, SQLite), the format for the DSN has changed so that FreeSWITCH knows which database type to use. The following DSN (data source name) formats are valid for [[OD
Page: ODBC Example
About This page holds a better ODBC usage example JavaScript ODBC Example use("ODBC"); var db = new ODBC("dsnName", "username", "password"); var sql = "select * from users"; db.connect(); if (!db.query(sql)) session.hangup(); //might want to say somethi
Page: ODBC.close
About Closes and frees up ODBC resources. Please note that as soon as a script finishes executing the engine will automatically close up any ODBC resources. This close method was designed to help you free up those resources for your longer running scripts
Page: ODBC.connect
About How to connect to an ODBC database Usage Connect to an ODBC database. Return value true - Successfully connected to database false - Connect failed, check DSN settings. Example use("ODBC"); var db = new ODBC("dsnName", "username", "password");
Page: ODBC.execute
About Execute a SQL statement. This method will not create a recordset, it should be used for INSERT, UPDATE and DELETE statements. Synopsis result = db.execute("sql statement"); Return value bool - True if the statement was successfully invoked. Example
Page: ODBC.getData
About Fetches the current row from a recordset. Return value An associative array of columns. var row = db.getData(); console_log("notice",row["my_field"]+"\n");
Page: ODBC.nextRow
About Fetches the next row in a recordset. This method must be invoked before calling getData. Synopsis result = db.nextRow(); Return value bool - True if there was a next row. See Also ODBC
Page: ODBC.query
About var row, result; result = db.query("sql statement"); while (db.nextRow()) { row = db.getData(); console_log("Row[0]: " + row[0] + "\n"); } Return value bool - True if the statement was successfully invoked. Example ODBC Example https://freeswitch.
Page: OpenBSD
About This is part of the Installation documentation which you should review first. It provides notes unique to OpenBSD, updated to work with OpenBSD 5.5, Because OpenSSL is buggy 1.0.1c from 2012 we'll have to build our own. In addition the libedit they
Page: OpenBTS
About Configuring OpenBTS 2.5 with freeswitch 1.0.4 Configuring OpenBTS acts as a SIP client that registers into FreeSWITCH. You need to change OpenBTS.Config to match the IP address of your internal or external default profiles. If you use the external p
Page: OpenSIPS configuration for 2 or more FreeSWITCH installs
About After much searching and experimentation, I've found an opensips.cfg that distributes calls to two or more FreeSWITCH boxes. This guide assumes you have a MySQL server setup on the same machine you are installing. Special thanks to the guys at 2600h
Page: OpenWrt
About This page exists to help others configure FreeSWITCH to run on their OpenWrt based routers. Hardware Development work was done on a Planex MZK-W04NU 802.11bgn 2.4ghz router. This router comes highly recommended from the OpenWrt community as it has g
Page: OpenZap
Note that OpenZAP has been superseded by FreeTDM. OpenZAP development is stalled and no new features will be developed. Use FreeTDM instead.This page is kept only for historical purposes. If you are using OpenZAP then please update to FreeTDM. If you have
Page: Openzap Configuration Examples
About Numerous examples and ideas to help you configure your OpenZap / ZapTel interface. Using with PRI OpenZAP native stack Sample single span PRI card with the EuroISDN (Q931) dialect: <configuration name="openzap.conf" description="OpenZAP Configurat
Page: OpenZap Dahdi
If you use a PCI telephony card, you must first install Asterisk's Dahdi (ex-Zaptel) module, followed by FreeSWITCH's OpenZap which relies on Dahdi. Dahdi Setup yum install kernel-devel kernel-headers cd /usr/src l
Page: OpenZap Rhino
Rhino Equipment makes Zaptel-compatible cards that can be used with FreeSWITCH and OpenZAP. Issues No Dialtone on FXS ports - Make sure your card has the latest firmware. wget install -m 644 rcbfx.fw /l
Page: Openzap.conf Examples
Examples for specific cards Wildcard T100P Wildcard T100P (should also work with similar zaptel cards), This example will apply for digium T1 cards as well: [span zt name_of_span] trunk_type => t1 b-channel => 1-23 d-channel=> 24 the name_of_span is the n
Page: Openzap.conf.xml Examples
Using with PRI (OpenZap native stack) Sample single span PRI card with the EuroISDN (Q931) dialect: <configuration name="openzap.conf" description="OpenZAP Configuration"> <settings> <param name="debug" value="0"/> </settings> <pri_spans> <span id="1" nam
Page: Openzap.sangoma.libpri
Disclaimer This page is a work-in-progress and I reserve the right to be totally wrong. Introduction This brief note documents the steps required to download, install, and configure the various drivers, modules and configuration required to support PRI wi
Page: original_caller_id_name
original_caller_id_name string
Page: original_caller_id_number
original_caller_id_number string
Page: original_destination_number
original_destination_number string
Page: Originate Example
About Simple examples to use the originate API command to initiate calls. Originate Example 1 Courtesy of SwK: originate usage template originate ALEG BLEG originate {origination_caller_id_number=9005551212}sofia/default/whatever@wherever 1900555121
Page: originate_continue_on_timeout
originate_continue_on_timeout boolean Controls whether or not a bridge should continue after timing out. This variable resets the timeout after each |. Default is false: die on first timeout. Usage <action application="set" data="originate_continue_on_tim
Page: originate_delay_start
originate_delay_start integer You can specify a wait time in milliseconds before origination. This variable can be used in Enterprise originate where the variable leg_delay_start cannot be used. Usage <action application="bridge" data="sofia/profile/dest1
Page: originate_disposition
originate_disposition string readonly This is the originate disposition or hangup cause that is returned. (LEG B) The value is updated after every bridge attempt, if the bridge is not successful.
Page: originate_retries
originate_retries integer Number of retries before giving up on originating a call (default is 0).
Page: originate_retry_sleep_ms
originate_retry_sleep_ms integer This will set how long FreeSWITCH is going to wait between sending invite messages to the receiving gateway. Usage Wait 500ms between sending invite messages to the called gateway: <action application="set" data="originate
Page: originate_timeout
originate_timeout integer Determines how long FreeSWITCH is going to wait for a response from the invite message sent to the gateway. In effect, it is a way to control the timeout for a bridge/originate consisting of multiple endpoints. Default Value: 60
Page: originating_leg_uuid
originating_leg_uuid string Shows the UUID of the originating leg on an outbound channel. Usage In A-leg CDR: <uuid>cb5f5b90-75a0-11e0-873b-d1cba9e0f1b8</uuid> <call_uuid>cb5f5b90-75a0-11e0-873b-d1cba9e0f1b8</call_uuid> In B-leg CDR: Note that the leg UUI
Page: origination_callee_id_name
origination_callee_id_name string Set on the inbound leg to control what caller ID name appears in the caller phone's display. Also see ignore_diplay_updates which affect the processing of these variables. Usage If set doesn't work, try using export inste
Page: origination_callee_id_number
origination_callee_id_number string Set on the inbound leg to control what caller ID number appears in the caller phone's display. Also see ignore_diplay_updates which affect the processing of these variables. Usage <action application="bridge" data="{ori
Page: origination_caller_id_name
origination_caller_id_name string Sets the origination callerid name (LEG A). If you want to set the Caller ID on an origination call you should add this inside the {} brackets before the dialstring. Usage <action application="set" data="origination_calle
Page: origination_caller_id_number
origination_caller_id_number string Sets the origination callerid number. (LEG A) If you want to set the Caller ID on an origination call you should add this inside the {} brackets before the dialstring. Usage if you want to relay the Caller ID Number of
Page: origination_cancel_key
origination_cancel_key dtmf digit Used with attended transfer function. Allows you to set a DTMF key that will cancel the att_xfer and re-connect to the call on hold. It'll also cancel a bridge that hasn't been bridged as yet (and thus can't be terminated
Page: origination_channel_name
origination_channel_name string Set this in the {} when doing an originate to create a custom channel name. Usage originate {origination_channel_name='this_is_my_channel_name'}loopback/9664 9195
Page: origination_nested_vars
origination_nested_vars string
Page: origination_privacy
origination_privacy string Sets privacy profile for caller. Options: screen hide_name hide_number Usage <action application="set" data="origination_privacy=hide_name"/>
Page: origination_timeout
origination_timeout string deprecated Use originate_timeout.
Page: origination_uuid
origination_uuid string You can specify the uuid of an originated call using origination_uuid. This way you can hang up the call before it is answered, since you know the uuid. Just remember you need to use the create_uuid command to generate the uuid as
Page: originator
originator string Holds the UUID of the channel that originated the call. It's used to notify a parent channel that the state of its child has changed, hence interrupting any blocking reads on the parent. It's automatically set and read by FreeSWITCH inte
Page: originator_codec
originator_codec string Sets the codec for calls originated from LEG A (setting the codec for LEG B) Usage <action application="set" data="originator_codec=PCMU"/>
Page: originator_video_codec
originator_video_codec string
Page: OS_X_Address_Book_Dialer
About This app is a plug in for Address Book in OS X to allow dialing a number listed in an Address Book Entry. Once installed, and is edited to reflect the proper information for your configuration, clicking a phone number (more properly the la
Page: Ostag
About About text. Introduction Ostag (Open Source Telephonie advancement Group) is a non profit, non commercial organisation that try to collect, raise and fund money for Open Source telephonie Projects this page is WIP (Work In Progress) Contribution Wel
Page: OSTAG Infrastructure
About About text. Overall thoughts Things stay in an "incubator" status (in case they die) until they become official projects. This will prevent the main project area from becoming cluttered, and also allows for cleanup of old, dead projects. Build mobil
About About text. Install/configure Apache. Install/configure SVN. Install/configure OpenLDAP.
Page: other_loopback_leg_uuid
other_loopback_leg_uuid string
Page: Outbound Conference Calls
About Dial a list of destination phone numbers and add them to a conference. Usage Use conference_set_auto_outcall to have mod_conference call one or more conferees when a conference starts. To have it call more than one endpoint, simply repeat the co
Page: Outbound_profile
About This document covers information about External Profile. Overview By default FreeSWITCH supplies an external profile that runs on port 5080. The external profile handles external or outbound registrations to a SIP provider. The SIP provider sends ca
Page: outbound_redirect_fatal
outbound_redirect_fatal boolean When doing a simultaneous call to multiple endpoints, a 302 redirect can cause all the endpoints to stop ringing and the call will follow the redirect. When this channel variable is set it causes an endpoint that sends back
Page: Overview
About General Overview Overview Adapted, largely from [] Building a telephony server with FreeSwitch Introduction Freeswitch is an alternative to Asterisk to build a telephony server. It is also o


Page: pa_hold_file
pa_hold_file string
Page: pa_ring_file
pa_ring_file string
Page: Packet Capture
About Capturing SIP and RTP packets can reveal trouble with the configuration of FreeSWITCH or the endpoints connecting to it. A packet capture might be required by developers to help troubleshoot your installation. tcpdump SRC: ht
Page: Panasonic
Panasonic Products KX-UT670 The Panasonic KX-UT670 is a top-of-the-line executive desk phone that runs Android 2.2 so it not only is a phone but can become a full-featured terminal mu
Page: Park & Retrieve
About This example implements parking slots; each slot holds one caller. Note that the feature implemented by this dialplan logic is different from the features that the park and valet_park dialplan tools provide. The park application will place a caller
Page: park_after_bridge
park_after_bridge boolean If set to true, it will park the call after bridge returns. This is checked before transfer_after_bridge and hangup_after_bridge. Usage <action application="set" data="park_after_bridge=true"/> <action application="bridge" data="
Page: park_timeout
park_timeout string When set, a parked call will disconnect after the timeout has occurred. Timeout is specified in seconds. If no park_timeout value is set then the parked call will be held indefinitely or until it is removed with a uuid_transfer. Usage
Page: pass_rfc2833
pass_rfc2833 boolean If set, it passes RFC 2833 DTMF digits from one side of a bridge to the other, untouched. If unset, it decodes and re-encodes them before passing them on. Usage <action application="set" data="pass_
Page: passthru_ptime_mismatch
passthru_ptime_mismatch boolean If ptime from leg A and leg B don't match and if mod_com_g729 is used, the call would normally use the codec to re-packetize the RTP stream. With this parameter, mod_com_g729 will re-packetize without decoding/encoding, as
Page: PBX Software
3CX Phone System Registration: works Caller Id: works Call in/out: works Call waiting: works Transfer calls: works Park calls: unknown CallButler Registration: works Caller Id: works Call in/out: works Call w
Page: PBXMate
About This article is a case study about integrating FreeSWITCH with PBXMate General Information The PBXMate software product from SoliCall is designed to improve voice quality by canc
Page: PDD
About This document covers information about PDD. Post Dial Delay - the time between the call starts (an INVITE) and there's a progress indication (a 183 or early media). You can find the delay time set as a channel variable: In Seconds: progress_mediasec
Page: PerfecTone
PerfecTone IP301 (V1.37) Registration: works Caller Id: No Caller ID name Call in/out: works Call waiting: not working Transfer calls: tested with *1 and works Park calls: not tested
Page: Performance Testing and Configurations
About Discussion of testing performance of with links to test scenario open source projects. Measures of Performance When people say performance it can mean a wide variety of things. In reality performance typically comes down to two bottle necks whic
Page: Perl
About In FreeSWITCH, there are many ways to use Perl, not all of which require the mod_perl module or the CPAN Perl modules. You can use Perl in the following ways with FreeSWITCH: Executing Perl scripts via curl, etc. to return XML configuration (only re
Page: Perl ESL
About The Perl ESL module allows for native interaction with FreeSWITCH over the event socket interface. It allows for sending commands, receiving their output, and receiving events from the FreeSWITCH server. The Perl ESL module is an auto-generated swig
Page: Perl_TexttoSppech_Example
About The following script is a sub routine I wrote to set up and execute your TTS (Text-to-Speech). Script requirements * mod_perl * A tts engine such as cepstra, flite, etc. * If you're going to use the Dumper line below, please make sure you have use D
Page: PfSense
About Here are notes on getting phones sitting behind a pfSense firewall to play connect to a FreeSWITCH box outside the network. Outbound NAT
Page: Phone Bugs
About This is the proverbial Hall of Shame for phone vendors. Know bugs can be listed here. At the very least we can collect documentation of known bugs. Feel free to add stuff for phones you know about. Manufacturers/Vendors Polycom We'll clean this up l
Page: Phones
This section describes how to connect FreeSWITCH to a variety of hardware IP phones. Click on one of the pages under Phones in the page tree left column. Introduction This is where we need to list all devices that have worked successfully with FreeSWITC
Page: PHP email
About About text. Introduction PHP Mailer Example setting in switch.conf.xml for sending email with PHP mailer. Make sure the path to PHP and mailer_app.php is correct. <param name="mailer-app" value="/usr/bin/php /usr/local/www/mailer_app.php"/> <param
Overview Assuming PHP support for ESL was installed it is relatively simple to include the ESL Library and perform interaction with FreeSWITCH. It can be done by connecting to a running FreeSWITCH as well as having FreeSWITCH connecting to a socket applic
Page: PHP Event Socket
About The code below was last edited in 2008, but is still working in 2013 on php v5.3 Other implementation in PHP5: freeswitcheventsocketlistener (2013) bluebox (2008)
Page: PHP Example - Mod XML curl
PHP example This code should output a small sample config which can be used to call the FreeSwitch conference (More to be added later) <?php header('Content-Type: text/xml'); $xmlw = new XMLWriter(); $xmlw -> openMemory(); $xmlw -> setIndent(true); $xml
Page: PHP Example - Wakeup call
About Here I will describe how to configure FreeSwitch to make a simple Wakeup call GUI. The process of scheduling the wakeup call can be programmed using a web browser. Using this method, calls can be scheduled without the need to build tables in a datab
Page: PHP Examples
About This page regroup list of PHP examples
Page: Play fsv
About Play an FSV file. Usage <action application="play_fsv" data="file.fsv"/> Before you can actually start playing video you need to configure vars.xml for Video codec like H263,H261 etc. <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G7
Page: playback_delimiter
playback_delimiter string When set allows playback of multiple files in sequence, by separating them with the delimiter. Usage Setting playback_delimiter to the following: <action application="set" data="playback_delimiter=&"/> Permits the streaming of fi
Page: playback_last_offset_pos
playback_last_offset_pos string Contains the file offset of the file that just played back. This can be used to resume playback at that position at a later time.
Page: playback_ms
playback_ms integer Contains the number of milliseconds of the length of the audio file just played back. There is also a variable playback_seconds which stores the length in whole seconds.
Page: playback_samples
playback_samples integer Contains the number of samples in the audio file just played back.
Page: playback_sleep_val
playback_sleep_val integer How long to pause after a file is played. Default is 250 milliseconds. Usage To play a list of short files one right after the other, with no pause in between: <action application="set" data="playback_sleep_val=0"/>
Page: playback_terminator_used
playback_terminator_used string Contains the digit that the caller used to terminate a playback. Is undef when a new playback is called.
Page: playback_terminators
playback_terminators dtmf digit Syntax: playback_terminators=123456789*0# | any | none Allows you to set which DTMF tones, if pressed during the playback of a file or during mod_dptools: play_and_detect_speech
Page: playback_timeout_sec
playback_timeout_sec integer Set timeout for playback. This is very useful if you want to play short excerpts of a file that could be very long. Usage <action application="set" data="playback_timeout_sec=10"/>
Page: Playing recording external media
CLI examples Play WAV into a conference freeswitch@host> conference freeswitch play /tmp/foo.wav Assuming you have a conference named freeswitch configured and at least one party connected. NOTE: at least when testing w/ a Sipura ATA, foo.wav will have to
Page: Pluscom
Pluscom [edit]SIP VoIP ATA - Model VPA-11 Registration: Works Caller Id: Not tested Call in/out: Not tested Call waiting: Not tested Transfer calls: Not tested Park calls: No
Page: Polycom
About Configuring Polycom devices for use with . If you have corrections or improvements for this documentation, please tell us in the comments at the bottom, the IRC channel, or the freeswitch-users mailing list. Generic Polycom issues See detailed con
Page: Polycom Configuration
Configuration File or Web As long as you did not provisioned your phone via the configuration files you can provision it via the WEB; however, the WEB configuration options are quite limited. The preferred method is using the configuration files. This h
Page: Polycom Corporate Directory
About Polycom offers configuration of a "corporate directory", which fetches entries from an LDAP-Server. This page describes how to set up a minimal OpenLDAP-based contacts directory on Debian, aimed at LDAP noobs like me. This documentation is based on
Page: Polycom Internal Ring
About Set Alert-Info on the INVITE message to tell the phone that the call originated from an internal extension. FreeSWITCH <action application="set" data="sip_h_Alert-Info=${cond(${inbound_call} == true ? :Internal)}"/> This is how it looks like on the
Page: Polycom Presence Setup
About The Polycom Soundpoint IP Series phones use SIP Notify and Presence to enable BLF (Busy Lamp Field) support. This allows one to monitor the status of other phones on the switch. Pre Requisites Polycom Firmware 3.1 Externally provisioned (tftp, ftp,
Page: Polycom Reset Codes
Reset Codes These came from a Polycom engineer. I tested the IP320 already and it worked for me. Restoring Factory Defaults For the key combination, press and hold certain key combinations (depending on the phone model) simultaneously during the countdown
Page: PostgreSQL in the core
About Postgres native support was added in FreeSWITCH 1.2.5. Dependencies libpq and the associated dev packages are required CentOS yum install libpq-devel Debian sudo apt-get install libpq-dev Configure If you have installed a later version of PostgreSQL
Page: pound_replace
pound_replace string
Page: Prefix_dialing
About Sometimes you may have multiple customers sending unauthenticated from a common IP. An example of an environment where this can occur is a wholesale trading floor system such as Arbinet. Customers will arrive from the same IP(s) (so cannot be authen
Page: Presence
About Presence allows one UA to "watch" others by subscribing to related event packages. SIP Presence FreeSWITCH supports presence out of the box. On the client side, if you use xlite/eyebeam, create a new contact and check "show this contact's availabili
Page: PRESENCE IN event example
About The following events can be sent over the Event Socket to make BLF lights do things. Tested with a snom 360. Flash the lamp: sendevent PRESENCE_IN proto: sip from:
Page: presence_data_cols
presence_data_cols string You can customize the fields in FreeSWITCH's internal channels table by using the global variable presence_data_cols. Use : to separate the column names in presence_data_cols . You must define the field in the channels table firs
Page: presence_id
presence_id string Will instruct mod_sofia to invoke a PRESENCE_IN event that will assert the BLF lamp for the subscribed entity. This only lasts while the channel still exists so it should not be used for persistent status (i.e. a user that is DND, or an
Page: process_cdr
process_cdr string Indicates how to process call detail records. Options: false - do not process the record true - process records for both legs. This is the default. a_only - only process records on the a leg b_only - only process records on the b leg Th
Page: profile_created_time
profile_created_time integer Contains the start time (in microseconds) of when the call profile was created. Usage In the event that a call is transferred, this is the effective created_time for that transfer. For example, if you did this call flow: 2000
Page: profile_start_epoch
profile_start_epoch integer
Page: profile_start_stamp
profile_start_stamp string
Page: profile_start_uepoch
profile_start_uepoch integer
Page: progress_epoch
progress_epoch integer
Page: progress_media_epoch
progress_media_epoch integer
Page: progress_media_stamp
progress_media_stamp string
Page: progress_media_uepoch
progress_media_uepoch integer
Page: progress_mediamsec
progress_mediamsec integer
Page: progress_mediasec
progress_mediasec integer
Page: progress_mediausec
progress_mediausec integer
Page: progress_stamp
progress_stamp string
Page: progress_time
progress_time string
Page: progress_timeout
progress_timeout integer This is the maximum time we will wait before we get media (whether it's early media, ringing or answer) e.g. maximum PDD before abandoning the route -- the time from Sending the INVITE to receiving the first ringing response for e
Page: progress_uepoch
progress_uepoch integer
Page: progressmsec
progressmsec integer
Page: progresssec
progresssec integer
Page: progressusec
progressusec integer
Page: Prompts
About This document covers information about Prompts. English Prompts This is a (already available: 97.wav) good start Hello (already available: ivr-hello.wav) Thank You (already available: ivr-thank_you.wav) Good Bye (already available: vm-goodbye.wav)
Page: proto_specific_hangup_cause
proto_specific_hangup_cause string This variable will cause FreeSWITCH to force the SIP response code to a specific setting when hanging up a call. The example below is one where all possible extensions have been tested and failed and you want FreeSWITCH
Page: Protocols
FreeSWITCH supports the following protocols: VoIP endpoint protocols Signaling SIP provided by mod_sofia H.323 provided by mod_h323
Page: Prototypes
About FreeSWITCH™ is versatile. It can be overwhelming, especially when we realize FreeSWITCH™ will solve so many problems. This section lists various prototypes that show how FreeSWITCH™ can be molded to any use case.
Page: Provider AQL (UK) Last update: 17 Nov 2010 Inbound and outbound works. UK provider. File: conf/sip_profiles/external/aql.xml <include> <gateway name=""> <param name="username" value="61XXXX"/> <param name="password" value="XXXXX"/> <param nam
Page: Provider Bandwidth (USA) Last Update: 8 February 2011 Incoming and Outgoing works. Trunk settings: <include> <gateway name=""> <param name="username" value="username"/> <param name="password" value="password"/> <param name="from
Page: Provider BBTel (Argentina) (Argentina) Last Update: 18 June 2009 Create sip_profiles/external/bbtel.xml with: <include> <gateway name=""> <param name="username" value="6385xxxx"/> <param name="auth-username" value="<PIN HERE>"/> <param name="from-user"
Page: Provider Belcentrale (Netherlands) Last update: 17 November 2010 In conf/directory/default/ (or default) create a file belcentrale.xml: <include> <gateway name=""> <param name="username" value="31XXXXXXXXX"/> <param name="realm" value="sip
Page: Provider Brastel (Japan & Brazil) Last update: 16 December 2011 VoIP provider for Japan, Brazil. 1º) Create the file /usr/local/freeswitch/conf/sip_profiles/external/basix.xml, with this: <include> <gateway name="basix"> <param name="username" value="[
Page: Provider Broadvoice (USA)
Last update: 17 November 2010 Dialplan Codec Selection Incoming and Outgoing calls work with UDP only. As of 12 February 2008 Broadvoice is not RFC 3261 compliant. Broadvoice does no
Page: Provider Broadvox (USA) Purpose, Scope, and Audience This technical application note describes the configuration of FreeSWITCH for the Broadvox GO! SIP Trunking service on the Fusion platform. This document is suitable for use by anyone deployin
Page: Provider Budgetphone (Netherlands) Last update: 17 November 2010 Budgetphone is a Dutch company called Budget Phone Company offering a wide range of VoIP products. Budgetphone offers a low cost prepaid DID numbering se
Page: Provider Callcentric (USA) Last update: 9 May 2014 conf/dialplan/public/callcentric_did.xml <extension name="from_callcentric"> <condition field="${sip_to_user}" expression="^1206XXXXXXX$"> <action application="set" data="domain_name=$$
Page: Provider CallWithUs (USA) Last update 8 November 2009 <include> <gateway name="callwithus-outbound"> <param name="username" value="USERNAME"/> <param name="password" value="PASSWORD"/> <param name="realm" value="callwithus"/> <param name="proxy
Page: Provider cheapnet (Italy) Last update: 18 June 2009 File: conf/sip_profiles/external/ <include> <gateway name=""> <param name="username" value="yourusername"/> <param name="password" value="yourpassword"/>
Page: Provider DIDforSale (US, Canada, UK) Last update: 15 January 2010 /conf/directory/default <include> <user id="19498858961" mailbox="19498858961"> <params> <param name="password" value="1234"/> <param name="vm-password" value="19498858961"/> </params> <var
Page: Provider DIDLogic (Global) Last update: 4 April 2014 Freeswitch configuration to send SIP calls with
Page: Provider (Germany & Global) Last update: 17 November 2010 <gateway name="dusnet"> <param name="username" value="yourdusnetid"/> <param name="password" value="strenggeheim"/> <param name="proxy" value=""/> <param name="expire-seconds" value="80
Page: Provider equada (Germany)
About equada GmbH, Am neuen Berg 3, 63755 Alzenau Voice: 0800 / 729 - 0000 Web site: Email: Geschäftsführer: Lorenz Barth, Bernd Büdenbender Eingetragen unter HRB10130 beim AG Aschaf
Page: Provider Flowroute (USA) Last update: 10 September 2013 <include> <gateway name="flowroute"> <param name="username" value="MYCALLERIDNUMBER"/> <param name="auth-username" value="account_number"/> <param name="password" value="my_password"/
Page: Provider FPT Telecom (Vietnam)
Follow these steps to connect to FPT SIP trunk: Add this list to ACL configuration in conf/autoload_configs/acl.conf.xml <list name="fpt_sip_trunk" default="deny"> <node type="allow" cidr="SIP_SERVER_IP/32"/> <node type="allow" cidr="MEDIA_SERVER_IP/32"/>
Page: Provider Freephoneline (Canada)
Last update 15 December 2013 powered by Fongo [], aka: Bud Phone, Kokanee Phone, ZPhone Free phone line for outgoing and incomming in many [cities http://www.freephoneline.c
Page: Provider FŌNSWITCH (USA) Last update: 18 June 2009 <include> <gateway name="fonswitch"> <param name="username" value="USERNAME"/> <param name="from-domain" value=""/> <param name="password" value="PASSWORD"/> <param name="e
Page: Provider Gafachi (USA) Last update: 30 September 2010 The Authentication ID and Secret are provided inside your account, under Main-Menu->Configuration Information (not the ones you use to login to your account.) /conf/sip_profiles/external/gafac
Page: Provider Gradwell (UK) Last update: 17 November 2010 Note - this may not be the best or the right configuration - I offer it purely on a it-works-for-me basis! Feel free to improve! The important thing with Gradwell is that they don't do SIP reg
Page: Provider Halonet (Poland) Last update: 18 June 2009 Halonet requires using Remote-Party-ID in format <> or not to use this header at all. To remove this header insert the following code before bridge in
Page: Provider iCall (USA) Last update: 21 October 2010 Configuration for iCall carrier/wholesale type accounts (not consumer) [] Works with local inbound DIDs, toll-free inbound, and outbound SIP service Place
Page: Provider iinet (Australia) Last update: 9 August 2011 <include> <gateway name="iinet"> <param name="username" value="YOURPHONENUMBER"/> <param name="from-domain" value=""/> <param name="password" value="YOURPASSWORD"/> <param
Page: Provider InPhonex (USA Brazil Mexico) Last update: 21 January 2010 In conf/sip_profiles/external create a inphonex.xml adding the following contents: <include> <gateway name="Inphonex"> <param name="username" value="YOUR INPHONEX VIRTUAL NUMBER"/> <param name=
Page: Provider Internode (Australia) Last update: 4 January 2013 Both DID and outgoing calls work. However, in order for the outgoing calls to work one must set From: "XXXXXXXXXX". That does not seem to be achievable with the gateway params/vars (at l
Page: Provider internode NodePhone (Australia) Last update: 18 June 2009 Incoming and outgoing calls work. In conf/sip_profiles/outbound/ create a nodephone.xml file with the following contents: <include> <gateway name="NodePhone"> <param name="username" valu
Page: Provider internode OneSuite (USA & Canada) Last update: 7 January 2011 claims to support only their own softphone. But I just tested this with and it works. Note that these files are set up f
Page: Provider IPKall (USA) Last updateL 18 June 2009 Inbound only We do not register, they just send right to the public dialplan In their web config you must point to your server, port 5080 domain: (your server
Page: Provider iplink (Norway) Last update: 12 November 2011 inbound and outbound: <include> <gateway name="IPLink"> <param name="username" value="provided phone number"/> <param name="password" value="provided password"/> <param name="from-domain" value="s
Page: Provider ippi (France) Last update: 20 July 2010 Incoming and outgoing works SIP gateway: conf/sip_profiles/external/ippi.xml <include> <gateway name=""> <param name="username" value="**Login**"/> <param name="password" value="**Password**"/> <
Page: Provider iptel (Germany & Global) Last update: 16 October 2009 I've done basic testing with this scenario. It is the same setup I used when I wrote my article, Voip with FreeSWITCH: <include> <gateway name="iptel"> <!-
Page: Provider Iristel (Canada) Last update: 17 November 2010 This is a simple configuration to use your iristel broadfone service with FreeSWITCH. NOTE: Iristel don't accept any caller id number, should by your Canadian number provided by iristel Gatewa
Page: Provider ivox (Australia) Last update: 10 March 2011 Both DID and outgoing calls work. <include> <gateway name="ivox"> <param name="username" value="YOURPHONENUMBER"/> <param name="from-domain" value=""/> <param name="password" value="YO
Page: Provider Junctionnetworks (USA) Last update: 18 June 2009 Works with incoming and outgoing SIP (Junction's PSTN Gateway service). /conf/directory/default/junctionnetworks.xml <include> <gateway name="junctionnetworks"> <param name="userna
Page: Provider LES.NET (Canada) Last update: 12 August 2011 <include> <gateway name=""> <param name="username" value="xxxxxxx"/> <param name="from-user" value="xxxxxxx"/> <param name="realm" value=""/> <param name="password" value="
Page: Provider Level3 (USA) Last update: 2 April 2013 Incoming and Outgoing works. Add the Level3 Gateway IP into the domain section under autoload_configs/acl.conf.xml <configuration name="acl.conf" description="Network Lists"> <network-lists> <list nam
Page: Provider Localphone (UK) Last update: 20 June 2010 NOTE: localphone does not accept dots in gateway name. You will get an error; Registration Failed with status No Server Address in Contacts Allowed [476] /conf/sip_profiles/external/localpho
Page: Provider (Ireland) Last update: 6 October 2010 Works with incoming and outgoing SIP. On your MyDivert MyAccount page, under SIP Account, Enable SIP Trunking. conf/sip_profiles/external/mydivert.xml <include> <gateway name="
Page: Provider MyNetFone (Australia)
Last update: 21 April 2014 Gateway config Incoming and outgoing calls work. In conf/sip_profiles/outbound/ create a mynetfone.xml file with the following contents: <include> <gateway name="MyNetFone"> <param name="
Page: Provider Neotel (South Africa)
Last update: 16 March 2010 Neotel requires you connect directly into their network. The configuration described below is based on a standard FreeSWITCH installation on a dual homed server. IP addressing & DDI info IN.IN.IN
Page: Provider NetSIP (Australia) Last Update: 7 June 2010 Dialing formats are E.164 and 0NSN, Caller ID can be presented (E.164 format) and screened as needed by the user. Netsip supports: SIP trunking. Private tails. Local number portability. 1300 nu
Page: Provider (Switzerland) Last Update: 8 November 2011 I assume you have the following setup: A FreeSWITCH-Server with public IP Some Numbers like 012 3456 xx registered, where "xx" are extension like 00,01,02... Some clients for these extens
Page: Provider Nexmo Notes From: Aviv Shaham <> Date: Fri, 07 Nov 2014 09:18:23 -0700 Nexmo doesn't seem to handle it well if your first specified codec is L16. Try to set absolute_codec_string to PCMU and see if that helps. Also
Page: Provider Nextiva (USA) Last update: 11 June 2013 Nextiva does not use your DID as your username, we generate a unique value that you will need to use. If you don't know it, log into the Office Manager portal and edit
Page: Provider nexVortex (USA) Last Update: 17 January 2011 Sample external profile: <include> <gateway name="nexvortex"> <param name="username" value="your user name"/> <param name="password" value="your password"/> <param name="from-user" valu
Page: Provider NumberGroup (UK) Last update: 7 March 2011 DID via SIP URI works. DID via SIP Trunk works. Outgoing works. USERNAME is only the user part, it does not include the domain. Note that for inbound calls, the call would normally h
Page: Provider OVH Telecom (France) Last Update: 10 September 2012 Sample external profile: <gateway name=""> <param name="username" value="000000000"/> <param name="password" value="password"/> <param name="proxy" value="
Page: Provider PennyTel (Australia) Last Update: 10 September 2012 Incoming and outgoing calls work. In conf/sip_profiles/outbound/ create a pennytel.xml file with the following contents: <include> <gateway name="PennyTel"> <param name="
Page: Provider PeopleLine (Canada) Last update: 19 January 2012 (2010 last update tested) Peopleline supports BYOD (bring your own device), and if you inform them of this, they will provide you information like this: Display Name: 604XXXXXXX U
Page: Provider Personal-VOIP (Germany) Last update: 17 December 2013 Works with incoming and outgoing SIP calls. Note that wants your SIP ID as username, not your SIP number! Also note that the contact
Page: Provider Phonzo(Norway) Last update: 22 April 2010 Username/auth-username are both required for phonzo. Auth-Username will be your DID number. Incoming and outgoing calls work. In conf/sip_profiles/external/ create a phonzo.xml file with th
Page: Provider QXIP (Netherlands) Last Update: 6 May 2011 Inbound, Outbound, Audio & Video, All FS codecs supported & enabled Sample Gateway conf/sip_profiles/outbound/qxip-gw.xml <include> <gateway name=""> <param name="username" value="qxxxxx
Page: Provider Rapidvox (USA) Last update: 29 July 2010 Works outbound, outbound provider only. Add to conf/sip_profiles/external/rapidvox.xml Replace username and password with your credentials. <include> <gateway name="rapidvox"> <param n
Page: Provider SignalWire (US) Inbound and outbound works globally. Config files also available at:
Page: Provider (Switzerland) Last update: 29 July 2010 Works with incoming and outgoing SIP calls. your_username is your phone number starting with 4132 <include> <gateway name=""> <param name="proxy" value=""/>
Page: Provider (Germany) Last Update: 20 May 2010 Works with incoming and outgoing SIP calls. Note that wants your SIP ID as username, not your SIP number! <include> <gateway name=""> <param name="pr
Page: Provider SIPRoutes (USA) Last Update: 25 April 2014 At time of this posting Siproutes provides outbound trunks only. <gateway name="SIPRoutes"> <param name="username" value="user"/> <param name="password" value="pass"/> <param name
Page: Provider SipStation (USA) Last Update: 26 February 2011 Incoming and Outgoing works. Trunk settings: <include> <gateway name="SipStation"> <param name="username" value="username"/> <param name="password" value="pa
Page: Provider SUREVoip (UK) Last Update: 22 August 2012 Note - this guide is written by staff at SureVoIP If you get stuck, require consultancy or just need any form of help please contact us http://www.sur
Page: Provider Telasip (USA) Last update: 26 August 2010 The following is from a section of the vars.xml file that I use successfully to make/receive Telasip VoIP calls. Substitute the info from telasip for the user name, password and domain (
Page: Provider Telegate (Australia) Telegate in Australia presents the user agent Vodia-PBX/5.2.1b also known as the PBXnSiP/Snom One. NYSolutions on IRC discovered the following configuration tests good. <include> <gateway name="telegate"> <pa
Page: Provider Teliax (USA) Last update: 16 June 2009 Works with incoming and outgoing SIP. conf/sip_profiles/external/teliax.xml - You may need to change your realm to a different Teliax server other than http://atl.teliax.n
Page: Provider ThinkTel (Canada) Last update: 8 March 2012 conf/sip_profiles/external/thinktel.xml - You should be provided with your sip authentication credentials during sign up process (or via account rep) or support department <include> <gatew
Page: Provider Tricom (Dominican Republic) Last update: 26 November 2013 <include> <gateway name="tricom"> <param name="proxy" value="" /> <param name="register" value="false" /> <param name="from-user" value="809XXXXXXX"/> <param name="username" va
Page: Provider Twilio (US) Inbound and outbound works globally. Config files also available at:
Page: Provider Unlimitel (Canada) Last Update: 22 May 2012 <include> <gateway name=""> <!-- verified on of 2012/05/27 --> <param name="realm" value=""/> <param name="username" value="4165551212"/> <param name="pa
Page: Provider ViaTalk (USA) Last Update: 10 October 2010 dialplan/default.xml (the snippet below is for 11 and 10 digit dialing) <extension name="Long Distance"> <condition field="destination_number" expression="^(1{0,1}\d{10})$"> <action a
Page: Provider Vitelity (USA)
Last update: 20 November 2012 This method uses the static ip address of your FreeSWITCH configuration. Changes must be made to your account at and also to local FreeSWITCH files. Fo
Page: Provider VoiceNetwork (Canada) Last Update: 27 June 2011 You will need to create a file called voicenetwork.xml in your /usr/local/freeswitch/conf/sip_profiles/external directory and copy the information below into the file. <include>
Page: Provider VoicePulse (USA) Last Update: 17 November 2010 Voicepulse East Coast <include> <!-- East Coast gateways --> <gateway name="voicepulse"> <param name="username" value="your-username"/> <param name="realm" value="jfk-primary.
Page: Provider Voip Innovations (USA) Last Update: 24 September 2012 This example assumes altering the default configuration included with FreeSWITCH. Custom contexts and such will require tweaking. ${FS Install DIR} is used to repres
Page: Provider Swiftvox (USA)
Last update: 25 Aprile 2012 aka Switfvox Termination 2012-04-07 After a year of running fine with below, I had to add from domain param set to for termination to work. I'm not sure what happened, other than it
Page: Provider VoipCheap (Luxembourg & Global) Last Update: 17 November 2010 About VoipCheap Voipcheap is one of the VoIP wholesale labels of a German company called Betamax GmbH & Co.Kg. See wi
Page: Provider VoipMeUp (Canada & USA) Last Update: 25 January 2012 Sample gateway config conf/sip_profiles/PROFILE_NAME/voicemeup.xml <include> <gateway name="voicemeup"> <param name="realm" value=""/> <param name="proxy" va
Page: Provider VoIPstreet (USA) Last Update: 18 June 2008 Inbound: <include> <gateway name=""> <param name="username" value="username"/> <param name="password" value="password"/> <param name="from-user" value="username"/> <pa
Page: Provider VoIPtalk (UK) Last Update: 7 December 2009 Note - this may not be the best or the right configuration - I offer it purely on a it-works-for-me basis! Feel free to improve! In the following, [my-voiptalk-id] is typically abo
Page: Provider VONAGE (USA) Last update: 7 April 2011 Vonage normally doesn't offer a SIP service, but they do offer through resellers a product called "Vonage Business Plus", you can do some Google searches to find a reseller fairly easily. Ad
Page: Provider Vono (Portugal) Last update: 11 January 2011 In external.xml file, insert the below line into settings: <param name="user-agent-string" value="FreeSWITCH Agent"/> The vono.xml file: <include> <gateway name="vono"> <param name="
Page: Provider VOXOX (USA) Last update: 15 May 2011 - NOTE: This was previously Telcntris which was combined into VOXOX so the information may be out of date. You will need your Telcentris username (may be optional?), IP Address. conf/sip_profil
Page: Provider WhistlePhone (USA) Last update: 8 March 2011 WhistlePhone allows FREE calling (with a 20s ad announcement at the beginning on each call) to the continental US from anywhere in the World using its softphone hosted on a Mac/
Page: Provider XO Communications (USA)
used as an outbound gate with this configuration <include> <gateway name="XO"> <param name="proxy" value="205.X.X.X"/> <param name="register" value="false"/> <param name="caller-id-in-from" value="true"/> <param name="username" value="not-used"/> <param n
Page: Provider Xpander Communications (USA) Last update: 3 August 2012 Inbound Calls send a destination_number with 10 digits. Outbound Calls outbound caller id works with sip_cid_type=none, caller-id-from=true FreeSWITCH Gateway
Page: Providers ITSPs
About This section provides examples of how to connect FreeSWITCH to a variety of Internet Telephone Service Providers. If you update a provider page, remove the update note at the top of the page. This is used to carry last update dates from the old wi
Page: Proxy Media
About Proxy Media mode puts FreeSWITCH in a "transparent proxy mode" for the RTP streams. The RTP streams still pass through FreeSWITCH (unlike bypass media mode) by using a static all-purpose codec that cannot be decoded. As a consequence any attempts to
Page: proxy_media
proxy_media boolean Proxy Media mode puts Freeswitch in a "transparent proxy mode" for the RTP streams. The RTP streams still pass through freeswitch (unlike bypass media mode), however it is lighter on the CPU because freeswitch never even parses the pac
Page: Pull Requests
About This page describes the process of submitting code to . Forking project with Stash Create a new account in JIRA. Create a new issue in JIRA, describing the feature you want to develop or the pr
Page: Py Session RecordFile
About Records audio data to a file. Synopsis recordFile(filename, <[max_len]>, <[silence_threshold]>, <[silence_secs]>) Arguments filename - Full path to filename to write. max_len - maximum length of the recording in seconds. silence_threshold - energy l
Page: Py Session SetHangupHook
About Slightly different than the JS counterpart in that it calls back with a uuid rather than a session instance. Example 1 def hangup_hook(uuid): console_log("INFO","\n\nhangup hook, uuid
Page: Py Session SpeakText
About Example session.set_tts_params("cepstral", "William") session.speak("Welcome to freeswitch") What's currently broken The following does not currently work. session.speak("cepstral","William","Hello from FreeSwitch")
Page: Py Session StreamFile
About Example Play wav file from beginning. session.streamFile("/path/to/my.wav") Example with mp3, specifying the starting sample index to start playback somewhere in the middle of the file. start_sample_index = 100000 result = session.streamFile("/pub
Page: Py Session Transfer
About Transfer inbound caller to a different local extension. Synopsis transfer(extension, dialplan, context) extension - destination extension, eg, "411" dialplan - dialplan name, eg, "XML" or use "" and system will use default dialplan - context name, e
Page: Py_Session_collectDigits
About This document covers information about Session. Example session.collectDigits(5)
Page: Py_Session_GetDigits
About This document covers information about Session. Example dtmf = session.getDigits(10, "#", 5000) Parameters maxdigits terminators timeout
Page: Py_Session_PlayAndGetDigits
About This document covers information about Session. Function definition playAndGetDigits(int min_digits, int max_digits, int max_tries, int timeout, char *terminators, char *audio_files, char *bad_input_audio_files, char *digits_regex) Example tempfile
Page: Py_Session_PlayFile
About This document covers information about Session. Example result = self.session.playFile("/path/to/wave.wav", "")
Page: Py_Session_Set_TTS_Params
About This document covers information about Session. Example session.set_tts_params("cepstral", "William")
Page: Py_Session_SetDTMFCallback
About This document covers information about Session. Example from freeswitch import * def dtmf_handler(input, itype, funcargs): console_log("INFO","\n\nDTMF input: %s\n" % input) if input == "5": return "pause" if input == "3": return "seek:+60000" # 1 m
Page: Pylons
About About text. Pylons is a Python based webserver. Together with mod_xml_curl it makes setting up FS reasonably straight forward. The examples on this page are not f
Page: Python ESL
About The Python ESL module allows for native interaction with FreeSWITCH over the event socket interface. It allows for sending commands, receiving output and sending and receiving events and IVR interaction from the FreeSWITCH server. The Python ESL mod
Page: Python_SBC
About by nikko This document covers information about PySBC. PySBC: A Session Border Controller in Python FreeSWITCH is not a pure Session Border Controller (SBC). To have a truly scaleable FreeSWITCH cluster with load balancing, and failover, you need a


Page: QoS
About Marking your packets with DSCP will enable you to implement a QoS policy on your network to give RTP and SIP traffic more priority. Keep in mind that just because you are marking the packets doesn't mean you have QoS. Your network needs to LOOK at t
Page: Queue_which_calls_extensions
The tips and tricks below are outdated after the agent callback function and fifo_chime_list have been added to the fifo function. With the improved fifo, the contents of the fifo_chime_list files can be changed after customers have entered the fifo by us


Page: Raspberry Pi
About A compilation of tips and techniques to build and run on an Raspberry Pi. Introduction The Raspberry PI usually runs Linux, but because it has another processor architecture the normal linux / Debian packages won't work. On this page the installatio
Page: Raspi
About This page is dedicated to using FreeSWITCH with the Raspberry Pi Please feel free to add your content here, including tips on getting things working, compiling tricks, how-to guides, etc. Slave The following script shoul
Page: rdnis
rdnis string
Page: read_codec
read_codec string readonly The negotiated codec of the inbound call leg.
Page: read_rate
read_rate string
Page: read_result
read_result string
Page: read_terminator_used
read_terminator_used dtmf digit Contains the digit that the caller used to terminate a playback.
Page: Real-world results
Some results as contributed by the community Here is an attempt to collect real-world performance data around the FreeSWITCH community, so please, don't add results coming from stress tests. Please, share your own data, and feel free to add a link in your
Page: Record FSV
About Record an FSV file. Usage <action application="record_fsv" data="file.fsv"/> Before you can actually start recording your video, you need to edit vars.xml to include video codecs <X-PRE-PROCESS cmd="set" data="global_codec_prefs=G7221@32000h,G7221@1
RECORD_APPEND boolean Recording is appended to file. Set RECORD_APPEND=true on the channel and all recordings will behave this way to formats which support it (curently mod_sndfile for WAV, etc.) Usage <action application="set" data="RECORD_APPEND=true"/>
RECORD_ARTIST string Set prior to performing a record to store in the file header meta data (provided the file format supports meta headers). Usage <action application="set" data="RECORD_ARTIST=Unknown"/>
RECORD_BRIDGE_REQ boolean Record session only when the channel is bridged. See Usage <action application="set" data="RECORD_BRIDGE_REQ=true"/>
RECORD_COMMENT string Set prior to performing a record to store in the file header meta data (provided the file format supports meta headers). Usage <action application="set" data="RECORD_COMMENT=This is a blog spot"/>
RECORD_COPYRIGHT string Set prior to performing a record to store in the file header meta data (provided the file format supports meta headers). Usage <action application="set" data="RECORD_COPYRIGHT=(c)2007-me"/>
RECORD_DATE string Set prior to performing a record to store in the file header meta data (provided the file format supports meta headers). Usage <action application="set" data="RECORD_DATE=${strftime(%Y-%m-%d %H:%M)}"/>
RECORD_DISCARDED string readonly If a recording gets dropped or discarded then this channel variable is set to true. Useful for diagnostics.
Page: record_fill_cng
record_fill_cng string Usage <action application="set" data="record_fill_cng=1200"/>
RECORD_HANGUP_ON_ERROR boolean When set to true this channel variable will cause the call to hangup if there is an error when trying to record the call. This is not a common feature, however in cases where a call MUST be recorded it makes it impossible to
RECORD_MIN_SEC integer Sets the minimum recording length. Normally a recording must be at least 3 seconds long. If a recording does not meet the minimum length, it is deleted after being recorded. Usage <action application="set" data="RECORD_MIN_SEC=0"/>
Page: record_ms
record_ms integer readonly Contains the length in milliseconds of the most recent recording.
Page: record_post_process_exec_api
record_post_process_exec_api string Executes an API for the purpose of postprocessing recorded audio. These two variables allow the postprocessing of recorded audio. The reason this is required is if the A leg hangs up first in a call, the dialplan stops
Page: record_post_process_exec_app
record_post_process_exec_app string Executes an app for the purpose of postprocessing recorded audio. The reason this is required is if the A leg hangs up first in a call, the dialplan stops being processed, and then you aren't able to take action on the
RECORD_READ_ONLY boolean Record read stream only. Usage From the perspective of FreeSWITCH looking toward the endpoint Aleg is recording, and only incoming audio read from the channel goes into file <action application="set" data="RECORD_READ_ONLY=true"/>
Page: record_restart_limit_on_dtmf
record_restart_limit_on_dtmf boolean When set to true it allows the person recording to press a DTMF key and extend the amount of time they have before the recording times out. Usage <action application="set" data="record_restart_limit_on_dtmf=true"/>
Page: record_sample_rate
record_sample_rate integer Set the sample rate of the recording. Usage <action application="set" data="record_sample_rate=8000"/>
RECORD_SOFTWARE string Set prior to performing a record to store in the file header meta data (provided the file format supports meta headers). Usage <action application="set" data="RECORD_SOFTWARE=FreeSWITCH"/>
RECORD_STEREO boolean Record leg A and leg B streams (i.e. the caller is recorded to the left channel and the reciever is recorded on right channel) into different channel in a stereo file. Usage <action application="set" data="RECORD_STEREO=true"/>
RECORD_STEREO_SWAP boolean Allow to invert the recording channel when RECORD_STEREO variable is set to true. So the caller is recorded to the right channel and the receiver is recorded on left channel.
RECORD_TITLE string Set prior to performing a record to store in the file header meta data (provided the file format supports meta headers). Usage <action application="set" data="RECORD_TITLE=Recording ${destination_number} ${caller_id_number} ${strftime(
Page: record_waste_resources
record_waste_resources string By default record doesn't send RTP packets. This is generally acceptable, but for longer recordings or depending on the RTP timer of your gateway, your channel may hangup with cause MEDIA_TIMEOUT. Setting this variable will '
RECORD_WRITE_ONLY boolean Record write stream only. Usage From the perspective of FreeSWITCH looking toward the endpoint Aleg is recording, and only outgoing audio written to the channel goes into file <action application="set" data="RECORD_WRITE_ONLY=tru
Page: recording_follow_transfer
recording_follow_transfer boolean Set to true if you want recording to continue after a transfer. Usage <action application="set" data="recording_follow_transfer=true"/>
Page: recordings_dir
recordings_dir string
Page: recovery_profile_name
recovery_profile_name string It's used internally so the core recovery engine knows which profile name goes with the call. The profile name to the core is just an arbitrary sub category of the call where to mod_sofia it means the sip profile name. See mai
Page: Redfone
Redfone foneBRIDGE2 T1/E1 to TDMoE Bridge The foneBRIDGE2 has been interop tested with the latest FreeSwitch (July 2012). Software requirements are the DAHDI driver set LIBPRI and the FreeTDM module included during FS compile time. Documentation with samp
Page: Reference Desk
About Links to useful pages and sites with technical and regulatory reference information. Tone References World Tone Database — frequencies and cadence for telephone signaling tones throughout the world Thi
Page: Regular Expression
About A list of useful regular expression examples. Regular Expressions are used throughout FreeSWITCH. See Dialplan_XML for complete examples of the regular expressions used in conditional statements in the d
Page: Release Notes
Page: Release Process
Intro In order to efficiently communicate the core development teams perspective about the state of code in the FreeSWITCH software repository, the core development team uses commit categorization, a point based versioning scheme, the Release State. For s
Page: Reloading
Introduction When is a reloadxml sufficient for "reloading and moving on"? This can be a tricky question. Sometimes reloading XML is sufficient. Sometimes more is needed. Discussion When making updates in FreeSWITCH it is frequently necessary to "reload"
Page: remote_media_ip
remote_media_ip string
Page: remote_media_port
remote_media_port integer
Page: remote_video_ip
remote_video_ip string
Page: remote_video_port
remote_video_port integer
Page: Reporting Bugs to JIRA
About After you performed due diligence to make sure that your configuration is correct and you are confident that you have discovered a bug in , please follow these steps to report a bug to the core development team via JIRA
Page: RESTful Verto
mod_verto has a builtin HTTP server so it is possible to build restful APIs. To use the HTTP interface, put the following config in your verto profile <vhosts> <vhost domain="localhost"> <param name="alias" value="seven.local"/> <!-- <par
Page: Ring group
Ring group is PBX telephony jargon that refers to a group of physical telephones that all ring together, simultaneously, in response to calls made to an incoming telephone number (A.K.A.: "DID", an acronym for Direct Inbound Dial). "," between end-points
Page: ringback
ringback string This addition lets you set artificial ringback on a channel that is waiting for an originated call to be answered. This will specify the audio to play to the A leg on unanswered aka (early media) calls. Syntax: <action application="set" da
Page: Rosetta Stone
Asterisk to FreeSWITCH Rosetta Stone While FreeSWITCH is not a drop-in replacement for Asterisk, it does many of the same things that Asterisk does. This page is an attempt to help those familiar with Asterisk to leverage that knowledge and quickly locate
Page: Routers
Notes about routers as they apply to applications. Apple AirPort Extreme Using an Apple AirPort Extreme in NAT-PMP mode, it is pretty much Plug-n-Play. Simply enable NAT-PMP, Port Mapping is
Page: Routing with directory parameters
All the text below was last edited in 2008, it is therefore likely out-of-date, inaccurate and in dire need of a refresh Problem: You need to apply a different set of routing rules to a set of endpoints Solution: Add a <variables> section to the directo
Page: rss_alt_config
rss_alt_config string
Page: RTCP
About RTP Control Protocol Introduction RTCP - RTP Control Protocol - provides out-of-band statistics and control information for an RTP session. Only the Sender Report (SR) messages are sent by FreeSWITCH
Page: rtcp_audio_interval_msec
rtcp_audio_interval_msec integer Channel variable to set the interval in msec between each RTCP SR packet. setting the rtp_timer_name to none will create all sorts of undesired side effects with RTCP (packets not sent, RTCP autoadjust failing, etc.).
Page: rtcp_mux
rtcp_mux boolean Channel variable to force rtcp-mux to be used on the outgoing INVITE.
Page: rtcp_octet_count
rtcp_octet_count integer Contains number of RTCP octets collected during the call.
Page: rtcp_packet_count
rtcp_packet_count integer Contains number of RTCP packets collected during the call.
Page: RTMP Configuration Files
Profiles mod_rtmp allows you to listen on multiple profiles. Each profile binds to a unique IP:port combination (similar to Sofia profiles). Each profile can be configured with different settings. This allows you to either listen for calls on multiple add
Page: RTP Issues
About RTP issues can be difficult to diagnose without a healthy amount of packet captures and other troubleshooting information. This document was written in 2008 and is likely no longer applicable. Devices with Issues Sonus Carrier Info Carriers known to
Page: RTP payload list
This list is maintained by IANA at See also: Dynamic Payloads.
Page: rtp_adv_audio_ip
rtp_adv_audio_ip string This channel variable explicitly sets the IP address in SDP on a one-off basis. The "right" way to do this is ext-rtp-ip in the sofia profile. Usage <action application="set" data="rtp_adv_audio_ip=" />
Page: rtp_append_audio_sdp
rtp_append_audio_sdp string This may be used to append audio parameters to the SDP sent to B-leg. It should/must be set before bridging. Usage <action application="export" data="rtp_append_audio_sdp=a=fmtp:18 annexb=no"/>
Page: rtp_assume_rtcp
rtp_assume_rtcp boolean Channel variable to force freeswitch to assume rtcp is at rtp port + 1 all the time.
Page: rtp_autoflush
rtp_autoflush boolean When set to true (default if not present), it will skip timer waits when the socket already has data on read. When set to false, it will always sleep one timer interval. When a packet is too late with this setting, it would be saved
Page: rtp_autoflush_during_bridge
rtp_autoflush_during_bridge boolean The same as rtp_autoflush, but is set during the bridge.
Page: rtp_disable_hold
rtp_disable_hold boolean When set to true the user may not put the call on hold. Usage <action application="set" data="rtp_disable_hold=true"/>
Page: rtp_disable_vad_in
rtp_disable_vad_in boolean
Page: rtp_disable_vad_out
rtp_disable_vad_out boolean
Page: rtp_enable_vad_in
rtp_enable_vad_in boolean
Page: rtp_enable_vad_out
rtp_enable_vad_out boolean
Page: rtp_force_audio_fmtp
rtp_force_audio_fmtp string Set the audio fmtp.
Page: rtp_hold_timeout_sec
rtp_hold_timeout_sec integer
Page: rtp_jitter_buffer_during_bridge
rtp_jitter_buffer_during_bridge boolean Usage <action application="set" data="rtp_jitter_buffer_during_bridge=true"/><action application="set" data="rtp_jitter_buffer_during_bridge=false"/>
Page: rtp_manual_rtp_bugs
rtp_manual_rtp_bugs string Usage <action application="set" data="rtp_manual_rtp_bugs=cisco_skip_mark_bit_2833"/>
Page: rtp_negotiate_near_match
rtp_negotiate_near_match boolean Setting this to true will cause FreeSWITCH to consider codec PTIME on inbound codec negotiation as well. If you receive a call with PCMU@30i and only have PCMU@20i on the list, it will prefer anything else that matches cod
Page: rtp_rewrite_timestamps
rtp_rewrite_timestamps boolean
Page: rtp_sdes_suites
rtp_sdes_suites string
Page: rtp_secure_media
rtp_secure_media string Syntax: rtp_secure_media=<permission>[:<list of encryption suites>] sip_secure_media is no longer implemented permission: mandatory - Accept/Offer SAVP negotiation ONLY optional - Accept/Offer SAVP/AVP with SAVP preferred forbidden
Page: rtp_secure_media_inbound
rtp_secure_media_inbound string Same syntax as rtp_secure_media: rtp_secure_media_inbound=<permission>[:<list of encryption suites>] Examples: rtp_secure_media_inbound=true:AEAD_AES_256_GCM_8,AES_CM_256_HMAC_SHA1_80,AES_CM_256_HMAC_SHA1_32 rtp_secure_medi
Page: rtp_secure_media_outbound
rtp_secure_media_outbound string Same syntax as rtp_secure_media: rtp_secure_media_outbound=<permission>[:<list of encryption suites>] Examples: rtp_secure_media_outbound=true:AEAD_AES_128_GCM_8 rtp_secure_media_outbound=optional:AEAD_AES_128_GCM_8
Page: rtp_secure_media_suites
rtp_secure_media_suites string An alternative, optional variable that specifies a comma-separated list of available encryption suites. If this is specified, then rtp_secure_media need only specify the permission flag without the list of suites. Syntax: rt
Page: rtp_stun_ping
rtp_stun_ping string
Page: rtp_timeout_sec
rtp_timeout_sec integer
Page: rtp_timer_name
rtp_timer_name string
Page: Ruby dialplan example
About Dynamically generate a dialplan entry from database lookups. Example Code #!/usr/bin/env ruby # # 2007-08-08 -- jontow _at_ # # Database schema: # # CREATE TABLE dialplan ( # did varchar(64), # dstid int(11) # ); # # CREATE TABLE destinat
Page: Ruby ESL
Ruby Examples ESL in Inbound mode. require 'ESL' con ='', '8021', 'ClueCon') esl = con.sendRecv('api sofia status') puts esl.getBody ESL in Outbound mode in sync operation. require 'socket' require 'ESL' server = TCPServer
Page: RubyESL
Ruby Examples ESL in Inbound mode. require 'ESL' con ='', '8021', 'ClueCon') esl = con.sendRecv('api sofia status') puts esl.getBody ESL in Outbound mode in sync operation. require 'socket' require 'ESL' server = TCPServer
Page: Run
Description Performs a CURL operation (eg. GET, POST). Synopsis run(method, url, request_data, callback, callback_arg, credentials, timeout, content-type) method - any CURL supported method (eg. get, post) url - any CURL supported URL request_data - URL-e
Page: run_dir
run_dir string
Page: Running inside GNU Screen
About Use the multi-window 'screen' program to attach/detach from FreeSWITCH. Running FreeSWITCH In Screen (Linux/Unix/BSD/OSX) Some have asked about how to "attach" to a running FreeSWITCH process in a manner similar to that of Asterisk's asterisk -r com


Page: Sample Regexes
<!-- Simple regex examples for FS Conf Call --> <include> <!-- traditional OR logic --> <extension name="example_01"> <condition field="destination_number" expression="^(this|that|the_other)$> <action application="log" data="Someone dialed $1"/> <anti-act
Page: Sangoma A200
About This is a brief description of a FS installation using the Sangoma A200 expandable analog voice card. Mine is a 4 port (2 FXS, 2 FXO) version but it is expandable to 24 ports. I originally was using it with Asterisk but became frustrated when it sto
Page: SBC FreeSWITCH Configuration Example 2
About This example assumes that you have completed the basic installation of FreeSWITCH and some sort of SIP proxy (Sonus PSX, Kamailio, OpenSIPS, etc.) that will be controlling your LCR. This is designed for a wholesale model in mind with limited switch
Page: SBC_Setup
About This document covers information about the SBC Setup. Introduction Below you'll find a step by step setup for installing FS as a SBC. The LCR engine is provided by Kamailio and its module carrierroute. Kamailio is an opensource SIP Proxy (not a B2BU
Page: Sched hangup javascript example
About An example for Sched hangup in Javascript; Example /**schedhangup.js --example script to execute scheduled hangup from javascript **/ session.Answer(); session.streamFile("ivr/ivr-welcome_to_freeswitch.wav", ""); session.streamFile("ivr/ivr-hold_c
Page: Script Language Choice
About [ NOTE: This page was copied whole from the old mediawiki is very old by now. To paraphrase Wikipedia, it has many problems, not the least of which is objectivity. Lua solves some problems, perl solves others, and so on. Use the best tool for the jo
Page: script_dir
script_dir string
Page: sdp_m_per_ptime
sdp_m_per_ptime boolean Adds a new m= line for each distinct ptime in codec list. When this variable is not set: When mixing codecs with various ptime in a codec list, they will now be allowed to co-exist in the sdp but it will send no ptime attr. This me
Page: sdp_secure_savp_only
sdp_secure_savp_only string When rtp_secure_media=true FreeSWITCH will offer both AVP and SAVP in the SDP. Setting sdp_secure_savp_only=true (in addition to rtp_secure_media=true) will cause FreeSWITCH to offer only SAVP in the SDP. Usage <action applicat
Page: Security
About Security is about mitigating risks while providing ease of use, problem detection, and remediation while protecting the most important characteristics of the system. This section will provide a number of points to consider. Considerations What are y
Page: send_silence_when_idle
send_silence_when_idle string When greater than 0, this variable tells FreeSWITCH to transmit comfort noise when idle. The value of this variable is set to the divisor of the silence generating function. 400 or 1400 are common values set, but you may expe
Page: Serving Configuration with Lua
About mod_lua allows you to replace static XML file lookups with configuration data served by Lua scripts. Serving Configuration with mod_lua With mod_lua you can serve your configurations. You can bind a Lua script to the XML req, like you do with URL in
Page: Session
See the Mod_lua page for the full list of session methods. This page currently lists only the subset of methods available to the Javascript module. The session object provides methods that allow
Page: Session Ani
About Contains the ANI of the current channel Example console_log("info", session.Ani + "\n"); See Also Javascript
Page: Session ANI2
About Contains the ANI2 (FLEX ANI) digits for this channel. Example console_log("info", session.Ani2 + "\n"); See Also Javascript
Page: Session answer
About Answers the current session. Synopsis answer() Example session.answer();
Page: Session caller id name
About Contains the name of the caller in this channel Example console_log('notice', session.caller_id_name + "\n"); See Also Javascript
Page: Session caller id num
About Contains the caller id number of the channel Example console_log("info", session.caller_id_num + "\n"); See Also Javascript
Page: Session cause
About The session cause property holds the Q.931 string representation of the last disconnect. Example console_log("notice", "Disconnect cause: " + session.cause + "\n");
Page: Session causecode
About The session cause property holds the Q.931 numerical representation of the last disconnect. Example console_log("notice", "Disconnect cause: " + session.causecode + "\n");
Page: Session collectInput
About Blocks the channel and collects input such as DTMF digits. session.collectInput( ) blocks the channel. As input happens, the listed callback function is executed passing the input (among other things) as arguments. The call blocks until either the f
Page: Session destination
About Contains the name of the destination for this channel. Example console_log(session.destination + "\n"); See Also Javascript .
Page: Session destroy
Javascript is tied to the FreeSWITCH session and the session thread will block until the session destructor is called. The session.destroy() method detaches the current session from it's Javascript object, effectively making it go away to get collected so
Page: Session dialplan
About Contains the name of the dialplan that was used to get us here. Example console_log("info", session.dialplan + "\n"); See Also Javascript
Page: Session Execute
About Javascript method to execute a dialplan application Description Executes a dialplan application. (To execute an API (console) command, use apiExecute.) Synopsis execute(appname,arguments) appname is the name of the application to execute arguments
Page: Session flushDigits
About Flushes DTMF digits from the input buffer. i.e. All waiting digits will be removed from the buffer. Synopsis flushDigits() Example session.flushDigits(); See Also Javascript
Page: Session getDigits
About Gets DTMF from the specified channel. Digits will queue up until you run this method. If you want to make sure that no digits are in queue when you call this method, call flushDigits. Synopsis getDigits(length, terminators, timeout, digit_timeout, a
Page: Session getVariable
Get Variable on the specified channel. To get the list of variable name you can use, you can display it using the info app: <action application="info" /> Synopsis getVariable(variable) variable - string containing variable name Example Lua: local caller_i
Page: Session hangup
About Hangs up the current channel. Do not call this method inside your hangup hook. The hangup method can be called with a Q.931 cause code (either the string or numerical representation) that will be transmitted to the remote end. Synopsis hangup(cause)
Page: Session name
About Contains the session name Example console_log("info", + "\n"); See Also Javascript
Page: Session network addr
This displays the network address of the remote endpoint. Example console_log("info", session.network_addr + "\n");
Page: Session originate
Originates a new call with an existing session object. Deprecated Indeed! Avi Marcus couldn't figure out how to get this to work, so he used the following to access the API originate: api = freeswitch.API() api:execute("originate", "sofia/gateway/mygatewa
Page: Session preAnswer
About Enables you to answer the phone with early media as opposed to a full answer. Synopsis preAnswer() Example session.preAnswer(); dtmf = session.getDigits(10, "#", 10000);
Page: Session ready
Checks the status of the channel to ensure that it is in a state a Javascript application can work with. Synopsis ready() Example while(session.ready()) { // do fun stuff here }
Page: Session recordFile
About Records audio data to a file. Synopsis recordFile(filename, <callback_function>, <[callback_args]>, <[max_len]>, <[silence_threshold]>, <[silence_secs]>); arguments filename - Full path to filename to write. callback_function - See section below. ca
Page: Session sayPhrase
About Speaks a prompt macro using the FreeSwitch say macro API. Macros should be placed in conf/lang_XX.xml. Synopsis session.sayPhrase(macro_name [,macro_data] [,language] [,dtmf_callback] [,dtmf_callback_args]); macro_name - (string) The name of the say
Page: Session setAutoHangup
About Sets the auto hangup option forcing the session to terminate when the javascript terminates. Usage result = session.setAutoHangup(true|false); Example Example Hangup hook See a
Page: Session setHangupHook
About Sets the hangup callback handler function that will get called when the call terminates. Remember to call exit() if you want to terminate the javascript session in your hangup callback handler. Usage result = session.setHangupHook(hangup_function_na
Page: Session setVariable
About Set Variable on the specified channel. Synopsis setVariable(variable, value) variable - string containing variable name value - string containing value to store in variable Example session.setVariable("TheVariableName", "This is the value");
Page: Session speak
About Uses the TTS engine to say a phrase. You must have a TTS module loaded for this to work. Synopsis speak(engine,voice,phrase,timer) engine - the engine to use voice - the name of the voice to use phrase - what you want it to say timer - optional time
Page: Session state
About Returns the state of the current channel Example while(session.state == "CS_EXECUTE") { // do something fun } Note: you really should use session.ready instead of the above example See Also JavaScript
Page: Session streamFile
About Plays a file to the current channel and optionally calls a function on DTMF events. Blocks until the function returns "false" or the file is finished playing. Description Streams (plays) the given file to the current channel and optionally calls a f
Page: Session waitForAnswer
This method is deprecated Please look at the following instead: ignore_early_media monitor_early_media_fail Y
Page: Session_flushDigits
About Flushes DTMF digits from the input buffer. i.e. All waiting digits will be removed from the buffer. Synopsis flushDigits() Example session.flushDigits(); See Also Javascript
Page: Session_generateXmlCdr
About Generate CDR record for the current call, as XML. var xml = new XML ("<xml>" + session.generateXmlCdr() + "</xml>"); See Also Javascript
Page: Session_getVariable
About Get Variable on the specified channel. To get the list of variable name you can use, you can display it using the info app: <action application="info" /> Synopsis getVariable(variable) variable - string containing variable name Example Lua: local
Page: session_in_hangup_hook
session_in_hangup_hook boolean Allows channel variables to be accessible in the api_hangup_hook that gets executed for the channel. See Lua env object for an example. Usage <action application="set" data="session_in_hangup_hook=true"/>
Page: Session_setAutoHangup
About Sets the auto hangup option forcing the session to terminate when the javascript terminates. Usage result = session.setAutoHangup(true|false); Example Example Hangup hook
Page: Shared Line Appearance
About Setting up SLA/SCA on various model handsets. SCA allows you to have multiple phones register to the same extension and then use the line key on the handset to barge into a live call at any point. This is a huge feature for small companies and workg
Page: Siemens
Siemens Gigaset A580 IP Registration: works Caller Id: works Call in/out: works Call waiting: not tested Transfer calls: not tested TLS: not supported SRTP: not supported Gigaset S675 / S685 IP Latest Tested Release: 047.00 The Gigaset S675 and S685 SIP
Page: signal_bond
signal_bond string UUID of the channel this channel is bridged/bonded to. Not present on a one-legged call.
Page: signal_bridge_to
signal_bridge_to string
Page: Signalling
About Signaling documentation. This page should be used to collect various specifications and documentation for signaling protocols. ISDNTDM ISDN: Integrated Services Digital Network SS7 The official specifications for SS7 are available from the ITU-T in
Page: Silence Stream
Silence stream Silence_stream is a file format that may be used anywhere that a file is expected. Silence_stream is implemented by mod_tone_stream. Usage silence_stream://[<duration>[,divisor] Duration is specified in milliseconds If the duration is -1,
Page: Simple call center using mod fifo
About This example illustrates on-hook agents waiting customers in a call centre. Add members in fifo.conf.xml <configuration name="fifo.conf" description="FIFO Configuration"> <fifos> <fifo name="sales_fifo_1@$${domain}" importance="0"> <member timeout="
Page: Simple Call Forward with IVR
About Set up Call Forwarding using the dialplan instead of a button on your phone. Introduction I started this as a proof of concept and it worked well enough that I decided to add it as an example of using hash
Page: Simple Day Nite Mode
About A very simple example of using the dialplan to manipulate global variables. Discussion This dialplan example will manipulate the global variable "sys_mode" which normally contains "DAY" or "NITE" depending on the system mode. Dial x9200 to set d
Page: Simple IVR in JavaScript
About This is more or less based on the other examples but was slightly modified to "dial a users extension at any time". Example function on_dtmf(session, type, digits, arg) { if ( saved_digits = session.getVariable("digits") ) { session.setVariable("d
Page: sip
sip string
Page: SIP Message Logging
About SIP Message Logging Turning logging on in the FreeSWITCH SIP stack (Sofia) The mod_sofia wiki page discusses how to enable SIP messages logging Debugging Sofia Sip The easiest way to turn i
Page: SIP Protocol Messages
About The SIP protocol specifies messages that communicate status between endpoints. Each standardized message is indexed by a number as listed below. RFC 3261 Requests INVITE Indicates that a user is being invited to j
SIP Encryption Primer FreeSWITCH supports both encrypted signaling known as SIPS which can be SSL or TLS with signed certificates, as well as encrypted audio/media known as SRTP. Typical convention is to have the unencrypted SIP control channel on UDP p
Page: sip_acl_authed_by
sip_acl_authed_by string readonly Contains the name of the ACL node that authorized this call.
Page: sip_acl_token
sip_acl_token string readonly Contains the ACL auth token for the current call.
Page: sip_auth_method
sip_auth_method string The request method used to authenticate with. Known values: REGISTER
Page: sip_auth_password
sip_auth_password string For mod_sofia use with sip_auth_username to answer auth challenges without defining a full gateway. Usage originate {sip_auth_username=<your_user_name>,sip_auth_password=<your_password>}sofia/external/1xxxxxxx@ &echo
Page: sip_auth_realm
sip_auth_realm string This should contain the domain/realm of the authenticated user that has triggered the event, if applicable. Usage originate {sip_auth_username=<your_user_name>,sip_auth_password=<your_password>}sofia/external/1xxxxxxx@ &ec
Page: sip_auth_username
sip_auth_username string For mod_sofia answer auth challenges without defining a full gateway. Used in tandem with sip_auth_password. Also indicates the SIP username a device successfully registered to FreeSWITCH with. Usage originate {sip_auth_username=<
Page: sip_authorized
sip_authorized string Indicates whether the SIP device accessing the dialplan is authorized to FreeSWITCH or not. The SIP device can be authorized either via an ACL or via digest authentication.
Page: sip_auto_answer
sip_auto_answer boolean Tells the SIP phone to auto-answer the call, if supported. Can be used for intercom support. Usage <action application="export" data="sip_auto_answer=true"/>
Page: sip_auto_answer_detected
sip_auto_answer_detected string
Page: sip_auto_answer_notify
sip_auto_answer_notify string
Page: sip_auto_answer_suppress_notify
sip_auto_answer_suppress_notify string
Page: sip_auto_simplify
sip_auto_simplify boolean When set, this directs FreeSWITCH to remove itself from the SIP signaling path if it can safely do so. Usage <action application="set" data="sip_auto_simplify=true"/>
Page: sip_call_id
sip_call_id string SIP header Call-ID.
Page: sip_callee_id_name
sip_callee_id_name string deprecated Set on the inbound leg to control what caller ID number appears in the caller phone's display. Usage If you find that set doesn't work, try using export instead. <action application="set" data="sip_callee_id_name=Regin
Page: sip_cid_in_1xx
sip_cid_in_1xx boolean Prevents FreeSWITCH when it receives 183 from leg-B to automatically insert RPID before sending 183 to leg-A. This can be defined profile-wide with: pass-callee-id=false. Usage <action application="set" data="sip_cid_in_1xx=false"/>
Page: sip_cid_type
sip_cid_type string Modify how the Caller ID will show up in SIP header of the outbound leg. privacy on the inbound leg controls the remaining contents of RPID and Privacy headers. Usage Send no extra caller id info (Caller ID will be in the SIP From): th
Page: sip_codec_negotiation
sip_codec_negotiation string sip_codec_negotiation is basically a channel variable equivalent of inbound-codec-negotiation. Options: generous scrooge greedy Before 74a0cfd1e101413a3941c41d04ee01d8df2ae418
Page: sip_contact_host
sip_contact_host string Hostname part of the Contact SIP header. Usage If your request header contains: Contact: <;transport=udp;gw=test> Then the value for this field would be:
Page: sip_contact_port
sip_contact_port integer Port part of the Contact SIP header. Usage If your request header contains: Contact: <;transport=udp;gw=test> Then the value for this field would be: 5060
Page: sip_contact_user
sip_contact_user string Username part from the Contact SIP header. Usage If your request header contains: Contact: <;transport=udp;gw=test> Then the value for this field would be: gw+test
Page: sip_copy_custom_headers
sip_copy_custom_headers boolean To pass some custom X-headers from B-leg to A-leg, add {sip_copy_custom_headers=true} to the dial string of the B-leg. Usage Set it to false to disable sending custom X- headers to your SIP gateway provider: <action applica
Page: sip_copy_multipart
sip_copy_multipart boolean FreeSWITCH supports only INVITEs with multipart bodies. FreeSWITCH does not support response messages such as 183 Session Progress or 200 Ok with multipart bodies. Typically SIP bodies only have one MIME part with an SDP using M
Page: sip_destination_url
sip_destination_url string
Page: sip_enable_soa
sip_enable_soa boolean For per call basis which can be set to false to disable SIP SOA from sofia and most likely result in untouched exchange of SDP. Usage <action application="set" data="bypass_media=true"/> <action application="export" data="sip_enable
Page: sip_exclude_contact
sip_exclude_contact string
Page: sip_execute_on_image
sip_execute_on_image string Execute an application as soon as you get a T.38 invite. This variable is similar to execute_on_answer. You can run t38_gateway or rxfax etc when you get a T.38 re-invite but no CNG tone, or you want to ignore the tone and only
Page: sip_force_audio_fmtp
sip_force_audio_fmtp string Set the audio fmtp.
Page: sip_force_full_from
sip_force_full_from string
Page: sip_force_full_to
sip_force_full_to string
Page: sip_force_video_fmtp
sip_force_video_fmtp boolean
Page: sip_from_comment
sip_from_comment string
Page: sip_from_display
sip_from_display string The 'User' element of the SIP From: line Usage Clear the user part of the SIP message sent to the Leg B call: <action application="bridge" data="{sip_from_display=_undef_}user/1001"/>
Page: sip_from_host
sip_from_host string Hostname part of the From SIP header. Usage If your request header contains: From: <>;tag=0e70ba56 Then the value for this field would be:
Page: sip_from_port
sip_from_port integer Port part of the From SIP header. Usage If your request header contains: From: <>;tag=0e70ba56 Then the value for this field would be: 5661 However, if your request header does not contain a port, then
Page: sip_from_uri
sip_from_uri string The SIP URI of the endpoint sending the INVITE. Usage <action application="export" data="sip_from_uri=${sip_from_uri}"/> Some SIP providers insist on handling caller ID in a non-normal way. In most cases you can use effective_caller_id
Page: sip_from_user
sip_from_user string Username part of the From SIP header. Usage If your request header contains: From: <>;tag=0e70ba56 Then the value for this field would be: 1000
Page: sip_from_user_stripped
sip_from_user_stripped string This is the same as sip_from_user, but has the + sign stripped from it.
Page: sip_gateway
sip_gateway string
Page: sip_gateway_name
sip_gateway_name string If your call is outbound, and Leg B is routed via a gateway, then this variable will contain the gateway name. Usage Call from user on internal profile, routed out via gateway "ntl": sip_profile_name=gateway sip_gateway_name=ntl so
Page: sip_h_Referred-By
sip_h_Referred-By string This is the line Referred-By in the SIP message. It may be set on a transfer to a number, which then bridges somewhere else. Usage <action application="set" data=""/> If you wish to unset it, you ca
Page: sip_handle_full_from
sip_handle_full_from string
Page: sip_handle_full_to
sip_handle_full_to string
Page: sip_hangup_disposition
sip_hangup_disposition string This variable contains the value of who sent the SIP BYE message. Some examples from XML CDRs:<sip_hangup_disposition>send_bye</sip_hangup_disposition> <sip_hangup_disposition>recv_bye</sip_hangup_disposition> <sip_hangup_dis
Page: sip_has_crypto
sip_has_crypto string deprecated Use rtp_has_crypto instead.
Page: sip_header_name
sip_header_name string
Page: sip_history_info
sip_history_info string
Page: sip_ignore_183nosdp
sip_ignore_183nosdp string Ignoring 183 without SDP. This option is not for normal basic call flow. Usage <action application="set" data="sip_ignore_183nosdp=true"/>
Page: sip_ignore_reinvites
sip_ignore_reinvites boolean Tells FreeSWITCH to accept/ignore re-INVITEs from remote end. Usage Don't allow any re-INVITEs once bridged: <action application="set" data="sip_ignore_reinvites=true"/>
Page: sip_ignore_remote_cause
sip_ignore_remote_cause boolean
Page: sip_invite_call_id
sip_invite_call_id string SIP Call-ID to use when originating a call. Usage <action application="set" data="sip_invite_call_id=mycustomcallid"/>
Page: sip_invite_contact_params
sip_invite_contact_params string
Page: sip_invite_domain
sip_invite_domain string Set the from domain in leg (B). Usage <action application="bridge" data="{sip_invite_domain=${sip_from_host}}sofia/gateway/gw1/$"/>
Page: sip_invite_from_params
sip_invite_from_params string Sets the from parameters on the B-leg of the call. The from parameters come after user@host:port and before. The initial semi-colon is added after the port. Usage {sip_invite_from_params=otg=mytrunk}sofia/gateway/sonus/$1 Ret
Page: sip_invite_from_uri
sip_invite_from_uri string
Page: sip_invite_full_from
sip_invite_full_from string
Page: sip_invite_full_to
sip_invite_full_to string
Page: sip_invite_params
sip_invite_params string
Page: sip_invite_record_route
sip_invite_record_route string
Page: sip_invite_req_uri
sip_invite_req_uri string Sets the URI in the header Request-Line INVITE when calling bridge or originate. RFC 3261 specifies that compliant endpoints SHOULD route based on the Request URI, not the URI in To: Usage <act
Page: sip_invite_route_uri
sip_invite_route_uri string Sets the URI in the header Route when calling bridge or originate. Usage originate {sip_invite_route_uri=<sip:+48399999999@;lr;orig>,origination_caller_id_number=399999000}sofia/internal/ &e
Page: sip_invite_tel_params
sip_invite_tel_params string Tel URI parameters (npdi, rn) appearing in SIP URI on outbound calls. Usage To produce INVITE sip:555000002;npdi=yes;rn=5555550001@;user=phone SIP/2.0: <action application="bridge" data="{sip_invite_tel_params=npdi=yes;
Page: sip_invite_to_params
sip_invite_to_params string
Page: sip_invite_to_uri
sip_invite_to_uri string Sets the URI in the header To when calling bridge or originate. Usage originate {sip_invite_to_uri=<>}sofia/internal/33334444@ &park Result: INVITE sip:33334444@ SIP/2.0 From: "" <sip:00
Page: sip_jitter_buffer_plc
sip_jitter_buffer_plc boolean Enables/disables packet loss concealment (PLC) when using the jitter buffer. PLC is enabled by default when the jitter buffer is enabled. Set this variable before enabling the jitter buffer for it to have an effect. Usage <ac
Page: sip_local_sdp_str
sip_local_sdp_str string
Page: sip_local_url
sip_local_url string
Page: sip_looped_call
sip_looped_call boolean true if the call has been authenticated via means other than an ACL and the current request IP/port matches the profile IP/port (see src/mod/endpoints/mod_sofia/sofia.c
Page: sip_mirror_remote_audio_codec_payload
sip_mirror_remote_audio_codec_payload boolean To tell sip to break the rfc and expect the codec payload the other side replies with rather than the one it offered which is the correct behavior. This variable can be set globally or per channel.
Page: sip_nat_detected
sip_nat_detected string
Page: sip_network_destination
sip_network_destination string It is intended for use with devices registering behind a NAT where the Request-URI should contain the contact that was bound to the AOR during the registration request while the request itself should be sent to the public IP
Page: sip_outgoing_call_id
sip_outgoing_call_id string deprecated Replaced by sip_invite_call_id.
Page: sip_p_rtp_stat
sip_p_rtp_stat string
Page: sip_profile
sip_profile string Name of the SIP profile which the request was received on.
Page: sip_profile_name
sip_profile_name string If your call is outbound, then this variable will contain the profile name used for the outbound channel (Leg B) If the outbound channel is a gateway, then this variable will be set to gateway, and you'd need to look at sip_gateway
Page: sip_received_ip
sip_received_ip string
Page: sip_received_port
sip_received_port integer
Page: sip_recover_contact
sip_recover_contact string
Page: sip_recover_via
sip_recover_via string
Page: sip_recovery_break_rfc
sip_recovery_break_rfc string To NOT reverse the from and to on UAS Re-INVITEs. This breaks RFC. This variable can be set globally or per channel
Page: sip_refer_reply
sip_refer_reply string
Page: sip_referred_by_cid
sip_referred_by_cid string
Page: sip_referred_by_user_stripped
sip_referred_by_user_stripped string
Page: sip_renegotiate_codec_on_reinvite
sip_renegotiate_codec_on_reinvite boolean Allow SDP codec change with re-INVITE. Usage <action application="bridge" data="{sip_renegotiate_codec_on_reinvite=true}sofia/gateway/trunk/$1"/> Globally in vars.xml: <X-PRE-PROCESS cmd="set" data="sip_renegotiat
Page: sip_reply_host
sip_reply_host string
Page: sip_request_host
sip_request_host string Hostname part of the SIP header. Usage If your request header starts with: REGISTER sip: SIP/2.0 Then the value of this field would be:
Page: sip_request_port
sip_request_port string Port part of the SIP header. Usage If your request header starts with: REGISTER sip: SIP/2.0 Then the value of this field would be: 5061 However, if your request header does not contain a port, then the value for th
Page: sip_require_timer
sip_require_timer boolean FS requires timer by default on session refresh unless its t.38 re-invite. To disable the require timer on session refresh, set it to false. Usage <action application="set" data="sip_require_timer=false"/>
Page: sip_route_uri
sip_route_uri string This sets where the INVITE packet should actually be sent to. This should normally be needed in situations where the TO field contains a hostname which points back at itself, and would cause an endless loop if this variable is not set
Page: sip_rtp_rxstat
sip_rtp_rxstat string
Page: sip_rtp_txstat
sip_rtp_txstat string
Page: sip_secure_media
sip_secure_media string deprecated No longer implemented. Use rtp_secure_media instead.
Page: sip_sticky_contact
sip_sticky_contact string
Page: sip_subject
sip_subject string
Page: sip_term_cause
sip_term_cause string
Page: sip_term_status
sip_term_status string
Page: sip_to_comment
sip_to_comment string
Page: sip_to_host
sip_to_host string Hostname part of the To SIP header. Usage If your request header contains: To: <>;tag=0e70ba56 Then the value for this field would be:
Page: sip_to_port
sip_to_port string Port part of the To SIP header. Usage If your request header contains: To: <>;tag=0e70ba56 Then the value for this field would be: 5661 However, if your request header does not contain a port, then the va
Page: sip_to_uri
sip_to_uri string
Page: sip_to_user
sip_to_user string Username part of the To SIP header. Usage To set manually, use: <action application="set" data="sip_to_user=whatevah" /> Then the value for this field would be: 1000
Page: sip_transport
sip_transport string
Page: sip_use_gateway
sip_use_gateway string
Page: sip_user_agent
sip_user_agent string User agent part of the SIP header. Usage If your request header contains: User-Agent: FreeSWITCH-mod_sofia/1.2.0-rc2+git~20120713T162602Z~0afd7318bd+unclean~20120713T184029Z Then the value of this field would be: FreeSWITCH-mod_sofia
Page: sip_via_host
sip_via_host string
Page: sip_via_port
sip_via_port integer
Page: sip_via_protocol
sip_via_protocol string
Page: sip_via_rport
sip_via_rport string
Page: sip_video_fmtp
sip_video_fmtp string
Page: sip_video_pt
sip_video_pt string
Page: sip_wait_for_aleg_ack
sip_wait_for_aleg_ack string When you set the variable sip_wait_for_aleg_ack on the b leg in the {} for the outbound call, this should make the B leg delay sending the ACK until it sees that the A leg has recv'd an ack. Usage <action application="bridge"
Page: SipTheeSkype Skype Adapter
This project is likely deprecated. The last update for the SipToSIS home page was in 2009. Interconnectivity Architecture SipTheeSkype interconnects with FreeSWITCH as an add-on adapter to Skype client. The adapter acts as a single-line client User-ag
Page: Sipura STUN
Sipura/SPA2000-2.0.2 Go to web interface (get ip from phone if necessary ****110#) Click Admin Login Click Advanced SIP settings Click SIP tab Stun Enable: True STUN Server: or use one from
Page: skeleton
skeleton string This is an example of how to create a channel variable page. This section is the description of the variable. Put the description information here and then the usage example below. Usage <action application="set" data="skeleton=foo"/>
Page: Skinny LDAP Schema
About by sathieu last updated 2011.03.08 and archived here for others to peruse. skinny.schema ## ## FreeSWITCH Attribute and Objectclass Definitions ## for Skinny Call Control Protocol (SCCP) ## ## Maintained by: Mathieu Parent <
Page: skip_cdr_causes
skip_cdr_causes string This is a list of call hangup causes that should not trigger CDR processing.
Page: Skype
About FreeSWITCH can use Skype! Skype Interconnect Options Skype Connect: Skype now offers Skype for SIP through Skype Connect. This offers the best integration with FreeSWITCH, but there are some limitations: Skype Connect is for businesses only; reselli
Page: Skype Connect
About Skype now supports SIP via Skype Connect, as part of its Skype for Business offering. Caveats Note the EULA and Terms of Service http://www.
Page: Skypopen Directory
About Skypopen Directory Disclaimer Please keep in mind that this script does not provide any authentication. If you intend on using it as a DISA route, you should probably add PIN protection to the script or dialplan. Skypopen Directory configuration e
Page: sleep_eat_digits
sleep_eat_digits boolean When set to true, the sleep application will consume DTMFs which will, for example, prevent a caller from exiting out of an IVR. The default behavior is not to eat DTMF digits. This variable was added in SVN rev 14102. this is a c
Page: SmartOS
About This page lists steps to prepare the SmartOS hypervisor for the installation of FreeSWITCH. Initialization Get SmartOS up and running. If using desktop virtualization, be forewarned that the KVM features of SmartOS will not be available (they're not
Page: SNMP
About There is also work in progress to integrate FreeSWITCH into SNMP servers (such as snmpd) using Agent X through mod_snmp SNMP Integration with FreeSWITCH This is a work in progress. Once I act
Page: Snom
Snom TLS Setup (Tested with Snom 320) Update Snom 320 to Firmware-Version: snom320-SIP 7.1.33 14322 (7.1.33 has some important bug fixes). Instructions are here: On Web page of the
Page: socket_host
socket_host string
Page: socket_path
socket_path string
Page: Sofia Configuration Files
About Sofia is a module (mod_sofia) that provides SIP connectivity to and from FreeSWITCH in the form of a User Agent. A "User Agent" ("UA") is an application used for handling a certain network protocol; the network protocol in Sofia's case is SIP. Sofi
Page: Sofia Gateway Authentication Params
About Params for configuring Sofia gateway authentication. Gateway Authentication Here are all the possible values for a gateway: register true or false (like when you don't want to register but want to auth to a gateway) schema (Currently should be left
Page: Sofia SIP Stack
About Sofia is a SIP stack used by FreeSWITCH. When you see "sofia" anywhere in your configuration, think "This is SIP stuff." It takes a while to master it all, so please be patient with yourself. SIP is a crazy protocol and it will make you crazy too i
Page: sofia_profile_domain_name
sofia_profile_domain_name string
Page: sofia_profile_name
sofia_profile_name string The name of the profile of which the call originated (Leg A). This should NOT be confused with sip_profile_name. Usage Call from user on external profile sofia_profile_name=external Call from user on internal profile sofia_profil
Page: sofia_record_file
sofia_record_file string
Page: Softphones
About These are some of the software telephony clients that you can use to test . We make no endorsement of them, they are only listed here for your convenience. Features that were tested at time of publication are listed under each one, but might have ch
Page: Software Interfaces
This section describes how to connect FreeSWITCH to a variety of software and systems. Click on one of the pages under Software Interfaces in the page tree left column.
Page: SOHO Networking Example
This article was created by MediaWiki user "Politick" on 25 February, 2011 FreeSwitch, Networking, and NAT I have elected to resolve the problem with SipXecs It includes CentOS + FreeSwitch + NAT traversal plugins. It
Page: Solaris
About Solaris 11.1 support is maintained on behalf of legacy telecom users. We need YOU to maintain this port of FreeSWITCH. Please contact one of the FreeSWITCH core developers on Freenode IRC channel #freeswitch or the freeswitch-users@lists.freeswitc
Page: sound_prefix
sound_prefix string Directory prefix where the sounds lives.
Page: sounds_dir
sounds_dir string
Page: SPA2102 HowTo
Firmware Latest release apparently buggy (5.2.12). Get version 5.2.10 instead. Read that as T38 DOES NOT WORK on 5.2.12. Comment: I am using latest 5.2.13(004) which has no problem at all. Read the release note of 5.2.12 which fixed a few bugs 5.2.10. O
Page: SPA3102 HowTo
SPA3102 Intro This is a minimal how-to configuration on setting up a SPA3102 with FreeSwitch so incoming calls will be forwarded to FreeSwitch extension 1001 and will show the incoming call as FreeSwitch extension 1000. Any rule that does not match the di
Page: SPA400 HowTo
SPA400 Quirks The SPA400 is a rather (ahem) "interesting" ATA. First item of note is that it will not register with FreeSWITCH. This is due to the inability of the Sofia module to register endpoints without a password. Frankly I find it frustrating as wel
Page: spandsp_dtmf_rx_filter_dialtone
spandsp_dtmf_rx_filter_dialtone boolean Sets the filter dialtone parameter in the spandsp DTMF detector. Dialtone filtering is disabled by default. Set this variable prior to executing spandsp_start_dtmf. Usage <action application="set" data="spandsp_dtmf
Page: spandsp_dtmf_rx_reverse_twist
spandsp_dtmf_rx_reverse_twist integer Sets the reverse twist setting in the spandsp DTMF detector. Reverse twist is set to 4 dB by default. This value can be safely increased up to 6 or 7 without a significant increase in talk-off to allow DTMFs that exce
Page: spandsp_dtmf_rx_threshold
spandsp_dtmf_rx_threshold integer Sets the threshold parameter in the spandsp DTMF detector. Threshold is set to -42 dBm0 by default. Set this variable prior to executing spandsp_start_dtmf. Usage <action application="set" data="spandsp_dtmf_rx_threshold=
Page: spandsp_dtmf_rx_twist
spandsp_dtmf_rx_twist dtmf digit Sets the twist parameter in the spandsp DTMF detector. Twist is set to 8 dB by default. Set this variable prior to executing spandsp_start_dtmf. Usage <action application="set" data="spandsp_dtmf_rx_twist=8"/> <action appl
Page: Specifications
Possible Uses Rating & Routing Server Transcoding B2BUA IVR & Announcement Server Conference Server Voicemail Server SBC (Session Border Controller) Basic Topology Hiding Session Border Controller DAHDI, Khomp, PIKA, Rhino, Sangoma and Xorcom Hardware Sup
Page: Speech Phrase Management
About The FreeSWITCH Speech Phrase Management architecture provides a consistent framework for the management of language dependent voice prompting without the need to dig into the applications source code. A single application developed using the framewo
Page: SSD Tuning for Linux
About Notes on optimizing performance using Solid State Drives and especially preventing early failures of these unique storage devices. Preface I spent a months researching Solid State Drives before replacing a Hard Disk Drive in July 2012. I learned two
Page: SSL, SSLv2, SSLv3
About SSL encryption has been found broken in both SSLv2 and SSLv3 versions (SSLv1 was never released). So, because there is a little meaning in using a broken encryption, you're invited to remove SSL support from both your clients and your servers. Disab
Page: star_replace
star_replace string
Page: start_epoch
start_epoch integer
Page: start_stamp
start_stamp string
Page: start_uepoch
start_uepoch integer
Page: storage_dir
storage_dir string
Page: stream_prebuffer
stream_prebuffer string
Page: suppress_cng
suppress_cng boolean Sets a=silenceSupp: off in the SDP to disable silence suppression while making an outbound call. Usage <action application="set" data="suppress_cng=true"/>
Page: Switch core variables
About This is a list of channel variables defined in FreeSWITCH core. Timestamp variables The following variables are set by FreeSWITCH after the channel is hung up, and contain timestamps for various state changes for a channel. State change Variable (ep
Page: Switch.conf.xml
About The FreeSWITCH core configuration is contained in autoload_configs/switch.conf.xml Default key bindings Function keys can be mapped to API commands using the
Page: switch_m_sdp
switch_m_sdp string readonly The B-leg remote SDP. It is used to store the remote SDP used by the other leg/channel of a call. (In the A-leg that will be the remote SDP of the B-leg). This variable is set, but never used by FreeSWITCH.
Page: switch_r_sdp
switch_r_sdp string readonly This variable holds the remote SDP for the current leg/channel. Usage Don't add a carriage return after "set"> or you'll end up writing a variable with a different name, leaving switch_r_sdp with the same value. <action applic
Page: switch_serial
switch_serial string
Page: system
About Executes an external command. Synopsis var return_code = system( command ); Output of the command is not returned. If you need to send or recieve output from the command, see the File object. Example system("cre


Page: T.38
Introduction T.38 fax functionality is included in mod_spandsp. Loopback/ channels: T.38 pass-through can *NOT* be used with the loopback/ endpoint. T.38 Passthru: As of v1.6, t38_passthru=true can *NOT* be used if fax_enable_t38 is not also true. Use C
Page: T38 Modem
About If you want to explore Hylafax with FreeSWITCH, you will need T38modem as a conduit between them. Download You can get the latest version at Installation Dependencie
Page: Telco Softswitches
MetaSwitch See also: FreeSwitch MetaSwitch HowTo Registration: works Caller Id: works Call in/out: works Call waiting: unknown Transfer calls: unknown Park calls: unkn
Page: temp switch core variables
This is a temporary page in order to keep the list in _Variables (work in progress) alphabetically sorted. video_mirror_input If set to true, mirrors the output resolution to match the input resolution of the caller, applies to calls or conferences. calle
Page: temp_dir
temp_dir string
Page: temp_hold_music
temp_hold_music string This variable specifies a hold music value that gets played to a caller only until they get transferred. After the transfer, the hold_music variable will apply. Usage <action application="set" data="temp_hold_music=local_stream://al
Page: Test Numbers
About If you want to test your PSTN carrier, or NAT settings, or network bandwidth or just general connectivity, there are several PSTN or SIP URIs available for your testing purposes. Some other fun numbers on voip-info
Page: Testimonials
About Reports from users who have implemented various types of instances. Perhaps you can learn a new idea of how to use ? High capacity switching FreeSWITCH rocks! We replaced 10 asterisk machines with a single instance of FreeSWITCH. Of course with al
Page: TGML
About Syntax of teletone scripts. LEGEND 0-9,a-d,*,# (standard DTMF tones) variables: c,r,d,v,>,<,+,w,l,L,loop,% c=x Sets the number of channels. r=x Sets the sample rate. d=x Sets the default tone duration in ms. v=x Sets the default volume (-63.0dB to
Page: Third Party Libraries
About We will explain here how you can use luarocks to install third party libraries and use them in your Lua application Luarocks Luarocks is a package/library manager for lua. It can install libraries into a systemwide directory and then you can Frees
Page: Thomson
Thomson ST2030 SIP IP Phone Registration: works Caller Id: works Call in/out: works Call waiting: works Transfer calls: works TLS: not tested yet SRTP: not tested yet The features described above do all function as described, so I guess that qualifies the
Page: Time of Day and Holiday Routing
About Time of day routing allows calls to be sent to different extensions based upon the time of day, day of week and in some cases, holidays. As of SVN revision 14385, FreeSWITCH supports a number of matchable variables for time and date elements. These
Page: timer_name
timer_name string If set will make playback and speak use a timer to clock the audio instead of the read. Usage <action application="set" data="timer_name=soft"/>
Page: timezone
timezone string Sets the timezone for this particular call. Can be used, e.g., to set the timezone for a caller who is checking his/her voicemail. The value is expressed in Linux timezone format (ex. America/New_York -- see /usr/share/zoneinfo/ fo
Page: Tips For Using Git
About This page is a collection of tips for how to begin as a Developer working on FreeSWITCH. XKCD Git: Install Git Developers must first install git:
Page: tod_tz_offset
tod_tz_offset integer Sets the GMT offset to be used on this call for time of day conditions. this variable must actually be set before the comparison, so either set it inline, transfer, or set it in the user directory. Usage To set the offset global in c
Page: tone_detect_expires
tone_detect_expires string
Page: tone_detect_sleep
tone_detect_sleep string
Page: Tone_stream
About can generate many complex sequences of tones. This relieves you of having to generate sound files in many cases. tone_stream://[L=x;][v=y;]%(<on-duration>, <off-duration>, <freq-1> [, freq-2] [, freq-3] [, freq-n] [;loops=x]) Durations are specified
Page: Tones.conf Examples
About This belongs in the root of your configs conf/tones.conf or /etc/freeswitch/tones.conf You can find the complete file in freeswitch/libs/freetdm/conf/tones.conf of the git download source tree. Locales India [in] generate-dial => v=-7;%(1000,0,375
Page: transfer_after_bridge
transfer_after_bridge string This variable can control what happens when a call is hang up. This can be used in conjunction with mod_fifo to control the "agent", possibly sending them back to an agent queue. This is checked after park_after_bridge and bef
Page: transfer_fallback_extension
transfer_fallback_extension string It's an extension the channel falls back to on failed transfer. Set it before the transfer. For example, if you transfer to some invalid or unavailable ext, it will then "fall back" to the ext set in the var.
Page: transfer_history
transfer_history string
Page: transfer_on_fail
transfer_on_fail string Allows you to transfer call flow when a called party can not be reached for specific reasons (unallocated_number, etc). you must also set failure_causes Argument syntax: hangupcauses destination dialplan context Usage <action appli
Page: transfer_ringback
transfer_ringback string This is the sound that will play if a call has already been answered, and it is then transferred to another endpoint. The syntax is the same as ringback. Usage <action application="set" data="transfer_ringback=${fr-ring}"/>
Page: transfer_source
transfer_source string
Page: transfer_to
transfer_to string
Page: Troubleshooting Debugging
About ( This should become a list of generalized troubleshooting procedures and methodologies. Move specifics to the pages to which they apply.) You need not recompile with debug symbols or use a debugger to take these steps (for that, see Debugging Frees
Page: Troubleshooting Freeswitch
About You need not recompile with debug symbols or use a debugger to take these steps (for that, see Debugging Freeswitch Debug for the Impatient From a bash/shell: export TPORT_LO
Page: TTS
About Text-To-Speech general Information. Freeswitch currently supports several TTS options. mod_unimrcp - TTS using MRCP protocol mod_cepstral - Commercial high-quality [Cepstral] voices & Text to Speech engine. mod_flite - An FOS
Page: tts_commandline
tts_commandline string See Also mod_tts_commandline
Page: tts_engine
tts_engine string value tts_commandline flite unimrcp:mrcp_server_name See Also mod_tts_commandline mod_flite tts_commandline
Page: tts_voice
tts_voice string


Page: Ubuntu
About This page was intended to help those who want to install FreeSWITCH, and not start learning how FreeSWITCH actually works. This will give you the basic setup so that you can at least start making calls. Please also review the entries for Debian and
Page: Ubuntu 14.04 Trusty
About Ubuntu 14.04 packages are provided by in a deb repository as of version 1.6. It is strongly recommended to use this repo as additional system libraries are updated as required. Installing from Ubuntu Packages packages master branch (eg: "git"): no
Page: Ubuntu 16.04 Xenial
About Ubuntu 16.04 packages are provided by in a deb repository as of version 1.6. It is strongly recommended to use this repo as additional system libraries are updated as required. Please Note only the 16.04 LTS is supported! Please Note all Ubuntu
Page: Ubuntu Quick Start
About Ubuntu 11 is deprecated. Please use Ubuntu 16.04 Xenial Introduction to Ubuntu and FreeSWITCH This page was intended to help those who want to install FreeSWITCH, and not start learning how FreeSWITCH actually works. This will give you the basic set
Page: uduration
uduration integer
Page: UMEC
UMEC CU775 SIP IP Phone Registration: works Caller Id: works Call in/out: works Call waiting: works Transfer calls: works Park calls: not tested Video: Works
Page: Understanding the Configuration Files
About FreeSWITCH uses XML files to configure the core as well as all modules. As you can imagine the configuration can grow quite big and complex. The default configuration provides a good starting point for new users. If you would like to just jump in an
Page: UniMRCP
About The UniMRCP project implements the MRCP protocol and is integrated in FreeSWITCH by mod_unimrcp What is MRCP? MRCP
Page: Unix
About The developer team has has painstakingly determined the steps needed to build on a number of unix variants. They welcome interested users of these platforms to help keep these build instructions current as the distributions evolve over time. Unix
Page: user_context
user_context string
Page: user_name
user_name string
Page: Users Guide Introduction
About The Users Guide for FreeSWITCH™ is for users and administrators of FreeSWITCH™. This book will take you through obtaining either the source code or a binary distribution, configuration and explanation of all current features of FreeSWITCH™ and what
Page: Using ODBC in the core
About FreeSWITCH can be configured to use ODBC to connect to a remote database instead of using the default SQLite databases. PostgreSQL is natively supported since FreeSWITCH 1.2.5, see PostgreSQL in the core to learn more In other words: if you use Post
Page: Using the Mailing List
About The mailing list is the primary source for help on FreeSWITCH related questions/problems. However many users are unable to get full mileage from the list as they are inexperienced in formulating their questions and in interacting with the list membe
Page: uuid_bridge_continue_on_cancel
uuid_bridge_continue_on_cancel boolean When set to true causes the system to move on in the dialplan if it hits a bad b-leg. Default is false because this behavior is probably not recommended. You may find this variable useful when implementing Dialplan F


Page: VAD and CNG
About About Voice Activity Detection and Comfort Noise Generation. Overview VAD Overview VAD stands for Voice Activity Detection. Its role is to distinguish between a voice and anything else, including silence. In VoIP applications it may be used as a t
Page: Variable presence data cols
About You can customize the fields in FreeSWITCH's internal channels table by using the global variable presence_data_cols Use : to separate the column names in presence_data_cols You must define the fields in the channels table first: ALTER TABLE chann
Page: Variables
About At it's basic level a variable simply gives a name to a piece of information, so instead of using something like you can create a variable named local_ip_v4, now whenever you need to specify an IP address, you can refer to this variable
Page: Variables Master List
About This page contains a list of every variable defined in the documentation. If you find a variable that's defined somewhere else, but not here, that's a bug! absolute_codec_string absolute_codec_stringaccountcode accountcodeacl_token acl_tokenalert_in
Page: vars.xml
About vars.xml outbound_caller_name - Name shown in phones when you make outbound calls outbound_caller_number - Number shown in phones when you make outbound calls domain - Domain that users register to (domain is specified in phone configs). external
Page: verbose_presence
verbose_presence string
Page: verbose_sdp
verbose_sdp boolean The RFCs require an rtpmap for IANA dynamic payload types. An rtpmap with codec name and payload type is not required for well known static payloads - (PCMU, PCMA, G729, etc). By default FreeSWITCH sets verbose_sdp=false which doesn't
Page: Version Stamping
FreeSWITCH Versioning The template for version numbering is: Major.Minor.PointRelease Major Release The major version is currently at 1 and should be for the foreseeable future. Minor Release even = release version odd = development version, which is the
Page: Verto Communicator
About Verto Communicator is one example of web clients that can be implemented on top of mod_verto. Dependencies We'll use NodeJS based tools to be able to quickly run tests, lint, build and serve Verto Communicator. Installing node and npm on a Mac could
Page: Video Codecs
Pass-through video codecs H261 - H.261 Video H263 - H.263 Video H263-1998 - H.263-1998 Video H263-2000 - H.263-2000 Video H264 - H.264 Video Provided by mod_h26X. Theora passthrough. Provided by mod_theora. MP4 Video passthrough. Provided by mod_mp4v.
Page: Video-recording
OBSOLETE DO NOT FOLLOW THESE INSTRUCTIONS Media bug The video-media-bug branch in tree implemented a simple video media bug, for video eavesdrop and recording. You need to manually build this branch before it can be merged into the master tree. git chec
Page: video_logo_path
video_logo_path string
Page: video_mirror_input
video_mirror_input boolean If set to true, mirrors the output resolution to match the input resolution of the caller, applies to calls or conferences.
Page: video_possible
video_possible string
Page: video_read_codec
video_read_codec string
Page: video_read_rate
video_read_rate string
Page: video_write_codec
video_write_codec string
Page: video_write_rate
video_write_rate string
Page: Virtual servers
All the text below was last edited in 2010, it is therefore likely out-of-date, inaccurate and in dire need of a refresh Virtual Server Environments (VSE) known to support FreeSWITCH. Enterprise deployment Xen there was also a Xen VM Stress Test h
Page: Virtualization
About Virtualized servers continue to grow in popularity because they save physical space and electrical power. However: The team does not officially support most virtualized hosts because it is very difficult to determine if your instance is getting the
Page: Virtualization Experiences
About This page captures some comments from user who have deployed in virtual environments. Each installation has its own considerations so there are no hard and fast rules for virtualization. Hopefully, these reports can guide you. Most importantly, we n
Page: vm_cc
vm_cc string
Page: vm_message_ext
vm_message_ext string Determines in which format the voicemail message is saved. Can also be set using the param vm-message-ext. This variable is set in the dial plan. Default available options: mp3 wav Usage <action application="set" data="vm_message_ext
Page: vmd_detect
vmd_detect string
Page: vname
vname string
Page: Voice
Default Voice - Callie Install & Configure From the FS build directory: make sounds-install The default voice for FreeSWITCH is Callie made by GM Voices Voice - Sibylle Sibylle is a Creative Commons licensed voice for FreeSwitch.
Page: Voice files used by mod say en
There's a transcript of these files in the sources under docs/phrase/phrase_en.xml ascii |-- 100.wav |-- 101.wav |-- 102.wav |-- 103.wav |-- 104.wav |-- 105.wav |-- 106.wav |-- 107.wav |-- 108.wav |-- 109.wav |-- 110.wav |-- 111.wav |-- 112.wav |-- 113.wa
Page: Voicemail
About About text. Voicemail "Voicemail" is actually several things within FreeSWITCH, having morphed over time. Because of this, presentation is scatter-brained- bits and pieces here and there. Here is my in-plain-English attempt to gather together good n
Page: voicemail_account
voicemail_account string
Page: voicemail_alternate_greet_id
voicemail_alternate_greet_id string Overrides the ID the voicemail application reads back i.e. to say a phone number instead of the user ID. Usage <user id="johnsmith" number-alias="1000"> <variables> <variable name="mailbox" value="1000"/> <variable name
Page: voicemail_authorized
voicemail_authorized string
Page: voicemail_caller_id_name
voicemail_caller_id_name string
Page: voicemail_caller_id_number
voicemail_caller_id_number string
Page: voicemail_current_folder
voicemail_current_folder string
Page: voicemail_domain
voicemail_domain string Sets the domain name in the sender email address when mod_voicemail emails a voicemail message. Usage From conf/directory/default/1010.xml: <include> <user id="1010" mailbox="1010"> <params> <param name="password" value="password"/
Page: voicemail_domain_name
voicemail_domain_name string
Page: voicemail_email
voicemail_email string
Page: voicemail_file_path
voicemail_file_path string
Page: voicemail_greeting_number
voicemail_greeting_number string
Page: voicemail_greeting_path
voicemail_greeting_path string
Page: voicemail_id
voicemail_id string
Page: voicemail_message_len
voicemail_message_len integer
Page: voicemail_priority
voicemail_priority string
Page: voicemail_profile_name
voicemail_profile_name string
Page: voicemail_read_flags
voicemail_read_flags string
Page: voicemail_time
voicemail_time string
Page: voicemail_total_new_messages
voicemail_total_new_messages integer
Page: voicemail_total_saved_messages
voicemail_total_saved_messages integer
Page: voicemail_urgent_new_messages
voicemail_urgent_new_messages integer
Page: voicemail_urgent_saved_messages
voicemail_urgent_saved_messages integer
Page: Voicepulse.xml
All the text below was last edited in 2010, it is therefore likely out-of-date, inaccurate and in dire need of a refresh Voicepulse Warning Recent changes (Sep 2008) in VoicePulse have limited connect03 to only IAX termination. Please remove any entri
Page: VoIPmonitor
About From VoIPmonitor is open source network packet sniffer with commercial frontend for SIP RTP RTCP and SKINNY(SCCP) VoIP protocols running on linux. VoIPmonitor is designed to analyze quality of V


Page: waitmsec
waitmsec integer
Page: waitsec
waitsec integer
Page: waitusec
waitusec integer
Page: WebRTC
About WebRTC provides Real-Time Communications directly from better web browsers and devices without requiring plug-ins such as Adobe Flash nor Silverlight. WebRTC always operates in secure mode. FreeSWITCH provides a WebRTC portal
Page: Wiki Migration
This page discusses the migration of documentation pages from the old MediaWiki platform to the Atlassian Confluence wiki. Wiki Page Move Steps Please follow these steps, especially during a docs sprint, to copy pages from the old MediaWiki to Conflue
Page: Windows
About Overview of building and installing on Windows platforms. Simple Installation (Precompiled Binaries) Freeswitch Installer .msi The binary MSI installer is built each weekend from Git head, includes defau
Page: Wireshark How To
About Some tips to use Wireshark to find problems in SIP signaling and RTP media streams. Beware that these techniques dealing with RTP streams do not apply if those streams are encrypted. The original site is no longer available. version: htt
Page: Working with Sound Files
About Working with sound files in a telephony environment can be challenging. Fortunately there are tools, tips, and tricks that can help you out. Tools Sox - SOund eXchange, great for manipulating sound files Converting WAV fi
Page: Worldgate
Worldgate Ojo Vision Registration: works Caller Id: works Call in/out: works Call waiting: does not work Transfer calls: works Park calls: not tested Video: Works
Page: write_codec
write_codec string readonly The negotiated codec of the outbound call leg.
Page: write_rate
write_rate string


Page: Xen VM Stress Test
Test Conditions Hardware Box: Xen VM AMD Opteron Dual Core (2x1.7GHz) 64-bit machine, first (O): 256 MB RAM, then 1,5 GB RAM OS OS: Ubuntu Linux 6.06 dapper x64, 1GB ramfs when needed, FreeSWITCH Version 1.0.pre3 (7750M) Tools Testing tool: SIPp v3.0-TL
Page: xfer_uuids
xfer_uuids string
Page: XML Basics
About Basics of XML syntax which is widely used in Basic XML syntax XML may look a bit strange if you are not familiar with it. It is very similar to HTML used for web sites. There are many wonderful sites on the web that will provide you a more in-de
Page: XML Dialplan
About The XML dialplan is the default dialplan used by FreeSwitch. XML is easily edited by hand without requiring special tools, other than a text editor. In general, dialplans are used to route a dialed call to an endpoint, which can be a traditional ex
Page: XML Modules Configuration
XML Modules Configuration modules.conf.xml is a configuration entity that exists in the "configuration" section of freeswitch.xml. It denotes which modules to load, and in what order. In order for a module to be loaded, it needs to have been compiled and
Page: XML Switch Configuration
About The FreeSWITCH core configuration is contained in autoload_configs/switch.conf.xml Default key bindings Function keys can be mapped to API commands using the
Page: XML User Directory
About The FreeSWITCH $FS_ROOT/conf/directory/ contains accounts (i.e., XML files) for all users (i.e., SIP phone extensions) that may register to FS. Note: This is not the same syntax which is used in the Dialplan User Settings <include> <user id="1000" c
Page: xml_cdr_base
xml_cdr_base string
Page: Xmlcdrd
Xmlcdrd FastCGI CDR Logger Overview Xmlcdrd is a FastCGI daemon that works together with mod_xml_cdr to process CDR records. Right now xmlcdrd can store CDR fields into MySQL tables, submit Radius accounting (stop) packets and run custom Lua scripts on CD


Page: YAC
About Until someone writes mod_yac you can do it like this: <action application="system" data="echo -e @CALL${caller_id_name}~${caller_id_number}\\0|nc -q 0 10629"/> On CentOS 5.2 you should strip out the "-q 0" as that is not a valid option,
Page: Yealink-SIP-T26P
OpenVPN It's pretty well documented that the OpenVPN configuration on this phone is wonky. Here's some [edited] info from there: Phone


Page: Zapata zaptel
Short for "Zapata Telephony" Zaptel refers to Jim Dixon's open computer telephony hardware driver API. Zaptel drivers were first released for BSD and Jim's Tormenta series of DIY T1 interface cards. Digium later produced interface cards from Jim's designs
Page: Zapata zaptel interface
About The BSD Telephony project Zapata created the original Zaptel interface. This interface is how Zaptel-based cards work. This page explains that the low-level interface. If you're interested in how to configure FreesSWITCH to interface with Zaptel-com
Page: Zaptel B410P
All the text below was last edited in 2009, it is therefore likely out-of-date, inaccurate and in dire need of a refresh HOW TO INSTALL DIGIUM B410P ON UBUNTU FOR FREESWITCH At the moment FreeSWITCH does not work with the new dahdi drivers from Digium,
Page: Zaptel Tutorial
About This Zaptel Tutorial provides a set of step-by-step instructions for configuring Zaptel and OpenZAP using sample configurations. What hardware is in your system? You likely know what cards are in your system because you probably put them there. In t
Page: ZRTP
About ZRTP in Making FreeSWITCH History On Wed, May 20, 2009, bkw_ announced ZRTP support in FreeSWITCH core. ZRTP is SRTP based, but instead of using SIP to exchange keys, it exchanges keys within the media stream itself making it more secure. It does n
Page: zrtp_enabled
zrtp_enabled string This global variable is set by the FreeSWITCH core to the value of the global rtp-enable-zrtp setting in switch.conf.xml. For more information see the SIP TLS page.



  • No labels