We will go over how to setup the call center module. The callcenter module is used for creating an inbound queue for connecting inbound callers with agents registered to your system. We will be assuming you followed our FreeSWITCH setup tutorial here
From FreeSWITCH WikiThe purpose of the following page is to instruct new users on how to configure FreeSWITCH™ in a basic way. It is also intended to provide people with a basic understanding of the configuration files and how they are processed. If FreeSWITCH™ is not already installed on your system you should read the Installation Guide. This guide is not intended to allow for more than a default configuration.
FreeSWITCH layoutFreeSWITCH™ has a modular design. This design allows it to be extended without breaking functionality or requiring massive recoding efforts. Each module provides specific functionality, often commands that are related are grouped into one module. You will need to enable the modules that you desire, based on their function. By default FreeSWITCH™ comes with a good set of modules loaded, to enable most basic functionality.Read up on the default config for more information. ConfigurationThe following sections will show you each step that you will have to take to get a functional system.FirewallIf 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 internet. This is not always the case in some corporate environments. If you are not responsible for your network, you may wish to contact the group or individuals who are responsible for it.Information they may need to enable traffic would include the port numbers. Various protocols use different ports for different things. Some you need bi-directional connectivity, some you only need outbound. Depending on your call scenario you may only need to allow connections that are initiated by your system. If you have any problems with protocols not working, it is recommended that you disable your firewall to the FreeSWITCH™ system, place a test call, and see if the problem persists. A misconfigured firewall is responsible for many common problems. For more information, including the ports which need to be configured, see the Firewall page. Configuration FilesFreeSWITCH™ configuration data is stored in XML format. These files are located in the conf directory under the FreeSWITCH™ install directory. By default on a Unix-like system this will be /usr/local/freeswitch/conf. There are preprocessor markup tags that tell the configuration parser to perform tasks, such as including other files, which are carried out before the XML is parsed.
Configuring FreeSWITCHThis guide aims to explain the default configuration layout and how you configure it to your liking. Read up on the default config for more information.This layout is in no way required, you can minimize the configuration to just one file if needed. The main config file is called freeswitch.xml, you don't need to change it in any way, it just loads all other config files. vars.xmlvars.xml is used to define a couple of variables that are used system wide. NOTICE you can not comment these X-PRE-PROCESS lines out. They will still be active in an XML comment.See Config_vars.xml for example. In the default configuration the vars.xml file is used to define some preprocessor variables. In a first time setup you will most likely want to set: <X-PRE-PROCESS cmd='set' data='outbound_caller_name=FreeSWITCH'/> <X-PRE-PROCESS cmd='set' data='outbound_caller_id=8777423583'/> <X-PRE-PROCESS cmd='set' data='call_debug=false'/>directives for use in other portions of the configuration. The default port of Freeswitch is also defined in <param name='sip-port' value='5060' /> autoload_configsautoload_configs is a directory where a lot of the freeswitch configuration resides. This directory is located in $PREFIX/conf/autoload_configs. The default freeswitch.xml preprocesses xml files matched by the glob conf/autoload_configs/*.xmlmodules.conf.xmlSee modules.conf.xml for an example of modules.conf.xml.modules.conf.xml tells freeswitch which modules to load. There are certain modules required for operation so you should not edit this file unless you know that you wish to add or remove a specific module sofia.conf.xmlmod_sofia is used to create SIP endpoints in FreeSWITCH. If you are familiar with Asterisk, each SIP Profile in mod_sofia is similar to chan_sip in Asterisk, though much more powerful.The sofia.conf.xml file contains a 'X-PRE-PROCESS' directive that includes other XML files (within, by default, conf/sip_profiles/) that define one or more 'SIP Profiles'. A SIP Profile is a SIP UA (User Agent or an endpoint), which communicates with other SIP endpoints. A 'User Agent' ('UA') is an application used for running a certain network protocol. A Sofia User Agent is the same thing but the protocol in that case is SIP. In FreeSWITCH terms, User Agent = UA = Sofia Profile = SIP Profile. See Sofia_Configuration_Files for an example sofia.conf.xml. See also SIP Network Elements on wikipedia. What SIP Profiles DoThe SIP Profiles in FreeSWITCH can often lead to confusion. Unlike other softswitches (like Asterisk), FreeSWITCH allows you to handle media (calls, video, etc.) differently based on where the equipment is attached to your network. This assists with security as well as providing added functionality.SIP Profiles allow you to define paths to devices or carriers that may live inside or outside your network. These paths can be of many different types, but must consist of a unique combination of port and IP pairs. You could have SIP profiles for your internal network, or multiple profiles for each subnet of your internal network, or even completely different protocols like IPv6 as profile definitions. This helps FreeSWITCH identify how to route different types of calls when necessary, and also gives you the flexibility to tailor your dialplans based on what path a call originates to/from. In the sample configuration there are three default categories for where a SIP Profile can reside. Each profile is detailed below. SIP_ProfilesThe default profiles are 'internal' and 'external', each serves a special purpose so it would be wise to understand what they do.InternalFile Location: $PREFIX/conf/sip_profiles/internal.xmlThis profile generally refers to devices that reside on your internal network. Those devices will inherit all configuration options in the internal profile you setup. This is typically your internal phones with extensions. By default, these devices must use SIP authentication. The Internal (formerly called 'default') SIP profile is configured to listen on the primary IP address of the machine (unless you set $${domain} to something else in vars.xml) on port 5060 (the default SIP port). The internal SIP profile does authenticate calls and is not suitable for configuring trunks to providers or outside phones, in most cases (i.e., use the External profile for configuring trunks to providers or outside phones). The Internal profile should be used if you intend on handling registration for sip clients (ie a SIP registrar). You may wish to skip to the section Getting_Started_Guide#directory to configure additional sip clients. Authenticated users of this profile are normally set (via the variable user_context) to use the dialplan defined in the default context. See Config_default.xml ExternalFile Location: $PREFIX/conf/sip_profiles/external.xmlThis profile generally refers to devices or gateways that reside outside of your network. Generally this is where you define your external trunks/VoIP carriers/etc. Again, those devices will inherit all configuration options in the external profile you setup. The External (formerly 'outbound') profile handles outbound registrations to a SIP provider. The SIP provider sends calls to you, and you send calls to your provider, through the external profile. The external profile allows anonymous calling, which is required as your provider will never authenticate with you to send you a call. In order to secure your FreeSWITCH it is wise to link your outbound profile to a dialplan context other than 'default', which in the default configuration is the where authenticated users are placed. NOTE: The default port for external connections is 5080. This also means if you are trying to connect a phone remotely to your FreeSWITCH box, you must set it to connect on port 5080, or change your ports around. This confuses a lot of people. As an example, in X-Lite, if you are connecting to FS from the outside, set your server as 'my.server.com:5080'. The dialplan for this profile (per-default) is defined in the public context See Config_external.xml NATThe nat.xml file (and profile) have been deprecated. Use the External Profile and port 5080.Other Profile ConceptsIdeas for other SIP profiles you might end up building:
dialplanThe FreeSWITCH dialplan is a full-featured, XML-based call-routing mechanism. (There also exists support for Asterisk-like dialplans as well as really fancy real-time and/or back-end database-driven dialplans.) The best place to get started in learning about the FreeSWITCH dialplan is the Dialplan page here on the wiki. It discusses the basics of the FreeSWITCH dialplan. If you need an XML primer check out the information on the Basic_XML page which will get you pointed in the right direction. There are two other important resources for you to learn more about the diaplan: the small-but-growing Dialplan_Recipes page as well as the default dialplan that comes with a standard FreeSWITCH installation.It is recommended that you compile FreeSWITCH with the default configuration and make sure it works before you start making customizations. Note that the default config files, including the default.xml dialplan, are still being updated. It makes sense to put your custom diaplan entries into the extensions subdirectory under conf/dialplan. You may create one or more XML files in this subdirectory, all of which will be included in the dialplan thanks to an 'include' directive in the default.xml file. By keeping your customized extensions separate from default.xml you will be able to update default.xml without having to re-enter your custom extensions. Some common extensions for testing
directorySee Config_directory.xml for a sample configuration.The directory holds authentication credentials for other sip endpoints that will register to freeswitch (most commonly users). The directory configuration default is configured to process the glob $PREFIX/conf/directory/default/*.xml by the configuration included in freeswitch.xml $PREFIX/conf/directory/*.xml. This may seem confusing but the default will work in most cases. Feel free to look at the examples in: $PREFIX/conf/directory/ User Configurationsee Config_1000.xml for a simple (1000.xml) configuration of a user (endpoint) which will register to freeswitch.![]() Sample Gateway ConfigurationSee SIP Provider Examples for sample gateway configurations for different providers.outbound registrations to providers can also be made in the outbound profile. see Clarification:gateways this page for a clarification Dialing out via GatewayAdd the following to default.xml (in prefix/conf/dialplan) for 11 digit dialing (US) via your newly created gateway configuration above. Remember, the default configuration provided by FreeSWITCH does not include a diaplan rule for outbound calls via the gateway you've defined. You will need to add something similar to the following.<!-- Dial any 10 digit number (2223334444) or 1+10 number (12223334444) here --> <extension name='Long Distance - voicepulse'> <condition field='destination_number' expression='^(1{0,1}d{10})$'> <action application='set' data='effective_caller_id_number=12223334444'/> <!-- If your provider does not provide ringback (180 or 183) you may simulate ringback by uncommenting the following line. --> <!-- action application='ringback' /--> <action application='bridge' data='sofia/gateway/voicepulse/$1'/> </condition> </extension> Receiving an inbound call from a GatewayAdd the following to public.xml (in prefix/conf/dialplan) to receive inbound calls via your newly created gateway configuration above. Make sure to set destination_number to a DID defined for this gateway. This will route all inbound calls to extension 1001. Remember, you can have multiple endpoints register to one account ( See Multiple Registrations ). You will need to add something similar to the following. Please note, this will only redirect to an extension, you will also need to have the extension bridge with an endpoint/user if that is your desire (See Dialplan_XML#Example_9 ).<extension name='Voicepulse'> <!-- your provider or any name you'd like to call it --> <condition field='destination_number' expression='15555551212'> <!-- your DID for this gateway--> <action application='transfer' data='1001 XML default'/> </condition> </extension>If you want users to register with something other than the number that will reach them, then contact mapping is for you. ![]() Running FreeSWITCHStarting FreeSWITCH™ is done from the command-line. The location of the executable varies depending on your system.Starting in Unix-based SystemsNow that you have compiled and configured FreeSWITCH™ its time to place a test call to ensure that everything is working so far. To start FreeSWITCH™ change to the bin subdirectory under the FreeSWITCH™ installation directory, and run FreeSWITCH™. In a unix-like system that might be:
cd /usr/local/freeswitch/bin ./freeswitch REDHAT CENTOS Startup Scripts: cp build/freeswitch.init.redhat /etc/init.d/freeswitch chmod 755 /etc/init.d/freeswitch Starting in Windows-based SystemsThe Visual Studio project runs via an executable located under the debug or release folder of your project's directory tree (depending on how your project was built). On a debug build of the Windows system start FreeSWITCH™ as follows:
cd <PROJECT FOLDER>debug FreeSwitch.exe The FreeSWITCH™ command line will be available after successful loading of the application. Command Line Parameters
These are the optional arguments you can pass to freeswitch: -conf [confdir] -- specify an alternate config dir -db [dbdir] -- specify an alternate db dir -help -- this message -hp -- enable high priority settings -log [logdir] -- specify an alternate log dir -nc -- do not output to a console and background -nf -- no forking -nonat -- do not load NAT (network address translation, for firewalls) -stop -- stop freeswitch -waste -- don't consume tons of unix resources (file handles) Shutting Down FreeSWITCH™To exit the FreeSwitch CLI, simply type 'shutdown' or '..'. Note, this will shutdown FreeSwitch. If you do not wish to shutdown FreeSwitch, it is suggested to start the process inside of a 'screen' session; In Windows, FreeSWITCH™ may be started as a service. It is not recommended that you start FreeSWITCH™ as a service until you are certain your configuration is valid. Also if started from a remote login session (IE SSH) it is not advised to terminate the connection with FS left in the foreground.Some stuff to try out!The optimal way of testing is to get a pair of SIP phones and try out features via the default dialplan. If you're already familiar with asterisk, you could also start out by Connecting Freeswitch And Asterisk
A sample configuration with X-Lite is shown below: Once you've done that, you can try out a bunch of features already setup in the test dialplan. Basic Calling
Advanced Calling Features
Group Assignments The below functions involve the idea of keeping a database/table of which extensions belong to one of 100 groups (numbered 00-99).
Conferencing Freeswitch Tutorial
Interactive Voice Response
Other Tests
AdvancedPreprocessor CommandsThe FreeSWITCH™ configuration supports preprocessor commands reminiscent of (but not matching) apache server-side includes: #comment, #include and #set.In addition to the pre-processor PIs, which may appear anywhere, the freeswitch.xml file has a root element of 'document', and all its children are 'section' elements, with 'name' attribute values being one of:
Preprocessor commands are included in XML style comment brackets. Even though they appear commented to an XML parser, they are still processed. The comment characters are required or they will not be processed. An example would be: <!--#include 'switch.conf.xml'--> freeswitch.xmlThis is the main configuration file, and the only one that has a fixed name. When you start FreeSWITCH™ it will locate this file and process it. The default freeswitch.xml file includes other files to allow for easier maintenance of configuration data. The default configuration of most of these files is suitable for first time users, until you become more familiar with FreeSWITCH™ it is advised that you leave them to their default settings.freeswitch.xml is divided into multiple sections, and each section is used by a different component in FreeSWITCH™. The sections are as follows:
How the configuration files are parsedFS begins with its single, master configuration file (conf/freeswitch.xml). This master config file then loads (via 'globs' e.g. '*.xml') additional config files. FS 1.0.4 installs with dozens of config files. You may stray daringly far from the stock install and arrange the files (and the loading thereof) however you wish: it's up to you if you want a single, huge config file or a series of config files. Each config file can include none or many other config files. Whatever method you choose, at runtime FreeSwitch parses all the (one or many) files into a single, huge, resultant 'running config' file (located at log/freeswitch.xml.fsxml) which mustn't be edited while FS is running as portions are memory-mapped into FS.IMPORTANT When the FS console reports a configuration error, the line number it gives is the line number in the 'running config' file, not the line number in any included file. Example freeswitch.xmlBelow is a snippet freeswitch.xml file. Of course, the bulk of the configuration is found in the included files.
<?xml version='1.0'?> <document type='freeswitch/xml'> <X-PRE-PROCESS cmd='include' data='vars.xml'/> <section name='configuration' description='Various Configuration'> <X-PRE-PROCESS cmd='include' data='autoload_configs/*.xml'/> </section> <section name='dialplan' description='Regex/XML Dialplan'> <X-PRE-PROCESS cmd='include' data='dialplan/*.xml'/> </section> <!-- mod_dingaling is reliant on the vcard data in the 'directory' section. --> <!-- mod_sofia is reliant on the user data for authorization --> <section name='directory' description='User Directory'> <X-PRE-PROCESS cmd='include' data='directory/*.xml'/> </section> <!-- phrases section (under development still) --> <section name='phrases' description='Speech Phrase Management'> <macros> <X-PRE-PROCESS cmd='include' data='lang/*/*.xml'/> </macros> </section> </document> Preprocessor VariablesFor now, do not worry about all of the configuration properties, this guide will show you the minimum required to get a running FreeSWITCH™ system. After you have verified your installation you may then configure the system in more detail.The first thing you should do is review conf/vars.xml and conf/freeswitch.xml. For now just make note of the preprocessor variables.
<X-PRE-PROCESS cmd='set' data='bind_server_ip=auto'/> <X-PRE-PROCESS cmd='set' data='global_codec_prefs=G722,PCMU@20i,PCMA@20i'/>
hint2: If you have a [multihomed NIC] (Single Link, Multiple IP address) then remember that you may have to set a pre-process variable in the vars.xml file. <X-PRE-PROCESS cmd='set' data='local_ip_v4=<your ip address>'/> Multi-Tenant Info / Multiple Company HOWTOThe Multi-tenant page gives details regarding running FS to support multiple separate companies. Multiple Companies is a HOWTO that describes setting up two independent companies on FS, where the files go, what they must contain, etc.MOH dependency
Make sure you have installed the moh sounds, which on debian is done with
apt install freeswitch-music-default .
callcenter.conf.xml
You will first need to make sure the callcenter module is enabled in modules.conf
Next open up autoload_configs/callcenter.conf.xml. A default queue is provided, which we will make some modifications to.
Now we need to add an agent.
Star wars force unleashed 2 sith stalker armor. And specify the agent’s tier, which also puts them into the queue.
We can now send inbound calls to our callcenter queue in our dialplan.
Can someone share their experience of transcoding OPUS/G711 ans vice versa using Freeswitch? I am getting call quality issues even if there is a single call on the server. I am getting crackling noise and the end of the words. Sims 4 mod model career.
SIP Clients HAVE to use the OPUS, it is a customers requirements and there is nothing negotiable on this front. However, for troubleshooting purposes, we requested the SIP clients to switch to G711u and all the test calls completed without any quality issues.
I have installed Freeswitch 1.6 on RHEL6 on a Dell PowerEdge R710 with 16 cores and 96GB RAM.
Call Flow:SIP Client registered to a SIP Server dials a call to a PSTN number using the codec OPUS. SIP server proxy the call to Freeswitch with codec OPUS. Freeswitch terminates the call to SIP provider using G711u. Freeswitch does the transcoding between OPUS and G711u.
Silence Supression is turned off on both legs.PTIME is 20 on both legs.
Star trek new horizons tech tree services. Techs that change the rules, that completely upend the galaxy, the kind of stuff that the Fallen Empires briefly thought about in their prime but then were too afraid to pursue?Even if the techs are rare and incredibly expensive, even if they come attached with terrible risks, shouldn't there be something at the end up the tree that's at least somewhat interesting?
Any suggestions would be much appreciated.
Tim
19k44 gold badges1919 silver badges5151 bronze badges
NeedFrndsNeedFrnds
1 Answer
use opus@8000h@20i with these settings in opus.conf.xml :
which direction do you have the audio issues ? it's important to know if there's a problem on the encoder or on the decoder.
Please file a jira here if you still have issues : https://freeswitch.org/jira/
Dragos OanceaDragos Oancea
Not the answer you're looking for? Browse other questions tagged freeswitchtranscoding or ask your own question.Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |