[Freeswitch-svn] [commit] r5034 - in freeswitch/trunk: conf scripts
Freeswitch SVN
mikej at freeswitch.org
Sat Apr 28 15:27:17 EDT 2007
Author: mikej
Date: Sat Apr 28 15:27:17 2007
New Revision: 5034
Added:
freeswitch/trunk/scripts/combineconf.pl
Modified:
freeswitch/trunk/conf/conference.conf.xml
freeswitch/trunk/conf/default_context.xml
freeswitch/trunk/conf/dingaling.conf.xml
freeswitch/trunk/conf/enum.conf.xml
freeswitch/trunk/conf/freeswitch.xml
freeswitch/trunk/conf/sofia.conf.xml
Log:
updates, cleanups, and clarifications to the sample conf files. Uses more of the preprocessor variables for simplicity. FSBUILD-2 from Mark D. Anderson. Thanks Mark.
Modified: freeswitch/trunk/conf/conference.conf.xml
==============================================================================
--- freeswitch/trunk/conf/conference.conf.xml (original)
+++ freeswitch/trunk/conf/conference.conf.xml Sat Apr 28 15:27:17 2007
@@ -1,8 +1,8 @@
<!-- None of these paths are real if you want any of these options you need to really set them up -->
<configuration name="conference.conf" description="Audio Conference">
- <!-- Advertise certian presence on startup . -->
+ <!-- Advertise certain presence on startup . -->
<advertise>
- <room name="888 at sub.mydomain.com" status="FreeSWITCH"/>
+ <room name="888@$${server_name}" status="FreeSWITCH"/>
</advertise>
<!-- These are the default keys that map when you do not specify a caller control group -->
@@ -29,7 +29,7 @@
<!--If no profile is specified it will default to "default"-->
<profile name="default">
<!-- Domain (for presence) -->
- <param name="domain" value="sub.mydomain.com"/>
+ <param name="domain" value="$${server_name}"/>
<!-- Sample Rate-->
<param name="rate" value="8000"/>
<!-- Number of milliseconds per frame -->
@@ -81,9 +81,9 @@
<!-- Conference pin -->
<!--<param name="pin" value="12345"/>-->
<!-- Default Caller ID Name for outbound calls -->
- <param name="caller-id-name" value="FreeSWITCH"/>
+ <param name="caller-id-name" value="$${outbound_caller_name}"/>
<!-- Default Caller ID Number for outbound calls -->
- <param name="caller-id-number" value="8777423583"/>
+ <param name="caller-id-number" value="$${outbound_caller_id}"/>
</profile>
</profiles>
</configuration>
Modified: freeswitch/trunk/conf/default_context.xml
==============================================================================
--- freeswitch/trunk/conf/default_context.xml (original)
+++ freeswitch/trunk/conf/default_context.xml Sat Apr 28 15:27:17 2007
@@ -29,7 +29,7 @@
<!-- Call the FreeSWITCH conference via SIP -->
<!--<extension name="FreeSWITCH Conference SIP">-->
<!--<condition field="destination_number" expression="^888$">-->
- <!--<action application="bridge" data="sofia/$${domain}/888 at conference.freeswitch.org"/>-->
+ <!--<action application="bridge" data="sofia/$${sip_profile}/888 at conference.freeswitch.org"/>-->
<!--</condition>-->
<!--</extension> -->
@@ -53,7 +53,7 @@
<!-- Request a certain tone/file to be played while you wait for the call to be answered-->
<action application="set" data="ringback=${us-ring}"/>
<!--<action application="set" data="ringback=/home/ring.wav"/>-->
- <action application="bridge" data="sofia/$${domain}/1234 at conference.freeswitch.org"/>
+ <action application="bridge" data="sofia/$${sip_profile}/1234 at conference.freeswitch.org"/>
</condition>
</extension>
@@ -67,7 +67,7 @@
<!-- Start a dynamic conference and call someone at the same time -->
<extension name="2000">
<condition field="destination_number" expression="^2000$">
- <action application="conference" data="bridge:mydynaconf:sofia/$${domain}/1234 at conference.freeswitch.org"/>
+ <action application="conference" data="bridge:mydynaconf:sofia/$${sip_profile}/1234 at conference.freeswitch.org"/>
</condition>
</extension>
Modified: freeswitch/trunk/conf/dingaling.conf.xml
==============================================================================
--- freeswitch/trunk/conf/dingaling.conf.xml (original)
+++ freeswitch/trunk/conf/dingaling.conf.xml Sat Apr 28 15:27:17 2007
@@ -8,12 +8,13 @@
<!-- Client Profile (Original mode) -->
<x-profile type="client">
- <param name="name" value="$${domain}"/>
+ <param name="name" value="$${xmpp_client_profile}"/>
<param name="login" value="myjid at myserver.com/talk"/>
<param name="password" value="mypass"/>
<param name="dialplan" value="XML"/>
<param name="message" value="Jingle all the way"/>
- <param name="rtp-ip" value="auto"/>
+ <param name="rtp-ip" value="$${bind_server_ip}"/>
+ <!-- <param name="ext-rtp-ip" value="$${external_rtp_ip"/> -->
<param name="auto-login" value="true"/>
<!-- SASL "plain" or "md5" -->
<param name="sasl" value="plain"/>
@@ -23,9 +24,6 @@
<param name="tls" value="true"/>
<!-- disable to trade async for more calls -->
<param name="use-rtp-timer" value="true"/>
- <!-- or -->
- <!-- <param name="rtp-ip" value="auto"/> -->
- <!-- <param name="ext-rtp-ip" value="stun:stun.server.com"/> -->
<!-- default extension (if one cannot be determined) -->
<param name="exten" value="888"/>
<!-- VAD choose one -->
@@ -37,11 +35,10 @@
<!-- Component (Server to Server Login) -->
<x-profile type="component">
- <!-- All traffic for *@sub.mydomain.com will come to you -->
- <param name="name" value="$${subdomain}"/>
+ <param name="name" value="$${xmpp_server_profile}"/>
<param name="password" value="secret"/>
<param name="dialplan" value="XML"/>
- <param name="rtp-ip" value="auto"/>
+ <param name="rtp-ip" value="$${bind_server_ip}"/>
<param name="server" value="jabber.server.org:5347"/>
<!-- disable to trade async for more calls -->
<param name="use-rtp-timer" value="true"/>
Modified: freeswitch/trunk/conf/enum.conf.xml
==============================================================================
--- freeswitch/trunk/conf/enum.conf.xml (original)
+++ freeswitch/trunk/conf/enum.conf.xml Sat Apr 28 15:27:17 2007
@@ -4,8 +4,8 @@
</settings>
<routes>
- <route service="E2U+SIP" regex="sip:(.*)" replace="sofia/$${domain}/$1"/>
+ <route service="E2U+SIP" regex="sip:(.*)" replace="sofia/$${sip_profile}/$1"/>
<route service="E2U+IAX2" regex="iax2:(.*)" replace="iax/$1"/>
- <route service="E2U+XMPP" regex="XMPP:(.*)" replace="dingaling/$${domain}/$1"/>
+ <route service="E2U+XMPP" regex="XMPP:(.*)" replace="dingaling/$${xmpp_server_profile}/$1"/>
</routes>
</configuration>
Modified: freeswitch/trunk/conf/freeswitch.xml
==============================================================================
--- freeswitch/trunk/conf/freeswitch.xml (original)
+++ freeswitch/trunk/conf/freeswitch.xml Sat Apr 28 15:27:17 2007
@@ -13,34 +13,115 @@
Don't modify it while freeswitch is running cos it is mem mapped in most cases =D
-->
- <!--#set "domain=mydomain.com"-->
- <!--#set "subdomain=sub.mydomain.com"-->
- <!--#set "default_codecs=PCMU at 20i"-->
- <!--my domain is $${domain}-->
+ <!-- Preprocessor Variables
+ These are introduced when configuration strings must be consistent across modules.
+ -->
+ <!-- sip_profile
+ Must be a domain name if you are being a registry server; otherwise
+ can be any string.
+ used by: sofia.conf.xml enum.conf.xml default_context.xml directory.xml
+ -->
+ <!--#set "sip_profile=mydomain.com"-->
+ <!-- xmpp_client_profile and xmpp_server_profile
+ xmpp_client_profile can be any string.
+ xmpp_server_profile is appended to "dingaling_" to form the database name
+ containing the "subscriptions" table.
+ used by: dingaling.conf.xml enum.conf.xml
+ -->
+ <!--#set "xmpp_client_profile=xmppc"-->
+ <!--#set "xmpp_server_profile=xmpps"-->
+ <!-- bind_server_ip
+ Can be an ip address, a dns name, or "auto".
+ This determines an ip address available on this host to bind.
+ If you are separating RTP and SIP traffic, you will want to have
+ use different addresses where this variable appears.
+ Used by: sofia.conf.xml dingaling.conf.xml
+ -->
+ <!--#set "bind_server_ip=auto"-->
+ <!-- external_rtp_ip
+ Used as the public IP address for SDP.
+ Can be an ip address or a string like "stun:stun.server.com"
+ If unspecified, the bind_server_ip value is used.
+ Used by: sofia.conf.xml dingaling.conf.xml
+ -->
+ <!--#set "external_rtp_ip=stun:stun.server.com"-->
+ <!-- server_name
+ A public ip address or DNS name that is used when advertising conference
+ presence or registering sip.
+ Used by: conference.conf.xml
+ -->
+ <!-- outbound_caller_id and outbound_caller_name
+ The caller ID telephone number we should use when calling out.
+ Used by: conference.conf.xml
+ -->
+ <!--#set "outbound_caller_name=FreeSWITCH"-->
+ <!--#set "outbound_caller_id=8777423583"-->
+
<section name="configuration" description="Various Configuration">
<!--#include "switch.conf.xml"-->
<!--#include "modules.conf.xml"-->
- <!--#include "spidermonkey.conf.xml"-->
+
+ <!-- Order doesn't matter, but for clarity these are in same order as modules.conf.xml.
+ If they aren't loaded by modules.conf.xml, then they are ignored.
+ -->
+ <!-- Loggers -->
+ <!--#include "console.conf.xml"-->
+ <!--#include "syslog.conf.xml"-->
+
+ <!-- Multi-Faceted -->
+ <!--#include "enum.conf.xml"-->
+
+ <!-- XML Interfaces -->
+ <!--#include "xml_rpc.conf.xml"-->
+ <!--#include "xml_curl.conf.xml"-->
+ <!-- none for mod_xml_cdr -->
+
+ <!-- Event Handlers -->
+ <!--#include "cdr.conf.xml"-->
<!--#include "event_multicast.conf.xml"-->
<!--#include "event_socket.conf.xml"-->
+ <!--#include "xmpp_event.conf.xml"-->
+ <!--#include "zeroconf.conf.xml"-->
+
+ <!-- Directory Interfaces -->
+ <!-- none for mod_ldap; dialplan_directory.conf.xml has ldap connection info -->
+
+ <!-- Endpoints -->
+ <!--#include "dingaling.conf.xml"-->
<!--#include "iax.conf.xml"-->
- <!--#include "console.conf.xml"-->
- <!--#include "sofia.conf.xml"-->
- <!--#include "syslog.conf.xml"-->
- <!--#include "woomera.conf.xml"-->
- <!--#include "wanpipe.conf.xml"-->
<!--#include "portaudio.conf.xml"-->
<!--#include "alsa.conf.xml"-->
- <!--#include "zeroconf.conf.xml"-->
- <!--#include "xmpp_event.conf.xml"-->
- <!--#include "dialplan_directory.conf.xml"-->
- <!--#include "dingaling.conf.xml"-->
- <!--#include "xml_curl.conf.xml"-->
- <!--#include "xml_rpc.conf.xml"-->
- <!--#include "rss.conf.xml"-->
+ <!--#include "sofia.conf.xml"-->
+ <!--#include "wanpipe.conf.xml"-->
+ <!--#include "woomera.conf.xml"-->
+
+ <!-- Applications -->
+ <!-- none for mod_bridgecall, mod_commands, mod_echo, mod_park, mod_playback -->
<!--#include "conference.conf.xml"-->
- <!--#include "enum.conf.xml"-->
+ <!-- ivr.conf is used by mod_dptools -->
<!--#include "ivr.conf.xml"-->
+
+ <!-- Dialplan Interfaces -->
+ <!--#include "dialplan_directory.conf.xml"-->
+ <!-- mod_dialplan_xml is configured in the separate "dialplan" section. -->
+
+ <!-- Codec Interfaces -->
+ <!-- no configuration needed -->
+ <!-- File Format Interfaces -->
+ <!-- no configuration needed -->
+ <!-- Timers -->
+ <!-- no configuration needed -->
+
+ <!-- Languages -->
+ <!--#include "spidermonkey.conf.xml"-->
+ <!-- none for mod_perl -->
+
+ <!-- ASR /TTS -->
+ <!-- none for mod_cepstral -->
+ <!--#include "rss.conf.xml"-->
+
+ <!-- Say -->
+ <!-- none for mod_say_en -->
<!--#include "mod_cdr.conf.xml"-->
</section>
@@ -48,6 +129,8 @@
<!--#include "default_context.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">
<!--#include "directory.xml"-->
</section>
@@ -66,3 +149,4 @@
</document>
+
Modified: freeswitch/trunk/conf/sofia.conf.xml
==============================================================================
--- freeswitch/trunk/conf/sofia.conf.xml (original)
+++ freeswitch/trunk/conf/sofia.conf.xml Sat Apr 28 15:27:17 2007
@@ -1,6 +1,6 @@
<configuration name="sofia.conf" description="sofia Endpoint">
<profiles>
- <profile name="$${domain}">
+ <profile name="$${sip_profile}">
<!-- Outbound Registrations -->
<gateways>
<!--<gateway name="asterlink.com">-->
@@ -28,12 +28,12 @@
<param name="sip-port" value="5060"/>
<param name="dialplan" value="enum,XML"/>
<param name="dtmf-duration" value="100"/>
- <param name="codec-prefs" value="$${default_codecs}"/>
+ <param name="codec-prefs" value="PCMU at 20i"/>
<param name="codec-ms" value="20"/>
<param name="use-rtp-timer" value="true"/>
<param name="rtp-timer-name" value="soft"/>
- <param name="rtp-ip" value="auto"/>
- <param name="sip-ip" value="auto"/>
+ <param name="rtp-ip" value="$${bind_server_ip}"/>
+ <param name="sip-ip" value="$${bind_server_ip}"/>
<!--If you don't want to pass through timestampes from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
<!--<param name="rtp-rewrite-timestampes" value="true"/>-->
@@ -60,9 +60,8 @@
<!-- on authed calls, authenticate *all* the packets not just invite -->
<!--<param name="auth-all-packets" value="true"/>-->
- <!-- optional ; -->
- <!-- <param name="ext-rtp-ip" value="stun:stun.server.com"/>-->
- <!-- <param name="ext-rtp-ip" value="100.101.102.103"/> -->
+ <!-- <param name="ext-rtp-ip" value="$${external_rtp_ip}"/>-->
+
<!-- <param name="ext-sip-ip" value="100.101.102.103"/> -->
<!-- VAD choose one (out is a good choice); -->
<!-- <param name="vad" value="in"/> -->
Added: freeswitch/trunk/scripts/combineconf.pl
==============================================================================
--- (empty file)
+++ freeswitch/trunk/scripts/combineconf.pl Sat Apr 28 15:27:17 2007
@@ -0,0 +1,49 @@
+#!/usr/bin/perl -w
+use strict;
+
+=head1 NAME
+
+combineconf.pl - expand #include PIs in a freeswitch conf file
+
+=head1 SYNOPSIS
+
+ # cd conf
+ # ../scripts/combineconf.pl freeswitch.xml > freeswitch_combined.xml
+
+=head1 DESCRIPTION
+
+This is recursive, and will take multiple input files on the command line.
+
+You need to run it from the working directory that the relative include paths
+except to be resolved from.
+
+=head1 AUTHOR
+
+Mark D. Anderson (mda at discerning.com)
+Released under same terms as Perl, or alternatively the MPL.
+
+=cut
+
+use IO::File;
+
+sub filter_file {
+ my ($f) = @_;
+ my $fh = $f eq '-' ? \*STDIN : IO::File->new($f, 'r');
+ die "ERROR: Can't open $f: $!\n" unless $fh;
+ while(<$fh>) {
+ if (m/<!--#include\s+"(.*?)"/) {
+ filter_file($1);
+ }
+ else {print;}
+ }
+ undef $fh;
+}
+
+sub main {
+ die "Usage: $0 file1 ...\nCombined output goes to stdout. Use '-' as the filename to use stdin." unless @ARGV;
+ for(@ARGV) {
+ filter_file($_);
+ }
+}
+
+main();
More information about the Freeswitch-svn
mailing list