/etc/ngcp-config/config.yml is the main configuration YAML file used by Sipwise NGCP. After every changes it need to run the command ngcpcfg apply my commit message to apply changes (followed by ngcpcfg push in the PRO version to apply changes to sp2). The following is a brief description of the main variables contained into /etc/ngcp-config/config.yml file.
This section contains parameters for the additional applications that may be activated on sip:provider CE.
apps: malicious_call: no
The following is the asterisk section:
asterisk:
log:
facility: local6
rtp:
maxport: 20000
minport: 10000
sip:
bindport: 5070
dtmfmode: rfc2833
voicemail:
enable: 'no'
fromstring: 'Voicemail server'
greeting:
busy_custom_greeting: '/home/user/file_no_extension'
busy_overwrite_default: 'no'
busy_overwrite_subscriber: 'no'
unavail_custom_greeting: '/home/user/file_no_extension'
unavail_overwrite_default: 'no'
unavail_overwrite_subscriber: 'no'
mailbody: 'You have received a new message from ${VM_CALLERID} in voicebox ${VM_MAILBOX} on ${VM_DATE}.'
mailsubject: '[Voicebox] New message ${VM_MSGNUM} in voicebox ${VM_MAILBOX}'
max_msg_length: 180
maxgreet: 60
maxmsg: 30
maxsilence: 0
min_msg_length: 3
normalize_match: '^00|\+([1-9][0-9]+)$'
normalize_replace: '$1'
serveremail: voicebox@sip.sipwise.comThe following is the autoprovisioning section:
autoprov:
hardphone:
skip_vendor_redirect: 'no'
server:
bootstrap_port: 1445
ca_certfile: '/etc/ngcp-config/ssl/client-auth-ca.crt'
host: localhost
port: 1444
server_certfile: '/etc/ngcp-config/ssl/myserver.crt'
server_keyfile: '/etc/ngcp-config/ssl/myserver.key'
ssl_enabled: 'yes'
softphone:
config_lockdown: 0
webauth: 0The following is the backup tools section:
backuptools:
cdrexport_backup:
enable: 'no'
etc_backup:
enable: 'no'
mail:
address: noc@company.org
error_subject: '[ngcp-backup] Problems detected during daily backup'
log_subject: '[ngcp-backup] Daily backup report'
send_errors: 'no'
send_log: 'no'
mysql_backup:
enable: 'no'
exclude_dbs: 'syslog sipstats information_schema'
rotate_days: 7
storage_dir: '/var/backup/ngcp_backup'
temp_backup_dir: '/tmp/ngcp_backup'The following is the cdr export section:
cdrexport: daily_folder: 'yes' export_failed: 'no' export_incoming: 'no' exportpath: '/home/jail/home/cdrexport' full_names: 'yes' monthly_folder: 'yes'
The following is the check tools section:
checktools:
collcheck:
cpuidle: 0.1
dfused: 0.9
eximmaxqueue: 15
loadlong: 2
loadmedium: 2
loadshort: 3
maxage: 600
memused: 0.7
siptimeout: 15
swapfree: 0.5
active_check_enable: 1
asr_ner_statistics: 1
exim_check_enable: 0
force: 0
kamailio_check_concurrent_calls_enable: 0
kamailio_check_dialog_active_enable: 1
kamailio_check_dialog_early_enable: 1
kamailio_check_dialog_incoming_enable: 1
kamailio_check_dialog_local_enable: 1
kamailio_check_dialog_outgoing_enable: 1
kamailio_check_dialog_relay_enable: 1
kamailio_check_shmem_enable: 1
kamailio_check_usrloc_regdevices_enable: 1
kamailio_check_usrloc_regusers_enable: 1
mpt_check_enable: 1
mysql_check_enable: 1
mysql_check_replication: 1
oss_check_provisioned_subscribers_enable: 1
sip_check_enable: 1
sipstats_check_num_packets: 1
sipstats_check_num_packets_perday: 1
sipstats_check_partition_size: 1
snmpd:
communities:
public:
- localhost
trap_communities:
public:
- localhostThe following is the cleanup tools section:
cleanuptools:
acc_cleanup_days: 90
archive_targetdir: '/var/backups/cdr'
binlog_days: 15
cdr_archive_months: 2
cdr_backup_months: 2
cdr_backup_retro: 3
compress: gzip
delete_old_cdr_files:
enabled: 'no'
max_age_days: 30
paths:
-
max_age_days: ~
path: '/home/jail/home/*/20[0-9][0-9][0-9][0-9]/[0-9][0-9]'
remove_empty_directories: 'yes'
wildcard: 'yes'
-
max_age_days: ~
path: '/home/jail/home/cdrexport/resellers/*/20[0-9][0-9][0-9][0-9]/[0-9][0-9]'
remove_empty_directories: 'yes'
wildcard: 'yes'
-
max_age_days: ~
path: '/home/jail/home/cdrexport/system/20[0-9][0-9][0-9][0-9]/[0-9][0-9]'
remove_empty_directories: 'yes'
wildcard: 'yes'
sql_batch: 10000
trash_cleanup_days: 30acc table in kamailio database
will be deleted after this time
cdr_backup_months months first, and store them
in backup tables. Any older record will be left untouched.
cleanuptools.delete_old_cdr_files:
yes) or disable (no) exported CDR cleanup.
paths: an array of path definitions
yes) or disable (no) using wildcards in the path
yes) or disable (no) removing empty
directories if those are found in the given path
path
acc_trash and acc_backup
tables in kamailio database will be deleted.
For the description of cleanuptools please visit Cleanuptools Description Section 13.4, “Accounting Data (CDR) Cleanup” section of the handbook.
The following is the cluster sets section:
cluster_sets:
default:
dispatcher_id: 50
default_set: default
type: centraldefault
central or distributed
The following is the database section:
database: bufferpoolsize: 24768M
The following is the fax server section:
faxserver: enable: yes fail_attempts: '3' fail_retry_secs: '60' mail_from: 'Sipwise NGCP FaxServer <voipfax@ngcp.sipwise.local>'
The following is the general section:
general: adminmail: adjust@example.org companyname: sipwise lang: en
The following is the heartbeat section:
heartbeat:
hb_watchdog:
action_max: 5
enable: 'yes'
interval: 10
transition_max: 10
pingnodes:
- 10.60.1.1
- 192.168.3.4The following is the legal intercept section:
intercept:
captagent:
port: 18090
schema: http
enabled: 'no'The following is the kamailio section:
kamailio:
lb:
debug: 'no'
extra_sockets: ~
max_forwards: 70
nattest_exception_ips:
- 1.2.3.4
- 5.6.7.8
pkg_mem: 16
port: 5060
security:
dos_ban_enable: 'yes'
dos_ban_time: 300
dos_reqs_density_per_unit: 50
dos_sampling_time_unit: 5
dos_whitelisted_ips: ~
dos_whitelisted_subnets: ~
failed_auth_attempts: 3
failed_auth_ban_enable: 'yes'
failed_auth_ban_time: 3600
shm_mem: 2012
start: 'yes'
strict_routing_safe: 'no'
tcp_children: 8
tcp_max_connections: 2048
tls:
enable: 'no'
port: 5061
sslcertfile: '/etc/kamailio/kamailio-selfsigned.pem'
sslcertkeyfile: '/etc/kamailio/kamailio-selfsigned.key'
udp_children: 8
use_dns_cache: 'on'
proxy:
allow_info_method: 'no'
allow_peer_relay: 'no'
allow_refer_method: 'no'
authenticate_bye: 'no'
cf_depth_limit: 10
children: 8
debug: 'no'
default_expires: 3600
enum_suffix: e164.arpa.
filter_100rel_from_supported: 'yes'
filter_failover_response: '408|500|503'
fritzbox:
enable: 'no'
prefixes:
- 0$avp(caller_ac)
- $avp(caller_cc)$avp(caller_ac)
- '\+$avp(caller_cc)$avp(caller_ac)'
- 00$avp(caller_cc)$avp(caller_ac)
special_numbers:
- 112
- 110
- 118[0-9]{2}
foreign_domain_via_peer: 'no'
ignore_auth_realm: 'no'
keep_original_to: 'no'
lnp:
api:
invalid_lnp_routing_codes:
- ^EE00
- ^DD00
lnp_request_blacklist: []
lnp_request_whitelist: []
request_timeout: '1000'
enabled: no
type: api
max_expires: 43200
max_gw_lcr: 128
max_registrations_per_subscriber: 5
min_expires: 60
nathelper_dbro: 'no'
natping_interval: 30
natping_processes: 7
nonce_expire: 300
pbx:
hunt_display_indicator: '[h]'
perform_peer_lcr: 0
pkg_mem: 16
port: 5062
presence:
enable: 'yes'
max_expires: '3600'
reginfo_domain: example.org
proxy_lookup: 'no'
set_ruri_to_peer_auth_realm: 'no'
shm_mem: 64
start: 'yes'
tcp_children: 4
use_enum: 'no'
usrloc_dbmode: 1local (local LNP database) and api (LNP lookup through external gateways). PLEASE NOTE: the api type of LNP lookup is only available for NGCP PRO / CARRIER installations.
api type]: number matching pattern for routing numbers that represent invalid call destinations; an announcement is played in that case and the call is dropped
api type]: list of matching patterns of called numbers for which LNP lookup must be done
api type]: list of matching patterns of called numbers for which LNP lookup must not be done
api type]: timeout in milliseconds while Proxy waits for the response of an LNP query from Sipwise LNP daemon
The following is the mediator section:
mediator: interval: 10
The following is the modules section:
modules:
- enable: no
name: dummy
options: numdummies=2The following is the nginx section:
nginx: status_port: 8081 xcap_port: 1080
The following is the ntp server section:
ntp:
servers:
- 0.debian.pool.ntp.org
- 1.debian.pool.ntp.org
- 2.debian.pool.ntp.org
- 3.debian.pool.ntp.orgThe following is the ossbss section:
ossbss:
apache:
port: 2443
proxyluport: 1080
restapi:
sslcertfile: '/etc/ngcp-panel/api_ssl/api_ca.crt'
sslcertkeyfile: '/etc/ngcp-panel/api_ssl/api_ca.key'
serveradmin: support@sipwise.com
servername: "\"myserver\""
ssl_enable: 'yes'
sslcertfile: '/etc/ngcp-config/ssl/myserver.crt'
sslcertkeyfile: '/etc/ngcp-config/ssl/myserver.key'
frontend: 'no'
htpasswd:
-
pass: '{SHA}w4zj3mxbmynIQ1jsUEjSkN2z2pk='
user: ngcpsoap
logging:
apache:
acc:
facility: daemon
identity: oss
level: info
err:
facility: local7
level: info
ossbss:
facility: local0
identity: provisioning
level: DEBUG
web:
facility: local0
level: DEBUG
provisioning:
allow_ip_as_domain: 1
allow_numeric_usernames: 0
auto_allow_cli: 1
carrier:
account_distribution_function: roundrobin
prov_distribution_function: roundrobin
credit_warnings:
-
domain: example.com
recipients:
- nobody@example.com
threshold: 1000
faxpw_min_char: 0
log_passwords: 0
no_logline_truncate: 0
pw_min_char: 6
routing:
ac_regex: '[1-9]\d{0,4}'
cc_regex: '[1-9]\d{0,3}'
sn_regex: '[1-9]\d+'
tmpdir: '/tmp'The following is the PBX section:
pbx: bindport: 5085 enable: 'no' highport: 55000 lowport: 50001 media_processor_threads: 10 session_processor_threads: 10 xmlrpcport: 8095
The following is the prosody section:
prosody: ctrl_port: 5582 log_level: info
The following is the pushd section:
pushd:
apns:
certificate: '/etc/ngcp-config/ssl/PushChatCert.pem'
enable: yes
endpoint: gateway.push.apple.com
feedback_endpoint: feedback.push.apple.com
feedback_interval: 3600
key: '/etc/ngcp-config/ssl/PushChatKey.pem'
socket_timeout: 0
enable: yes
gcm:
enable: yes
key: 'google_api_key_here'
priority:
call: high
groupchat: normal
invite: normal
message: normal
muc:
exclude: []
force_persistent: 'true'
owner_on_join: 'true'
one_device_per_subscriber: no
port: 45060
processes: 4
ssl: yes
sslcertfile: /etc/ngcp-config/ssl/CAsigned.crt
sslcertkeyfile: /etc/ngcp-config/ssl/CAsigned.key
unique_device_ids: noThe following is the QOS section:
qos: tos_rtp: 184 tos_sip: 184
The following is the rate-o-mat section:
rateomat: enable: 'yes' loopinterval: 10 splitpeakparts: 0
The following is the redis section:
redis: database_amount: 16 port: 6379 syslog_ident: redis
The following is the reminder section:
reminder: retries: 2 retry_time: 60 sip_fromdomain: voicebox.sipwise.local sip_fromuser: reminder wait_time: 30 weekdays: '2, 3, 4, 5, 6, 7'
The following is the rsyslog section:
rsyslog:
elasticsearch:
action:
resumeretrycount: '-1'
bulkmode: 'on'
dynSearchIndex: 'on'
enable: 'yes'
queue:
dequeuebatchsize: 300
size: 5000
type: linkedlist
external_address:
external_log: 0
external_loglevel: warning
external_port: 514
external_proto: udp
ngcp_logs_preserve_days: 93The following is the rtp proxy section:
rtpproxy:
allow_userspace_only: yes
enabled: yes
log_level: '6'
maxport: '40000'
minport: '30000'
prefer_bind_on_internal: no
recording:
enabled: no
mp3_bitrate: '48000'
nfs_host: 192.168.1.1
nfs_remote_path: /var/recordings
output_dir: /var/lib/rtpengine-recording
output_format: wav
output_mixed: yes
output_single: yes
resample: no
resample_to: '16000'
spool_dir: /var/spool/rtpengine
rtp_timeout: '60'
rtp_timeout_onhold: '3600'The following is the security section. Usage of the firewall subsection is described in Section 14.2, “Firewalling”:
security:
firewall:
enable: no
logging:
days_kept: '7'
enable: yes
file: /var/log/firewall.log
tag: NGCPFW
nat_rules4: ~
nat_rules6: ~
policies:
forward: DROP
input: DROP
output: ACCEPT
rules4: ~
rules6: ~no)
7)
yes)
/var/log/firewall.log)
DROP is added to any tag indicating the action triggering the message, default: NGCPFW)
nat using iptables-persistent syntax (default: undef)
nat using iptables-persistent syntax (default: undef)
FORWARD chain (default: DROP)
INPUT chain (default: DROP)
OUTPUT chain (default: ACCEPT)
filter using iptables-persistent syntax (default: undef)
filter using iptables-persistent syntax (default: undef)
The following is the SEMS section:
sems:
bindport: 5080
conference:
enable: 'yes'
max_participants: 10
debug: 'no'
highport: 50000
lowport: 40001
media_processor_threads: 10
prepaid:
enable: 'yes'
sbc:
calltimer_enable: 'yes'
calltimer_max: 3600
outbound_timeout: 6000
sdp_filter:
codecs: PCMA,PCMU,telephone-event
enable: 'yes'
mode: whitelist
session_timer:
enable: 'yes'
max_timer: 7200
min_timer: 90
session_expires: 300
session_processor_threads: 10
vsc:
block_override_code: 80
cfb_code: 90
cfna_code: 93
cft_code: 92
cfu_code: 72
clir_code: 31
directed_pickup_code: 99
enable: 'yes'
park_code: 97
reminder_code: 55
speedial_code: 50
unpark_code: 98
voicemail_number: 2000
xmlrpcport: 8090The following is the SNMP Agent section:
snmpagent: daemonize: '1' debug: '0' update_interval: '30'
The following is the sshd section:
sshd:
listen_addresses:
- 0.0.0.0The following is the voice sniffer section:
voisniff:
admin_panel: 'no'
daemon:
bpf: 'port 5060 or 5062 or ip6 proto 44 or ip[6:2] & 0x1fff != 0'
external_interfaces: 'eth0 eth1'
filter:
exclude:
-
active: 0
case_insensitive: 1
pattern: '\ncseq: *\d+ +(register|notify|options)'
include: []
internal_interfaces: lo
mysql_dump_threads: 4
start: 'no'
threads_per_interface: 10
partitions:
increment: 700000
keep: 10The following is the WEB Admin interface (www_admin) section:
www_admin:
ac_dial_prefix: 0
apache:
autoprov_port: 1444
billing_features: 1
callingcard_features: 0
callthru_features: 0
cc_dial_prefix: 00
conference_features: 1
contactmail: adjust@example.org
dashboard:
enabled: 1
default_admin_settings:
call_data: 0
is_active: 1
is_master: 0
read_only: 0
show_passwords: 1
domain:
preference_features: 1
rewrite_features: 1
vsc_features: 0
fastcgi_workers: 2
fax_features: 1
fees_csv:
element_order:
- source
- destination
- direction
- zone
- zone_detail
- onpeak_init_rate
- onpeak_init_interval
- onpeak_follow_rate
- onpeak_follow_interval
- offpeak_init_rate
- offpeak_init_interval
- offpeak_follow_rate
- offpeak_follow_interval
- use_free_time
http_admin:
autoprov_port: 1444
port: 1443
serveradmin: support@sipwise.com
servername: "\"myserver\""
ssl_enable: 'yes'
sslcertfile: '/etc/ngcp-config/ssl/myserver.crt'
sslcertkeyfile: '/etc/ngcp-config/ssl/myserver.key'
http_csc:
autoprov_bootstrap_port: 1445
autoprov_port: 1444
port: 443
serveradmin: support@sipwise.com
servername: "\"myserver\""
ssl_enable: 'yes'
sslcertfile: '/etc/ngcp-config/ssl/myserver.crt'
sslcertkeyfile: '/etc/ngcp-config/ssl/myserver.key'
logging:
apache:
acc:
facility: daemon
identity: oss
level: info
err:
facility: local7
level: info
peer:
preference_features: 1
peering_features: 1
security:
password_allow_recovery: 0
password_max_length: 40
password_min_length: 6
password_musthave_digit: 0
password_musthave_lowercase: 1
password_musthave_specialchar: 0
password_musthave_uppercase: 0
password_sip_autogenerate: 0
password_sip_expose_subadmin: 1
password_web_autogenerate: 0
password_web_expose_subadmin: 1
speed_dial_vsc_presets:
vsc:
- '*0'
- '*1'
- '*2'
- '*3'
- '*4'
- '*5'
- '*6'
- '*7'
- '*8'
- '*9'
subscriber:
auto_allow_cli: 0
extension_features: 0
voicemail_features: 1