-- vars.xml
<!-- Codecs -->
<!-- G7221@32000h,G7221@16000h,G722,PCMU,PCMA,iLBC,GSM,H263,H264 -->
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=PCMA, PCMU, GSM, G7221@32000h,G7221@16000h,G722" />
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=PCMU,PCMA,GSM" />
<X-PRE-PROCESS cmd="set" data="media_mix_inbound_outbound_codecs=true" />
<!-- Defaults -->
<X-PRE-PROCESS cmd="set" data="call_debug=false" />
<X-PRE-PROCESS cmd="set" data="console_loglevel=info" />
<X-PRE-PROCESS cmd="set" data="default_areacode=208" />
<X-PRE-PROCESS cmd="set" data="sit=%(274,0,913.8);%(274,0,1370.6);%(380,0,1776.7)" />
<X-PRE-PROCESS cmd="set" data="use_profile=internal" />
<X-PRE-PROCESS cmd="set" data="default_language=en" />
<X-PRE-PROCESS cmd="set" data="default_dialect=us" />
<X-PRE-PROCESS cmd="set" data="default_voice=callie" />
<X-PRE-PROCESS cmd="set" data="ajax_refresh_rate=3000" />
<X-PRE-PROCESS cmd="set" data="xml_cdr_archive=dir" />
<X-PRE-PROCESS cmd="set" data="ringback=$${us-ring}" />
<X-PRE-PROCESS cmd="set" data="transfer_ringback=$${us-ring}" />
<X-PRE-PROCESS cmd="set" data="record_ext=wav" />
<X-PRE-PROCESS cmd="set" data="default_country=NG" />
<X-PRE-PROCESS cmd="set" data="default_countrycode=234" />
<X-PRE-PROCESS cmd="set" data="default_exitcode=009" />
<X-PRE-PROCESS cmd="set" data="timezone=Africa/Lagos" />
<!-- Dingaling -->
<!-- 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 -->
<X-PRE-PROCESS cmd="set" data="xmpp_client_profile=xmppc" />
<X-PRE-PROCESS cmd="set" data="xmpp_server_profile=xmpps" />
<X-PRE-PROCESS cmd="set" data="bind_server_ip=auto" />
<!-- Domain -->
<X-PRE-PROCESS cmd="set" data="domain_name=$${domain}" />
<!-- IP Address -->
<!-- (If you''re going to load test then please input real IP addresses for external_rtp_ip and external_sip_ip)
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"
where fs.mydomain.com is a DNS A record-useful when fs is on a dynamic IP address, and uses a dynamic DNS updater. If unspecified, the bind_server_ip value is used. Used by: sofia.conf.xml dingaling.conf.xml -->
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=$${local_ip_v4}" />
<X-PRE-PROCESS cmd="set" data="external_sip_ip=$${local_ip_v4}" />
<!-- Music on Hold -->
<X-PRE-PROCESS cmd="set" data="hold_music=local_stream://default" />
<!-- Ringtones -->
<!-- Default ringtone (US) -->
<X-PRE-PROCESS cmd="set" data="us-ring=%(2000,4000,440,480)" />
<!-- SIP -->
<!-- Used to turn on sip loopback unrolling. -->
<X-PRE-PROCESS cmd="set" data="unroll_loops=true" />
<X-PRE-PROCESS cmd="set" data="sip_tls_version=tlsv1" />
<!-- SIP Profile: External -->
<X-PRE-PROCESS cmd="set" data="external_auth_calls=false" />
<X-PRE-PROCESS cmd="set" data="external_sip_port=5080" />
<X-PRE-PROCESS cmd="set" data="external_tls_port=5081" />
<X-PRE-PROCESS cmd="set" data="external_ssl_enable=false" />
<X-PRE-PROCESS cmd="set" data="external_ssl_dir=$${conf_dir}/tls" />
<!-- SIP Profile: Internal -->
<X-PRE-PROCESS cmd="set" data="internal_auth_calls=true" />
<X-PRE-PROCESS cmd="set" data="internal_sip_port=5060" />
<X-PRE-PROCESS cmd="set" data="internal_tls_port=5061" />
<X-PRE-PROCESS cmd="set" data="internal_ssl_enable=false" />
<X-PRE-PROCESS cmd="set" data="internal_ssl_dir=$${conf_dir}/tls" />
<!-- Sound -->
<!-- Sets the sound directory. -->
<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/en/us/callie" />
-- internal profile
<document type="freeswitch/xml">
<section name="configuration" description="configuration">
<configuration name="sofia.conf" description="Sofia Endpoint">
<global-settings>
<param name="log-level" value="0"></param>
<param name="debug-presence" value="0"></param>
</global-settings>
<profiles>
<profile name="internal">
<aliases></aliases>
<gateways>
</gateways>
<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="false"
parse="true"
/>
</domains>
<settings>
<param name="apply-nat-acl" value="nat.auto"/>
<param name="auth-calls" value="$${internal_auth_calls}"/>
<param name="ext-sip-ip" value="139.162.188.90"/>
<param name="sip-port" value="5060"/>
<param name="ext-rtp-ip" value="139.162.188.90"/>
<param name="aggressive-nat-detection" value="true"/>
<param name="debug" value="0"/>
<param name="user-agent-string" value="FreeSWITCH"/>
<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="true"/>
<param name="inbound-reg-force-matching-username" value="true"/>
<param name="auth-all-packets" value="false"/>
<param name="dialplan" value="XML"/>
<param name="challenge-realm" value="auto_to"/>
<param name="inbound-codec-negotiation" value="generous"/>
<param name="tls-only" value="false"/>
<param name="tls-bind-params" value="transport=tls"/>
<param name="manage-presence" value="true"/>
<param name="presence-probe-on-register" value="true"/>
<param name="manage-shared-appearance" value="true"/>
<param name="context" value="public"/>
<param name="tls-version" value="$${sip_tls_version}"/>
<param name="sip-trace" value="no"/>
<param name="sip-capture" value="no"/>
<param name="nonce-ttl" value="60"/>
<param name="local-network-acl" value="localnet.auto"/>
<param name="forward-unsolicited-mwi-notify" value="false"/>
<param name="rtp-timeout-sec" value="300"/>
<param name="rtp-hold-timeout-sec" value="1800"/>
<param name="rfc2833-pt" value="101"/>
<param name="dtmf-type" value="rfc2833"/>
<param name="dtmf-duration" value="2000"/>
<param name="NDLB-force-rport" value="safe"/>
<param name="rtp-timer-name" value="soft"/>
<param name="tls-passphrase" value=""/>
<param name="tls-verify-date" value="true"/>
<param name="hold-music" value="$${hold_music}"/>
<param name="tls-verify-depth" value="2"/>
<param name="tls-verify-in-subjects" value=""/>
</settings>
</profile>
</profiles>
</configuration>
</section>
</document>
-- dialplan
<document type="freeswitch/xml">
<section name="dialplan" description="">
<context name="public">
<extension name="dayo" continue="true" uuid="0b9e37ca-b9ad-4f8a-9590-bb2ae00eec8c"><condition field="destination_number" expression="^\d{4}$"><action application="export" data="domain_name=${context}"/><action application="bridge" data="user/${destination_number}@${domain_name}"/></condition></extension>
<extension name="user_exists" continue="true" uuid="d22d4d07-66a3-430a-9af3-7ed16c9ec5e2"><condition field="" expression=""><action application="set" data="user_exists=${user_exists id ${destination_number} ${domain_name}}"/></condition><condition field="${user_exists}" expression="^true$"><action application="set" data="extension_uuid=${user_data ${destination_number}@${domain_name} var extension_uuid}"/><action application="set" data="hold_music=${user_data ${destination_number}@${domain_name} var hold_music}"/></condition></extension>
<extension name="call-direction" continue="true" uuid="963f09de-2f51-49c4-907c-92e7036977a1"><condition field="${call_direction}" expression="^(inbound|outbound|local)$" break="never"><anti-action application="set" data="call_direction=local"/></condition></extension>
</context>
</section>
</document>
--- extension
<document type="freeswitch/xml">
<section name="directory">
<domain name="tekart.convodeck.com" alias="true">
<params>
<param name="jsonrpc-allowed-methods" value="verto"/>
<param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/>
</params>
<groups>
<group name="default">
<users>
<user id="1001">
<params>
<param name="password" value="pass998"/>
<param name="vm-enabled" value="false"/>
<param name="dial-string" value="{sip_invite_domain=tekart.convodeck.com,presence_id=1001@tekart.convodeck.com}${sofia_contact(1001@tekart.convodeck.com)}"/>
<param name="verto-context" value="tekart.convodeck.com"/>
<param name="verto-dialplan" value="XML"/>
<param name="jsonrpc-allowed-methods" value="verto"/>
<param name="jsonrpc-allowed-event-channels" value="demo,conference,presence"/>
</params>
<variables>
<variable name="domain_uuid" value="None"/>
<varibale name="domain_name" value="tekart.convodeck.com"/>
<variable name="user_id" value="4"/>
<variable name="extension_uuid" value="ca301077-645a-4740-a33a-e5989c8b4ab4"/>
<variable name="call_timeout" value="30"/>
<variable name="caller_id_name" value="1001"/>
<variable name="caller_id_number" value="1001"/>
<variable name="presence_id" value="1001@tekart.convodeck.com"/>
<variable name="user_context" value="tekart.convodeck.com"/>
<variable name="bypass_media" value="false"/>
<variable name="export_vars" value="domain_name"/>
</variables>
</user>
</users>
</group>
</groups>
</domain>
</section>
</document>
-------- Issue
cf58d33d-85c0-4848-99d8-42b9561a952c 2018-08-29 15:55:58.555234 [WARNING] mod_dptools.c:4184 Can't find user [1001@public]
cf58d33d-85c0-4848-99d8-42b9561a952c 2018-08-29 15:55:58.555234 [NOTICE] switch_ivr_originate.c:2851 Cannot create outgoing channel of type [user] cause: [SUBSCRIBER_ABSENT]
cf58d33d-85c0-4848-99d8-42b9561a952c 2018-08-29 15:55:58.555234 [DEBUG] switch_ivr_originate.c:3848 Originate Resulted in Error Cause: 20 [SUBSCRIBER_ABSENT]
cf58d33d-85c0-4848-99d8-42b9561a952c 2018-08-29 15:55:58.555234 [INFO] mod_dptools.c:3436 Originate Failed. Cause: SUBSCRIBER_ABSENT
------