FS: Rename SIP Profiles
This commit is contained in:
parent
0e24b1e31b
commit
1fbe4aef12
10 changed files with 333 additions and 514 deletions
|
@ -1,37 +0,0 @@
|
||||||
<include>
|
|
||||||
<!--<gateway name="asterlink.com">-->
|
|
||||||
<!--/// account username *required* ///-->
|
|
||||||
<!--<param name="username" value="cluecon"/>-->
|
|
||||||
<!--/// auth realm: *optional* same as gateway name, if blank ///-->
|
|
||||||
<!--<param name="realm" value="asterlink.com"/>-->
|
|
||||||
<!--/// username to use in from: *optional* same as username, if blank ///-->
|
|
||||||
<!--<param name="from-user" value="cluecon"/>-->
|
|
||||||
<!--/// domain to use in from: *optional* same as realm, if blank ///-->
|
|
||||||
<!--<param name="from-domain" value="asterlink.com"/>-->
|
|
||||||
<!--/// account password *required* ///-->
|
|
||||||
<!--<param name="password" value="2007"/>-->
|
|
||||||
<!--/// extension for inbound calls: *optional* same as username, if blank ///-->
|
|
||||||
<!--<param name="extension" value="cluecon"/>-->
|
|
||||||
<!--/// proxy host: *optional* same as realm, if blank ///-->
|
|
||||||
<!--<param name="proxy" value="asterlink.com"/>-->
|
|
||||||
<!--/// send register to this proxy: *optional* same as proxy, if blank ///-->
|
|
||||||
<!--<param name="register-proxy" value="mysbc.com"/>-->
|
|
||||||
<!--/// expire in seconds: *optional* 3600, if blank ///-->
|
|
||||||
<!--<param name="expire-seconds" value="60"/>-->
|
|
||||||
<!--/// do not register ///-->
|
|
||||||
<!--<param name="register" value="false"/>-->
|
|
||||||
<!-- which transport to use for register -->
|
|
||||||
<!--<param name="register-transport" value="udp"/>-->
|
|
||||||
<!--How many seconds before a retry when a failure or timeout occurs -->
|
|
||||||
<!--<param name="retry-seconds" value="30"/>-->
|
|
||||||
<!--Use the callerid of an inbound call in the from field on outbound calls via this gateway -->
|
|
||||||
<!--<param name="caller-id-in-from" value="false"/>-->
|
|
||||||
<!--extra sip params to send in the contact-->
|
|
||||||
<!--<param name="contact-params" value="tport=tcp"/>-->
|
|
||||||
<!-- Put the extension in the contact -->
|
|
||||||
<!--<param name="extension-in-contact" value="true"/>-->
|
|
||||||
<!--send an options ping every x seconds, failure will unregister and/or mark it down-->
|
|
||||||
<!--<param name="ping" value="25"/>-->
|
|
||||||
<!--<param name="cid-type" value="rpid"/>-->
|
|
||||||
<!--</gateway>-->
|
|
||||||
</include>
|
|
|
@ -1,412 +0,0 @@
|
||||||
<profile name="internalvpn">
|
|
||||||
<!--
|
|
||||||
This is a sofia sip profile/user agent. This will service exactly one ip and port.
|
|
||||||
In FreeSWITCH you can run multiple sip user agents on their own ip and port.
|
|
||||||
|
|
||||||
When you hear someone say "sofia profile" this is what they are talking about.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
|
|
||||||
<!--aliases are other names that will work as a valid profile name for this profile-->
|
|
||||||
<aliases>
|
|
||||||
<!--
|
|
||||||
<alias name="default"/>
|
|
||||||
-->
|
|
||||||
</aliases>
|
|
||||||
<!-- Outbound Registrations -->
|
|
||||||
|
|
||||||
<domains>
|
|
||||||
<!-- indicator to parse the directory for domains with parse="true" to get gateways-->
|
|
||||||
<!--<domain name="$${domain}" parse="true"/>-->
|
|
||||||
<!-- indicator to parse the directory for domains with parse="true" to get gateways and alias every domain to this profile -->
|
|
||||||
<!--<domain name="all" alias="true" parse="true"/>-->
|
|
||||||
<domain name="all" alias="true" parse="false"/>
|
|
||||||
</domains>
|
|
||||||
|
|
||||||
<settings>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- inject delay between dtmf digits on send to help some slow interpreters (also per channel with rtp_digit_delay var -->
|
|
||||||
<!-- <param name="rtp-digit-delay" value="40"/>-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
When calls are in no media this will bring them back to media
|
|
||||||
when you press the hold button.
|
|
||||||
-->
|
|
||||||
<!--<param name="media-option" value="resume-media-on-hold"/> -->
|
|
||||||
<!--
|
|
||||||
This will allow a call after an attended transfer go back to
|
|
||||||
bypass media after an attended transfer.
|
|
||||||
-->
|
|
||||||
<!--<param name="media-option" value="bypass-media-after-att-xfer"/>-->
|
|
||||||
<!-- <param name="user-agent-string" value="FreeSWITCH Rocks!"/> -->
|
|
||||||
<param name="debug" value="0"/>
|
|
||||||
<!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
|
|
||||||
<!-- <param name="shutdown-on-fail" value="true"/> -->
|
|
||||||
<param name="sip-trace" value="no"/>
|
|
||||||
<param name="sip-capture" value="no"/>
|
|
||||||
|
|
||||||
<!-- Use presence_map.conf.xml to convert extension regex to presence protos for routing -->
|
|
||||||
<!-- <param name="presence-proto-lookup" value="true"/> -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Don't be picky about negotiated DTMF just always offer 2833 and accept both 2833 and INFO -->
|
|
||||||
<param name="liberal-dtmf" value="true"/>
|
|
||||||
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Sometimes, in extremely rare edge cases, the Sofia SIP stack may stop
|
|
||||||
responding. These options allow you to enable and control a watchdog
|
|
||||||
on the Sofia SIP stack so that if it stops responding for the
|
|
||||||
specified number of milliseconds, it will cause FreeSWITCH to crash
|
|
||||||
immediately. This is useful if you run in an HA environment and
|
|
||||||
need to ensure automated recovery from such a condition. Note that if
|
|
||||||
your server is idle a lot, the watchdog may fire due to not receiving
|
|
||||||
any SIP messages. Thus, if you expect your system to be idle, you
|
|
||||||
should leave the watchdog disabled. It can be toggled on and off
|
|
||||||
through the FreeSWITCH CLI either on an individual profile basis or
|
|
||||||
globally for all profiles. So, if you run in an HA environment with a
|
|
||||||
master and slave, you should use the CLI to make sure the watchdog is
|
|
||||||
only enabled on the master.
|
|
||||||
If such crash occurs, FreeSWITCH will dump core if allowed. The
|
|
||||||
stacktrace will include function watchdog_triggered_abort().
|
|
||||||
-->
|
|
||||||
<param name="watchdog-enabled" value="no"/>
|
|
||||||
<param name="watchdog-step-timeout" value="30000"/>
|
|
||||||
<param name="watchdog-event-timeout" value="30000"/>
|
|
||||||
|
|
||||||
<param name="log-auth-failures" value="false"/>
|
|
||||||
<param name="forward-unsolicited-mwi-notify" value="false"/>
|
|
||||||
|
|
||||||
<param name="context" value="public"/>
|
|
||||||
<param name="rfc2833-pt" value="101"/>
|
|
||||||
<!-- port to bind to for sip traffic -->
|
|
||||||
<param name="sip-port" value="5040"/>
|
|
||||||
<param name="dialplan" value="XML"/>
|
|
||||||
<param name="dtmf-duration" value="2000"/>
|
|
||||||
<param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
|
|
||||||
<param name="outbound-codec-prefs" value="$${global_codec_prefs}"/>
|
|
||||||
<param name="rtp-timer-name" value="soft"/>
|
|
||||||
<!-- ip address to use for rtp, DO NOT USE HOSTNAMES ONLY IP ADDRESSES -->
|
|
||||||
<param name="rtp-ip" value="$${local_ip_v4}"/>
|
|
||||||
<!-- ip address to bind to, DO NOT USE HOSTNAMES ONLY IP ADDRESSES -->
|
|
||||||
<param name="sip-ip" value="$${local_ip_v4}"/>
|
|
||||||
<!--<param name="hold-music" value="$${hold_music}"/>-->
|
|
||||||
<param name="apply-nat-acl" value="nat.auto"/>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- (default true) set to false if you do not wish to have called party info in 1XX responses -->
|
|
||||||
<!-- <param name="cid-in-1xx" value="false"/> -->
|
|
||||||
|
|
||||||
<!-- extended info parsing -->
|
|
||||||
<!-- <param name="extended-info-parsing" value="true"/> -->
|
|
||||||
|
|
||||||
<param name="aggressive-nat-detection" value="false"/>
|
|
||||||
<!--
|
|
||||||
There are known issues (asserts and segfaults) when 100rel is enabled.
|
|
||||||
It is not recommended to enable 100rel at this time.
|
|
||||||
-->
|
|
||||||
<!--<param name="enable-100rel" value="true"/>-->
|
|
||||||
|
|
||||||
<!-- uncomment if you don't wish to try a next SRV destination on 503 response -->
|
|
||||||
<!-- RFC3263 Section 4.3 -->
|
|
||||||
<!--<param name="disable-srv503" value="true"/>-->
|
|
||||||
|
|
||||||
<!-- Enable Compact SIP headers. -->
|
|
||||||
<!--<param name="enable-compact-headers" value="true"/>-->
|
|
||||||
<!--
|
|
||||||
enable/disable session timers
|
|
||||||
-->
|
|
||||||
<!--<param name="enable-timer" value="false"/>-->
|
|
||||||
<!--<param name="minimum-session-expires" value="120"/>-->
|
|
||||||
<param name="apply-inbound-acl" value="domains"/>
|
|
||||||
<!--
|
|
||||||
This defines your local network, by default we detect your local network
|
|
||||||
and create this localnet.auto ACL for this.
|
|
||||||
-->
|
|
||||||
<param name="local-network-acl" value="localnet.auto"/>
|
|
||||||
<param name="apply-register-acl" value="domains"/>
|
|
||||||
<param name="apply-candidate-acl" value="domains"/>
|
|
||||||
<!--<param name="dtmf-type" value="info"/>-->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- 'true' means every time 'first-only' means on the first register -->
|
|
||||||
<!--<param name="send-message-query-on-register" value="true"/>-->
|
|
||||||
|
|
||||||
<!-- 'true' means every time 'first-only' means on the first register -->
|
|
||||||
<!--<param name="send-presence-on-register" value="first-only"/> -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Caller-ID type (choose one, can be overridden by inbound call type and/or sip_cid_type channel variable -->
|
|
||||||
<!-- Remote-Party-ID header -->
|
|
||||||
<!--<param name="caller-id-type" value="rpid"/>-->
|
|
||||||
|
|
||||||
<!-- P-*-Identity family of headers -->
|
|
||||||
<!--<param name="caller-id-type" value="pid"/>-->
|
|
||||||
|
|
||||||
<!-- neither one -->
|
|
||||||
<!--<param name="caller-id-type" value="none"/>-->
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<param name="record-path" value="$${recordings_dir}"/>
|
|
||||||
<param name="record-template" value="${caller_id_number}.${target_domain}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
|
|
||||||
<!--enable to use presence -->
|
|
||||||
<param name="manage-presence" value="false"/>
|
|
||||||
<!-- send a presence probe on each register to query devices to send presence instead of sending presence with less info -->
|
|
||||||
<!--<param name="presence-probe-on-register" value="true"/>-->
|
|
||||||
<!--<param name="manage-shared-appearance" value="true"/>-->
|
|
||||||
<!-- used to share presence info across sofia profiles -->
|
|
||||||
<!-- Name of the db to use for this profile -->
|
|
||||||
<!--<param name="dbname" value="share_presence"/>-->
|
|
||||||
<param name="presence-hosts" value="$${domain},$${local_ip_v4}"/>
|
|
||||||
<param name="presence-privacy" value="$${presence_privacy}"/>
|
|
||||||
<!-- ************************************************* -->
|
|
||||||
|
|
||||||
<!-- This setting is for AAL2 bitpacking on G726 -->
|
|
||||||
<!-- <param name="bitpacking" value="aal2"/> -->
|
|
||||||
<!--max number of open dialogs in proceeding -->
|
|
||||||
<!--<param name="max-proceeding" value="1000"/>-->
|
|
||||||
<!--session timers for all call to expire after the specified seconds -->
|
|
||||||
<!--<param name="session-timeout" value="1800"/>-->
|
|
||||||
<!-- Can be 'true' or 'contact' -->
|
|
||||||
<!--<param name="multiple-registrations" value="contact"/>-->
|
|
||||||
<!--set to 'greedy' if you want your codec list to take precedence -->
|
|
||||||
<param name="inbound-codec-negotiation" value="greedy"/>
|
|
||||||
<!-- if you want to send any special bind params of your own -->
|
|
||||||
<!--<param name="bind-params" value="transport=udp"/>-->
|
|
||||||
<!--<param name="unregister-on-options-fail" value="true"/>-->
|
|
||||||
<!-- Send an OPTIONS packet to all registered endpoints -->
|
|
||||||
<!--<param name="all-reg-options-ping" value="true"/>-->
|
|
||||||
<!-- Send an OPTIONS packet to NATed registered endpoints. Can be 'true' or 'udp-only'. -->
|
|
||||||
<!--<param name="nat-options-ping" value="true"/>-->
|
|
||||||
|
|
||||||
<!-- TLS: disabled by default, set to "true" to enable -->
|
|
||||||
<param name="tls" value="$${internal_ssl_enable}"/>
|
|
||||||
<!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
|
|
||||||
<param name="tls-only" value="false"/>
|
|
||||||
<!-- additional bind parameters for TLS -->
|
|
||||||
<param name="tls-bind-params" value="transport=tls"/>
|
|
||||||
<!-- Port to listen on for TLS requests. (5061 will be used if unspecified) -->
|
|
||||||
<param name="tls-sip-port" value="$${internal_tls_port}"/>
|
|
||||||
<!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
|
|
||||||
<!--<param name="tls-cert-dir" value=""/>-->
|
|
||||||
<!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
|
|
||||||
<param name="tls-passphrase" value=""/>
|
|
||||||
<!-- Verify the date on TLS certificates -->
|
|
||||||
<param name="tls-verify-date" value="true"/>
|
|
||||||
<!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
|
|
||||||
<!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
|
|
||||||
<param name="tls-verify-policy" value="none"/>
|
|
||||||
<!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
|
|
||||||
<param name="tls-verify-depth" value="2"/>
|
|
||||||
<!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
|
|
||||||
<param name="tls-verify-in-subjects" value=""/>
|
|
||||||
<!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
|
|
||||||
<param name="tls-version" value="$${sip_tls_version}"/>
|
|
||||||
|
|
||||||
<!-- turn on auto-flush during bridge (skip timer sleep when the socket already has data)
|
|
||||||
(reduces delay on latent connections default true, must be disabled explicitly)-->
|
|
||||||
<!--<param name="rtp-autoflush-during-bridge" value="false"/>-->
|
|
||||||
|
|
||||||
<!--If you don't want to pass through timestamps from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
|
|
||||||
<!--<param name="rtp-rewrite-timestamps" value="true"/>-->
|
|
||||||
<!--<param name="pass-rfc2833" value="true"/>-->
|
|
||||||
<!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
|
|
||||||
<!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
|
|
||||||
|
|
||||||
<!-- Or, if you have PGSQL support, you can use that -->
|
|
||||||
<!--<param name="odbc-dsn" value="pgsql://hostaddr=127.0.0.1 dbname=freeswitch user=freeswitch password='' options='-c client_min_messages=NOTICE' application_name='freeswitch'" />-->
|
|
||||||
|
|
||||||
<!--Uncomment to set all inbound calls to no media mode-->
|
|
||||||
<!--<param name="inbound-bypass-media" value="true"/>-->
|
|
||||||
|
|
||||||
<!--Uncomment to set all inbound calls to proxy media mode-->
|
|
||||||
<!--<param name="inbound-proxy-media" value="true"/>-->
|
|
||||||
|
|
||||||
<!-- Let calls hit the dialplan before selecting codec for the a-leg -->
|
|
||||||
<param name="inbound-late-negotiation" value="false"/>
|
|
||||||
|
|
||||||
<!-- Allow ZRTP clients to negotiate end-to-end security associations (also enables late negotiation) -->
|
|
||||||
<param name="inbound-zrtp-passthru" value="true"/>
|
|
||||||
|
|
||||||
<!-- this lets anything register -->
|
|
||||||
<!-- comment the next line and uncomment one or both of the other 2 lines for call authentication -->
|
|
||||||
<!-- <param name="accept-blind-reg" value="true"/> -->
|
|
||||||
|
|
||||||
<!-- accept any authentication without actually checking (not a good feature for most people) -->
|
|
||||||
<!-- <param name="accept-blind-auth" value="true"/> -->
|
|
||||||
|
|
||||||
<!-- suppress CNG on this profile or per call with the 'suppress_cng' variable -->
|
|
||||||
<!-- <param name="suppress-cng" value="true"/> -->
|
|
||||||
|
|
||||||
<!--TTL for nonce in sip auth-->
|
|
||||||
<param name="nonce-ttl" value="60"/>
|
|
||||||
<!--Uncomment if you want to force the outbound leg of a bridge to only offer the codec
|
|
||||||
that the originator is using-->
|
|
||||||
<!--<param name="disable-transcoding" value="true"/>-->
|
|
||||||
<!-- Handle 302 Redirect in the dialplan -->
|
|
||||||
<!--<param name="manual-redirect" value="true"/> -->
|
|
||||||
<!-- Disable Transfer -->
|
|
||||||
<!--<param name="disable-transfer" value="true"/> -->
|
|
||||||
<!-- Disable Register -->
|
|
||||||
<!--<param name="disable-register" value="true"/> -->
|
|
||||||
<!-- Used for when phones respond to a challenged ACK with method INVITE in the hash -->
|
|
||||||
<!--<param name="NDLB-broken-auth-hash" value="true"/>-->
|
|
||||||
<!-- add a ;received="<ip>:<port>" to the contact when replying to register for nat handling -->
|
|
||||||
<!--<param name="NDLB-received-in-nat-reg-contact" value="true"/>-->
|
|
||||||
<param name="auth-calls" value="$${internal_auth_calls}"/>
|
|
||||||
<!-- Force the user and auth-user to match. -->
|
|
||||||
<param name="inbound-reg-force-matching-username" value="true"/>
|
|
||||||
<!-- on authed calls, authenticate *all* the packets not just invite -->
|
|
||||||
<param name="auth-all-packets" value="false"/>
|
|
||||||
|
|
||||||
<!-- external_sip_ip
|
|
||||||
Used as the public IP address for SDP.
|
|
||||||
Can be an one of:
|
|
||||||
ip address - "12.34.56.78"
|
|
||||||
a stun server lookup - "stun:stun.server.com"
|
|
||||||
a DNS name - "host:host.server.com"
|
|
||||||
auto - Use guessed ip.
|
|
||||||
auto-nat - Use ip learned from NAT-PMP or UPNP
|
|
||||||
-->
|
|
||||||
<param name="ext-rtp-ip" value="$${local_ip_v4}"/>
|
|
||||||
<param name="ext-sip-ip" value="$${local_ip_v4}"/>
|
|
||||||
|
|
||||||
<!-- rtp inactivity timeout -->
|
|
||||||
<param name="rtp-timeout-sec" value="300"/>
|
|
||||||
<param name="rtp-hold-timeout-sec" value="1800"/>
|
|
||||||
<!-- VAD choose one (out is a good choice); -->
|
|
||||||
<!-- <param name="vad" value="in"/> -->
|
|
||||||
<!-- <param name="vad" value="out"/> -->
|
|
||||||
<!-- <param name="vad" value="both"/> -->
|
|
||||||
<!--<param name="alias" value="sip:10.0.1.251:5555"/>-->
|
|
||||||
<!--
|
|
||||||
These are enabled to make the default config work better out of the box.
|
|
||||||
If you need more than ONE domain you'll need to not use these options.
|
|
||||||
|
|
||||||
-->
|
|
||||||
<!--all inbound reg will look in this domain for the users -->
|
|
||||||
<param name="force-register-domain" value="$${domain}"/>
|
|
||||||
<!--force the domain in subscriptions to this value -->
|
|
||||||
<param name="force-subscription-domain" value="$${domain}"/>
|
|
||||||
<!--all inbound reg will stored in the db using this domain -->
|
|
||||||
<param name="force-register-db-domain" value="$${domain}"/>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- uncomment for sip over websocket support -->
|
|
||||||
<!--<param name="ws-binding" value=":5066"/>-->
|
|
||||||
|
|
||||||
<!-- uncomment for sip over secure websocket support -->
|
|
||||||
<!-- You need wss.pem in /usr/local/freeswitch/certs for wss -->
|
|
||||||
<!--<param name="wss-binding" value=":7443"/>-->
|
|
||||||
|
|
||||||
|
|
||||||
<!--<param name="delete-subs-on-register" value="false"/>-->
|
|
||||||
|
|
||||||
<!-- launch a new thread to process each new inbound register when using heavier backends -->
|
|
||||||
<!-- <param name="inbound-reg-in-new-thread" value="true"/> -->
|
|
||||||
|
|
||||||
<!-- enable rtcp on every channel also can be done per leg basis with rtcp_audio_interval_msec variable set to passthru to pass it across a call-->
|
|
||||||
<param name="rtcp-audio-interval-msec" value="5000"/>
|
|
||||||
<!--<param name="rtcp-video-interval-msec" value="5000"/>-->
|
|
||||||
|
|
||||||
<!--force suscription expires to a lower value than requested-->
|
|
||||||
<!--<param name="force-subscription-expires" value="60"/>-->
|
|
||||||
|
|
||||||
<!-- add a random deviation to the expires value of the 202 Accepted -->
|
|
||||||
<!--<param name="sip-subscription-max-deviation" value="120"/>-->
|
|
||||||
|
|
||||||
<!-- disable register and transfer which may be undesirable in a public switch -->
|
|
||||||
<!--<param name="disable-transfer" value="true"/>-->
|
|
||||||
<!--<param name="disable-register" value="true"/>-->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
enable-3pcc can be set to either 'true' or 'proxy', true accepts the call
|
|
||||||
right away, proxy waits until the call has been answered then sends accepts
|
|
||||||
-->
|
|
||||||
<!--<param name="enable-3pcc" value="true"/>-->
|
|
||||||
|
|
||||||
<!-- use at your own risk or if you know what this does.-->
|
|
||||||
<!--<param name="NDLB-force-rport" value="true"/>-->
|
|
||||||
<!--
|
|
||||||
Choose the realm challenge key. Default is auto_to if not set.
|
|
||||||
|
|
||||||
auto_from - uses the from field as the value for the sip realm.
|
|
||||||
auto_to - uses the to field as the value for the sip realm.
|
|
||||||
<anyvalue> - you can input any value to use for the sip realm.
|
|
||||||
|
|
||||||
If you want URL dialing to work you'll want to set this to auto_from.
|
|
||||||
|
|
||||||
If you use any other value besides auto_to or auto_from you'll
|
|
||||||
loose the ability to do multiple domains.
|
|
||||||
|
|
||||||
Note: comment out to restore the behavior before 2008-09-29
|
|
||||||
-->
|
|
||||||
<param name="challenge-realm" value="auto_from"/>
|
|
||||||
<!--<param name="disable-rtp-auto-adjust" value="true"/>-->
|
|
||||||
<!-- on inbound calls make the uuid of the session equal to the sip call id of that call -->
|
|
||||||
<!--<param name="inbound-use-callid-as-uuid" value="true"/>-->
|
|
||||||
<!-- on outbound calls set the callid to match the uuid of the session -->
|
|
||||||
<!--<param name="outbound-use-uuid-as-callid" value="true"/>-->
|
|
||||||
<!-- set to false disable this feature -->
|
|
||||||
<!--<param name="rtp-autofix-timing" value="false"/>-->
|
|
||||||
|
|
||||||
<!-- set this param to false if your gateway for some reason hates X- headers that it is supposed to ignore-->
|
|
||||||
<!--<param name="pass-callee-id" value="false"/>-->
|
|
||||||
|
|
||||||
<!-- clear clears them all or supply the name to add or the name
|
|
||||||
prefixed with ~ to remove valid values:
|
|
||||||
|
|
||||||
clear
|
|
||||||
CISCO_SKIP_MARK_BIT_2833
|
|
||||||
SONUS_SEND_INVALID_TIMESTAMP_2833
|
|
||||||
|
|
||||||
-->
|
|
||||||
<!--<param name="auto-rtp-bugs" data="clear"/>-->
|
|
||||||
|
|
||||||
<!-- the following can be used as workaround with bogus SRV/NAPTR records -->
|
|
||||||
<!--<param name="disable-srv" value="false" />-->
|
|
||||||
<!--<param name="disable-naptr" value="false" />-->
|
|
||||||
|
|
||||||
<!-- The following can be used to fine-tune timers within sofia's transport layer
|
|
||||||
Those settings are for advanced users and can safely be left as-is -->
|
|
||||||
|
|
||||||
<!-- Initial retransmission interval (in milliseconds).
|
|
||||||
Set the T1 retransmission interval used by the SIP transaction engine.
|
|
||||||
The T1 is the initial duration used by request retransmission timers A and E (UDP) as well as response retransmission timer G. -->
|
|
||||||
<!-- <param name="timer-T1" value="500" /> -->
|
|
||||||
|
|
||||||
<!-- Transaction timeout (defaults to T1 * 64).
|
|
||||||
Set the T1x64 timeout value used by the SIP transaction engine.
|
|
||||||
The T1x64 is duration used for timers B, F, H, and J (UDP) by the SIP transaction engine.
|
|
||||||
The timeout value T1x64 can be adjusted separately from the initial retransmission interval T1. -->
|
|
||||||
<!-- <param name="timer-T1X64" value="32000" /> -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Maximum retransmission interval (in milliseconds).
|
|
||||||
Set the maximum retransmission interval used by the SIP transaction engine.
|
|
||||||
The T2 is the maximum duration used for the timers E (UDP) and G by the SIP transaction engine.
|
|
||||||
Note that the timer A is not capped by T2. Retransmission interval of INVITE requests grows exponentially
|
|
||||||
until the timer B fires. -->
|
|
||||||
<!-- <param name="timer-T2" value="4000" /> -->
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Transaction lifetime (in milliseconds).
|
|
||||||
Set the lifetime for completed transactions used by the SIP transaction engine.
|
|
||||||
A completed transaction is kept around for the duration of T4 in order to catch late responses.
|
|
||||||
The T4 is the maximum duration for the messages to stay in the network and the duration of SIP timer K. -->
|
|
||||||
<!-- <param name="timer-T4" value="4000" /> -->
|
|
||||||
|
|
||||||
<!-- Turn on a jitterbuffer for every call -->
|
|
||||||
<!-- <param name="auto-jitterbuffer-msec" value="60"/> -->
|
|
||||||
|
|
||||||
|
|
||||||
<!-- By default mod_sofia will ignore the codecs in the sdp for hold/unhold operations
|
|
||||||
Set this to true if you want to actually parse the sdp and re-negotiate the codec during hold/unhold.
|
|
||||||
It's probably not what you want so stick with the default unless you really need to change this.
|
|
||||||
-->
|
|
||||||
<!--<param name="renegotiate-codec-on-hold" value="true"/>-->
|
|
||||||
|
|
||||||
</settings>
|
|
||||||
</profile>
|
|
|
@ -19,7 +19,7 @@
|
||||||
|
|
||||||
<param name="context" value="public"/>
|
<param name="context" value="public"/>
|
||||||
<param name="rfc2833-pt" value="101"/>
|
<param name="rfc2833-pt" value="101"/>
|
||||||
<param name="sip-port" value="5091"/>
|
<param name="sip-port" value="5060"/>
|
||||||
<param name="dialplan" value="XML"/>
|
<param name="dialplan" value="XML"/>
|
||||||
<param name="dtmf-duration" value="2000"/>
|
<param name="dtmf-duration" value="2000"/>
|
||||||
<param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
|
<param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
|
||||||
|
@ -45,8 +45,8 @@
|
||||||
<param name="auth-calls" value="$${internal_auth_calls}"/>
|
<param name="auth-calls" value="$${internal_auth_calls}"/>
|
||||||
<param name="inbound-reg-force-matching-username" value="true"/>
|
<param name="inbound-reg-force-matching-username" value="true"/>
|
||||||
<param name="auth-all-packets" value="false"/>
|
<param name="auth-all-packets" value="false"/>
|
||||||
<param name="ext-rtp-ip" value="$${external_ip}"/>
|
<param name="ext-rtp-ip" value="$${lan_ip}"/>
|
||||||
<param name="ext-sip-ip" value="$${external_ip}"/>
|
<param name="ext-sip-ip" value="$${lan_ip}"/>
|
||||||
<param name="rtp-timeout-sec" value="300"/>
|
<param name="rtp-timeout-sec" value="300"/>
|
||||||
<param name="rtp-hold-timeout-sec" value="1800"/>
|
<param name="rtp-hold-timeout-sec" value="1800"/>
|
||||||
<param name="force-register-domain" value="$${domain}"/>
|
<param name="force-register-domain" value="$${domain}"/>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<profile name="external">
|
<profile name="vpn">
|
||||||
<!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
|
<!-- http://wiki.freeswitch.org/wiki/Sofia_Configuration_Files -->
|
||||||
<!-- This profile is only for outbound registrations to providers -->
|
<!-- This profile is only for outbound registrations to providers -->
|
||||||
<gateways>
|
<gateways>
|
||||||
<X-PRE-PROCESS cmd="include" data="external/*.xml"/>
|
<X-PRE-PROCESS cmd="include" data="gateways/*.xml"/>
|
||||||
</gateways>
|
</gateways>
|
||||||
|
|
||||||
<aliases>
|
<aliases>
|
||||||
|
@ -13,11 +13,14 @@
|
||||||
</aliases>
|
</aliases>
|
||||||
|
|
||||||
<domains>
|
<domains>
|
||||||
<domain name="all" alias="false" parse="true"/>
|
<domain name="all" alias="false" parse="false"/>
|
||||||
</domains>
|
</domains>
|
||||||
|
|
||||||
<settings>
|
<settings>
|
||||||
<param name="NDLB-allow-bad-iananame" value="true"/>
|
|
||||||
|
<param name="auto-jitterbuffer-msec" value="100"/>
|
||||||
|
<param name="minimum-session-expires" value="90"/>
|
||||||
|
<param name="enable-time" value="false"/>
|
||||||
<param name="debug" value="0"/>
|
<param name="debug" value="0"/>
|
||||||
<!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
|
<!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
|
||||||
<!-- <param name="shutdown-on-fail" value="true"/> -->
|
<!-- <param name="shutdown-on-fail" value="true"/> -->
|
||||||
|
@ -26,12 +29,14 @@
|
||||||
<param name="rfc2833-pt" value="101"/>
|
<param name="rfc2833-pt" value="101"/>
|
||||||
<!-- RFC 5626 : Send reg-id and sip.instance -->
|
<!-- RFC 5626 : Send reg-id and sip.instance -->
|
||||||
<!--<param name="enable-rfc-5626" value="true"/> -->
|
<!--<param name="enable-rfc-5626" value="true"/> -->
|
||||||
<param name="sip-port" value="5059"/>
|
<param name="sip-port" value="5060"/>
|
||||||
<param name="dialplan" value="XML"/>
|
<param name="dialplan" value="XML"/>
|
||||||
<param name="context" value="public"/>
|
<param name="context" value="public"/>
|
||||||
<param name="dtmf-duration" value="2000"/>
|
<param name="dtmf-duration" value="2000"/>
|
||||||
<param name="inbound-codec-prefs" value="$${global_codec_prefs}"/>
|
|
||||||
<param name="outbound-codec-prefs" value="$${outbound_codec_prefs}"/>
|
<param name="inbound-codec-prefs" value="AMR,GSM,OPUS@8000h@20i,G729,PCMA,PCMU"/>
|
||||||
|
<param name="outbound-codec-prefs" value="AMR,GSM,OPUS@8000h@20i,G729,PCMA,PCMU"/>
|
||||||
|
|
||||||
<!--<param name="hold-music" value="$${hold_music}"/>-->
|
<!--<param name="hold-music" value="$${hold_music}"/>-->
|
||||||
<param name="rtp-timer-name" value="soft"/>
|
<param name="rtp-timer-name" value="soft"/>
|
||||||
<!--<param name="enable-100rel" value="true"/>-->
|
<!--<param name="enable-100rel" value="true"/>-->
|
||||||
|
@ -53,8 +58,8 @@
|
||||||
<!--<param name="force-register-db-domain" value="$${domain}"/>-->
|
<!--<param name="force-register-db-domain" value="$${domain}"/>-->
|
||||||
<!-- ************************************************* -->
|
<!-- ************************************************* -->
|
||||||
|
|
||||||
<param name="aggressive-nat-detection" value="true"/>
|
<param name="aggressive-nat-detection" value="false"/>
|
||||||
<param name="nat-options-ping" value="true"/>
|
<param name="nat-options-ping" value="false"/>
|
||||||
<param name="inbound-codec-negotiation" value="greedy"/>
|
<param name="inbound-codec-negotiation" value="greedy"/>
|
||||||
<param name="nonce-ttl" value="60"/>
|
<param name="nonce-ttl" value="60"/>
|
||||||
<param name="auth-calls" value="false"/>
|
<param name="auth-calls" value="false"/>
|
||||||
|
@ -63,10 +68,10 @@
|
||||||
<!--
|
<!--
|
||||||
DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS!
|
DO NOT USE HOSTNAMES, ONLY IP ADDRESSES IN THESE SETTINGS!
|
||||||
-->
|
-->
|
||||||
<param name="rtp-ip" value="$${external_ip}"/>
|
<param name="rtp-ip" value="$${vpn_ip}"/>
|
||||||
<param name="sip-ip" value="$${external_ip}"/>
|
<param name="sip-ip" value="$${vpn_ip}"/>
|
||||||
<param name="ext-rtp-ip" value="$${external_ip}"/>
|
<param name="ext-rtp-ip" value="$${vpn_ip}"/>
|
||||||
<param name="ext-sip-ip" value="$${external_ip}"/>
|
<param name="ext-sip-ip" value="$${vpn_ip}"/>
|
||||||
<param name="rtp-timeout-sec" value="90"/>
|
<param name="rtp-timeout-sec" value="90"/>
|
||||||
<param name="rtp-hold-timeout-sec" value="1800"/>
|
<param name="rtp-hold-timeout-sec" value="1800"/>
|
||||||
<!--<param name="enable-3pcc" value="true"/>-->
|
<!--<param name="enable-3pcc" value="true"/>-->
|
|
@ -173,56 +173,40 @@ class rhizo_base::freeswitch::common {
|
||||||
require => Package['freeswitch'],
|
require => Package['freeswitch'],
|
||||||
}
|
}
|
||||||
|
|
||||||
file {'/etc/freeswitch/sip_profiles/extrtp':
|
file {'/etc/freeswitch/sip_profiles/gateways':
|
||||||
ensure => directory,
|
ensure => directory,
|
||||||
}
|
}
|
||||||
|
|
||||||
file { '/etc/freeswitch/sip_profiles/outgoing.xml':
|
file { '/etc/freeswitch/sip_profiles/extrtp.xml':
|
||||||
content => template('rhizo_base/outgoing.xml.erb'),
|
content => template('rhizo_base/extrtp.xml.erb'),
|
||||||
require =>
|
require =>
|
||||||
[ Package[ 'freeswitch' ],
|
[ Package[ 'freeswitch' ],
|
||||||
File[ '/etc/freeswitch/' ] ],
|
File[ '/etc/freeswitch/' ] ],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
file { '/etc/freeswitch/sip_profiles/rem_xcode.xml':
|
||||||
file { '/etc/freeswitch/sip_profiles/extrtp/rhizoextrtp.xml':
|
content => template('rhizo_base/rem_xcode.xml.erb'),
|
||||||
content => template('rhizo_base/rhizoextrtp.xml.erb'),
|
|
||||||
require =>
|
require =>
|
||||||
[ Package['freeswitch'],
|
[ Package['freeswitch'],
|
||||||
File['/etc/freeswitch/sip_profiles/extrtp'] ],
|
File['/etc/freeswitch/'] ],
|
||||||
}
|
}
|
||||||
|
|
||||||
file {'/etc/freeswitch/sip_profiles/external':
|
file { '/etc/freeswitch/sip_profiles/GERAN.xml':
|
||||||
ensure => directory,
|
content => template('rhizo_base/GERAN.xml.erb'),
|
||||||
}
|
}
|
||||||
|
|
||||||
file { '/etc/freeswitch/sip_profiles/external/provider.xml':
|
file { '/etc/freeswitch/sip_profiles/gateways/rhizomatica.xml':
|
||||||
content => template('rhizo_base/provider.xml.erb'),
|
|
||||||
require =>
|
|
||||||
[ Package['freeswitch'],
|
|
||||||
File['/etc/freeswitch/sip_profiles/external'] ],
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/freeswitch/sip_profiles/internal.xml':
|
|
||||||
content => template('rhizo_base/internal.xml.erb'),
|
|
||||||
}
|
|
||||||
|
|
||||||
file {'/etc/freeswitch/sip_profiles/outgoing':
|
|
||||||
ensure => directory,
|
|
||||||
}
|
|
||||||
|
|
||||||
file { '/etc/freeswitch/sip_profiles/outgoing/rhizomatica.xml':
|
|
||||||
content => template('rhizo_base/rhizomatica.xml.erb'),
|
content => template('rhizo_base/rhizomatica.xml.erb'),
|
||||||
require =>
|
require =>
|
||||||
[ Package['freeswitch'],
|
[ Package['freeswitch'],
|
||||||
File['/etc/freeswitch/sip_profiles/outgoing'] ],
|
File['/etc/freeswitch/sip_profiles/gateways'] ],
|
||||||
}
|
}
|
||||||
|
|
||||||
file { '/etc/freeswitch/sip_profiles/outgoing/rhizoalt.xml':
|
file { '/etc/freeswitch/sip_profiles/gateways/rhizoalt.xml':
|
||||||
content => template('rhizo_base/rhizoalt.xml.erb'),
|
content => template('rhizo_base/rhizoalt.xml.erb'),
|
||||||
require =>
|
require =>
|
||||||
[ Package['freeswitch'],
|
[ Package['freeswitch'],
|
||||||
File['/etc/freeswitch/sip_profiles/outgoing'] ],
|
File['/etc/freeswitch/sip_profiles/gateways'] ],
|
||||||
}
|
}
|
||||||
|
|
||||||
file { '/etc/freeswitch/autoload_configs/acl.conf.xml':
|
file { '/etc/freeswitch/autoload_configs/acl.conf.xml':
|
||||||
|
|
191
modules/rhizo_base/templates/GERAN.xml.erb
Normal file
191
modules/rhizo_base/templates/GERAN.xml.erb
Normal file
|
@ -0,0 +1,191 @@
|
||||||
|
<profile name="GERAN">
|
||||||
|
|
||||||
|
<domains>
|
||||||
|
<!-- indicator to parse the directory for domains with parse="true" to get gateways-->
|
||||||
|
<!--<domain name="$${domain}" parse="true"/>-->
|
||||||
|
<!-- indicator to parse the directory for domains with parse="true" to get gateways and alias every domain to this profile -->
|
||||||
|
<!--<domain name="all" alias="true" parse="true"/>-->
|
||||||
|
<domain name="all" alias="false" parse="false"/>
|
||||||
|
</domains>
|
||||||
|
|
||||||
|
<settings>
|
||||||
|
<!-- inject delay between dtmf digits on send to help some slow interpreters (also per channel with rtp_digit_delay var -->
|
||||||
|
<!-- <param name="rtp-digit-delay" value="40"/>-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
When calls are in no media this will bring them back to media
|
||||||
|
when you press the hold button.
|
||||||
|
-->
|
||||||
|
<!--<param name="media-option" value="resume-media-on-hold"/> -->
|
||||||
|
<!--
|
||||||
|
This will allow a call after an attended transfer go back to
|
||||||
|
bypass media after an attended transfer.
|
||||||
|
-->
|
||||||
|
<!--<param name="media-option" value="bypass-media-after-att-xfer"/>-->
|
||||||
|
<!-- <param name="user-agent-string" value="FreeSWITCH Rocks!"/> -->
|
||||||
|
<param name="debug" value="0"/>
|
||||||
|
<!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
|
||||||
|
<param name="shutdown-on-fail" value="true"/>
|
||||||
|
<param name="sip-trace" value="no"/>
|
||||||
|
<param name="sip-capture" value="no"/>
|
||||||
|
|
||||||
|
<!-- Use presence_map.conf.xml to convert extension regex to presence protos for routing -->
|
||||||
|
<!-- <param name="presence-proto-lookup" value="true"/> -->
|
||||||
|
|
||||||
|
<!-- Don't be picky about negotiated DTMF just always offer 2833 and accept both 2833 and INFO -->
|
||||||
|
<param name="liberal-dtmf" value="true"/>
|
||||||
|
<param name="watchdog-enabled" value="no"/>
|
||||||
|
|
||||||
|
<param name="log-auth-failures" value="false"/>
|
||||||
|
<param name="forward-unsolicited-mwi-notify" value="false"/>
|
||||||
|
|
||||||
|
<param name="context" value="public"/>
|
||||||
|
<param name="rfc2833-pt" value="101"/>
|
||||||
|
<param name="sip-port" value="5060"/>
|
||||||
|
<param name="dialplan" value="XML"/>
|
||||||
|
<param name="dtmf-duration" value="2000"/>
|
||||||
|
<param name="inbound-codec-prefs" value="GSM,AMR"/>
|
||||||
|
<param name="outbound-codec-prefs" value="GSM,AMR"/>
|
||||||
|
<param name="rtp-timer-name" value="soft"/>
|
||||||
|
<param name="rtp-ip" value="<%= @mncc_ip_address %>"/>
|
||||||
|
<param name="sip-ip" value="<%= @mncc_ip_address %>"/>
|
||||||
|
<!--<param name="hold-music" value="$${hold_music}"/>-->
|
||||||
|
<!-- param name="apply-nat-acl" value="nat.auto"/ -->
|
||||||
|
|
||||||
|
<!-- (default true) set to false if you do not wish to have called party info in 1XX responses -->
|
||||||
|
<!-- <param name="cid-in-1xx" value="false"/> -->
|
||||||
|
|
||||||
|
<!-- extended info parsing -->
|
||||||
|
<!-- <param name="extended-info-parsing" value="true"/> -->
|
||||||
|
|
||||||
|
<param name="aggressive-nat-detection" value="false"/>
|
||||||
|
<!--
|
||||||
|
There are known issues (asserts and segfaults) when 100rel is enabled.
|
||||||
|
It is not recommended to enable 100rel at this time.
|
||||||
|
-->
|
||||||
|
<!--<param name="enable-100rel" value="true"/>-->
|
||||||
|
|
||||||
|
<!-- uncomment if you don't wish to try a next SRV destination on 503 response -->
|
||||||
|
<!-- RFC3263 Section 4.3 -->
|
||||||
|
<!--<param name="disable-srv503" value="true"/>-->
|
||||||
|
|
||||||
|
<!-- Enable Compact SIP headers. -->
|
||||||
|
<!--<param name="enable-compact-headers" value="true"/>-->
|
||||||
|
<!--
|
||||||
|
enable/disable session timers
|
||||||
|
-->
|
||||||
|
<!--<param name="enable-timer" value="false"/>-->
|
||||||
|
<!--<param name="minimum-session-expires" value="120"/>-->
|
||||||
|
<param name="apply-inbound-acl" value="domains"/>
|
||||||
|
<!--
|
||||||
|
This defines your local network, by default we detect your local network
|
||||||
|
and create this localnet.auto ACL for this.
|
||||||
|
-->
|
||||||
|
<param name="local-network-acl" value="localnet.auto"/>
|
||||||
|
<param name="apply-register-acl" value="domains"/>
|
||||||
|
<!--<param name="dtmf-type" value="info"/>-->
|
||||||
|
|
||||||
|
<!-- Caller-ID type (choose one, can be overridden by inbound call type and/or sip_cid_type channel variable -->
|
||||||
|
<!-- Remote-Party-ID header -->
|
||||||
|
<!--<param name="caller-id-type" value="rpid"/>-->
|
||||||
|
|
||||||
|
<!-- P-*-Identity family of headers -->
|
||||||
|
<!--<param name="caller-id-type" value="pid"/>-->
|
||||||
|
|
||||||
|
<!-- neither one -->
|
||||||
|
<!--<param name="caller-id-type" value="none"/>-->
|
||||||
|
|
||||||
|
<param name="record-path" value="$${recordings_dir}"/>
|
||||||
|
<param name="record-template" value="${caller_id_number}.${target_domain}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
|
||||||
|
<!--enable to use presence -->
|
||||||
|
<param name="manage-presence" value="false"/>
|
||||||
|
<!-- send a presence probe on each register to query devices to send presence instead of sending presence with less info -->
|
||||||
|
<!--<param name="presence-probe-on-register" value="true"/>-->
|
||||||
|
<!--<param name="manage-shared-appearance" value="true"/>-->
|
||||||
|
<!-- used to share presence info across sofia profiles -->
|
||||||
|
<!-- Name of the db to use for this profile -->
|
||||||
|
<!--<param name="dbname" value="share_presence"/>-->
|
||||||
|
<param name="presence-hosts" value="$${domain},$${vpn_ip}"/>
|
||||||
|
<param name="presence-privacy" value="$${presence_privacy}"/>
|
||||||
|
<!-- ************************************************* -->
|
||||||
|
|
||||||
|
<!-- This setting is for AAL2 bitpacking on G726 -->
|
||||||
|
<!-- <param name="bitpacking" value="aal2"/> -->
|
||||||
|
<!--max number of open dialogs in proceeding -->
|
||||||
|
<!--<param name="max-proceeding" value="1000"/>-->
|
||||||
|
<!--session timers for all call to expire after the specified seconds -->
|
||||||
|
<!--<param name="session-timeout" value="1800"/>-->
|
||||||
|
<!-- Can be 'true' or 'contact' -->
|
||||||
|
<!--<param name="multiple-registrations" value="contact"/>-->
|
||||||
|
<!--set to 'greedy' if you want your codec list to take precedence -->
|
||||||
|
<param name="inbound-codec-negotiation" value="generous"/>
|
||||||
|
<!-- if you want to send any special bind params of your own -->
|
||||||
|
<!--<param name="bind-params" value="transport=udp"/>-->
|
||||||
|
<!--<param name="unregister-on-options-fail" value="true"/>-->
|
||||||
|
<!-- Send an OPTIONS packet to all registered endpoints -->
|
||||||
|
<!--<param name="all-reg-options-ping" value="true"/>-->
|
||||||
|
<!-- Send an OPTIONS packet to NATed registered endpoints. Can be 'true' or 'udp-only'. -->
|
||||||
|
<!--<param name="nat-options-ping" value="true"/>-->
|
||||||
|
|
||||||
|
<!-- TLS: disabled by default, set to "true" to enable -->
|
||||||
|
<param name="tls" value="false"/>
|
||||||
|
|
||||||
|
<!-- turn on auto-flush during bridge (skip timer sleep when the socket already has data)
|
||||||
|
(reduces delay on latent connections default true, must be disabled explicitly)-->
|
||||||
|
<!--<param name="rtp-autoflush-during-bridge" value="false"/>-->
|
||||||
|
|
||||||
|
<!--If you don't want to pass through timestamps from 1 RTP call to another (on a per call basis with rtp_rewrite_timestamps chanvar)-->
|
||||||
|
<param name="rtp-rewrite-timestamps" value="false"/>
|
||||||
|
<!--<param name="pass-rfc2833" value="true"/>-->
|
||||||
|
<!--If you have ODBC support and a working dsn you can use it instead of SQLite-->
|
||||||
|
<!--<param name="odbc-dsn" value="dsn:user:pass"/>-->
|
||||||
|
|
||||||
|
<!--Uncomment to set all inbound calls to no media mode-->
|
||||||
|
<!--<param name="inbound-bypass-media" value="true"/>-->
|
||||||
|
|
||||||
|
<!--Uncomment to set all inbound calls to proxy media mode-->
|
||||||
|
<!--<param name="inbound-proxy-media" value="true"/>-->
|
||||||
|
|
||||||
|
<!-- Let calls hit the dialplan before selecting codec for the a-leg -->
|
||||||
|
<param name="inbound-late-negotiation" value="true"/>
|
||||||
|
<param name="inherit_codec" value="true"/>
|
||||||
|
<!-- Allow ZRTP clients to negotiate end-to-end security associations (also enables late negotiation) -->
|
||||||
|
<!-- param name="inbound-zrtp-passthru" value="true"/ -->
|
||||||
|
|
||||||
|
<!-- this lets anything register -->
|
||||||
|
<!-- comment the next line and uncomment one or both of the other 2 lines for call authentication -->
|
||||||
|
<!-- <param name="accept-blind-reg" value="true"/> -->
|
||||||
|
|
||||||
|
<!-- accept any authentication without actually checking (not a good feature for most people) -->
|
||||||
|
<!-- <param name="accept-blind-auth" value="true"/> -->
|
||||||
|
|
||||||
|
<!-- suppress CNG on this profile or per call with the 'suppress_cng' variable -->
|
||||||
|
<!-- <param name="suppress-cng" value="true"/> -->
|
||||||
|
|
||||||
|
<param name="auth-calls" value="false"/>
|
||||||
|
|
||||||
|
<param name="ext-rtp-ip" value="<%= @mncc_ip_address %>"/>
|
||||||
|
<param name="ext-sip-ip" value="<%= @mncc_ip_address %>"/>
|
||||||
|
|
||||||
|
<!-- rtp inactivity timeout -->
|
||||||
|
<param name="rtp-timeout-sec" value="300"/>
|
||||||
|
<param name="rtp-hold-timeout-sec" value="1800"/>
|
||||||
|
<!-- VAD choose one (out is a good choice); -->
|
||||||
|
<!-- <param name="vad" value="in"/> -->
|
||||||
|
<!-- <param name="vad" value="out"/> -->
|
||||||
|
<!-- <param name="vad" value="both"/> -->
|
||||||
|
<!--<param name="alias" value="sip:10.0.1.251:5555"/>-->
|
||||||
|
<!--
|
||||||
|
These are enabled to make the default config work better out of the box.
|
||||||
|
If you need more than ONE domain you'll need to not use these options.
|
||||||
|
|
||||||
|
-->
|
||||||
|
<!--all inbound reg will look in this domain for the users -->
|
||||||
|
<param name="force-register-domain" value="$${domain}"/>
|
||||||
|
<!--force the domain in subscriptions to this value -->
|
||||||
|
<param name="force-subscription-domain" value="$${domain}"/>
|
||||||
|
<!--all inbound reg will stored in the db using this domain -->
|
||||||
|
<param name="force-register-db-domain" value="$${domain}"/>
|
||||||
|
|
||||||
|
</settings>
|
||||||
|
</profile>
|
86
modules/rhizo_base/templates/extrtp.xml.erb
Normal file
86
modules/rhizo_base/templates/extrtp.xml.erb
Normal file
|
@ -0,0 +1,86 @@
|
||||||
|
<profile name="extrtp">
|
||||||
|
<!-- This profile is runs CP over the VPN and media over public -->
|
||||||
|
<!-- It's posssible to have problems with NAT punching -->
|
||||||
|
<gateways>
|
||||||
|
<gateway name="extrtp">
|
||||||
|
<param name="username" value="<%= @voip_username %>"/>
|
||||||
|
<param name="from-user" value="<%= @voip_fromuser %>"/>
|
||||||
|
<param name="password" value="n/a"/>
|
||||||
|
<param name="proxy" value="10.23.0.14"/>
|
||||||
|
<param name="register" value="false"/>
|
||||||
|
<param name="caller-id-in-from" value="true"/>
|
||||||
|
</gateway>
|
||||||
|
</gateways>
|
||||||
|
|
||||||
|
<aliases>
|
||||||
|
</aliases>
|
||||||
|
|
||||||
|
<domains>
|
||||||
|
<domain name="all" alias="false" parse="false"/>
|
||||||
|
</domains>
|
||||||
|
|
||||||
|
<settings>
|
||||||
|
<param name="debug" value="0"/>
|
||||||
|
<!-- If you want FreeSWITCH to shutdown if this profile fails to load, uncomment the next line. -->
|
||||||
|
<!-- <param name="shutdown-on-fail" value="true"/> -->
|
||||||
|
<param name="sip-trace" value="no"/>
|
||||||
|
<param name="sip-capture" value="no"/>
|
||||||
|
<param name="rfc2833-pt" value="101"/>
|
||||||
|
<!-- RFC 5626 : Send reg-id and sip.instance -->
|
||||||
|
<!--<param name="enable-rfc-5626" value="true"/> -->
|
||||||
|
<param name="sip-port" value="5092"/>
|
||||||
|
<param name="dialplan" value="XML"/>
|
||||||
|
<param name="context" value="public"/>
|
||||||
|
<param name="dtmf-duration" value="2000"/>
|
||||||
|
<param name="inbound-codec-prefs" value="G729,PCMA,PCMU"/>
|
||||||
|
<param name="outbound-codec-prefs" value="G729,PCMA,PCMU"/>
|
||||||
|
<!--<param name="hold-music" value="$${hold_music}"/>-->
|
||||||
|
<param name="rtp-timer-name" value="soft"/>
|
||||||
|
<!--<param name="enable-100rel" value="true"/>-->
|
||||||
|
<!--<param name="disable-srv503" value="true"/>-->
|
||||||
|
<!-- This could be set to "passive" -->
|
||||||
|
<param name="local-network-acl" value="localnet.auto"/>
|
||||||
|
<param name="manage-presence" value="false"/>
|
||||||
|
|
||||||
|
<param name="aggressive-nat-detection" value="false"/>
|
||||||
|
<param name="nat-options-ping" value="false"/>
|
||||||
|
<param name="inbound-codec-negotiation" value="greedy"/>
|
||||||
|
<param name="nonce-ttl" value="60"/>
|
||||||
|
<param name="auth-calls" value="false"/>
|
||||||
|
<param name="inbound-late-negotiation" value="true"/>
|
||||||
|
<param name="inbound-zrtp-passthru" value="true"/> <!-- (also enables late negotiation) -->
|
||||||
|
|
||||||
|
<param name="rtp-ip" value="$${interface_ip}"/>
|
||||||
|
<param name="sip-ip" value="$${vpn_ip}"/>
|
||||||
|
<param name="ext-rtp-ip" value="stun:meet.rhizomatica.org:4445"/>
|
||||||
|
<param name="ext-sip-ip" value="$${vpn_ip}"/>
|
||||||
|
|
||||||
|
<param name="rtp-timeout-sec" value="90"/>
|
||||||
|
<param name="rtp-hold-timeout-sec" value="1800"/>
|
||||||
|
<!--<param name="enable-3pcc" value="true"/>-->
|
||||||
|
|
||||||
|
<!-- TLS: disabled by default, set to "true" to enable -->
|
||||||
|
<param name="tls" value="$${external_ssl_enable}"/>
|
||||||
|
<!-- Set to true to not bind on the normal sip-port but only on the TLS port -->
|
||||||
|
<param name="tls-only" value="false"/>
|
||||||
|
<!-- additional bind parameters for TLS -->
|
||||||
|
<param name="tls-bind-params" value="transport=tls"/>
|
||||||
|
<!-- Port to listen on for TLS requests. (5081 will be used if unspecified) -->
|
||||||
|
<param name="tls-sip-port" value="$${external_tls_port}"/>
|
||||||
|
<!-- Location of the agent.pem and cafile.pem ssl certificates (needed for TLS server) -->
|
||||||
|
<!--<param name="tls-cert-dir" value=""/>-->
|
||||||
|
<!-- Optionally set the passphrase password used by openSSL to encrypt/decrypt TLS private key files -->
|
||||||
|
<param name="tls-passphrase" value=""/>
|
||||||
|
<!-- Verify the date on TLS certificates -->
|
||||||
|
<param name="tls-verify-date" value="true"/>
|
||||||
|
<!-- TLS verify policy, when registering/inviting gateways with other servers (outbound) or handling inbound registration/invite requests how should we verify their certificate -->
|
||||||
|
<!-- set to 'in' to only verify incoming connections, 'out' to only verify outgoing connections, 'all' to verify all connections, also 'in_subjects', 'out_subjects' and 'all_subjects' for subject validation. Multiple policies can be split with a '|' pipe -->
|
||||||
|
<param name="tls-verify-policy" value="none"/>
|
||||||
|
<!-- Certificate max verify depth to use for validating peer TLS certificates when the verify policy is not none -->
|
||||||
|
<param name="tls-verify-depth" value="2"/>
|
||||||
|
<!-- If the tls-verify-policy is set to subjects_all or subjects_in this sets which subjects are allowed, multiple subjects can be split with a '|' pipe -->
|
||||||
|
<param name="tls-verify-in-subjects" value=""/>
|
||||||
|
<!-- TLS version ("sslv23" (default), "tlsv1"). NOTE: Phones may not work with TLSv1 -->
|
||||||
|
<param name="tls-version" value="$${sip_tls_version}"/>
|
||||||
|
</settings>
|
||||||
|
</profile>
|
|
@ -9,31 +9,32 @@ LOGFILE="/var/log/monitor_fs.log"
|
||||||
|
|
||||||
IFS=
|
IFS=
|
||||||
FS_STATUS="$(fs_cli -x 'sofia status')"
|
FS_STATUS="$(fs_cli -x 'sofia status')"
|
||||||
|
FS_STATUS_GW="$(fs_cli -x 'sofia status gateway')"
|
||||||
|
|
||||||
if !(echo $FS_STATUS | egrep -q "internal.*<%= @mncc_ip_address %>"); then
|
if !(echo $FS_STATUS | egrep -q "GERAN.*<%= @mncc_ip_address %>"); then
|
||||||
logc "Missing internal profile! Restarting Profile";
|
logc "Missing GERAN profile! Restarting Profile";
|
||||||
fs_cli -x "sofia profile internal stop"
|
fs_cli -x "sofia profile GERAN stop"
|
||||||
sleep 10
|
sleep 10
|
||||||
fs_cli -x "sofia profile internal start"
|
fs_cli -x "sofia profile GERAN start"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if !(echo $FS_STATUS | grep -q "external::provider") && (ping -qc 5 8.8.8.8 > /dev/null); then
|
if !(echo $FS_STATUS_GW | grep -q "extrtp::extrtp") && (ping -qc 5 8.8.8.8 > /dev/null); then
|
||||||
logc "Missing external provider! Restarting Profile";
|
logc "Missing external RTP Gateway. Restarting Profile";
|
||||||
fs_cli -x "sofia profile external stop"
|
fs_cli -x "sofia profile extrtp stop"
|
||||||
sleep 10
|
sleep 10
|
||||||
fs_cli -x "sofia profile external start"
|
fs_cli -x "sofia profile extrtp start"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if !(echo $FS_STATUS | grep -q "outgoing::rhizomatica") && (ping -qc 5 10.23.0.2 > /dev/null); then
|
if !(echo $FS_STATUS_GW | grep -q "vpn::rhizomatica") && (ping -qc 5 10.23.0.2 > /dev/null); then
|
||||||
logc "Missing outgoing profile! Restarting Profile";
|
logc "Missing VPN Gateway. Restarting Profile";
|
||||||
fs_cli -x "sofia profile outgoing stop"
|
fs_cli -x "sofia profile vpn stop"
|
||||||
sleep 10
|
sleep 10
|
||||||
fs_cli -x "sofia profile outgoing start"
|
fs_cli -x "sofia profile vpn start"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if !(echo $FS_STATUS | grep -q "internalvpn") && (ping -qc 5 10.23.0.2 > /dev/null); then
|
if !(echo $FS_STATUS | grep -q "rem_xcode") && (ping -qc 5 10.23.0.2 > /dev/null); then
|
||||||
logc "Missing internal VPN. Restarting FreeSWITCH profile";
|
logc "Missing Remote Transcoding Profile. Restarting FreeSWITCH profile";
|
||||||
fs_cli -x "sofia profile internalvpn stop"
|
fs_cli -x "sofia profile rem_xcode stop"
|
||||||
sleep 10
|
sleep 10
|
||||||
fs_cli -x "sofia profile internalvpn start"
|
fs_cli -x "sofia profile rem_xcode start"
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
<gateways>
|
<gateways>
|
||||||
<gateway name="xcode">
|
<gateway name="xcode">
|
||||||
<param name="username" value="rhizomatica"/>
|
<param name="username" value="<%= @voip_username %>"/>
|
||||||
<param name="from-user" value="buster"/>
|
<param name="from-user" value="<%= @voip_fromuser %>"/>
|
||||||
<param name="password" value="xcode"/>
|
<param name="password" value="n/a"/>
|
||||||
<param name="proxy" value="10.23.0.14"/>
|
<param name="proxy" value="10.23.0.14"/>
|
||||||
<param name="register" value="true"/>
|
<param name="register" value="true"/>
|
||||||
<param name="caller-id-in-from" value="true"/>
|
<param name="caller-id-in-from" value="true"/>
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
<param name="nonce-ttl" value="60"/>
|
<param name="nonce-ttl" value="60"/>
|
||||||
<param name="auth-calls" value="false"/>
|
<param name="auth-calls" value="false"/>
|
||||||
<param name="inbound-late-negotiation" value="true"/>
|
<param name="inbound-late-negotiation" value="true"/>
|
||||||
<param name="inbound-zrtp-passthru" value="true"/>
|
<param name="disable-transcoding" value="true"/>
|
||||||
|
|
||||||
<param name="rtp-ip" value="$${interface_ip}"/>
|
<param name="rtp-ip" value="$${interface_ip}"/>
|
||||||
<param name="sip-ip" value="$${vpn_ip}"/>
|
<param name="sip-ip" value="$${vpn_ip}"/>
|
|
@ -38,6 +38,7 @@
|
||||||
|
|
||||||
<X-PRE-PROCESS cmd="set" data="local_ip_v4=<%= @vpn_ip_address %>"/>
|
<X-PRE-PROCESS cmd="set" data="local_ip_v4=<%= @vpn_ip_address %>"/>
|
||||||
<X-PRE-PROCESS cmd="set" data="vpn_ip=<%= @vpn_ip_address %>"/>
|
<X-PRE-PROCESS cmd="set" data="vpn_ip=<%= @vpn_ip_address %>"/>
|
||||||
|
<X-PRE-PROCESS cmd="set" data="lan_ip=<%= @wan_ip_address %>"/>
|
||||||
<X-PRE-PROCESS cmd="set" data="interface_ip=interface:<%= @fs_bound_if %>"/>
|
<X-PRE-PROCESS cmd="set" data="interface_ip=interface:<%= @fs_bound_if %>"/>
|
||||||
<X-PRE-PROCESS cmd="set" data="external_ip=<%= @wan_ip_address %>"/>
|
<X-PRE-PROCESS cmd="set" data="external_ip=<%= @wan_ip_address %>"/>
|
||||||
<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/rccn"/>
|
<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/rccn"/>
|
||||||
|
@ -148,7 +149,7 @@
|
||||||
127 - BV32
|
127 - BV32
|
||||||
|
|
||||||
-->
|
-->
|
||||||
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=AMR,OPUS,G729,GSM,PCMA"/>
|
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=AMR,GSM,OPUS,PCMA,PCMU,G729"/>
|
||||||
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,G729,AMR,GSM"/>
|
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,G729,AMR,GSM"/>
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue