├── Dockerfile.asterisk ├── Dockerfile.kamailio ├── README.md ├── asterisk ├── acl.conf ├── adsi.conf ├── agents.conf ├── alarmreceiver.conf ├── alsa.conf ├── amd.conf ├── app_mysql.conf ├── app_skel.conf ├── ari.conf ├── ast_debug_tools.conf ├── asterisk.adsi ├── asterisk.conf ├── calendar.conf ├── ccss.conf ├── cdr.conf ├── cdr_adaptive_odbc.conf ├── cdr_beanstalkd.conf ├── cdr_custom.conf ├── cdr_manager.conf ├── cdr_mysql.conf ├── cdr_odbc.conf ├── cdr_pgsql.conf ├── cdr_sqlite3_custom.conf ├── cdr_syslog.conf ├── cdr_tds.conf ├── cel.conf ├── cel_beanstalkd.conf ├── cel_custom.conf ├── cel_odbc.conf ├── cel_pgsql.conf ├── cel_sqlite3_custom.conf ├── cel_tds.conf ├── chan_dahdi.conf ├── chan_mobile.conf ├── cli.conf ├── cli_aliases.conf ├── cli_permissions.conf ├── codecs.conf ├── confbridge.conf ├── config_test.conf ├── console.conf ├── dbsep.conf ├── dnsmgr.conf ├── dsp.conf ├── dundi.conf ├── enum.conf ├── extconfig.conf ├── extensions.ael ├── extensions.conf ├── extensions.lua ├── extensions_minivm.conf ├── features.conf ├── festival.conf ├── followme.conf ├── func_odbc.conf ├── hep.conf ├── http.conf ├── iax.conf ├── iaxprov.conf ├── indications.conf ├── logger.conf ├── manager.conf ├── meetme.conf ├── mgcp.conf ├── minivm.conf ├── misdn.conf ├── modules.conf ├── motif.conf ├── musiconhold.conf ├── muted.conf ├── ooh323.conf ├── osp.conf ├── oss.conf ├── phone.conf ├── phoneprov.conf ├── pjproject.conf ├── pjsip.conf ├── pjsip_notify.conf ├── pjsip_wizard.conf ├── queuerules.conf ├── queues.conf ├── res_config_mysql.conf ├── res_config_sqlite.conf ├── res_config_sqlite3.conf ├── res_corosync.conf ├── res_curl.conf ├── res_fax.conf ├── res_ldap.conf ├── res_odbc.conf ├── res_parking.conf ├── res_pgsql.conf ├── res_pktccops.conf ├── res_snmp.conf ├── res_stun_monitor.conf ├── resolver_unbound.conf ├── rtp.conf ├── say.conf ├── sip.conf ├── sip_notify.conf ├── skinny.conf ├── sla.conf ├── smdi.conf ├── sorcery.conf ├── ss7.timers ├── stasis.conf ├── statsd.conf ├── telcordia-1.adsi ├── test_sorcery.conf ├── udptl.conf ├── unistim.conf ├── users.conf ├── voicemail.conf ├── vpb.conf └── xmpp.conf ├── db ├── acc ├── acc_cdrs ├── active_watchers ├── address ├── aliases ├── carrier_name ├── carrierfailureroute ├── carrierroute ├── cpl ├── dbaliases ├── dialog ├── dialog_vars ├── dialplan ├── dispatcher ├── domain ├── domain_attrs ├── domain_name ├── domainpolicy ├── dr_gateways ├── dr_groups ├── dr_gw_lists ├── dr_rules ├── globalblocklist ├── grp ├── htable ├── imc_members ├── imc_rooms ├── lcr_gw ├── lcr_rule ├── lcr_rule_target ├── location ├── location_attrs ├── missed_calls ├── mohqcalls ├── mohqueues ├── mtree ├── mtrees ├── pdt ├── pl_pipes ├── presentity ├── pua ├── purplemap ├── re_grp ├── rls_presentity ├── rls_watchers ├── rtpengine ├── rtpproxy ├── sca_subscriptions ├── secfilter ├── silo ├── sip_trace ├── speed_dial ├── subscriber ├── topos_d ├── topos_t ├── trusted ├── uacreg ├── uri ├── userblocklist ├── usr_preferences ├── version ├── watchers └── xcap ├── docker-compose.yaml ├── docker-entrypoint-asterisk.sh └── kamailio ├── dictionary.kamailio ├── kamailio.cfg └── kamctlrc /Dockerfile.asterisk: -------------------------------------------------------------------------------- 1 | FROM alpine:3.10 2 | 3 | LABEL maintainer='Andrius Kairiukstis ' 4 | 5 | RUN apk add --update \ 6 | asterisk \ 7 | asterisk-sample-config \ 8 | && rm -rf /usr/lib/asterisk/modules/*pjsip* \ 9 | && asterisk -U asterisk \ 10 | && sleep 5 \ 11 | && pkill -9 asterisk \ 12 | && pkill -9 astcanary \ 13 | && sleep 2 \ 14 | && rm -rf /var/run/asterisk/* \ 15 | && mkdir -p /var/spool/asterisk/fax \ 16 | && chown -R asterisk: /var/spool/asterisk/fax \ 17 | && truncate -s 0 /var/log/asterisk/messages \ 18 | /var/log/asterisk/queue_log \ 19 | && rm -rf /var/cache/apk/* \ 20 | /tmp/* \ 21 | /var/tmp/* 22 | 23 | VOLUME /etc/asterisk 24 | 25 | ADD docker-entrypoint-asterisk.sh /docker-entrypoint.sh 26 | RUN chmod +x /docker-entrypoint.sh 27 | 28 | ENTRYPOINT ["/docker-entrypoint.sh"] -------------------------------------------------------------------------------- /Dockerfile.kamailio: -------------------------------------------------------------------------------- 1 | FROM almalinux:9 2 | 3 | LABEL maintainer="Ihor Olhovskyi " 4 | 5 | ENV KAMAILIO_VERSION=5.8 6 | 7 | RUN dnf update -y \ 8 | && dnf -y install dnf-plugins-core \ 9 | && dnf config-manager --add-repo https://rpm.kamailio.org/centos/kamailio.repo \ 10 | && rpm --import https://rpm.kamailio.org/rpm-pub.key \ 11 | && dnf -y install --disablerepo=kamailio --enablerepo=kamailio-${KAMAILIO_VERSION} \ 12 | kamailio \ 13 | kamailio-http_async_client \ 14 | kamailio-http_client \ 15 | kamailio-jansson \ 16 | kamailio-json \ 17 | kamailio-lua \ 18 | kamailio-mysql \ 19 | kamailio-presence \ 20 | kamailio-python \ 21 | kamailio-regex \ 22 | kamailio-sipdump \ 23 | kamailio-tcpops \ 24 | kamailio-tls \ 25 | kamailio-tls_wolfssl \ 26 | kamailio-utils \ 27 | kamailio-websocket \ 28 | kamailio-xmlrpc \ 29 | kamailio-xmlops 30 | 31 | VOLUME ["/etc/kamailio", "/db"] 32 | 33 | ENTRYPOINT ["kamailio", "-DD", "-E"] 34 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # kamailio-dev-dc 2 | 3 | Docker-compose file for developing for Kamailio and Asterisk as a backend helper 4 | 5 | ```sh 6 | docker compose build 7 | docker compose up -d 8 | 9 | docker compose run --entrypoint /bin/bash kamailio 10 | ``` 11 | -------------------------------------------------------------------------------- /asterisk/acl.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Named Access Control Lists (ACLs) 3 | ; 4 | ; A convenient way to share acl definitions 5 | ; 6 | ; This configuration file is read on startup 7 | ; 8 | ; CLI Commands 9 | ; ----------------------------------------------------------- 10 | ; acl show Show all named ACLs configured 11 | ; acl show Show contents of a particular named ACL 12 | ; reload acl Reload configuration file 13 | ; 14 | ; Any configuration that uses ACLs which has been made to be able to use named 15 | ; ACLs will specify a named ACL with the 'acl' option in its configuration in 16 | ; a similar fashion to the usual 'permit' and 'deny' options. Example: 17 | ; acl=my_named_acl 18 | ; 19 | ; Multiple named ACLs can be applied by either comma separating the arguments or 20 | ; just by adding additional ACL lines. Example: 21 | ; acl=my_named_acl 22 | ; acl=my_named_acl2 23 | ; 24 | ; or 25 | ; 26 | ; acl=my_named_acl,my_named_acl2 27 | ; 28 | ; ACLs specified by name are evaluated independently from the ACL specified via 29 | ; permit/deny. In order for an address to pass a given ACL, it must pass both 30 | ; the ACL specified by permit/deny for a given item as well as any named ACLs 31 | ; that were specified. 32 | ; 33 | ;[example_named_acl1] 34 | ;deny=0.0.0.0/0.0.0.0 35 | ;permit=209.16.236.0 36 | ;permit=209.16.236.1 37 | ; 38 | ;[example_named_acl2] 39 | ;permit=0.0.0.0/0.0.0.0 40 | ;deny=10.24.20.171 41 | ;deny=10.24.20.103 42 | ;deny=209.16.236.1 43 | ; 44 | ; example_named_acl1 above shows an example of whitelisting. When whitelisting, the 45 | ; named ACLs should follow a deny that blocks everything (like deny=0.0.0.0/0.0.0.0) 46 | ; The following example explains how combining the ACLs works: 47 | ; 48 | ; [example_item_with_acl] 49 | ; acl=example_named_acl1 50 | ; acl=example_named_acl2 51 | ; 52 | ; Suppose 209.16.236.0 tries to communicate and the ACL for that example is applied to it... 53 | ; First, example_named_acl1 is evaluated. The address is allowed by that ACL. 54 | ; Next, example_named_acl2 is evaluated. The address isn't blocked by example_named_acl2 55 | ; either, so it passes. 56 | ; 57 | ; Suppose instead 209.16.236.1 tries to communicate and the same ACL is applied. 58 | ; First, example_named_acl1 is evaluated and the address is allowed. 59 | ; However, it is blocked by example_named_acl2, so the address is blocked from the combined 60 | ; ACL. 61 | ; 62 | ; Similarly, the permits/denies in specific configurations that make up an ACL definition 63 | ; are also treated as a separate ACL for evaluation. So if we change the example above to: 64 | ; 65 | ; [example_item_with_acl] 66 | ; acl=example_named_acl1 67 | ; acl=example_named_acl2 68 | ; deny=209.16.236.0 69 | ; 70 | ; Then 209.16.236.0 will be rejected by the non-named component of the combined ACL even 71 | ; though it passes the two named components. 72 | ; 73 | ; 74 | ; Named ACLs can use ipv6 addresses just like normal ACLs. 75 | ;[ipv6_example_1] 76 | ;deny = :: 77 | ;permit = ::1/128 78 | ; 79 | ;[ipv6_example_2] 80 | ;permit = fe80::21d:bad:fad:2323 81 | -------------------------------------------------------------------------------- /asterisk/adsi.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Sample ADSI Configuration file 3 | ; 4 | [intro] 5 | alignment = center 6 | greeting => Welcome to the 7 | greeting => Asterisk 8 | greeting => Open Source PBX 9 | -------------------------------------------------------------------------------- /asterisk/agents.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Agent pool configuration 3 | ; 4 | 5 | [general] 6 | ; The general section of this config is not currently used, but reserved 7 | ; for future use. 8 | 9 | ;[agent-id] 10 | ; Define ackcall to require the agent to give a DTMF acknowledgement 11 | ; when the agent receives a call. 12 | ; The channel variable AGENTACKCALL overrides on agent login. 13 | ; Default is "no". 14 | ;ackcall=no 15 | ; 16 | ; Set what DTMF key sequence the agent should use to acknowledge a call. 17 | ; The channel variable AGENTACCEPTDTMF overrides on agent login. 18 | ; This option is ignored unless ackcall is enabled. 19 | ; Default is "#". 20 | ;acceptdtmf=## 21 | ; 22 | ; Set how many seconds a call for the agent has to wait for the agent to 23 | ; acknowledge the call before the agent is automatically logged off. If 24 | ; set to zero then the call will wait forever for the agent to acknowledge. 25 | ; The channel variable AGENTAUTOLOGOFF overrides on agent login. 26 | ; This option is ignored unless ackcall is enabled. 27 | ; Default is 0. 28 | ;autologoff=15 29 | ; 30 | ; Set the minimum amount of time after disconnecting a call before 31 | ; the agent can receive a new call in milliseconds. 32 | ; The channel variable AGENTWRAPUPTIME overrides on agent login. 33 | ; Default is 0. 34 | ;wrapuptime=5000 35 | ; 36 | ; Set the musiconhold class for the agent. 37 | ; Default is "default". 38 | ;musiconhold=default 39 | ; 40 | ; Enable recording calls the agent takes automatically by invoking the 41 | ; DTMF automixmon feature when the agent connects to a caller. 42 | ; See features.conf.sample for information about the automixmon feature. 43 | ; Default is "no". 44 | ;recordagentcalls=yes 45 | ; 46 | ; The sound file played to alert the agent when a call is present. 47 | ; Default is "beep". 48 | ;custom_beep=beep 49 | ; 50 | ; A friendly name for the agent used in log messages. 51 | ; Default is "". 52 | ;fullname=Mark Spencer 53 | ; 54 | ; -------------------------------------------------- 55 | ; 56 | ; This section contains example agent definitions: 57 | ; 58 | ; Define a template called my-agents: 59 | ;[my-agents](!) 60 | ;autologoff=15 61 | ;ackcall=yes 62 | ;acceptdtmf=## 63 | ; 64 | ; Define agent 1001 using the my-agents template: 65 | ;[1001](my-agents) 66 | ;fullname=Mark Spencer 67 | ; 68 | ; Define agent 1002 using the my-agents template: 69 | ;[1002](my-agents) 70 | ;fullname=Will Meadows 71 | -------------------------------------------------------------------------------- /asterisk/alarmreceiver.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; alarmreceiver.conf 3 | ; 4 | ; Sample configuration file for the Asterisk alarm receiver application. 5 | ; 6 | 7 | 8 | [general] 9 | 10 | ; 11 | ; Specify a timestamp format for the metadata section of the event files 12 | ; Default is %a %b %d, %Y @ %H:%M:%S %Z 13 | 14 | timestampformat = %a %b %d, %Y @ %H:%M:%S %Z 15 | 16 | ; 17 | ; Specify a command to execute when the caller hangs up 18 | ; 19 | ; Default is none 20 | ; 21 | 22 | ;eventcmd = yourprogram -yourargs ... 23 | 24 | ; 25 | ; Specify a spool directory for the event files. This setting is required 26 | ; if you want the app to be useful. Event files written to the spool 27 | ; directory will be of the template event-XXXXXX, where XXXXXX is a random 28 | ; and unique alphanumeric string. 29 | ; 30 | ; Default is none, and the events will be dropped on the floor. 31 | ; 32 | 33 | eventspooldir = /tmp 34 | 35 | ; 36 | ; The alarmreceiver app can either log the events one-at-a-time to individual 37 | ; files in the spool directory, or it can store them until the caller 38 | ; disconnects and write them all to one file. 39 | ; 40 | ; The default setting for logindividualevents is no. 41 | ; 42 | 43 | logindividualevents = no 44 | 45 | ; 46 | ; The timeout for receiving the first DTMF digit is adjustable from 1000 msec. 47 | ; to 10000 msec. The default is 2000 msec. Note: if you wish to test the 48 | ; receiver by entering digits manually, set this to a reasonable time out 49 | ; like 10000 milliseconds. 50 | 51 | fdtimeout = 2000 52 | 53 | ; 54 | ; The timeout for receiving subsequent DTMF digits is adjustable from 55 | ; 110 msec. to 4000 msec. The default is 200 msec. Note: if you wish to test 56 | ; the receiver by entering digits manually, set this to a reasonable time out 57 | ; like 4000 milliseconds. 58 | ; 59 | 60 | sdtimeout = 200 61 | 62 | ; 63 | ; Wait for the connection to settle post-answer. Adjustable from 500 msec. to 10000 msec. 64 | ; The default is 1250 msec. 65 | ; 66 | 67 | answait = 1250 68 | 69 | ; When logging individual events it may be desirable to skip grouping of metadata 70 | 71 | ;no_group_meta = yes 72 | 73 | ; 74 | ; The loudness of the ACK and Kissoff tones is adjustable from 100 to 8192. 75 | ; The default is 8192. This shouldn't need to be messed with, but is included 76 | ; just in case there are problems with signal levels. 77 | ; 78 | 79 | loudness = 8192 80 | 81 | ; 82 | ; The db-family setting allows the user to capture statistics on the number of 83 | ; calls, and the errors the alarm receiver sees. The default is for no 84 | ; db-family name to be defined and the database logging to be turned off. 85 | ; 86 | 87 | ;db-family = yourfamily: 88 | 89 | ; 90 | ; End of alarmreceiver.conf 91 | ; 92 | -------------------------------------------------------------------------------- /asterisk/alsa.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Open Sound System Console Driver Configuration File 3 | ; 4 | [general] 5 | ; 6 | ; Automatically answer incoming calls on the console? Choose yes if 7 | ; for example you want to use this as an intercom. 8 | ; 9 | autoanswer=yes 10 | ; 11 | ; Default context (is overridden with @context syntax) 12 | ; 13 | context=local 14 | ; 15 | ; Default extension to call 16 | ; 17 | extension=s 18 | ; 19 | ; Default language 20 | ; 21 | ;language=en 22 | ; 23 | ; Default Music on Hold class to use when this channel is placed on hold in 24 | ; the case that the music class is not set on the channel with 25 | ; Set(CHANNEL(musicclass)=whatever) in the dialplan and the peer channel 26 | ; putting this one on hold did not suggest a class to use. 27 | ; 28 | ;mohinterpret=default 29 | ; 30 | ; Silence suppression can be enabled when sound is over a certain threshold. 31 | ; The value for the threshold should probably be between 500 and 2000 or so, 32 | ; but your mileage may vary. Use the echo test to evaluate the best setting. 33 | ;silencesuppression = yes 34 | ;silencethreshold = 1000 35 | ; 36 | ; To set which ALSA device to use, change this parameter 37 | ;input_device=hw:0,0 38 | ;output_device=hw:0,0 39 | 40 | ; 41 | ; Default mute state (can also be toggled via CLI) 42 | ;mute=true 43 | 44 | ; 45 | ; If enabled, no audio capture device will be opened. This is useful on 46 | ; systems where there will be no return audio path, such as overhead pagers. 47 | ;noaudiocapture=true 48 | 49 | ; ----------------------------- JITTER BUFFER CONFIGURATION -------------------------- 50 | ; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an 51 | ; ALSA channel. Defaults to "no". An enabled jitterbuffer will 52 | ; be used only if the sending side can create and the receiving 53 | ; side can not accept jitter. The ALSA channel can't accept jitter, 54 | ; thus an enabled jitterbuffer on the receive ALSA side will always 55 | ; be used if the sending side can create jitter. 56 | 57 | ; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. 58 | 59 | ; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is 60 | ; resynchronized. Useful to improve the quality of the voice, with 61 | ; big jumps in/broken timestamps, usually sent from exotic devices 62 | ; and programs. Defaults to 1000. 63 | 64 | ; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP 65 | ; channel. Two implementations are currently available - "fixed" 66 | ; (with size always equals to jbmax-size) and "adaptive" (with 67 | ; variable size, actually the new jb of IAX2). Defaults to fixed. 68 | 69 | ; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set. 70 | ; The option represents the number of milliseconds by which the new 71 | ; jitter buffer will pad its size. the default is 40, so without 72 | ; modification, the new jitter buffer will set its size to the jitter 73 | ; value plus 40 milliseconds. increasing this value may help if your 74 | ; network normally has low jitter, but occasionally has spikes. 75 | 76 | ; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". 77 | ; ---------------------------------------------------------------------------------- 78 | -------------------------------------------------------------------------------- /asterisk/amd.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Answering Machine Detection Configuration 3 | ; 4 | 5 | [general] 6 | total_analysis_time = 5000 ; Maximum time allowed for the algorithm to decide 7 | ; on whether the audio represents a HUMAN, or a MACHINE 8 | silence_threshold = 256 ; If the average level of noise in a sample does not reach 9 | ; this value, from a scale of 0 to 32767, then we will consider 10 | ; it to be silence. 11 | 12 | ; Greeting ; 13 | initial_silence = 2500 ; Maximum silence duration before the greeting. 14 | ; If exceeded, then the result is detection as a MACHINE. 15 | after_greeting_silence = 800 ; Silence after detecting a greeting. 16 | ; If exceeded, then the result is detection as a HUMAN 17 | greeting = 1500 ; Maximum length of a greeting. If exceeded, then the 18 | ; result is detection as a MACHINE. 19 | 20 | ; Word detection ; 21 | min_word_length = 100 ; Minimum duration of Voice to considered as a word 22 | maximum_word_length = 5000 ; Maximum duration of a single Voice utterance allowed. 23 | between_words_silence = 50 ; Minimum duration of silence after a word to consider 24 | ; the audio what follows as a new word 25 | 26 | maximum_number_of_words = 2 ; Maximum number of words in the greeting 27 | ; If exceeded, then the result is detection as a MACHINE 28 | -------------------------------------------------------------------------------- /asterisk/app_mysql.conf: -------------------------------------------------------------------------------- 1 | ; Configuration file for the MYSQL app addon 2 | 3 | [general] 4 | ; 5 | ; Nullvalue governs how NULL values are returned from the database. In 6 | ; previous versions, the special NULL value was returned as the "NULL" 7 | ; string. We now provide an option for the behavior, configured globally. 8 | ; nullstring - the string "NULL" 9 | ; emptystring - the string "" 10 | ; null - unset the variable 11 | ; 12 | ; WARNING: setting nullvalue=null may have undesireable consequences, in 13 | ; particular if you use subroutines in AEL or the LOCAL() variable construct. 14 | ; You have been warned. Don't complain if you use that setting in combination 15 | ; with Gosub or AEL and get buggy behavior. 16 | ; 17 | nullvalue = nullstring 18 | 19 | ; If set, autoclear will destroy allocated statement and connection resources 20 | ; when the channel ends. For most usage of the MYSQL app, this is what you 21 | ; want, but it's conceivable that somebody is sharing MYSQL connections across 22 | ; multiple channels, in which case, this should be set to 'no'. Defaults to 23 | ; 'no', as this was the original behavior. 24 | autoclear=yes 25 | -------------------------------------------------------------------------------- /asterisk/app_skel.conf: -------------------------------------------------------------------------------- 1 | [general] 2 | games=3 3 | cheat=no 4 | 5 | [sounds] 6 | prompt=please-enter-your,number,queue-less-than 7 | wrong_guess=vm-pls-try-again 8 | right_guess=auth-thankyou 9 | too_high=high 10 | too_low=low 11 | lose=vm-goodbye 12 | 13 | [easy] 14 | max_number=10 15 | max_guesses=4 16 | 17 | [medium] 18 | max_number=100 19 | max_guesses=6 20 | 21 | [hard] 22 | max_number=1000 23 | max_guesses=7 24 | 25 | [nightmare] 26 | max_number=1000 27 | max_guesses=1 28 | -------------------------------------------------------------------------------- /asterisk/ari.conf: -------------------------------------------------------------------------------- 1 | [general] 2 | enabled = yes ; When set to no, ARI support is disabled. 3 | ;pretty = no ; When set to yes, responses from ARI are 4 | ; ; formatted to be human readable. 5 | ;allowed_origins = ; Comma separated list of allowed origins, for 6 | ; ; Cross-Origin Resource Sharing. May be set to * to 7 | ; ; allow all origins. 8 | ;auth_realm = ; Realm to use for authentication. Defaults to Asterisk 9 | ; ; REST Interface. 10 | ; 11 | ; Default write timeout to set on websockets. This value may need to be adjusted 12 | ; for connections where Asterisk must write a substantial amount of data and the 13 | ; receiving clients are slow to process the received information. Value is in 14 | ; milliseconds; default is 100 ms. 15 | ;websocket_write_timeout = 100 16 | ; 17 | ; Display certain channel variables every time a channel-oriented 18 | ; event is emitted: 19 | ; 20 | ;channelvars = var1,var2,var3 21 | 22 | ;[username] 23 | ;type = user ; Specifies user configuration 24 | ;read_only = no ; When set to yes, user is only authorized for 25 | ; ; read-only requests. 26 | ; 27 | ;password = ; Crypted or plaintext password (see password_format). 28 | ; 29 | ; password_format may be set to plain (the default) or crypt. When set to crypt, 30 | ; crypt(3) is used to validate the password. A crypted password can be generated 31 | ; using mkpasswd -m sha-512. 32 | ; 33 | ; When set to plain, the password is in plaintext. 34 | ; 35 | ;password_format = plain 36 | -------------------------------------------------------------------------------- /asterisk/ast_debug_tools.conf: -------------------------------------------------------------------------------- 1 | # 2 | # This file is used by the Asterisk debug tools. 3 | # Unlike other Asterisk config files, this one is 4 | # "sourced" by bash and must adhere to bash semantics. 5 | # 6 | 7 | # A list of coredumps and/or coredump search patterns. 8 | # Bash extended globs are enabled and any resulting files 9 | # that aren't actually coredumps are silently ignored 10 | # so you can be liberal with the globs. 11 | # 12 | # If your patterns contains spaces be sure to only quote 13 | # the portion of the pattern that DOESN'T contain wildcard 14 | # expressions. If you quote the whole pattern, it won't 15 | # be expanded and the glob characters will be treated as 16 | # literals. 17 | # 18 | # The exclusion of files ending ".txt" is just for 19 | # demonstration purposes as non-coredumps will be ignored 20 | # anyway. 21 | COREDUMPS=(/tmp/core[-._]asterisk!(*.txt) /tmp/core[-._]$(hostname)!(*.txt)) 22 | 23 | # The directory to contain output files and work directories. 24 | # For output from existing core files, the default is the 25 | # directory that the core file is found in. For core files 26 | # produced from a running process, the default is /tmp. 27 | OUTPUTDIR=/tmp 28 | 29 | # Date command for the "running" coredump and tarballs. 30 | # DATEFORMAT will be executed to get the timestamp. 31 | # Don't put quotes around the format string or they'll be 32 | # treated as literal characters. Also be aware of colons 33 | # in the output as you can't upload files with colons in 34 | # the name to Jira. 35 | # 36 | # Unix timestamp 37 | #DATEFORMAT='date +%s.%N' 38 | # 39 | # Unix timestamp on *BSD/MacOS after installing coreutils 40 | #DATEFORMAT='gdate +%s.%N' 41 | # 42 | # Readable GMT 43 | #DATEFORMAT='date -u +%FT%H-%M-%S%z' 44 | # 45 | # Readable Local time 46 | DATEFORMAT='date +%FT%H-%M-%S%z' 47 | 48 | # A list of log files and/or log file search patterns using the 49 | # same syntax as COREDUMPS. 50 | # 51 | LOGFILES=(/var/log/asterisk/messages* /var/log/asterisk/queue* \ 52 | /var/log/asterisk/debug* /var/log/asterisk/security*) 53 | 54 | # ast_loggrabber converts POSIX timestamps to readable format 55 | # using this Python strftime format string. If not specified 56 | # or an empty string, no format covnersion is done. 57 | LOG_DATEFORMAT="%m/%d-%H:%M:%S.%f" 58 | 59 | # The timezone to use when converting POSIX timestamps to 60 | # readable format. It can be specified in "/" 61 | # format or in abbreviation format such as "CST6CDT". If not 62 | # specified, the "local" timezone is used. 63 | # LOG_TIMEZONE= 64 | -------------------------------------------------------------------------------- /asterisk/asterisk.adsi: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk default ADSI script 3 | ; 4 | ; 5 | ; Begin with the preamble requirements 6 | ; 7 | DESCRIPTION "Asterisk PBX" ; Name of vendor 8 | VERSION 0x00 ; Version of stuff 9 | ;SECURITY "_AST" ; Security code 10 | SECURITY 0X9BDBF7AC ; Security code 11 | FDN 0x0000000F ; Descriptor number 12 | 13 | ; 14 | ; Flags 15 | ; 16 | FLAG "nocallwaiting" 17 | 18 | ; 19 | ; Predefined strings 20 | ; 21 | DISPLAY "titles" IS "** Asterisk PBX **" 22 | DISPLAY "talkingto" IS "Call active." JUSTIFY LEFT 23 | DISPLAY "callname" IS "$Call1p" JUSTIFY LEFT 24 | DISPLAY "callnum" IS "$Call1s" JUSTIFY LEFT 25 | DISPLAY "incoming" IS "Incoming call!" JUSTIFY LEFT 26 | DISPLAY "ringing" IS "Calling... " JUSTIFY LEFT 27 | DISPLAY "callended" IS "Call ended." JUSTIFY LEFT 28 | DISPLAY "missedcall" IS "Missed call." JUSTIFY LEFT 29 | DISPLAY "busy" IS "Busy." JUSTIFY LEFT 30 | DISPLAY "reorder" IS "Reorder." JUSTIFY LEFT 31 | DISPLAY "cwdisabled" IS "Callwait disabled" 32 | DISPLAY "empty" IS "asdf" 33 | 34 | ; 35 | ; Begin soft key definitions 36 | ; 37 | KEY "callfwd" IS "CallFwd" OR "Call Forward" 38 | OFFHOOK 39 | VOICEMODE 40 | WAITDIALTONE 41 | SENDDTMF "*60" 42 | GOTO "offHook" 43 | ENDKEY 44 | 45 | KEY "vmail_OH" IS "VMail" OR "Voicemail" 46 | OFFHOOK 47 | VOICEMODE 48 | WAITDIALTONE 49 | SENDDTMF "8500" 50 | ENDKEY 51 | 52 | KEY "vmail" IS "VMail" OR "Voicemail" 53 | SENDDTMF "8500" 54 | ENDKEY 55 | 56 | KEY "backspace" IS "BackSpc" OR "Backspace" 57 | BACKSPACE 58 | ENDKEY 59 | 60 | KEY "cwdisable" IS "CWDsble" OR "Disable Call Wait" 61 | SENDDTMF "*70" 62 | SETFLAG "nocallwaiting" 63 | SHOWDISPLAY "cwdisabled" AT 4 64 | TIMERCLEAR 65 | TIMERSTART 1 66 | ENDKEY 67 | 68 | KEY "cidblock" IS "CIDBlk" OR "Block Callerid" 69 | SENDDTMF "*67" 70 | SETFLAG "nocallwaiting" 71 | ENDKEY 72 | 73 | ; 74 | ; Begin main subroutine 75 | ; 76 | 77 | SUB "main" IS 78 | IFEVENT NEARANSWER THEN 79 | CLEAR 80 | SHOWDISPLAY "titles" AT 1 NOUPDATE 81 | SHOWDISPLAY "talkingto" AT 2 NOUPDATE 82 | SHOWDISPLAY "callname" AT 3 83 | SHOWDISPLAY "callnum" AT 4 84 | GOTO "stableCall" 85 | ENDIF 86 | IFEVENT OFFHOOK THEN 87 | CLEAR 88 | CLEARFLAG "nocallwaiting" 89 | CLEARDISPLAY 90 | SHOWDISPLAY "titles" AT 1 91 | SHOWKEYS "vmail" 92 | SHOWKEYS "cidblock" 93 | SHOWKEYS "cwdisable" UNLESS "nocallwaiting" 94 | GOTO "offHook" 95 | ENDIF 96 | IFEVENT IDLE THEN 97 | CLEAR 98 | SHOWDISPLAY "titles" AT 1 99 | SHOWKEYS "vmail_OH" 100 | ENDIF 101 | IFEVENT CALLERID THEN 102 | CLEAR 103 | ; SHOWDISPLAY "titles" AT 1 NOUPDATE 104 | ; SHOWDISPLAY "incoming" AT 2 NOUPDATE 105 | SHOWDISPLAY "callname" AT 3 NOUPDATE 106 | SHOWDISPLAY "callnum" AT 4 107 | ENDIF 108 | IFEVENT RING THEN 109 | CLEAR 110 | SHOWDISPLAY "titles" AT 1 NOUPDATE 111 | SHOWDISPLAY "incoming" AT 2 112 | ENDIF 113 | IFEVENT ENDOFRING THEN 114 | SHOWDISPLAY "missedcall" AT 2 115 | CLEAR 116 | SHOWDISPLAY "titles" AT 1 117 | SHOWKEYS "vmail_OH" 118 | ENDIF 119 | IFEVENT TIMER THEN 120 | CLEAR 121 | SHOWDISPLAY "empty" AT 4 122 | ENDIF 123 | ENDSUB 124 | 125 | SUB "offHook" IS 126 | IFEVENT FARRING THEN 127 | CLEAR 128 | SHOWDISPLAY "titles" AT 1 NOUPDATE 129 | SHOWDISPLAY "ringing" AT 2 NOUPDATE 130 | SHOWDISPLAY "callname" at 3 NOUPDATE 131 | SHOWDISPLAY "callnum" at 4 132 | ENDIF 133 | IFEVENT FARANSWER THEN 134 | CLEAR 135 | SHOWDISPLAY "talkingto" AT 2 136 | GOTO "stableCall" 137 | ENDIF 138 | IFEVENT BUSY THEN 139 | CLEAR 140 | SHOWDISPLAY "titles" AT 1 NOUPDATE 141 | SHOWDISPLAY "busy" AT 2 NOUPDATE 142 | SHOWDISPLAY "callname" at 3 NOUPDATE 143 | SHOWDISPLAY "callnum" at 4 144 | ENDIF 145 | IFEVENT REORDER THEN 146 | CLEAR 147 | SHOWDISPLAY "titles" AT 1 NOUPDATE 148 | SHOWDISPLAY "reorder" AT 2 NOUPDATE 149 | SHOWDISPLAY "callname" at 3 NOUPDATE 150 | SHOWDISPLAY "callnum" at 4 151 | ENDIF 152 | ENDSUB 153 | 154 | SUB "stableCall" IS 155 | IFEVENT REORDER THEN 156 | SHOWDISPLAY "callended" AT 2 157 | ENDIF 158 | ENDSUB 159 | -------------------------------------------------------------------------------- /asterisk/asterisk.conf: -------------------------------------------------------------------------------- 1 | [directories](!) 2 | astetcdir => /etc/asterisk 3 | astmoddir => /usr/lib/asterisk/modules 4 | astvarlibdir => /var/lib/asterisk 5 | astdbdir => /var/lib/asterisk 6 | astkeydir => /var/lib/asterisk 7 | astdatadir => /var/lib/asterisk 8 | astagidir => /var/lib/asterisk/agi-bin 9 | astspooldir => /var/spool/asterisk 10 | astrundir => /var/run/asterisk 11 | astlogdir => /var/log/asterisk 12 | astsbindir => /usr/sbin 13 | 14 | [options] 15 | ;verbose = 3 16 | ;debug = 3 17 | ;refdebug = yes ; Enable reference count debug logging. 18 | ;alwaysfork = yes ; Same as -F at startup. 19 | ;nofork = yes ; Same as -f at startup. 20 | ;quiet = yes ; Same as -q at startup. 21 | ;timestamp = yes ; Same as -T at startup. 22 | ;execincludes = yes ; Support #exec in config files. 23 | ;console = yes ; Run as console (same as -c at startup). 24 | ;highpriority = yes ; Run realtime priority (same as -p at 25 | ; startup). 26 | ;initcrypto = yes ; Initialize crypto keys (same as -i at 27 | ; startup). 28 | ;nocolor = yes ; Disable console colors. 29 | ;dontwarn = yes ; Disable some warnings. 30 | ;dumpcore = yes ; Dump core on crash (same as -g at startup). 31 | ;languageprefix = yes ; Use the new sound prefix path syntax. 32 | ;systemname = my_system_name ; Prefix uniqueid with a system name for 33 | ; Global uniqueness issues. 34 | ;autosystemname = yes ; Automatically set systemname to hostname, 35 | ; uses 'localhost' on failure, or systemname if 36 | ; set. 37 | ;mindtmfduration = 80 ; Set minimum DTMF duration in ms (default 80 ms) 38 | ; If we get shorter DTMF messages, these will be 39 | ; changed to the minimum duration 40 | ;maxcalls = 10 ; Maximum amount of calls allowed. 41 | ;maxload = 0.9 ; Asterisk stops accepting new calls if the 42 | ; load average exceed this limit. 43 | ;maxfiles = 1000 ; Maximum amount of openfiles. 44 | ;minmemfree = 1 ; In MBs, Asterisk stops accepting new calls if 45 | ; the amount of free memory falls below this 46 | ; watermark. 47 | ;cache_media_frames = yes ; Cache media frames for performance 48 | ; Disable this option to help track down media frame 49 | ; mismanagement when using valgrind or MALLOC_DEBUG. 50 | ; The cache gets in the way of determining if the 51 | ; frame is used after being freed and who freed it. 52 | ; NOTE: This option has no effect when Asterisk is 53 | ; compiled with the LOW_MEMORY compile time option 54 | ; enabled because the cache code does not exist. 55 | ; Default yes 56 | ;cache_record_files = yes ; Cache recorded sound files to another 57 | ; directory during recording. 58 | ;record_cache_dir = /tmp ; Specify cache directory (used in conjunction 59 | ; with cache_record_files). 60 | ;transmit_silence = yes ; Transmit silence while a channel is in a 61 | ; waiting state, a recording only state, or 62 | ; when DTMF is being generated. Note that the 63 | ; silence internally is generated in raw signed 64 | ; linear format. This means that it must be 65 | ; transcoded into the native format of the 66 | ; channel before it can be sent to the device. 67 | ; It is for this reason that this is optional, 68 | ; as it may result in requiring a temporary 69 | ; codec translation path for a channel that may 70 | ; not otherwise require one. 71 | ;transcode_via_sln = yes ; Build transcode paths via SLINEAR, instead of 72 | ; directly. 73 | ;runuser = asterisk ; The user to run as. 74 | ;rungroup = asterisk ; The group to run as. 75 | ;lightbackground = yes ; If your terminal is set for a light-colored 76 | ; background. 77 | ;forceblackbackground = yes ; Force the background of the terminal to be 78 | ; black, in order for terminal colors to show 79 | ; up properly. 80 | ;defaultlanguage = en ; Default language 81 | documentation_language = en_US ; Set the language you want documentation 82 | ; displayed in. Value is in the same format as 83 | ; locale names. 84 | ;hideconnect = yes ; Hide messages displayed when a remote console 85 | ; connects and disconnects. 86 | ;lockconfdir = no ; Protect the directory containing the 87 | ; configuration files (/etc/asterisk) with a 88 | ; lock. 89 | ;stdexten = gosub ; How to invoke the extensions.conf stdexten. 90 | ; macro - Invoke the stdexten using a macro as 91 | ; done by legacy Asterisk versions. 92 | ; gosub - Invoke the stdexten using a gosub as 93 | ; documented in extensions.conf.sample. 94 | ; Default gosub. 95 | ;live_dangerously = no ; Enable the execution of 'dangerous' dialplan 96 | ; functions from external sources (AMI, 97 | ; etc.) These functions (such as SHELL) are 98 | ; considered dangerous because they can allow 99 | ; privilege escalation. 100 | ; Default no 101 | ;entityid=00:11:22:33:44:55 ; Entity ID. 102 | ; This is in the form of a MAC address. 103 | ; It should be universally unique. 104 | ; It must be unique between servers communicating 105 | ; with a protocol that uses this value. 106 | ; This is currently is used by DUNDi and 107 | ; Exchanging Device and Mailbox State 108 | ; using protocols: XMPP, Corosync and PJSIP. 109 | ;rtp_use_dynamic = yes ; When set to "yes" RTP dynamic payload types 110 | ; are assigned dynamically per RTP instance vs. 111 | ; allowing Asterisk to globally initialize them 112 | ; to pre-designated numbers (defaults to "yes"). 113 | ;rtp_pt_dynamic = 35 ; Normally the Dynamic RTP Payload Type numbers 114 | ; are 96-127, which allow just 32 formats. The 115 | ; starting point 35 enables the range 35-63 and 116 | ; allows 29 additional formats. When you use 117 | ; more than 32 formats in the dynamic range and 118 | ; calls are not accepted by a remote 119 | ; implementation, please report this and go 120 | ; back to value 96. 121 | 122 | ; Changing the following lines may compromise your security. 123 | ;[files] 124 | ;astctlpermissions = 0660 125 | ;astctlowner = root 126 | ;astctlgroup = apache 127 | ;astctl = asterisk.ctl 128 | -------------------------------------------------------------------------------- /asterisk/calendar.conf: -------------------------------------------------------------------------------- 1 | ;[calendar1] 2 | ;type = ical ; type of calendar--currently supported: ical, caldav, exchange, or ews 3 | ;url = https://example.com/home/jdoe/Calendar/ ; URL to shared calendar (Zimbra example) 4 | ;user = jdoe ; web username 5 | ;secret = supersecret ; web password 6 | ;refresh = 15 ; refresh calendar every n minutes 7 | ;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period 8 | ; ; should always be >= refresh 9 | ;fetch_again_at_reload = no ; to reload the calendar content when the module is reloaded 10 | ; 11 | ; 12 | ; You can set up res_calendar to execute a call upon an upcoming busy status 13 | ; The following fields are available from the ${CALENDAR_EVENT()} dialplan function: 14 | ; 15 | ; summary : The VEVENT Summary property or Exchange subject 16 | ; description : The text description of the vent 17 | ; organizer : The organizer of the event 18 | ; location : The location field of the event 19 | ; calendar : The name of the calendar tied to the event 20 | ; uid : The unique ID for this event 21 | ; start : Start time of the event 22 | ; end : The end time of the event 23 | ; busystate : 0=FREE, 1=TENTATIVE, 2=BUSY 24 | ; 25 | ;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins) 26 | ; 27 | ;channel = SIP/60001 ; Channel to dial 28 | ;context = default ; Context to connect to on answer 29 | ;extension = 123 ; Extension to connect to on answer 30 | ; 31 | ; or 32 | ; 33 | ;app = Playback ; Application to execute on answer (instead of context/extension) 34 | ;appdata = tt-weasels ; Data part of application to execute on answer 35 | ; 36 | ;waittime = 30 ; How long to wait for an answer, defaults to 30 seconds 37 | ; 38 | ; Channel variables can be set on the notification channel. The format is 39 | ; setvar=name=value. Variable subsitution is done on the value to allow the use of dialplan 40 | ; functions like CALENDAR_EVENT. The variables are set in order, so one can use the value 41 | ; of earlier variables in the definition of later ones. 42 | ; 43 | ;setvar = CALLERID(name)=${CALENDAR_EVENT(summary)} 44 | 45 | ;[calendar2] 46 | ; Note: Support for Exchange Server 2003 47 | ; 48 | ;type = exchange ; type of calendar--currently supported: ical, caldav, exchange, or ews 49 | ;url = https://example.com/exchange/jdoe ; URL to MS Exchange OWA for user (usually includes exchange/user) 50 | ;user = jdoe ; Exchange username 51 | ;secret = mysecret ; Exchange password 52 | ;refresh = 15 ; refresh calendar every n minutes 53 | ;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period 54 | ; ; should always be >= refresh 55 | ; 56 | ; You can set up res_calendar to execute a call upon an upcoming busy status 57 | ;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins) 58 | ; 59 | ;channel = SIP/1234 ; Channel to dial 60 | ;context = default ; Context to connect to on answer 61 | ;extension = 1234 ; Extension to connect to on answer 62 | ; 63 | ; or 64 | ; 65 | ;[calendar3] 66 | ; Note: Support for Exchange Server 2007+ 67 | ; 68 | ;type = ews ; type of calendar--currently supported: ical, caldav, exchange, or ews 69 | ;url = https://example.com/ews/Exchange.asmx ; URL to MS Exchange EWS 70 | ;user = jdoe ; Exchange username 71 | ;secret = mysecret ; Exchange password 72 | ;refresh = 15 ; refresh calendar every n minutes 73 | ;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period 74 | ; ; should always be >= refresh 75 | ; 76 | ; You can set up res_calendar to execute a call upon an upcoming busy status 77 | ;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins) 78 | ; 79 | ;channel = SIP/1234 ; Channel to dial 80 | ;context = default ; Context to connect to on answer 81 | ;extension = 1234 ; Extension to connect to on answer 82 | ; 83 | ; or 84 | ; 85 | ;app = Playback ; Application to execute on answer (instead of context/extension) 86 | ;appdata = tt-weasels ; Data part of application to execute on answer 87 | ; 88 | ;waittime = 30 ; How long to wait for an answer, defaults to 30 seconds 89 | 90 | ;[calendar4] 91 | ;type = caldav ; type of calendar--currently supported: ical, caldav, exchange, or ews 92 | ;url = https://www.google.com/calendar/dav/username@gmail.com/events/ ; Main GMail calendar (the trailing slash is significant!) 93 | ;user = jdoe@gmail.com ; username 94 | ;secret = mysecret ; password 95 | ;refresh = 15 ; refresh calendar every n minutes 96 | ;timeframe = 60 ; number of minutes of calendar data to pull for each refresh period 97 | ; ; should always be >= refresh 98 | ; 99 | ; You can set up res_calendar to execute a call upon an upcoming busy status 100 | ;autoreminder = 10 ; Override event-defined reminder before each busy status (in mins) 101 | ; 102 | ;channel = SIP/1234 ; Channel to dial 103 | ;context = default ; Context to connect to on answer 104 | ;extension = 1234 ; Extension to connect to on answer 105 | ; 106 | ; or 107 | ; 108 | ;app = Playback ; Application to execute on answer (instead of context/extension) 109 | ;appdata = tt-weasels ; Data part of application to execute on answer 110 | ; 111 | ;waittime = 30 ; How long to wait for an answer, defaults to 30 seconds 112 | -------------------------------------------------------------------------------- /asterisk/cdr_adaptive_odbc.conf: -------------------------------------------------------------------------------- 1 | ; The point of this module is to allow you log whatever you like in terms of 2 | ; the CDR variables. Do you want to log uniqueid? Then simply ensure that 3 | ; your table has that column. If you don't want the column, ensure that it 4 | ; does not exist in the table structure. If you'd like to call uniqueid 5 | ; something else in your table, simply provide an alias in the configuration 6 | ; file that maps the standard CDR field name (uniqueid) to whatever column 7 | ; name you like. Perhaps you'd like some extra CDR values logged that aren't 8 | ; in the standard repertoire of CDR variables (some that come to mind are 9 | ; certain values used for LCR: route, per_minute_cost, and per_minute_price). 10 | ; Simply set those CDR variables in your dialplan, i.e. Set(CDR(route)=27), 11 | ; ensure that a corresponding column exists in your table, and cdr_adaptive_odbc 12 | ; will do the rest. 13 | ; 14 | ; This configuration defines the connections and tables for which CDRs may 15 | ; be populated. Each context specifies a different CDR table to be used. 16 | ; 17 | ; The columns in the tables should match up word-for-word (case-insensitive) 18 | ; to the CDR variables set in the dialplan. The natural advantage to this 19 | ; system is that beyond setting up the configuration file to tell you what 20 | ; tables to look at, there isn't anything more to do beyond creating the 21 | ; columns for the fields that you want, and populating the corresponding 22 | ; CDR variables in the dialplan. For the builtin variables only, you may 23 | ; create aliases for the real column name. 24 | ; 25 | ; Please note that after adding columns to the database, it is necessary to 26 | ; reload this module to get the new column names and types read. 27 | ; 28 | ; Warning: if you specify two contexts with exactly the same connection and 29 | ; table names, you will get duplicate records in that table. So be careful. 30 | ; 31 | 32 | ;[first] 33 | ;connection=mysql1 34 | ;table=cdr 35 | 36 | ;[second] 37 | ;connection=mysql1 38 | ;table=extracdr 39 | 40 | ;[third] 41 | ;connection=sqlserver 42 | ;table=AsteriskCDR 43 | ;schema=public ; for databases which support schemas 44 | ;usegmtime=yes ; defaults to no 45 | ;alias src => source 46 | ;alias channel => source_channel 47 | ;alias dst => dest 48 | ;alias dstchannel => dest_channel 49 | ; 50 | ; Any filter specified MUST match exactly or the CDR will be discarded 51 | ;filter accountcode => somename 52 | ;filter src => 123 53 | ; Negative filters are also now available 54 | ;filter src != 456 55 | ; 56 | ; Additionally, we now support setting static values per column. The reason 57 | ; for this is to allow different sections to specify different values for 58 | ; a certain named column, presumably separated by filters. 59 | ;static "Some Special Value" => identifier_code 60 | ; 61 | ; Add quoted indentifiers for table and columns names. 62 | ;quoted_identifiers=" ; Default to null 63 | -------------------------------------------------------------------------------- /asterisk/cdr_beanstalkd.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Call Management CDR via Beanstalkd job queue 3 | ; 4 | ; Beanstalkd is a simple job queue server, that is highly versatile and simple to use. 5 | ; Beanstalkd includes the capability of using multiple queues at the same time, with priorities. 6 | ; 7 | ; This module requires that your server has the beanstalk-client library installed. The library 8 | ; can be downloaded from - https://github.com/deepfryed/beanstalk-client 9 | ; 10 | 11 | [general] 12 | ;enabled = yes 13 | 14 | ;host = 127.0.0.1 ; Specify the remote IP address of the Beanstalkd server 15 | ;port = 11300 ; Specify the remote PORT of the the Beanstalkd server 16 | ;tube = asterisk-cdr ; Specify the default CDR job queue to use 17 | ;priority = 99 ; Specify the default job priority for the queue. This parameter is useful when building 18 | ; platform with multiple Asterisk servers, that are used for different functions. For example, 19 | ; none billable CDR records can be inserted with a priority of 99, while billable ones be 20 | ; inserted with a priority of 1 21 | -------------------------------------------------------------------------------- /asterisk/cdr_custom.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Mappings for custom config file 3 | ; 4 | ; To get your CSV output in a format tailored to your liking, uncomment the 5 | ; following lines and look for the output in the cdr-custom directory (usually 6 | ; in /var/log/asterisk). Depending on which mapping you uncomment, you may see 7 | ; Master.csv, Simple.csv, or both. 8 | ; 9 | ;[mappings] 10 | ;Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontext)})},${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})},${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(lastdata)})},${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})},${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duration)})},${CSV_QUOTE(${CDR(billsec)})},${CSV_QUOTE(${CDR(disposition)})},${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})},${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})},${CDR(sequence)} 11 | ; 12 | ; High Resolution Time for billsec and duration fields 13 | ;Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontext)})},${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})},${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(lastdata)})},${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})},${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duration,f)})},${CSV_QUOTE(${CDR(billsec,f)})},${CSV_QUOTE(${CDR(disposition)})},${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})},${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})},${CDR(sequence)} 14 | ;Simple.csv => ${CSV_QUOTE(${EPOCH})},${CSV_QUOTE(${CDR(src)})},${CSV_QUOTE(${CDR(dst)})} 15 | -------------------------------------------------------------------------------- /asterisk/cdr_manager.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Call Management CDR 3 | ; 4 | [general] 5 | enabled = no 6 | 7 | ; The "mappings" category can be used to define additional "key: value" pairs 8 | ; that will be included in the manager event. (after AccountCode, Source, etc). 9 | ; 10 | ; Each line like "varname => label" will include a "label: ${CDR(varname)}" 11 | ; in the generated event where ${CDR(varname)} its replaced with its value 12 | ; 13 | ;[mappings] 14 | ;rate => Rate 15 | ;carrier => Carrier 16 | -------------------------------------------------------------------------------- /asterisk/cdr_mysql.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Note - if the database server is hosted on the same machine as the 3 | ; asterisk server, you can achieve a local Unix socket connection by 4 | ; setting hostname=localhost 5 | ; 6 | ; port and sock are both optional parameters. If hostname is specified 7 | ; and is not "localhost" (you can use address 127.0.0.1 instead), then 8 | ; cdr_mysql will attempt to connect to the port specified or use the 9 | ; default port. If hostname is not specified or if hostname is 10 | ; "localhost", then cdr_mysql will attempt to connect to the socket file 11 | ; specified by sock or otherwise use the default socket file. 12 | ; 13 | ;[global] 14 | ;hostname=database.host.name 15 | ;dbname=asteriskcdrdb 16 | ;table=cdr 17 | ;password=password 18 | ;user=asteriskcdruser 19 | ;port=3306 20 | ;sock=/tmp/mysql.sock 21 | ; By default CDRs are logged in the system's time zone 22 | ;cdrzone=UTC ; log CDRs with UTC 23 | ;usegmtime=yes ;log date/time in GMT. Default is "no" 24 | ;cdrzone=America/New_York ; or use a specific time zone 25 | ; 26 | ; If your system's locale differs from mysql database character set, 27 | ; cdr_mysql can damage non-latin characters in CDR variables. Use this 28 | ; option to protect your data. 29 | ;charset=koi8r 30 | ; 31 | ; Older versions of cdr_mysql set the calldate field to whenever the 32 | ; record was posted, rather than the start date of the call. This flag 33 | ; reverts to the old (incorrect) behavior. Note that you'll also need 34 | ; to comment out the "start=calldate" alias, below, to use this. 35 | ;compat=no 36 | ; 37 | ; ssl connections (optional) 38 | ;ssl_ca= 39 | ;ssl_cert= 40 | ;ssl_key= 41 | ; 42 | ; You may also configure the field names used in the CDR table. 43 | ; 44 | [columns] 45 | ;static "" => 46 | ;alias => 47 | alias start => calldate 48 | ;alias clid => 49 | ;alias src => 50 | ;alias dst => 51 | ;alias dcontext => 52 | ;alias channel => 53 | ;alias dstchannel => 54 | ;alias lastapp => 55 | ;alias lastdata => 56 | ;alias duration => 57 | ;alias billsec => 58 | ;alias disposition => 59 | ;alias amaflags => 60 | ;alias accountcode => 61 | ;alias userfield => 62 | ;alias uniqueid => 63 | -------------------------------------------------------------------------------- /asterisk/cdr_odbc.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; cdr_odbc.conf 3 | ; 4 | 5 | ;[global] 6 | ;dsn=MySQL-test 7 | ;loguniqueid=yes 8 | ;dispositionstring=yes 9 | ;table=cdr ;"cdr" is default table name 10 | ;usegmtime=no ; set to "yes" to log in GMT 11 | ;hrtime=yes ;Enables microsecond accuracy with the billsec and duration fields 12 | ;newcdrcolumns=yes ; Enable logging of post-1.8 CDR columns (peeraccount, linkedid, sequence) 13 | -------------------------------------------------------------------------------- /asterisk/cdr_pgsql.conf: -------------------------------------------------------------------------------- 1 | ; Sample Asterisk config file for CDR logging to PostgresSQL 2 | ; 3 | ; Note that you can use TLS connections to your database server. 4 | ; This is configured for your PostgreSQL client installation 5 | ; on this system (check for pgsessions.conf) 6 | 7 | [global] 8 | ;hostname=localhost 9 | ;port=5432 10 | ;dbname=asterisk 11 | ;password=password 12 | ;user=postgres 13 | ;appname=asterisk ; Postgres application_name support (optional). Whitespace not allowed. 14 | ;table=cdr ;SQL table where CDRs will be inserted 15 | ;encoding=LATIN9 ; Encoding of logged characters in Asterisk 16 | ;timezone=UTC ; Uncomment if you want datetime fields in UTC/GMT 17 | -------------------------------------------------------------------------------- /asterisk/cdr_sqlite3_custom.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Mappings for custom config file 3 | ; 4 | [master] ; currently, only file "master.db" is supported, with only one table at a time. 5 | ;table => cdr 6 | ;columns => calldate, clid, dcontext, channel, dstchannel, lastapp, lastdata, duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield, test 7 | ;values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}','${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration)}','${CDR(billsec)}','${CDR(disposition)}','${CDR(amaflags)}','${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}','${CDR(test)}' 8 | ;busy_timeout => 1000 9 | 10 | ;Enable High Resolution Times for billsec and duration fields 11 | ;values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}','${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration,f)}','${CDR(billsec,f)}','${CDR(disposition)}','${CDR(amaflags)}','${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}','${CDR(test)}' 12 | -------------------------------------------------------------------------------- /asterisk/cdr_syslog.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Call Detail Records (CDR) - Syslog Backend 3 | ; 4 | 5 | ; The cdr_syslog module writes CDRs using the facilities provided by syslog. 6 | ; 7 | ; Not only must you configure cdr_syslog from this file (cdr_syslog.conf) but 8 | ; you will also need to make changes to your /etc/syslog.conf before CDRs will 9 | ; be written to syslog. 10 | ; 11 | ; As an example, you can add the following to /etc/syslog.conf: 12 | ; 13 | ; local4.info /var/log/asterisk-cdr.log 14 | ; 15 | ; And then instruct syslogd to re-read the configuration file by sending it a 16 | ; HUP signal. On Linux this can be done like this: 17 | ; 18 | ; kill -HUP `cat /var/run/syslogd.pid` 19 | ; 20 | ; Finally, you will need to uncomment the [cdr-simple] section below, and restart 21 | ; Asterisk. When calls are placed, you should start seeing records appear in 22 | ; /var/log/asterisk-cdr.log. 23 | 24 | [general] 25 | ; Facility 26 | ; 27 | ; The 'facility' keyword specifies the syslog facility to use when writing out 28 | ; CDRs. 29 | ; 30 | ; Accepted values: One of the following: 31 | ; user, local0, local1, local2, local3, local4, local5, local6 32 | ; and local7. 33 | ; 34 | ; Note: Depending on your platform, the following may also be 35 | ; available: 36 | ; auth, authpriv, cron, daemon, ftp, kern, lpr, mail, 37 | ; news, syslog, and uucp. 38 | ; 39 | ; Default value: local4 40 | 41 | ;facility=local0 42 | 43 | ; Priority 44 | ; 45 | ; Use the 'priority' keyword to select which of the syslog priority levels to 46 | ; use when logging CDRs. 47 | ; 48 | ; Accepted values: One of the following: 49 | ; alert, crit, debug, emerg, err, info, notice, warning 50 | ; Default value: info 51 | 52 | ;priority=warn 53 | 54 | ; Note: The settings for 'facility' and 'priority' in the [general] section 55 | ; define the default values for all of the logging locations created 56 | ; below in separate sections. 57 | 58 | ;[cdr-master] 59 | ;facility = local5 60 | ;priority = debug 61 | 62 | ; Template 63 | ; 64 | ; The 'template' value allows you to specify a custom format for messages 65 | ; written to syslog. This is similar to how cdr_custom is configured. 66 | ; 67 | ; Allowed values: A diaplan style string. 68 | ; Default value: None, this is required field. 69 | ; 70 | ; Note: Because of the way substitution is done, the only meaningful values 71 | ; available when the record is logged are those available via the CDR() 72 | ; dialplan function. All other channel variables will be unavailable. 73 | 74 | ;template = "${CDR(clid)}","${CDR(src)}","${CDR(dst)}","${CDR(dcontext)}","${CDR(channel)}","${CDR(dstchannel)}","${CDR(lastapp)}","${CDR(lastdata)}","${CDR(start)}","${CDR(answer)}","${CDR(end)}","${CDR(duration)}","${CDR(billsec)}","${CDR(disposition)}","${CDR(amaflags)}","${CDR(accountcode)}","${CDR(uniqueid)}","${CDR(userfield)}" 75 | 76 | ; High Resolution Time for billsec and duration fields 77 | ;template = "${CDR(clid)}","${CDR(src)}","${CDR(dst)}","${CDR(dcontext)}","${CDR(channel)}","${CDR(dstchannel)}","${CDR(lastapp)}","${CDR(lastdata)}","${CDR(start)}","${CDR(answer)}","${CDR(end)}","${CDR(duration,f)}","${CDR(billsec,f)}","${CDR(disposition)}","${CDR(amaflags)}","${CDR(accountcode)}","${CDR(uniqueid)}","${CDR(userfield)}" 78 | ;[cdr-simple] 79 | 80 | ; Since we don't specify a facility or priority for this logging location, the 81 | ; records will use the defaults specified in the [general] section. 82 | 83 | ;template = "We received a call from ${CDR(src)}" 84 | -------------------------------------------------------------------------------- /asterisk/cdr_tds.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Call Detail Records (CDR) - FreeTDS Backend 3 | ; 4 | 5 | ;[global] 6 | 7 | ; Connection 8 | ; 9 | ; Use the 'connection' keyword to specify one of the instance names from your 10 | ; 'freetds.conf' file. Note that 'freetds.conf' is not an Asterisk 11 | ; configuration file, but one specific to the FreeTDS library. See the FreeTDS 12 | ; documentation on 'freetds.conf' for more information: 13 | ; 14 | ; http://www.freetds.org/userguide/freetdsconf.htm 15 | ; 16 | ; Accepted values: One of the connections specified in freetds.conf 17 | 18 | ;connection=ConnectionFromFreeTDSConf 19 | 20 | ; Database Name 21 | ; 22 | ; The 'dbname' keyword specifies the database name to use when logging CDRs. 23 | ; 24 | ; Accepted values: Any valid database name 25 | 26 | ;dbname=AsteriskCDRs 27 | 28 | ; Database Table Name 29 | ; 30 | ; The 'table' keyword identifies which database table is used to log CDRs. 31 | ; 32 | ; Accepted value: Any valid table name 33 | ; Default value: If not specified, a table named 'cdr' is assumed 34 | 35 | ;table=cdr 36 | 37 | ; Credentials 38 | ; 39 | ; The 'username' and 'password' keywords specify the user credentials that 40 | ; Asterisk should use when connecting to the database. 41 | ; 42 | ; Accepted value: Any valid username and password 43 | 44 | ;username=mangUsr 45 | ;password= 46 | 47 | ; Language 48 | ; 49 | ; The 'language' keyword changes the language which are used for error and 50 | ; information messages returned by SQL Server. Each database and user has their 51 | ; own default value, and this default can be overriden here. 52 | ; 53 | ; Accepted value: Any language installed on the target SQL Server. 54 | ; Default value: us_english 55 | 56 | ;language=us_english 57 | 58 | ; Character Set 59 | ; 60 | ; The 'charset' setting is used to change the character set used when connecting 61 | ; to the database server. Each database and database user has their own 62 | ; character set setting, and this default can be overriden here. 63 | ; 64 | ; Accepted value: Any valid character set available on the target SQL server. 65 | ; Default value: iso_1 66 | 67 | ;charset=BIG5 68 | 69 | ; High Resolution Times 70 | ; 71 | ; The 'hrtime' setting is used to store high resolution (sub second) times for 72 | ; billsec and duration fields. 73 | ; 74 | ; Accepted value: true or false 75 | ; Default value: false 76 | 77 | ;hrtime=false 78 | -------------------------------------------------------------------------------- /asterisk/cel.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Channel Event Logging (CEL) 3 | ; 4 | 5 | ; Channel Event Logging is a mechanism to provide fine-grained event information 6 | ; that can be used to generate billing information. Such event information can 7 | ; be recorded to various backend modules. 8 | ; 9 | 10 | [general] 11 | 12 | ; CEL Activation 13 | ; 14 | ; Use the 'enable' keyword to turn CEL on or off. 15 | ; 16 | ; Accepted values: yes and no 17 | ; Default value: no 18 | 19 | ;enable=yes 20 | 21 | ; Application Tracking 22 | ; 23 | ; Use the 'apps' keyword to specify the list of applications for which you want 24 | ; to receive CEL events. This is a comma separated list of Asterisk dialplan 25 | ; applications, such as Dial, Queue, and Park. 26 | ; 27 | ; Accepted values: A comma separated list of Asterisk dialplan applications 28 | ; Default value: none 29 | ; 30 | ; Note: You may also use 'all' which will result in CEL events being reported 31 | ; for all Asterisk applications. This may affect Asterisk's performance 32 | ; significantly. 33 | 34 | apps=dial,park 35 | 36 | ; Event Tracking 37 | ; 38 | ; Use the 'events' keyword to specify the list of events which you want to be 39 | ; raised when they occur. This is a comma separated list of the values in the 40 | ; table below. 41 | ; 42 | ; Accepted values: A comma separated list of one or more of the following: 43 | ; ALL -- Generate entries on all events 44 | ; CHAN_START -- The time a channel was created 45 | ; CHAN_END -- The time a channel was terminated 46 | ; ANSWER -- The time a channel was answered (ie, phone taken off-hook) 47 | ; HANGUP -- The time at which a hangup occurred 48 | ; BRIDGE_ENTER -- The time a channel was connected into a conference room 49 | ; BRIDGE_EXIT -- The time a channel was removed from a conference room 50 | ; APP_START -- The time a tracked application was started 51 | ; APP_END -- the time a tracked application ended 52 | ; PARK_START -- The time a call was parked 53 | ; PARK_END -- Unpark event 54 | ; BLINDTRANSFER -- When a blind transfer is initiated 55 | ; ATTENDEDTRANSFER -- When an attended transfer is initiated 56 | ; PICKUP -- This channel picked up the specified channel 57 | ; FORWARD -- This channel is being forwarded somewhere else 58 | ; LINKEDID_END -- The last channel with the given linkedid is retired 59 | ; USER_DEFINED -- Triggered from the dialplan, and has a name given by the 60 | ; user 61 | ; LOCAL_OPTIMIZE -- A local channel pair is optimizing away. 62 | ; 63 | ; Default value: none 64 | ; (Track no events) 65 | 66 | events=APP_START,CHAN_START,CHAN_END,ANSWER,HANGUP,BRIDGE_ENTER,BRIDGE_EXIT 67 | 68 | ; Date Format 69 | ; 70 | ; Use the 'dateformat' keyword to specify the date format used when CEL events 71 | ; are raised. 72 | ; 73 | ; Accepted values: A strftime format string (see man strftime) 74 | ; 75 | ; Example: "%F %T" 76 | ; -> This gives the date and time in the format "2009-06-23 17:02:35" 77 | ; 78 | ; If this option is not specified, the default format is "." 79 | ; since epoch. The microseconds field will always be 6 digits in length, meaning it 80 | ; may have leading zeros. 81 | ; 82 | ;dateformat = %F %T 83 | 84 | ; 85 | ; Asterisk Manager Interface (AMI) CEL Backend 86 | ; 87 | [manager] 88 | 89 | ; AMI Backend Activation 90 | ; 91 | ; Use the 'enable' keyword to turn CEL logging to the Asterisk Manager Interface 92 | ; on or off. 93 | ; 94 | ; Accepted values: yes and no 95 | ; Default value: no 96 | ;enabled=yes 97 | 98 | ; Use 'show_user_defined' to put "USER_DEFINED" in the EventName header, 99 | ; instead of (by default) just putting the user defined event name there. 100 | ; When enabled the UserDefType header is added for user defined events to 101 | ; provide the user defined event name. 102 | ; 103 | ;show_user_defined=yes 104 | 105 | ; 106 | ; RADIUS CEL Backend 107 | ; 108 | [radius] 109 | ; 110 | ; Log date/time in GMT 111 | ;usegmtime=yes 112 | ; 113 | ; Set this to the location of the radiusclient-ng configuration file 114 | ; The default is /etc/radiusclient-ng/radiusclient.conf 115 | ;radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf 116 | ; 117 | -------------------------------------------------------------------------------- /asterisk/cel_beanstalkd.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Beanstalkd Job Queue Server CEL Backend 3 | ; 4 | [general] 5 | 6 | ; Backend Activation 7 | ; 8 | ; Use the 'enabled' keyword to turn CEL logging 9 | ; on or off. 10 | ; 11 | ; Accepted values: yes and no 12 | ; Default value: no 13 | ;enabled = yes 14 | 15 | ;host = 127.0.0.1 ; Specify the remote IP address of the Beanstalkd server 16 | ;port = 11300 ; Specify the remote PORT of the the Beanstalkd server 17 | ;tube = asterisk-cel ; Specify the default CDR job queue to use 18 | ;priority = 99 ; Specify the default job priority for the queue. This parameter is useful when building 19 | ; platform with multiple Asterisk servers, that are used for different functions. For example, 20 | ; none billable CDR records can be inserted with a priority of 99, while billable ones be 21 | ; inserted with a priority of 1 22 | -------------------------------------------------------------------------------- /asterisk/cel_custom.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Channel Event Logging (CEL) - Custom CSV Backend 3 | ; 4 | 5 | ; This is the configuration file for the customizable CSV backend for CEL 6 | ; logging. 7 | ; 8 | ; In order to create custom CSV logs for CEL, uncomment the template below 9 | ; (Master.csv) and start Asterisk. Once CEL events are generated, a file will 10 | ; appear in the following location: 11 | ; 12 | ; /var/log/asterisk/cel-custom/Master.csv 13 | ; 14 | ; (Note that /var/log/asterisk is the default and may differ on your system) 15 | ; 16 | ; You can also create more than one template if desired. All logs will appear 17 | ; in the cel-custom directory under your Asterisk logs directory. 18 | ; 19 | 20 | ; 21 | ; Within a mapping, use the CALLERID() and CHANNEL() functions to retrieve 22 | ; details from the CEL event. There are also a few variables created by this 23 | ; module that can be used in a mapping: 24 | ; 25 | ; eventtype - The name of the CEL event. 26 | ; eventtime - The timestamp of the CEL event. 27 | ; eventenum - Like eventtype but is "USER_DEFINED" for a user defined event. 28 | ; userdeftype - User defined event type name from CELGenUserEvent(). 29 | ; eventextra - Extra data included with this CEL event, typically along with 30 | ; an event of type USER_DEFINED from CELGenUserEvent(). 31 | ; BRIDGEPEER - Bridged peer channel name at the time of the CEL event. 32 | ; CHANNEL(peer) could also be used. 33 | ; 34 | [mappings] 35 | ;Master.csv => ${CSV_QUOTE(${eventtype})},${CSV_QUOTE(${eventtime})},${CSV_QUOTE(${CALLERID(name)})},${CSV_QUOTE(${CALLERID(num)})},${CSV_QUOTE(${CALLERID(ANI)})},${CSV_QUOTE(${CALLERID(RDNIS)})},${CSV_QUOTE(${CALLERID(DNID)})},${CSV_QUOTE(${CHANNEL(exten)})},${CSV_QUOTE(${CHANNEL(context)})},${CSV_QUOTE(${CHANNEL(channame)})},${CSV_QUOTE(${CHANNEL(appname)})},${CSV_QUOTE(${CHANNEL(appdata)})},${CSV_QUOTE(${CHANNEL(amaflags)})},${CSV_QUOTE(${CHANNEL(accountcode)})},${CSV_QUOTE(${CHANNEL(uniqueid)})},${CSV_QUOTE(${CHANNEL(linkedid)})},${CSV_QUOTE(${BRIDGEPEER})},${CSV_QUOTE(${CHANNEL(userfield)})},${CSV_QUOTE(${userdeftype})},${CSV_QUOTE(${eventextra})} 36 | -------------------------------------------------------------------------------- /asterisk/cel_odbc.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Channel Event Logging (CEL) - Adaptive ODBC Backend 3 | ; 4 | 5 | ; General module options category. 6 | [general] 7 | ; Use 'show_user_defined' to put "USER_DEFINED" in the eventtype field, 8 | ; instead of (by default) just putting the user defined event name there. 9 | ; 10 | ;show_user_defined=yes 11 | 12 | ; This configuration defines the connections and tables for which CEL records 13 | ; may be populated. Each context specifies a different CEL table to be used. 14 | ; 15 | ; The columns in the tables should match up word-for-word (case-insensitive) to 16 | ; the CEL variables set in the dialplan. The natural advantage to this system 17 | ; is that beyond setting up the configuration file to tell you what tables to 18 | ; look at, there isn't anything more to do beyond creating the columns for the 19 | ; fields that you want, and populating the corresponding CEL variables in the 20 | ; dialplan. 21 | ; 22 | ; Please note that after adding columns to the database, it is necessary to 23 | ; reload this module to get the new column names and types read. 24 | ; 25 | ; Warning: if you specify two contexts with exactly the same connection and 26 | ; table names, you will get duplicate records in that table. So be careful. 27 | ; 28 | ; CEL FIELDS: 29 | ; eventtype 30 | ; CHANNEL_START = 1 31 | ; CHANNEL_END = 2 32 | ; HANGUP = 3 33 | ; ANSWER = 4 34 | ; APP_START = 5 35 | ; APP_END = 6 36 | ; BRIDGE_START = 7 37 | ; BRIDGE_END = 8 38 | ; CONF_START = 9 39 | ; CONF_END = 10 40 | ; PARK_START = 11 41 | ; PARK_END = 12 42 | ; BLINDTRANSFER = 13 43 | ; ATTENDEDTRANSFER = 14 44 | ; TRANSFER = 15 45 | ; HOOKFLASH = 16 46 | ; 3WAY_START = 17 47 | ; 3WAY_END = 18 48 | ; CONF_ENTER = 19 49 | ; CONF_EXIT = 20 50 | ; USER_DEFINED = 21 51 | ; LINKEDID_END = 22 52 | ; BRIDGE_UPDATE = 23 53 | ; PICKUP = 24 54 | ; FORWARD = 25 55 | ; eventtime (timeval, includes microseconds) 56 | ; userdeftype (set only if eventtype == USER_DEFINED) 57 | ; cid_name 58 | ; cid_num 59 | ; cid_ani 60 | ; cid_rdnis 61 | ; cid_dnid 62 | ; exten 63 | ; context 64 | ; channame 65 | ; appname 66 | ; appdata 67 | ; accountcode 68 | ; peeraccount 69 | ; uniqueid 70 | ; linkedid 71 | ; amaflags (an int) 72 | ; userfield 73 | ; peer 74 | ; extra 75 | 76 | ; The point of this module is to allow you log whatever you like in terms of the 77 | ; CEL variables. Do you want to log uniqueid? Then simply ensure that your 78 | ; table has that column. If you don't want the column, ensure that it does not 79 | ; exist in the table structure. If you'd like to call uniqueid something else 80 | ; in your table, simply provide an alias in this file that maps the standard CEL 81 | ; field name (uniqueid) to whatever column name you like. 82 | 83 | ;[first] 84 | ;connection=mysql1 85 | ;table=cel 86 | 87 | ;[second] 88 | ;connection=mysql1 89 | ;table=extracel 90 | 91 | ;[third] 92 | ;connection=sqlserver 93 | ;table=AsteriskCEL 94 | ;usegmtime=yes ; defaults to no 95 | ;allowleapsecond=no ; allow leap second in SQL column for eventtime, default yes. 96 | ;alias src => source 97 | ;alias channel => source_channel 98 | ;alias dst => dest 99 | ;alias dstchannel => dest_channel 100 | 101 | ; Any filter specified MUST match exactly or the event will be discarded 102 | ;filter accountcode => somename 103 | ;filter src => 123 104 | 105 | ; Additionally, we now support setting static values per column. Reason 106 | ; for this is to allow different sections to specify different values for 107 | ; a certain named column, presumably separated by filters. 108 | ;static "Some Special Value" => identifier_code 109 | -------------------------------------------------------------------------------- /asterisk/cel_pgsql.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Channel Event Logging (CEL) - PostgreSQL Backend 3 | ; 4 | 5 | ; Sample Asterisk config file for CEL logging to PostgreSQL 6 | ; 7 | ; CEL field names: 8 | ; 9 | ; eventtype 10 | ; CHANNEL_START = 1 11 | ; CHANNEL_END = 2 12 | ; HANGUP = 3 13 | ; ANSWER = 4 14 | ; APP_START = 5 15 | ; APP_END = 6 16 | ; BRIDGE_START = 7 17 | ; BRIDGE_END = 8 18 | ; CONF_START = 9 19 | ; CONF_END = 10 20 | ; PARK_START = 11 21 | ; PARK_END = 12 22 | ; BLINDTRANSFER = 13 23 | ; ATTENDEDTRANSFER = 14 24 | ; TRANSFER = 15 25 | ; HOOKFLASH = 16 26 | ; 3WAY_START = 17 27 | ; 3WAY_END = 18 28 | ; CONF_ENTER = 19 29 | ; CONF_EXIT = 20 30 | ; USER_DEFINED = 21 31 | ; LINKEDID_END = 22 32 | ; BRIDGE_UPDATE = 23 33 | ; PICKUP = 24 34 | ; FORWARD = 25 35 | ; eventtime (timeval, includes microseconds) 36 | ; userdeftype (set only if eventtype == USER_DEFINED) 37 | ; cid_name 38 | ; cid_num 39 | ; cid_ani 40 | ; cid_rdnis 41 | ; cid_dnid 42 | ; exten 43 | ; context 44 | ; channame 45 | ; appname 46 | ; appdata 47 | ; accountcode 48 | ; peeraccount 49 | ; uniqueid 50 | ; linkedid 51 | ; amaflags (an int) 52 | ; userfield 53 | ; peer 54 | ; extra 55 | 56 | [global] 57 | ; Use 'show_user_defined' to put "USER_DEFINED" in the eventtype field, 58 | ; instead of (by default) just putting the user defined event name there. 59 | ; 60 | ;show_user_defined=yes 61 | 62 | ; Log date/time in GMT. The default of this option is 'no'. 63 | ;usegmtime=yes 64 | 65 | ;hostname=localhost 66 | ;port=5432 67 | ;dbname=asterisk 68 | ;password=password 69 | ;user=postgres 70 | ;table=cel ;SQL table where CEL's will be inserted 71 | ;schema=public ;Schema where CEL's table is located. Optional parameter. 72 | ;If schema support is present the default value used will be current_schema(). 73 | ;appname=asterisk ; Postgres application_name support (optional). Whitespace not allowed. 74 | -------------------------------------------------------------------------------- /asterisk/cel_sqlite3_custom.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Channel Event Logging (CEL) - SQLite 3 Backend 3 | ; 4 | 5 | ; 6 | ; Mappings for sqlite3 config file 7 | ; 8 | ; Within a mapping, use the CALLERID() and CHANNEL() functions to retrieve 9 | ; details from the CEL event. There are also a few variables created by this 10 | ; module that can be used in a mapping: 11 | ; 12 | ; eventtype - The name of the CEL event. 13 | ; eventtime - The timestamp of the CEL event. 14 | ; eventenum - Like eventtype but is "USER_DEFINED" for a user defined event. 15 | ; userdeftype - User defined event type name from CELGenUserEvent(). 16 | ; eventextra - Extra data included with this CEL event, typically along with 17 | ; an event of type USER_DEFINED from CELGenUserEvent(). 18 | ; BRIDGEPEER - Bridged peer channel name at the time of the CEL event. 19 | ; CHANNEL(peer) could also be used. 20 | ; 21 | ;[master] ; currently, only file "master.db" is supported, with only one table at a time. 22 | ;table => cel 23 | ;columns => eventtype, eventtime, cidname, cidnum, cidani, cidrdnis, ciddnid, context, exten, channame, appname, appdata, amaflags, accountcode, uniqueid, userfield, peer, userdeftype, eventextra 24 | ;values => '${eventtype}','${eventtime}','${CALLERID(name)}','${CALLERID(num)}','${CALLERID(ANI)}','${CALLERID(RDNIS)}','${CALLERID(DNID)}','${CHANNEL(context)}','${CHANNEL(exten)}','${CHANNEL(channame)}','${CHANNEL(appname)}','${CHANNEL(appdata)}','${CHANNEL(amaflags)}','${CHANNEL(accountcode)}','${CHANNEL(uniqueid)}','${CHANNEL(userfield)}','${BRIDGEPEER}','${userdeftype}','${eventextra}' 25 | ;busy_timeout => 1000 -------------------------------------------------------------------------------- /asterisk/cel_tds.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Channel Event Logging (CEL) - FreeTDS Backend 3 | ; 4 | 5 | ;[global] 6 | 7 | ; Connection 8 | ; 9 | ; Use the 'connection' keyword to specify one of the instance names from your 10 | ; 'freetds.conf' file. Note that 'freetds.conf' is not an Asterisk 11 | ; configuration file, but one specific to the FreeTDS library. See the FreeTDS 12 | ; documentation on 'freetds.conf' for more information: 13 | ; 14 | ; http://www.freetds.org/userguide/freetdsconf.htm 15 | ; 16 | ; Accepted values: One of the connections specified in freetds.conf 17 | 18 | ;connection=ConnectionFromFreeTDSConf 19 | 20 | ; Database Name 21 | ; 22 | ; The 'dbname' keyword specifies the database name to use when logging CEL 23 | ; records. 24 | ; 25 | ; Accepted values: Any valid database name 26 | 27 | ;dbname=MalicoHN 28 | 29 | ; Database Table Name 30 | ; 31 | ; The 'table' keyword identifies which database table is used to log CEL 32 | ; records. 33 | ; 34 | ; Accepted value: Any valid table name 35 | ; Default value: If not specified, a table named 'cel' is assumed 36 | 37 | ;table=cel 38 | 39 | ; Credentials 40 | ; 41 | ; The 'username' and 'password' keywords specify the user credentials that 42 | ; Asterisk should use when connecting to the database. 43 | ; 44 | ; Accepted value: Any valid username and password 45 | 46 | ;username=mangUsr 47 | ;password= 48 | 49 | ; Language 50 | ; 51 | ; The 'language' keyword changes the language which are used for error and 52 | ; information messages returned by SQL Server. Each database and user has their 53 | ; own default value, and this default can be overriden here. 54 | ; 55 | ; Accepted value: Any language installed on the target SQL Server. 56 | ; Default value: Server default 57 | 58 | ;language=us_english 59 | 60 | ; Character Set 61 | ; 62 | ; The 'charset' setting is used to change the character set used when connecting 63 | ; to the database server. Each database and database user has their own 64 | ; character set setting, and this default can be overriden here. 65 | ; 66 | ; Accepted value: Any valid character set available on the target server. 67 | ; Default value: Server setting 68 | 69 | ;charset=BIG5 70 | -------------------------------------------------------------------------------- /asterisk/chan_mobile.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; chan_mobile.conf 3 | ; configuration file for chan_mobile 4 | ; 5 | 6 | [general] 7 | interval=30 ; Number of seconds between trying to connect to devices. 8 | 9 | ; The following is a list of adapters we use. 10 | ; id must be unique and address is the bdaddr of the adapter from hciconfig. 11 | ; Each adapter may only have one device (headset or phone) connected at a time. 12 | ; Add an [adapter] entry for each adapter you have. 13 | 14 | [adapter] 15 | id=blue 16 | address=00:09:DD:60:01:A3 17 | ;forcemaster=yes ; attempt to force adapter into master mode. default is no. 18 | ;alignmentdetection=yes ; enable this if you sometimes get 'white noise' on asterisk side of the call 19 | ; its a bug in the bluetooth adapter firmware, enabling this will compensate for it. 20 | ; default is no. 21 | 22 | [adapter] 23 | id=dlink 24 | address=00:80:C8:35:52:78 25 | 26 | ; The following is a list of the devices we deal with. 27 | ; Every device listed below will be available for calls in and out of Asterisk. 28 | ; Each device needs an adapter=xxxx entry which determines which bluetooth adapter is used. 29 | ; Use the CLI command 'mobile search' to discover devices. 30 | ; Use the CLI command 'mobile show devices' to see device status. 31 | ; 32 | ; To place a call out through a mobile phone use Dial(Mobile/[device]/NNN.....) or Dial(Mobile/gn/NNN......) in your dialplan. 33 | ; To call a headset use Dial(Mobile/[device]). 34 | 35 | [LGTU550] 36 | address=00:E0:91:7F:46:44 ; the address of the phone 37 | port=4 ; the rfcomm port number (from mobile search) 38 | context=incoming-mobile ; dialplan context for incoming calls 39 | adapter=dlink ; adapter to use 40 | group=1 ; this phone is in channel group 1 41 | ;sms=no ; support SMS, defaults to yes 42 | ;nocallsetup=yes ; set this only if your phone reports that it supports call progress notification, but does not do it. Motorola L6 for example. 43 | 44 | [blackberry] 45 | address=00:60:57:32:7E:B2 46 | port=2 47 | context=incoming-mobile 48 | adapter=dlink 49 | group=1 50 | ;blackberry=yes ; set this if you are using a blackberry device 51 | 52 | [6310i] 53 | address=00:60:57:32:7E:B1 54 | port=13 55 | context=incoming-mobile 56 | adapter=dlink 57 | group=1 ; this phone is in channel group 1 also. 58 | 59 | [headset] 60 | address=00:0B:9E:11:AE:C6 61 | port=1 62 | type=headset ; This is a headset, not a Phone ! 63 | adapter=blue 64 | 65 | [headset1] 66 | address=00:0B:9E:11:74:A5 67 | port=1 68 | type=headset 69 | adapter=dlink 70 | -------------------------------------------------------------------------------- /asterisk/cli.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk CLI configuration 3 | ; 4 | 5 | [startup_commands] 6 | ; 7 | ; Any commands listed in this section will get automatically executed 8 | ; when Asterisk starts as a daemon or foreground process (-c). 9 | ; 10 | ;sip set debug on = yes 11 | ;core set verbose 3 = yes 12 | ;core set debug 1 = yes 13 | -------------------------------------------------------------------------------- /asterisk/cli_permissions.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; CLI permissions configuration example for Asterisk 3 | ; 4 | ; All the users that you want to connect with asterisk using 5 | ; rasterisk, should have write/read access to the 6 | ; asterisk socket (asterisk.ctl). You could change the permissions 7 | ; of this file in 'asterisk.conf' config parameter: 'astctlpermissions' (0666) 8 | ; found on the [files] section. 9 | ; 10 | ; general options: 11 | ; 12 | ; default_perm = permit | deny 13 | ; This is the default permissions to apply for a user that 14 | ; does not has a permissions definided. 15 | ; 16 | ; user options: 17 | ; permit = | all ; allow the user to run 'command' | 18 | ; ; allow the user to run 'all' the commands 19 | ; deny = | all ; disallow the user to run 'command' | 20 | ; ; disallow the user to run 'all' commands. 21 | ; 22 | 23 | [general] 24 | 25 | default_perm=permit ; To leave asterisk working as normal 26 | ; we should set this parameter to 'permit' 27 | ; 28 | ; Follows the per-users permissions configs. 29 | ; 30 | ; This list is read in the sequence that is being written, so 31 | ; In this example the user 'eliel' is allow to run only the following 32 | ; commands: 33 | ; sip show peer 34 | ; core set debug 35 | ; core set verbose 36 | ; If the user is not specified, the default_perm option will be apply to 37 | ; every command. 38 | ; 39 | ; Notice that you can also use regular expressions to allow or deny access to a 40 | ; certain command like: 'core show application D*'. In this example the user will be 41 | ; allowed to view the documentation for all the applications starting with 'D'. 42 | ; Another regular expression could be: 'channel originate SIP/[0-9]* extension *' 43 | ; allowing the user to use 'channel originate' on a sip channel and with the 'extension' 44 | ; parameter and avoiding the use of the 'application' parameter. 45 | ; 46 | ; We can also use the templates syntax: 47 | ; [supportTemplate](!) 48 | ; deny=all 49 | ; permit=sip show ; all commands starting with 'sip show' will be allowed 50 | ; permit=core show 51 | ; 52 | ; You can specify permissions for a local group instead of a user, 53 | ; just put a '@' and we will know that is a group. 54 | ; IMPORTANT NOTE: Users permissions overwrite group permissions. 55 | ; 56 | ;[@adm] 57 | ;deny=all 58 | ;permit=sip 59 | ;permit=core 60 | ; 61 | ; 62 | ;[eliel] 63 | ;deny=all 64 | ;permit=sip show peer 65 | ;deny=sip show peers 66 | ;permit=core set 67 | ; 68 | ; 69 | ;User 'tommy' inherits from template 'supportTemplate': 70 | ; deny=all 71 | ; permit=sip show 72 | ; permit=core show 73 | ;[tommy](supportTemplate) 74 | ;permit=core set debug 75 | ;permit=dialplan show 76 | ; 77 | ; 78 | ;[mark] 79 | ;deny=all 80 | ;permit=all 81 | ; 82 | ; 83 | -------------------------------------------------------------------------------- /asterisk/config_test.conf: -------------------------------------------------------------------------------- 1 | ; Config to test config parsing 2 | ; global and item have values that differ from defaults 3 | ; global_defaults and item_defualts are to show all defaults are set 4 | ; there should be an option for every default type, and a custom type 5 | 6 | [global] 7 | intopt=-1 8 | uintopt=1 9 | timelenopt1=1ms 10 | timelenopt2=1s 11 | timelenopt3=1m 12 | timelenopt4=1h 13 | doubleopt=0.1 14 | sockaddropt=1.2.3.4:1234 15 | boolopt=true 16 | boolflag1=true 17 | boolflag2=false 18 | boolflag3=true 19 | deny=0.0.0.0/0 20 | permit=1.2.3.4/32 21 | codecopt=!all,ulaw,g729 22 | stropt=test 23 | customopt=yes 24 | 25 | [global_defaults] 26 | 27 | [item] 28 | intopt=-1 29 | uintopt=1 30 | timelenopt1=1 31 | timelenopt2=1 32 | timelenopt3=1 33 | timelenopt4=1 34 | doubleopt=0.1 35 | sockaddropt=1.2.3.4:1234 36 | boolopt=true 37 | boolflag1=true 38 | boolflag2=false 39 | boolflag3=true 40 | acldenyopt=0.0.0.0/0 41 | aclpermitopt=1.2.3.4/32 42 | codecopt=!all,ulaw,g729 43 | stropt=test 44 | customopt=yes 45 | 46 | [item_defaults] 47 | -------------------------------------------------------------------------------- /asterisk/console.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Configuration for chan_console, a cross-platform console channel driver. 3 | ; 4 | 5 | [general] 6 | 7 | ; Set this option to "yes" to enable automatically answering calls on the 8 | ; console. This is very useful if the console is used as an intercom. 9 | ; The default value is "no". 10 | ; 11 | ;autoanswer = no 12 | 13 | ; Set the default context to use for outgoing calls. This can be overridden by 14 | ; dialing some extension@context, unless the overridecontext option is enabled. 15 | ; The default is "default". 16 | ; 17 | ;context = default 18 | 19 | ; Set the default extension to use for outgoing calls. The default is "s". 20 | ; 21 | ;extension = s 22 | 23 | ; Set the default CallerID for created channels. 24 | ; 25 | ;callerid = MyName Here <(256) 428-6000> 26 | 27 | ; Set the default language for created channels. 28 | ; 29 | ;language = en 30 | 31 | ; If you set overridecontext to 'yes', then the whole dial string 32 | ; will be interpreted as an extension, which is extremely useful 33 | ; to dial SIP, IAX and other extensions which use the '@' character. 34 | ; The default is "no". 35 | ; 36 | ;overridecontext = no ; if 'no', the last @ will start the context 37 | ; if 'yes' the whole string is an extension. 38 | 39 | 40 | ; Default Music on Hold class to use when this channel is placed on hold in 41 | ; the case that the music class is not set on the channel with 42 | ; Set(CHANNEL(musicclass)=whatever) in the dialplan and the peer channel 43 | ; putting this one on hold did not suggest a class to use. 44 | ; 45 | ;mohinterpret=default 46 | 47 | ; ----------------------------- JITTER BUFFER CONFIGURATION -------------------------- 48 | ; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of an 49 | ; Console channel. Defaults to "no". An enabled jitterbuffer will 50 | ; be used only if the sending side can create and the receiving 51 | ; side can not accept jitter. The Console channel can't accept jitter, 52 | ; thus an enabled jitterbuffer on the receive Console side will always 53 | ; be used if the sending side can create jitter. 54 | 55 | ; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. 56 | 57 | ; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is 58 | ; resynchronized. Useful to improve the quality of the voice, with 59 | ; big jumps in/broken timestamps, usually sent from exotic devices 60 | ; and programs. Defaults to 1000. 61 | 62 | ; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a Console 63 | ; channel. Two implementations are currently available - "fixed" 64 | ; (with size always equals to jbmax-size) and "adaptive" (with 65 | ; variable size, actually the new jb of IAX2). Defaults to fixed. 66 | 67 | ; jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set. 68 | ; The option represents the number of milliseconds by which the new 69 | ; jitter buffer will pad its size. the default is 40, so without 70 | ; modification, the new jitter buffer will set its size to the jitter 71 | ; value plus 40 milliseconds. increasing this value may help if your 72 | ; network normally has low jitter, but occasionally has spikes. 73 | 74 | ; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". 75 | ; ---------------------------------------------------------------------------------- 76 | 77 | 78 | ; 79 | ; Any configuration context defined beyond the [general] section configures 80 | ; specific devices for use. 81 | ; 82 | 83 | [default] 84 | input_device = default ; When configuring an input device and output device, 85 | output_device = default ; use the name that you see when you run the "console 86 | ; list available" CLI command. If you say "default", the 87 | ; system default input and output devices will be used. 88 | autoanswer = no 89 | context = default 90 | extension = s 91 | callerid = MyName Here <(256) 428-6000> 92 | language = en 93 | overridecontext = no 94 | mohinterpret = default 95 | active = yes ; This option should only be set for one console. 96 | ; It means that it is the active console to be 97 | ; used from the Asterisk CLI. 98 | -------------------------------------------------------------------------------- /asterisk/dbsep.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Configuration file for dbsep.cgi 3 | # 4 | # The purpose of this file is to provide realtime access to a database, 5 | # possibly through ODBC, without needing to load the ODBC drivers into 6 | # Asterisk, since there are several backend drivers which are rather 7 | # buggy. 8 | # 9 | # We accomplish this separation by using the res_config_curl realtime 10 | # driver to connect to a server running dbsep.cgi (or another, which 11 | # implements the same protocol). 12 | # 13 | # This file contains the information necessary to configure dbsep.cgi. 14 | # 15 | # 16 | # Once installed to a web server, you'll need to preload func_curl.so 17 | # and res_config_curl.so in modules.conf and configure extconfig.conf: 18 | # 19 | # voicemail => curl,http://server/path/to/dbsep.cgi/voicemail 20 | # sippeers => curl,http://server/path/to/dbsep.cgi/sippeers 21 | # 22 | 23 | # The Data Source Name, as specified by the Perl DBI module. 24 | # Typically, this will be along the lines of 'DBI:mysql:astdbname[:dbhostname]' or 'DBI:Pg:dbname=astdbname;hostname=dbhostname' 25 | dsn=somedsn 26 | 27 | # Connected database user 28 | dbuser=someuser 29 | 30 | # And its password 31 | dbpass=password 32 | 33 | # For most databases, this is fine. Set to 'no' for Sybase or MS SQL Server. 34 | backslash_is_escape=yes 35 | -------------------------------------------------------------------------------- /asterisk/dnsmgr.conf: -------------------------------------------------------------------------------- 1 | [general] 2 | ;enable=yes ; enable creation of managed DNS lookups 3 | ; default is 'no' 4 | ;refreshinterval=1200 ; refresh managed DNS lookups every seconds 5 | ; default is 300 (5 minutes) -------------------------------------------------------------------------------- /asterisk/dsp.conf: -------------------------------------------------------------------------------- 1 | [default] 2 | ; 3 | ; Length of sound (in milliseconds) before a period of silence is considered 4 | ; to be a change from talking to silence or a period of noise converts silence 5 | ; to talking. [default=256] 6 | ; 7 | ;silencethreshold=256 8 | 9 | ; DTMF Reverse Twist and Normal Twist is the difference in power between the row and column energies. 10 | ; 11 | ; Normal Twist is where the row energy is greater than the column energy. 12 | ; Reverse Twist is where the column energy is greater. 13 | ; 14 | ; Power level difference between frequencies for different Administrations/RPOAs 15 | ; Power Gain equiv 16 | ; normal reverse dB's 17 | ; AT&T(default) 6.31 2.51 8dB(normal), 4dB(reverse) 18 | ; NTT 3.16 3.16 Max. 5dB 19 | ; Danish 3.98 3.98 Max. 6dB 20 | ; Australian 10.0 10.0 Max. 10dB 21 | ; Brazilian 7.94 7.94 Max. 9dB 22 | ; ETSI 3.98 3.98 Max. 6dB 23 | 24 | ;previous version compatible AT&T values 25 | ; RADIO_RELAX disabled, and relaxdtmf=no 26 | ; 6.30 2.50 7.99dB(normal), 3.98dB(reverse) 27 | ; RADIO_RELAX disabled, and relaxdtmf=yes 28 | ; 6.30 4.00 7.99dB(normal), 6.02dB(reverse) 29 | ; RADIO_RELAX enabled, and relaxdtmf=no 30 | ; 6.30 2.50 7.99dB(normal), 3.984dB(reverse) 31 | ; RADIO_RELAX enabled, and relaxdtmf=yes 32 | ; 6.30 6.50 7.99dB(normal), 8.13dB(reverse) 33 | 34 | ;If you don't know what these mean, don't change them. 35 | ;dtmf_normal_twist=6.31 36 | ;dtmf_reverse_twist=2.51 37 | ;relax_dtmf_normal_twist=6.31 38 | ;relax_dtmf_reverse_twist=3.98 39 | 40 | ;successive number hits/misses of 12.75ms before a digit/nodigit is considered valid 41 | ;dtmf_hits_to_begin=2 42 | ;dtmf_misses_to_end=3 43 | -------------------------------------------------------------------------------- /asterisk/enum.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; ENUM Configuration for resolving phone numbers over DNS 3 | ; 4 | ; Sample config for Asterisk 5 | ; This file is reloaded at "module reload enum" in the CLI 6 | ; 7 | [general] 8 | ; 9 | ; The search list for domains may be customized. Domains are searched 10 | ; in the order they are listed here. 11 | ; 12 | search => e164.arpa 13 | ; 14 | ; If you'd like to use the E.164.org public ENUM registry in addition 15 | ; to the official e164.arpa one, uncomment the following line 16 | ; 17 | ;search => e164.org 18 | ; 19 | ; As there are more H323 drivers available you have to select to which 20 | ; drive a H323 URI will map. Default is "H323". 21 | ; 22 | h323driver => H323 23 | -------------------------------------------------------------------------------- /asterisk/extconfig.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Static and realtime external configuration 3 | ; engine configuration 4 | ; 5 | ; See https://wiki.asterisk.org/wiki/display/AST/Realtime+Database+Configuration 6 | ; for basic table formatting information. 7 | ; 8 | [settings] 9 | ; 10 | ; Static configuration files: 11 | ; 12 | ; file.conf => driver,database[,table[,priority]] 13 | ; 14 | ; maps a particular configuration file to the given 15 | ; database driver, database and table (or uses the 16 | ; name of the file as the table if not specified) 17 | ; 18 | ; Uncomment to load queues.conf via the odbc engine. 19 | ; 20 | ;queues.conf => odbc,asterisk,ast_config 21 | ;extensions.conf => sqlite,asterisk,ast_config 22 | ; 23 | ; The following files CANNOT be loaded from Realtime storage: 24 | ; asterisk.conf 25 | ; extconfig.conf (this file) 26 | ; logger.conf 27 | ; 28 | ; Additionally, the following files cannot be loaded from 29 | ; Realtime storage unless the storage driver is loaded 30 | ; early using 'preload' statements in modules.conf: 31 | ; manager.conf 32 | ; cdr.conf 33 | ; rtp.conf 34 | ; 35 | ; Named ACLs specified in realtime also can not be used 36 | ; from manager.conf unless the storage driver is preloaded. 37 | ; Attempting to use a realtime stored named ACL before the 38 | ; driver is loaded will result in an invalid ACL which 39 | ; rejects all addresses. 40 | ; 41 | ; Realtime configuration engine 42 | ; 43 | ; maps a particular family of realtime 44 | ; configuration to a given database driver, 45 | ; database and table (or uses the name of 46 | ; the family if the table is not specified 47 | ; 48 | ;example => odbc,asterisk,alttable,1 49 | ;example => mysql,asterisk,alttable,2 50 | ;example2 => ldap,"dc=oxymium,dc=net",example2 51 | ; 52 | ; Additionally, priorities are now supported for use as failover methods 53 | ; for retrieving realtime data. If one connection fails to retrieve any 54 | ; information, the next sequential priority will be tried next. This 55 | ; especially works well with ODBC connections, since res_odbc now caches 56 | ; when connection failures occur and prevents immediately retrying those 57 | ; connections until after a specified timeout. Note: priorities must 58 | ; start at 1 and be sequential (i.e. if you have only priorities 1, 2, 59 | ; and 4, then 4 will be ignored, because there is no 3). 60 | ; 61 | ; 62 | ; Possible driver backends: 63 | ; 64 | ; "odbc" is shown in the examples below, but is not the only valid realtime 65 | ; engine. Here are several of the possible options: 66 | ; odbc ... res_config_odbc 67 | ; sqlite ... res_config_sqlite 68 | ; sqlite3 ... res_config_sqlite3 69 | ; pgsql ... res_config_pgsql 70 | ; curl ... res_config_curl 71 | ; ldap ... res_config_ldap 72 | ; mysql ... res_config_mysql (available via add-ons in menuselect) 73 | ; 74 | ; Note: The res_config_pgsql and res_config_sqlite backends configure the 75 | ; database used in their respective configuration files and ignore the 76 | ; database name configured in this file. 77 | ; 78 | ;iaxusers => odbc,asterisk 79 | ;iaxpeers => odbc,asterisk 80 | ;sippeers => odbc,asterisk 81 | ;sipregs => odbc,asterisk ; (avoid sipregs if possible, e.g. by using a view) 82 | ;ps_endpoints => odbc,asterisk 83 | ;ps_auths => odbc,asterisk 84 | ;ps_aors => odbc,asterisk 85 | ;ps_domain_aliases => odbc,asterisk 86 | ;ps_endpoint_id_ips => odbc,asterisk 87 | ;ps_outbound_publishes => odbc,asterisk 88 | ;ps_inbound_publications = odbc,asterisk 89 | ;ps_asterisk_publications = odbc,asterisk 90 | ;voicemail => odbc,asterisk 91 | ;extensions => odbc,asterisk 92 | ;meetme => mysql,general 93 | ;queues => odbc,asterisk 94 | ;queue_members => odbc,asterisk 95 | ;queue_rules => odbc,asterisk 96 | ;acls => odbc,asterisk 97 | ;musiconhold => mysql,general 98 | ;queue_log => mysql,general 99 | ; 100 | ; 101 | ; While most dynamic realtime engines are automatically used when defined in 102 | ; this file, 'extensions', distinctively, is not. To activate dynamic realtime 103 | ; extensions, you must turn them on in each respective context within 104 | ; extensions.conf with a switch statement. The syntax is: 105 | ; switch => Realtime/[[db_context@]tablename]/ 106 | ; The only option available currently is the 'p' option, which disallows 107 | ; extension pattern queries to the database. If you have no patterns defined 108 | ; in a particular context, this will save quite a bit of CPU time. However, 109 | ; note that using dynamic realtime extensions is not recommended anymore as a 110 | ; best practice; instead, you should consider writing a static dialplan with 111 | ; proper data abstraction via a tool like func_odbc. 112 | -------------------------------------------------------------------------------- /asterisk/festival.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Festival Configuration 3 | ; 4 | [general] 5 | ; 6 | ; Host which runs the festival server (default : localhost); 7 | ; 8 | ;host=localhost 9 | ; 10 | ; Port on host where the festival server runs (default : 1314) 11 | ; 12 | ;port=1314 13 | ; 14 | ; Use cache (yes, no - defaults to no) 15 | ; 16 | ;usecache=yes 17 | ; 18 | ; If usecache=yes, a directory to store waveform cache files. 19 | ; The cache is never cleared (yet), so you must take care of cleaning it 20 | ; yourself (just delete any or all files from the cache). 21 | ; THIS DIRECTORY *MUST* EXIST and must be writable from the asterisk process. 22 | ; Defaults to /tmp/ 23 | ; 24 | ;cachedir=/var/lib/asterisk/festivalcache/ 25 | ; 26 | ; Festival command to send to the server. 27 | ; Defaults to: (tts_textasterisk "%s" 'file)(quit)\n 28 | ; %s is replaced by the desired text to say. The command MUST end with a 29 | ; (quit) directive, or the cache handling mechanism will hang. Do not 30 | ; forget the \n at the end. 31 | ; 32 | ;festivalcommand=(tts_textasterisk "%s" 'file)(quit)\n 33 | ; 34 | ; 35 | -------------------------------------------------------------------------------- /asterisk/followme.conf: -------------------------------------------------------------------------------- 1 | ; Find-Me / Follow-Me Configuration File 2 | [general] 3 | ; 4 | featuredigittimeout=>5000 5 | ; The number of ms to wait for a digit input for the callee on whether to take the call or 6 | ; not before we consider them "done" entering digits. 7 | ; 8 | enable_callee_prompt=>true 9 | ; Enable prompting a callee to either accept or reject the forwarded call. 10 | ; If disabled, the optional prompting for caller name (option 'a') is 11 | ; likewise disabled. Enabled by default. 12 | ; 13 | takecall=>1 14 | ; The global default keypress for the callee to take taking the current call. This can be 15 | ; a single digit or multiple digits. Default is "1". 16 | ; Note this string must not be a substring of declinecall. 17 | ; 18 | declinecall=>2 19 | ; The global default keypress for the callee to decline taking the current call. This can 20 | ; be a single digit or multiple digits. Default is "2". 21 | ; Note this string must not be a substring of takecall. 22 | ; 23 | call_from_prompt=>followme/call-from 24 | ; The global default for the 'Incoming call from' message. 25 | ; 26 | norecording_prompt=>followme/no-recording 27 | ; The global default for the 'You have an incoming call' message when the caller elects 28 | ; not to leave their name or the option isn't set for them to do so. 29 | ; 30 | options_prompt=>followme/options 31 | ; The global default for the 'Press 1 to accept this call or press 2 to decline it' message. 32 | ; 33 | pls_hold_prompt=>followme/pls-hold-while-try 34 | ; The global default for 'Please hold while we try and connect your call' message. 35 | ; 36 | status_prompt=>followme/status 37 | ; The global default for 'The party you're calling isn't at their desk' message. 38 | ; 39 | sorry_prompt=>followme/sorry 40 | ; The global default for 'I'm sorry, but we were unable to locate your party' message. 41 | ; 42 | connecting_prompt=> 43 | ; The global default sound file name for 'Please say hello to the caller' message. 44 | ; Setting to an empty string skips playing the prompt. The default is no prompt 45 | ; file name. 46 | 47 | [default] 48 | musicclass=>default 49 | ; The moh class that should be used for the caller while they are waiting to be connected. 50 | context=>default 51 | ; The context to dial the numbers from 52 | number=>01233456,25 53 | ; The a follow-me number to call. The format is: 54 | ; number=> [,[,]] 55 | ; You can specify as many of these numbers as you like. They will be dialed in the 56 | ; order that you specify them in the config file OR as specified with the order field 57 | ; on the number prompt. As you can see from the example, forked dialing of multiple 58 | ; numbers in the same step is supported with this application if you'd like to dial 59 | ; multiple numbers in the same followme step. 60 | ; 61 | ; The timeout value is the amount of time allowed between the time the dialing step 62 | ; starts and the callee answers. The callee then has until the timeout of the last 63 | ; step to make a choice on whether to take the call or not. That being the case, 64 | ; you may want to make the timeout on the last step longer to give enough time to 65 | ; make the choice to accept or not. 66 | enable_callee_prompt=>true 67 | ; Enable prompting the callee to accept the forwarded call. The default 68 | ; is the global value. 69 | takecall=>1 70 | ; The keypress for the callee to take taking the current call. This can be 71 | ; a single digit or multiple digits. Default is the global default. 72 | ; Note this string must not be a substring of declinecall. 73 | ; 74 | declinecall=>2 75 | ; The keypress for the callee to decline taking the current call. This can 76 | ; be a single digit or multiple digits. Default is the global default. 77 | ; Note this string must not be a substring of takecall. 78 | ; 79 | call_from_prompt=>followme/call-from 80 | ; The 'Incoming call from' message prompt. Default is the global default. 81 | ; 82 | norecording_prompt=>followme/no-recording 83 | ; The 'You have an incoming call' message prompt when the caller elects 84 | ; not to leave their name or the option isn't set for them to do so. Default 85 | ; is the global default. 86 | ; 87 | options_prompt=>followme/options 88 | ; The 'Press 1 to accept this call or press 2 to decline it' message prompt. 89 | ; Default is the global default. 90 | ; 91 | pls_hold_prompt=>followme/pls-hold-while-try 92 | ; The 'Please hold while we try and connect your call' message prompt. 93 | ; Default is the global default. 94 | ; 95 | status_prompt=>followme/status 96 | ; The 'The party you're calling isn't at their desk' message prompt. 97 | ; Default is the global default. 98 | ; 99 | sorry_prompt=>followme/sorry 100 | ; The 'I'm sorry, but we were unable to locate your party' message prompt. Default 101 | ; is the global default. 102 | ; 103 | connecting_prompt=> 104 | ; The sound file name for 'Please say hello to the caller' message. Default is the 105 | ; global default. 106 | ; 107 | 108 | -------------------------------------------------------------------------------- /asterisk/hep.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; res_hep Module configuration for Asterisk 3 | ; 4 | 5 | ; 6 | ; Note that this configuration file is consumed by res_hep, which is responsible 7 | ; for the HEPv3 protocol manipulation and managing the connection to the Homer 8 | ; capture server. Additional modules provide specific messages to be sent to 9 | ; the Homer server: 10 | ; - res_hep_pjsip: Send SIP messages transmitted/received by the PJSIP stack 11 | ; - res_hep_rtcp: Send RTCP information (all channels) 12 | ; 13 | 14 | ; All settings are currently set in the general section. 15 | [general] 16 | enabled = no ; Enable/disable forwarding of packets to a 17 | ; HEP server. Default is "yes". 18 | capture_address = 192.168.1.1:9061 ; The address of the HEP capture server. 19 | capture_password = foo ; If specified, the authorization passsword 20 | ; for the HEP server. If not specified, no 21 | ; authorization password will be sent. 22 | capture_id = 1234 ; A unique integer identifier for this 23 | ; server. This ID will be embedded sent 24 | ; with each packet from this server. 25 | uuid_type = call-id ; Specify the preferred source for the Homer 26 | ; correlation UUID. Valid options are: 27 | ; - 'call-id' for the PJSIP or chan_sip SIP 28 | ; Call-ID 29 | ; - 'channel' for the Asterisk channel name 30 | ; Note: If 'call-id' is specified but the 31 | ; channel is not PJSIP or chan_sip then the 32 | ; Asterisk channel name will be used instead. 33 | -------------------------------------------------------------------------------- /asterisk/http.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk Builtin mini-HTTP server 3 | ; 4 | ; 5 | ; Note about Asterisk documentation: 6 | ; If Asterisk was installed from a tarball, then the HTML documentation should 7 | ; be installed in the static-http/docs directory which is 8 | ; (/var/lib/asterisk/static-http/docs) on linux by default. If the Asterisk 9 | ; HTTP server is enabled in this file by setting the "enabled", "bindaddr", 10 | ; and "bindport" options, then you should be able to view the documentation 11 | ; remotely by browsing to: 12 | ; http://:/static/docs/index.html 13 | ; 14 | [general] 15 | ; 16 | ; The name of the server, advertised in both the Server field in HTTP 17 | ; response message headers, as well as the
element in certain HTTP 18 | ; response message bodies. If not furnished here, "Asterisk/{version}" will be 19 | ; used as a default value for the Server header field and the
20 | ; element. Setting this property to a blank value will result in the omission 21 | ; of the Server header field from HTTP response message headers and the 22 | ;
element from HTTP response message bodies. 23 | ; 24 | servername=Asterisk 25 | ; 26 | ; Whether HTTP/HTTPS interface is enabled or not. Default is no. 27 | ; This also affects manager/rawman/mxml access (see manager.conf) 28 | ; 29 | ;enabled=yes 30 | ; 31 | ; Address to bind to, both for HTTP and HTTPS. You MUST specify 32 | ; a bindaddr in order for the HTTP server to run. There is no 33 | ; default value. 34 | ; 35 | bindaddr=127.0.0.1 36 | ; 37 | ; Port to bind to for HTTP sessions (default is 8088) 38 | ; 39 | ;bindport=8088 40 | ; 41 | ; Prefix allows you to specify a prefix for all requests 42 | ; to the server. The default is blank. If uncommented 43 | ; all requests must begin with /asterisk 44 | ; 45 | ;prefix=asterisk 46 | ; 47 | ; sessionlimit specifies the maximum number of httpsessions that will be 48 | ; allowed to exist at any given time. (default: 100) 49 | ; 50 | ;sessionlimit=100 51 | ; 52 | ; session_inactivity specifies the number of milliseconds to wait for 53 | ; more data over the HTTP connection before closing it. 54 | ; 55 | ; Default: 30000 56 | ;session_inactivity=30000 57 | ; 58 | ; session_keep_alive specifies the number of milliseconds to wait for 59 | ; the next HTTP request over a persistent connection. 60 | ; 61 | ; Set to 0 to disable persistent HTTP connections. 62 | ; Default: 15000 63 | ;session_keep_alive=15000 64 | ; 65 | ; Whether Asterisk should serve static content from static-http 66 | ; Default is no. 67 | ; 68 | ;enablestatic=yes 69 | ; 70 | ; Redirect one URI to another. This is how you would set a 71 | ; default page. 72 | ; Syntax: redirect= 73 | ; For example, if you are using the Asterisk-gui, 74 | ; it is convenient to enable the following redirect: 75 | ; 76 | ;redirect = / /static/config/index.html 77 | ; 78 | ; HTTPS support. In addition to enabled=yes, you need to 79 | ; explicitly enable tls, define the port to use, 80 | ; and have a certificate somewhere. 81 | ;tlsenable=yes ; enable tls - default no. 82 | ;tlsbindaddr=0.0.0.0:8089 ; address and port to bind to - default is bindaddr and port 8089. 83 | ; 84 | ;tlscertfile= ; path to the certificate file (*.pem) only. 85 | ;tlsprivatekey= ; path to private key file (*.pem) only. 86 | ; If no path is given for tlscertfile or tlsprivatekey, default is to look in current 87 | ; directory. If no tlsprivatekey is given, default is to search tlscertfile for private key. 88 | ; 89 | ; To produce a certificate you can e.g. use openssl. This places both the cert and 90 | ; private in same .pem file. 91 | ; openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem 92 | ; 93 | ; tlscipher= ; The list of allowed ciphers 94 | ; ; if none are specified the following cipher 95 | ; ; list will be used instead: 96 | ; ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384: 97 | ; ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256: 98 | ; kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA: 99 | ; ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384: 100 | ; ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA: 101 | ; DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA: 102 | ; AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA: 103 | ; AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH: 104 | ; !EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA 105 | ; 106 | ; tlsdisablev1=yes ; Disable TLSv1 support - if not set this defaults to "yes" 107 | ; tlsdisablev11=yes ; Disable TLSv1.1 support - if not set this defaults to "no" 108 | ; tlsdisablev12=yes ; Disable TLSv1.2 support - if not set this defaults to "no" 109 | ; 110 | ; tlsservercipherorder=yes ; Use the server preference order instead of the client order 111 | ; ; Defaults to "yes" 112 | ; 113 | ; The post_mappings section maps URLs to real paths on the filesystem. If a 114 | ; POST is done from within an authenticated manager session to one of the 115 | ; configured POST mappings, then any files in the POST will be placed in the 116 | ; configured directory. 117 | ; 118 | ;[post_mappings] 119 | ; 120 | ; NOTE: You need a valid HTTP AMI mansession_id cookie with the manager 121 | ; config permission to POST files. 122 | ; 123 | ; In this example, if the prefix option is set to "asterisk", then using the 124 | ; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/. 125 | ;uploads = /var/lib/asterisk/uploads/ 126 | ; 127 | -------------------------------------------------------------------------------- /asterisk/iaxprov.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; IAX2 Provisioning Information 3 | ; 4 | ; Contains provisioning information for templates and for specific service 5 | ; entries. 6 | ; 7 | ; Templates provide a group of settings from which provisioning takes place. 8 | ; A template may be based upon any template that has been specified before 9 | ; it. If the template that an entry is based on is not specified then it is 10 | ; presumed to be 'default' (unless it is the first of course). 11 | ; 12 | ; Templates which begin with 'si-' are used for provisioning units with 13 | ; specific service identifiers. For example the entry "si-000364000126" 14 | ; would be used when the device with the corresponding service identifier of 15 | ; "000364000126" attempts to register or make a call. 16 | ; 17 | [default] 18 | ; 19 | ; The port number the device should use to bind to. The default is 4569. 20 | ; 21 | ;port=4569 22 | ; 23 | ; server is our PRIMARY server for registration and placing calls 24 | ; 25 | ;server=192.168.69.3 26 | ; 27 | ; altserver is the BACKUP server for registration and placing calls in the 28 | ; event the primary server is unavailable. 29 | ; 30 | ;altserver=192.168.69.4 31 | ; 32 | ; port is the port number to use for IAX2 outbound. The connections to the 33 | ; server and altserver -- default is of course 4569. 34 | ;serverport=4569 35 | ; 36 | ; language is the preferred language for the device 37 | ; 38 | ;language=en 39 | ; 40 | ; codec is the requested codec. The iaxy supports ulaw and adpcm 41 | ; 42 | codec=ulaw 43 | ; 44 | ; flags is a comma separated list of flags which the device should 45 | ; use and may contain any of the following keywords: 46 | ; 47 | ; "register" - Register with server 48 | ; "secure" - Do not accept calls / provisioning not originated by the server 49 | ; "heartbeat" - Generate status packets on port 9999 sent to 255.255.255.255 50 | ; "debug" - Output extra debugging to port 9999 51 | ; 52 | ; Note that use can use += and -= to adjust parameters 53 | ; 54 | flags=register,heartbeat 55 | ; 56 | ; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for a description of this parameter. 57 | ;tos=ef 58 | ; 59 | ; Example iaxy provisioning 60 | ; 61 | ;[si-000364000126] 62 | ;user=iaxy 63 | ;pass=bitsy 64 | ;flags += debug 65 | 66 | ;[si-000364000127] 67 | ;user=iaxy2 68 | ;pass=bitsy2 69 | ;template=si-000364000126 70 | ;flags += debug 71 | 72 | ; 73 | ;[*] 74 | ; 75 | ; If specified, the '*' provisioning is used for all devices which do not 76 | ; have another provisioning entry within the file. If unspecified, no 77 | ; provisioning will take place for devices which have no entry. DO NOT 78 | ; USE A '*' PROVISIONING ENTRY UNLESS YOU KNOW WHAT YOU'RE DOING. 79 | ; 80 | ;template=default 81 | -------------------------------------------------------------------------------- /asterisk/meetme.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Configuration file for MeetMe simple conference rooms for Asterisk of course. 3 | ; 4 | ; This configuration file is read every time you call app meetme() 5 | 6 | [general] 7 | ;audiobuffers=32 ; The number of 20ms audio buffers to be used 8 | ; when feeding audio frames from non-DAHDI channels 9 | ; into the conference; larger numbers will allow 10 | ; for the conference to 'de-jitter' audio that arrives 11 | ; at different timing than the conference's timing 12 | ; source, but can also allow for latency in hearing 13 | ; the audio from the speaker. Minimum value is 2, 14 | ; maximum value is 32. 15 | ; 16 | ; Conferences may be scheduled from realtime? 17 | ;schedule=yes 18 | ; 19 | ; Update realtime when members login/out of the conference 20 | ;logmembercount=no 21 | ; 22 | ; How much earlier than the start time should we allow participants to 23 | ; join the conference (in seconds)? 24 | ;fuzzystart=300 25 | ; 26 | ; If the participants join too early, how much time should we allow 27 | ; to tell them that they've joined too early, rather than telling them 28 | ; the conference simply doesn't exist (in seconds)? 29 | ;earlyalert=3600 30 | ; 31 | ; How many seconds before the scheduled end of the conference should 32 | ; the participants be warned? 33 | ;endalert=120 34 | ; 35 | [rooms] 36 | ; 37 | ; Usage is conf => confno[,pin][,adminpin] 38 | ; 39 | ; Note that once a participant has called the conference, a change to the pin 40 | ; number done in this file will not take effect until there are no more users 41 | ; in the conference and it goes away. When it is created again, it will have 42 | ; the new pin number. 43 | ; 44 | ;conf => 1234 45 | ;conf => 2345,9938 46 | -------------------------------------------------------------------------------- /asterisk/minivm.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/igorolhovskiy/kamailio-dev-dc/6a561dc42ff2b66ed5855070630847992b3aced6/asterisk/minivm.conf -------------------------------------------------------------------------------- /asterisk/modules.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk configuration file 3 | ; 4 | ; Module Loader configuration file 5 | ; 6 | 7 | [modules] 8 | autoload=yes 9 | ; 10 | ; Any modules that need to be loaded before the Asterisk core has been 11 | ; initialized (just after the logger initialization) can be loaded 12 | ; using 'preload'. 'preload' forces a module and the modules it 13 | ; is known to depend upon to be loaded earlier than they normally get 14 | ; loaded. 15 | ; 16 | ; NOTE: There is no good reason left to use 'preload' anymore. It was 17 | ; historically required to preload realtime driver modules so you could 18 | ; map Asterisk core configuration files to Realtime storage. 19 | ; This is no longer needed. 20 | ; 21 | ;preload => your_special_module.so 22 | ; 23 | ; If you want Asterisk to fail if a module does not load, then use 24 | ; the "require" keyword. Asterisk will exit with a status code of 2 25 | ; if a required module does not load. 26 | ; 27 | ; require = chan_pjsip.so 28 | ; 29 | ; If you want you can combine with preload 30 | ; preload-require = your_special_module.so 31 | ; 32 | ;load => res_musiconhold.so 33 | ; 34 | ; Load one of: chan_oss, alsa, or console (portaudio). 35 | ; By default, load chan_oss only (automatically). 36 | ; 37 | noload => chan_alsa.so 38 | ;noload => chan_oss.so 39 | noload => chan_console.so 40 | 41 | noload => res_hep.so 42 | noload => res_hep_pjsip.so 43 | noload => res_hep_rtcp.so 44 | ; 45 | -------------------------------------------------------------------------------- /asterisk/motif.conf: -------------------------------------------------------------------------------- 1 | ; Sample configuration file for chan_motif 2 | 3 | ; Transports 4 | ; 5 | ; There are three different transports and protocol derivatives supported by chan_motif. They are in order of preference: 6 | ; Jingle using ICE-UDP, Google Jingle, and Google-V1. 7 | ; 8 | ; Jingle as defined in XEP-0166 supports the widest range of features. It is referred to as "ice-udp" in this file. This is 9 | ; the specification that Jingle clients implement. 10 | ; 11 | ; Google Jingle follows the Jingle specification for signaling but uses a custom transport for media. It is supported 12 | ; by the Google Talk Plug-in in Gmail and by some other Jingle clients. It is referred to as "google" in this file. 13 | ; 14 | ; Google-V1 is the original Google Talk signaling protocol which uses an initial preliminary version of Jingle. 15 | ; It also uses the same custom transport as Google Jingle for media. It is supported by Google Voice, some other Jingle 16 | ; clients, and the Windows Google Talk client. It is referred to as "google-v1" in this file. 17 | ; 18 | ; Incoming sessions will automatically switch to the correct transport once it has been determined. 19 | ; 20 | ; Outgoing sessions are capable of determining if the target is capable of Jingle or a Google transport if the target is 21 | ; in the roster. Unfortunately it is not possible to differentiate between a Google Jingle or Google-V1 capable resource 22 | ; until a session initiate attempt occurs. If a resource is determined to use a Google transport it will initially use 23 | ; Google Jingle but will fall back to Google-V1 if required. 24 | ; 25 | ; If an outgoing session attempt fails due to failure to support the given transport chan_motif will fall back in preference 26 | ; order listed at the beginning of this document until all transports have been exhausted. 27 | ; 28 | 29 | ; Dialing and Resource Selection Strategy 30 | ; 31 | ; Placing a call through an endpoint can be accomplished using the following dial string: 32 | ; 33 | ; Motif// 34 | ; 35 | ; When placing an outgoing call through an endpoint the requested target is searched for in the roster list. If present 36 | ; the first Jingle or Google Jingle capable resource is specifically targetted. Since the capabilities of the resource are 37 | ; known the outgoing session initation will disregard the configured transport and use the determined one. 38 | ; 39 | ; If the target is not found in the roster the target will be used as-is and a session will be initiated using the 40 | ; transport specified in this configuration file. If no transport has been specified the endpoint defaults to ice-udp. 41 | ; 42 | 43 | ; Video Support 44 | ; 45 | ; Support for video does not need to be explicitly enabled. Configuring any video codec on your endpoint will 46 | ; automatically enable it. 47 | 48 | ; DTMF 49 | ; 50 | ; The only supported method for DTMF is RFC2833. This is always enabled on audio streams and negotiated if possible. 51 | 52 | ; Incoming Calls 53 | ; 54 | ; Incoming calls will first look for the extension matching the name of the endpoint in the configured context. If 55 | ; no such extension exists the call will automatically fall back to the "s" extension. 56 | 57 | ; CallerID 58 | ; 59 | ; The incoming caller id number is populated with the username of the caller and the name is populated with the full 60 | ; identity of the caller. If you would like to perform authentication or filtering of incoming calls it is recommended 61 | ; that you use these fields to do so. 62 | ; 63 | ; Outgoing caller id can *not* be set. 64 | ; 65 | ; IMPORTANT: Multiple endpoints using the same connection is *NOT* supported. Doing so may result in broken calls. 66 | 67 | ; Default template for endpoints, to be included in their definition 68 | [default](!) 69 | disallow=all 70 | allow=ulaw 71 | allow=h264 72 | context=incoming-motif ; Default context that incoming sessions will land in 73 | 74 | ;maxicecandidates = 10 ; Maximum number of ICE candidates we will offer 75 | ;maxpayloads = 30 ; Maximum number of payloads we will offer 76 | 77 | ; Sample configuration entry for Jingle 78 | ;[jingle-endpoint](default) 79 | ;transport=ice-udp ; Change the default protocol of outgoing sessions to Jingle ICE-UDP 80 | ;allow=g722 ; Add G.722 as an allowed format since the other side may support it 81 | ;connection=local-jabber-account ; Connection to accept traffic on and send traffic out 82 | ;accountcode=jingle ; Account code for CDR purposes 83 | 84 | ; Sample configuration entry for Google Talk 85 | [gtalk-endpoint](default) 86 | ;transport=google ; Since this is a Google Talk endpoint we want to offer Google Jingle for outgoing sessions 87 | ;connection=gtalk-account 88 | 89 | ; Sample configuration entry for Google Voice 90 | ;[gvoice](default) 91 | ;transport=google-v1 ; Google Voice uses the original Google Talk protocol 92 | ;connection=gvoice-account 93 | 94 | ; Additional options 95 | ; callgroup 96 | ; pickupgroup 97 | ; language 98 | ; musicclass 99 | ; parkinglot 100 | -------------------------------------------------------------------------------- /asterisk/musiconhold.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Music on Hold -- Sample Configuration 3 | ; 4 | [general] 5 | ;cachertclasses=yes ; use 1 instance of moh class for all users who are using it, 6 | ; decrease consumable cpu cycles and memory 7 | ; disabled by default 8 | 9 | ;preferchannelclass=yes ; Prefer the musicclass as defined by CHANNEL(musicclass), 10 | ; over a class set by an application (e.g. a musicclass set on a queue). 11 | ; Defaults to yes. 12 | 13 | ; valid mode options: 14 | ; files -- read files from a directory in any Asterisk supported 15 | ; media format 16 | ; quietmp3 -- default 17 | ; mp3 -- loud 18 | ; mp3nb -- unbuffered 19 | ; quietmp3nb -- quiet unbuffered 20 | ; custom -- run a custom application (See examples below) 21 | 22 | ; ========= 23 | ; File-based (native) music on hold 24 | ; ========= 25 | ; 26 | ; This plays files directly from the specified directory, no external 27 | ; processes are required. Files are played in normal sorting order 28 | ; (same as a sorted directory listing), and no volume or other 29 | ; sound adjustments are available. If the file is available in 30 | ; the same format as the channel's codec, then it will be played 31 | ; without transcoding (same as Playback would do in the dialplan). 32 | ; Files can be present in as many formats as you wish, and the 33 | ; 'best' format will be chosen at playback time. 34 | ; 35 | ; The path specified can be either an absolute path (starts with '/'), 36 | ; or a relative path; relative paths are interpreted as being relative 37 | ; to the 'astdatalibdir' in asterisk.conf, which defaults to 38 | ; /var/lib/asterisk. 39 | ; 40 | ; NOTE: 41 | ; If you are not using "autoload" in modules.conf, then you 42 | ; must ensure that the format modules for any formats you wish 43 | ; to use are loaded _before_ res_musiconhold. If you do not do 44 | ; this, res_musiconhold will skip the files it is not able to 45 | ; understand when it loads. 46 | ; 47 | 48 | [default] 49 | mode=files 50 | directory=moh 51 | ; 52 | ;[native-random] 53 | ;mode=files 54 | ;directory=moh 55 | ;digit=# ; If this option is set for a class, then when callers are 56 | ; ; listening to music on hold, they can press this digit, and 57 | ; ; they will switch to listening to this music class. 58 | ;announcement=queue-thankyou ;If this option is set for a class, then 59 | ; ; when callers get put on hold, the specified sound will be 60 | ; ; be played to them. Also, if using modes that Asterisk 61 | ; ; controls the playlist for (files, mp3, etc), the same 62 | ; ; sound will also be played between MOH songs. 63 | ;sort=random ; Sort the files in random order. Other sort options are: 64 | ; ; 'alpha' and 'randstart'. If 'alpha', the files are sorted 65 | ; ; in alphabetical order. If 'randstart', the files are sorted 66 | ; ; in alphabetical order as well, but the first file is chosen 67 | ; ; at random. If unspecified, the sort order is undefined. 68 | 69 | ;[native-alphabetical] 70 | ;mode=files 71 | ;directory=moh 72 | ;sort=alpha ; Sort the files in alphabetical order. 73 | 74 | ; ========= 75 | ; Other (non-native) playback methods 76 | ; ========= 77 | 78 | ;[manual] 79 | ;mode=custom 80 | ; Note that with mode=custom, a directory is not required, such as when reading 81 | ; from a stream. 82 | ;directory=/var/lib/asterisk/mohmp3 83 | ;application=/usr/bin/mpg123 -q -r 8000 -f 8192 -b 2048 --mono -s 84 | 85 | ;[ulawstream] 86 | ;mode=custom 87 | ;application=/usr/bin/streamplayer 192.168.100.52 888 88 | ;format=ulaw ; The 'format' option specifies the audio format that the 89 | ; ; 'application' will provide to Asterisk. In this example, 90 | ; ; streamplayer will output ulaw samples so we need to set the 91 | ; ; format to ulaw so that Asterisk knows how to interpret the 92 | ; ; incoming audio. 93 | 94 | ; mpg123 on Solaris does not always exit properly; madplay may be a better 95 | ; choice 96 | ;[solaris] 97 | ;mode=custom 98 | ;directory=/var/lib/asterisk/mohmp3 99 | ;application=/site/sw/bin/madplay -Q -o raw:- --mono -R 8000 -a -12 100 | 101 | ; By default, when res_musiconhold reloads or unloads, it sends a HUP signal 102 | ; to custom applications (and all descendants), waits 100ms, then sends a 103 | ; TERM signal, waits 100ms, then finally sends a KILL signal. An application 104 | ; which is interacting with an external device and/or spawns children of its 105 | ; own may not be able to exit cleanly in the default times, expecially if sent 106 | ; a KILL signal, or if it's children are getting signals directly from 107 | ; res_musiconhoild. To allow extra time, the 'kill_escalation_delay' 108 | ; class option can be used to set the number of milliseconds res_musiconhold 109 | ; waits before escalating kill signals, with the default being the current 110 | ; 100ms. To control to whom the signals are sent, the "kill_method" 111 | ; class option can be set to "process_group" (the default, existing behavior), 112 | ; which sends signals to the application and its descendants directly, or 113 | ; "process" which sends signals only to the application itself. 114 | 115 | ;[sox_from_device] 116 | ;mode=custom 117 | ;directory=/var/lib/asterisk/mohmp3 118 | ;application=/usr/bin/sox -q -t alsa -c 2 -r 48000 hw:1 -c 1 -r 8000 -t raw -s - 119 | ; Wait 500ms before escalating kill signals 120 | ;kill_escalation_delay=500 121 | ; Send signals to just the child process instead of all descendants 122 | ;kill_method=process 123 | -------------------------------------------------------------------------------- /asterisk/muted.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Sample muted configuration file 3 | # 4 | # Copyright (C) 2004 Digium, Inc. 5 | # 6 | # First you have the host, username, and password 7 | # we use to connect to the asterisk system 8 | # 9 | # What is this? Well, haven't you ever wished you could automatically 10 | # turn down the volume on your stereo, CDPlayer, etc, when a call comes in, 11 | # and then return it to normal when the call ends? Well, this is a possible 12 | # mechanism to make this happen! 13 | # You have to fire up the new utils/muted, which runs as a daemon in the 14 | # background. This daemon connects to asterisk via a manager interface, and 15 | # also reads this config file from /etc/muted.conf. when the channels mentioned 16 | # are activated, it tweaks the sound levels on the sound card(s). 17 | # So, depending on the sound card, you may be able to run all your sound 18 | # generating devices thru your sound card, and use this mechanism to quiet 19 | # them down while you are on the phone. If anyone figures out how to make 20 | # this work with kids, please inform!! 21 | # 22 | host localhost 23 | user user 24 | pass pass 25 | # 26 | # List each channel we're supposed to watch 27 | # 28 | channel DAHDI/1 29 | channel DAHDI/2 30 | channel SIP/mark 31 | # 32 | # Mute level is the percentage of the current volume we should 33 | # lower the music to. 34 | # 35 | mutelevel 20 36 | # 37 | # Smooth fade makes the fadein/fadeout nicer sounding 38 | # 39 | smoothfade 40 | -------------------------------------------------------------------------------- /asterisk/osp.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Open Settlement Protocol Sample Configuration File 3 | ; 4 | ; This file contains configuration of OSP server providers that are used by the 5 | ; Asterisk OSP module. The section "general" is reserved for global options. 6 | ; All other sections describe specific OSP Providers. The provider "default" 7 | ; is used when no provider is otherwise specified. 8 | ; 9 | ; The "servicepoint" and "source" parameters must be configured. For most 10 | ; implementations the other parameters in this file can be left unchanged. 11 | ; 12 | [general] 13 | ; 14 | ; Enable cryptographic acceleration hardware. 15 | ; The default value is no. 16 | ; 17 | ;accelerate=no 18 | ; 19 | ; Enable security features. 20 | ; If security features are disabled, Asterisk cannot validate signed tokens and 21 | ; all certificate file name parameters are ignored. 22 | ; The default value is no. 23 | ; 24 | ;securityfeatures=no 25 | ; 26 | ; Defines the status of tokens that Asterisk will validate. 27 | ; 0 - signed tokens only 28 | ; 1 - unsigned tokens only 29 | ; 2 - both signed and unsigned 30 | ; The default value is 0, i.e. the Asterisk will only validate signed tokens. 31 | ; If securityfeatures are disabled, Asterisk cannot validate signed tokens. 32 | ; 33 | ;tokenformat=0 34 | ; 35 | ;[default] 36 | ; 37 | ; List all service points (OSP servers) for this provider. 38 | ; Use either domain name or IP address. Most OSP servers use port 5045. 39 | ; 40 | ;servicepoint=http://osptestserver.transnexus.com:5045/osp 41 | ; 42 | ; Define the "source" device for requesting OSP authorization. 43 | ; This value is usually the domain name or IP address of the the Asterisk server. 44 | ; 45 | ;source=domain name or [IP address in brackets] 46 | ; 47 | ; Define path and file name of crypto files. 48 | ; The default path for crypto file is /var/lib/asterisk/keys. If no path is 49 | ; defined, crypto files will in /var/lib/asterisk/keys directory. 50 | ; 51 | ; Specify the private key file name. 52 | ; If this parameter is unspecified or not present, the default name will be the 53 | ; osp.conf section name followed by "-privatekey.pem" (for example: 54 | ; default-privatekey.pem) 55 | ; If securityfeatures are disabled, this parameter is ignored. 56 | ; 57 | ;privatekey=pkey.pem 58 | ; 59 | ; Specify the local certificate file. 60 | ; If this parameter is unspecified or not present, the default name will be the 61 | ; osp.conf section name followed by "- localcert.pem " (for example: 62 | ; default-localcert.pem) 63 | ; If securityfeatures are disabled, this parameter is ignored. 64 | ; 65 | ;localcert=localcert.pem 66 | ; 67 | ; Specify one or more Certificate Authority key file names. If none are listed, 68 | ; a single Certificate Authority key file name is added with the default name of 69 | ; the osp.conf section name followed by "-cacert_0.pem " (for example: 70 | ; default-cacert_0.pem) 71 | ; If securityfeatures are disabled, this parameter is ignored. 72 | ; 73 | ;cacert=cacert_0.pem 74 | ; 75 | ; Configure parameters for OSP communication between Asterisk OSP client and OSP 76 | ; servers. 77 | ; 78 | ; maxconnections: Max number of simultaneous connections to the provider OSP 79 | ; server (default=20) 80 | ; retrydelay: Extra delay between retries (default=0) 81 | ; retrylimit: Max number of retries before giving up (default=2) 82 | ; timeout: Timeout for response in milliseconds (default=500) 83 | ; 84 | ;maxconnections=20 85 | ;retrydelay=0 86 | ;retrylimit=2 87 | ;timeout=500 88 | ; 89 | ; Set the authentication policy. 90 | ; 0 - NO - Accept all calls. 91 | ; 1 - YES - Accept calls with valid token or no token. Block calls with 92 | ; invalid token. 93 | ; 2 - EXCLUSIVE - Accept calls with valid token. Block calls with invalid token 94 | ; or no token. 95 | ; Default is 1, 96 | ; If securityfeatures are disabled, Asterisk cannot validate signed tokens. 97 | ; 98 | ;authpolicy=1 99 | ; 100 | ; Set the default destination protocol. The OSP module supports SIP, H323, and 101 | ; IAX protocols. The default protocol is set to SIP. 102 | ; 103 | ;defaultprotocol=SIP 104 | ; 105 | ; Set the work mode. 106 | ; 0 - Direct 107 | ; 1 - Indirect 108 | ; Default is 0, 109 | ; 110 | ;workmode=0 111 | ; 112 | ; Set the service type. 113 | ; 0 - Normal voice service 114 | ; 1 - Ported number query service 115 | ; Default is 0, 116 | ; 117 | ;servicetype=0 118 | -------------------------------------------------------------------------------- /asterisk/phone.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Linux Telephony Interface 3 | ; 4 | ; Configuration file 5 | ; 6 | [interfaces] 7 | ; 8 | ; Select a mode, either the phone jack provides dialtone, reads digits, 9 | ; then starts PBX with the given extension (dialtone mode), or 10 | ; immediately provides the PBX without reading any digits or providing 11 | ; any dialtone (this is the immediate mode, the default). Also, you 12 | ; can set the mode to "fxo" if you have a linejack to make it operate 13 | ; properly. If you are using a Sigma Designs board you may set this to 14 | ; "sig". 15 | ; 16 | mode=immediate 17 | ;mode=dialtone 18 | ;mode=fxo 19 | ;mode=sig 20 | ; 21 | ; You can decide which format to use by default, "g723.1", "g729", or "slinear". 22 | ; Note that g729 is only supported for Sigma Designs boards. 23 | ; XXX Be careful, sometimes the card causes kernel panics when running 24 | ; in signed linear mode for some reason... XXX 25 | ; 26 | format=slinear 27 | ;format=g723.1 28 | ;format=g729 29 | ; 30 | ; And set the echo cancellation to "off", "low", "medium", and "high". 31 | ; This is not supported on all phones. 32 | ; 33 | echocancel=medium 34 | ; 35 | ; You can optionally use VAD/CNG silence suppression 36 | ; 37 | ;silencesupression=yes 38 | ; 39 | ; List all devices we can use. Contexts may also be specified 40 | ; 41 | ;context=local 42 | ; 43 | ; You can set txgain and rxgain for each device in the same way as context. 44 | ; If you want to change default gain value (1.0 =~ 100%) for device, simple 45 | ; add txgain or rxgain line before device line. But remember, if you change 46 | ; volume all cards listed below will be affected by these values. You can 47 | ; use float values (1.0, 0.5, 2.0) or percentage values (100%, 150%, 50%). 48 | ; 49 | ;txgain=100% 50 | ;rxgain=1.0 51 | ;device => /dev/phone0 52 | -------------------------------------------------------------------------------- /asterisk/pjproject.conf: -------------------------------------------------------------------------------- 1 | ; Common pjproject options 2 | ; 3 | 4 | ;[startup] 5 | ; NOTES: The name of this section in the pjproject.conf configuration file must 6 | ; remain startup or the configuration will not be applied. 7 | ; 8 | ;cache_pools = yes ; Cache pjproject memory pools for performance 9 | ; Disable this option to help track down pool content 10 | ; mismanagement when using valgrind or MALLOC_DEBUG. 11 | ; The cache gets in the way of determining if the 12 | ; pool contents are used after being freed and who 13 | ; freed it. 14 | ; Default yes 15 | ;log_level=default ; Initial maximum pjproject logging level to log 16 | ; Valid values are: 0-6, and default 17 | ; 18 | ; Note: This option is needed very early in the startup 19 | ; process so it can only be read from config files because 20 | ; the modules for other methods have not been loaded yet. 21 | ;type= ; Must be of type startup (default: "") 22 | 23 | ;========================LOG_MAPPINGS SECTION OPTIONS=============================== 24 | ;[log_mappings] 25 | ; SYNOPSIS: Provides pjproject to Asterisk log level mappings. 26 | ; NOTES: The name of this section in the pjproject.conf configuration file must 27 | ; remain log_mappings or the configuration will not be applied. 28 | ; The defaults mentioned below only apply if this file or the 'log_mappings' 29 | ; object can't be found. If the object is found, there are no defaults. If 30 | ; you don't specify an entry, nothing will be logged for that level. 31 | ; 32 | ; These logging level meanings are typically used by pjproject: 33 | ; - 0: fatal error 34 | ; - 1: error 35 | ; - 2: warning 36 | ; - 3: info 37 | ; - 4: debug 38 | ; - 5: trace 39 | ; - 6: more detailed trace 40 | ; 41 | ;asterisk_error = ; A comma separated list of pjproject log levels to map to 42 | ; Asterisk errors. 43 | ; (default: "0,1") 44 | ;asterisk_warning = ; A comma separated list of pjproject log levels to map to 45 | ; Asterisk warnings. 46 | ; (default: "2") 47 | ;asterisk_notice = ; A comma separated list of pjproject log levels to map to 48 | ; Asterisk notices. 49 | ; (default: "") 50 | ;asterisk_verbose = ; A comma separated list of pjproject log levels to map to 51 | ; Asterisk verbose. 52 | ; (default: "") 53 | ;asterisk_debug = ; A comma separated list of pjproject log levels to map to 54 | ; Asterisk debug 55 | ; (default: "3,4,5,6") 56 | ;type= ; Must be of type log_mappings (default: "") 57 | -------------------------------------------------------------------------------- /asterisk/pjsip_notify.conf: -------------------------------------------------------------------------------- 1 | ; rfc3842 2 | ; put empty "Content=>" at the end to have CRLF after last body line 3 | 4 | [clear-mwi] 5 | Event=>message-summary 6 | Content-type=>application/simple-message-summary 7 | Content=>Messages-Waiting: no 8 | Content=>Message-Account: sip:asterisk@127.0.0.1 9 | Content=>Voice-Message: 0/0 (0/0) 10 | Content=> 11 | 12 | ; Aastra 13 | 14 | [aastra-check-cfg] 15 | Event=>check-sync 16 | 17 | [aastra-xml] 18 | Event=>aastra-xml 19 | 20 | ; Digium 21 | 22 | [digium-check-cfg] 23 | Event=>check-sync 24 | 25 | ; Linksys 26 | 27 | [linksys-cold-restart] 28 | Event=>reboot_now 29 | 30 | [linksys-warm-restart] 31 | Event=>restart_now 32 | 33 | ; Polycom 34 | 35 | [polycom-check-cfg] 36 | Event=>check-sync 37 | 38 | ; Sipura 39 | 40 | [sipura-check-cfg] 41 | Event=>resync 42 | 43 | [sipura-get-report] 44 | Event=>report 45 | 46 | ; snom 47 | 48 | [snom-check-cfg] 49 | Event=>check-sync\;reboot=false 50 | 51 | [snom-reboot] 52 | Event=>check-sync\;reboot=true 53 | 54 | ; Cisco 55 | 56 | [cisco-check-cfg] 57 | Event=>check-sync 58 | -------------------------------------------------------------------------------- /asterisk/queuerules.conf: -------------------------------------------------------------------------------- 1 | 2 | [general] 3 | 4 | ; Look for queue rules in the queue_rules database table through RealTime. Note 5 | ; that this option is not strictly "RealTime", in the sense that the queue 6 | ; rules are only loaded and parsed during module load/reload. Queue rules 7 | ; must have a unique rule name and support relative min/max penalties. 8 | ; 9 | ; realtime_rules = yes 10 | ; 11 | 12 | ; It is possible to change the value of the QUEUE_MAX_PENALTY, QUEUE_MIN_PENALTY and QUEUE_RAISE_PENALTY 13 | ; channel variables in mid-call by defining rules in the queue for when to do so. This can allow for 14 | ; a call to be opened to more members or potentially a different set of members. 15 | ; The advantage to changing members this way as opposed to inserting the caller into a 16 | ; different queue with more members or reinserting the caller into the same queue with a different 17 | ; QUEUE_MAX_PENALTY or QUEUE_MIN_PENALTY set is that the caller does not lose his place in the queue. 18 | ; 19 | ; QUEUE_MAX_PENALTY, QUEUE_MIN_PENALTY and QUEUE_RAISE_PENALTY only apply to a queue call, and are only 20 | ; modified by these rules if they are initially set in the dialplan. 21 | ; 22 | ; If QUEUE_MIN_PENALTY is set, agents with a lower penalty value will not be considered for the caller. 23 | ; If QUEUE_MAX_PENALTY is set, agents with a higher penalty value will not be considered for the caller. 24 | ; If QUEUE_RAISE_PENALTY is set, agents with a lower penalty will be treated as having a penalty = QUEUE_RAISE_PENALTY. 25 | ; 26 | ; QUEUE_RAISE_PENALTY example: 27 | ; - Agent 1 has penalty 1 28 | ; - Agent 2 has penalty 2 29 | ; - the queue rule is set to: 30 | ; penaltychange => 30,,,2 31 | ; 32 | ; Prior to the 30 second mark, Agent 1 will take priority over Agent 2 for call distribution. 33 | ; After 30 seconds, Agent 1's priority is bumped to 2 by the penaltychange, so both agents are treated equally. 34 | ; 35 | ; Note: There is a limitation to these rules; a caller will follow the penaltychange rules for 36 | ; the queue that were defined at the time the caller entered the queue. If an update to the rules is 37 | ; made during the caller's stay in the queue, these will not be reflected for that caller. 38 | ; 39 | ; The syntax for these rules is 40 | ; penaltychange => ,[,absolute or relative change to QUEUE_MIN_PENALTY][,absolute or relative change to QUEUE_RAISE_PENALTY] 41 | ; 42 | ; Example: 43 | ; [myrule] 44 | ; penaltychange => 30,+3 ; 30 seconds into the call increase the QUEUE_MAX_PENALTY by 3, no change to QUEUE_MIN_PENALTY 45 | ; penaltychange => 60,10,5 ; 60 seconds into the call increase the QUEUE_MAX_PENALTY to 10 and increase the QUEUE_MIN_PENALTY to 5 46 | ; penaltychange => 75,,7 ; 75 seconds into the call keep the QUEUE_MAX_PENALTY the same and increase the QUEUE_MIN_PENALTY to 7 47 | ; penaltychange => 90,,,20 ; 90 seconds into the call leave QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY untouched and set QUEUE_RAISE_PENALTY to 20 48 | -------------------------------------------------------------------------------- /asterisk/res_config_mysql.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Sample configuration for res_config_mysql.c 3 | ; 4 | ; The value of dbhost may be either a hostname or an IP address. 5 | ; If dbhost is commented out or the string "localhost", a connection 6 | ; to the local host is assumed and dbsock is used instead of TCP/IP 7 | ; to connect to the server. If no dbcharset is specified, the connection 8 | ; is made with no extra charset configurations sent to MySQL, leaving all 9 | ; configured MySQL charset options and defaults untouched. 10 | ; 11 | ; Multiple database contexts may be configured, with the caveat that 12 | ; all context names should be unique and must not contain the slash ('/') 13 | ; character. If you wish to separate reads from writes in your database 14 | ; configuration, you specify the database (NOT HERE, in other files) 15 | ; separated by a slash, read database first. If your database 16 | ; specification does not contain a slash, the implication is that reads 17 | ; and writes should be performed to the same database. 18 | ; 19 | ; For example, in extconfig.conf, you could specify a line like: 20 | ; sippeers => mysql,readhost.asterisk/writehost.asterisk,sippeers 21 | ; and then define the contexts [readhost.asterisk] and [writehost.asterisk] 22 | ; below. 23 | ; 24 | ; The requirements parameter is available only in Asterisk 1.6.1 and 25 | ; later and must be present in all contexts. It specifies the behavior 26 | ; when a column name is required by the system. The default behavior is 27 | ; "warn" and simply sends a warning to the logger that the column does 28 | ; not exist (or is of the wrong type or precision). The other two 29 | ; possibilities are "createclose", which adds the column with the right 30 | ; type and length, and "createchar", which adds the column as a char 31 | ; type, with the appropriate length to accept the data. Note that with 32 | ; the MySQL driver, both "createclose" and "createchar" will, on occasion, 33 | ; widen a table column width to meet the requirements specified. 34 | ; 35 | [general] 36 | ;dbhost = 127.0.0.1 37 | ;dbname = asterisk 38 | ;dbuser = myuser 39 | ;dbpass = mypass 40 | ;dbport = 3306 41 | ;dbsock = /tmp/mysql.sock 42 | ;dbcharset = latin1 43 | ;requirements=warn ; or createclose or createchar 44 | -------------------------------------------------------------------------------- /asterisk/res_config_sqlite.conf: -------------------------------------------------------------------------------- 1 | [general] 2 | 3 | ; The database file. 4 | dbfile => /var/lib/asterisk/sqlite.db 5 | 6 | ; Both config_table and cdr_table are optional. If config_table is omitted, 7 | ; you must specify it in extconfig.conf. If it is both provided here and in 8 | ; extconfig.conf, the value given here is used. If cdr_table is omitted, CDR 9 | ; support is simply disabled. 10 | config_table => ast_config 11 | ; cdr_table => ast_cdr 12 | -------------------------------------------------------------------------------- /asterisk/res_config_sqlite3.conf: -------------------------------------------------------------------------------- 1 | ; Define a realtime database name to use in extconfig.conf 2 | ; 3 | ;[asterisk] 4 | ;dbfile => /var/lib/asterisk/realtime.sqlite3 5 | ; 6 | ; debug - Turn on debugging information 7 | ;debug=yes 8 | ; 9 | ; requirements - At startup, each realtime family will make requirements 10 | ; on the backend. There are several strategies for handling requirements: 11 | ; warn - Warn if the required column does not exist. 12 | ; createclose - Create columns as close to the requirements as possible. 13 | ; createchar - Create char columns only 14 | ; 15 | ;requirements=warn 16 | ; 17 | ; batch - SQLite 3 write performance can be greatly improved by wrapping 18 | ; multiple writes in transactions. This option specifies the duration in 19 | ; milliseconds of auto-generated transactions. Any changes made during an 20 | ; unfinished transaction will be immediately available to the same database 21 | ; connection, but any external connections could see a delay up to the value 22 | ; of this setting. It is also possible that if asterisk crashes, any changes 23 | ; made during this time could be lost. Due to the nearly 100x performance 24 | ; benefit, the default is 100 ms. Set to 0 to disable batching. 25 | ; 26 | ; PLEASE NOTE: If you need to write to the database from another connection 27 | ; you will need to set batch=0 as the transactions will cause the database 28 | ; to lock for writing. 29 | ; 30 | ;batch=1000 31 | ; 32 | ; busy timeout - timeout in miliseconds to stop waiting for locked database. 33 | ; More info at https://www.sqlite.org/c3ref/busy_timeout.html 34 | ; 35 | ;busy_timeout=1000 -------------------------------------------------------------------------------- /asterisk/res_corosync.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Sample configuration file for res_corosync. 3 | ; 4 | ; This module allows events to be shared amongst a local cluster of 5 | ; Asterisk servers. Specifically, the types of events that may be 6 | ; shared include: 7 | ; 8 | ; - Device State (for shared presence information) 9 | ; 10 | ; - Message Waiting Indication, or MWI (to allow Voicemail to live on 11 | ; a server that is different from where the phones are registered) 12 | ; 13 | ; For more information about Corosync, see: http://www.corosync.org/ 14 | ; 15 | 16 | [general] 17 | 18 | ; 19 | ; Publish Message Waiting Indication (MWI) events from this server to the 20 | ; cluster. 21 | ;publish_event = mwi 22 | ; 23 | ; Subscribe to MWI events from the cluster. 24 | ;subscribe_event = mwi 25 | ; 26 | ; Publish Device State (presence) events from this server to the cluster. 27 | ;publish_event = device_state 28 | ; 29 | ; Subscribe to Device State (presence) events from the cluster. 30 | ;subscribe_event = device_state 31 | ; 32 | -------------------------------------------------------------------------------- /asterisk/res_curl.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; CURLOPT global settings (mostly set for realtime) 3 | ; 4 | [globals] 5 | ;proxy=myproxy.example.com 6 | proxytype=http 7 | proxyport=8001 8 | ;proxyuserpwd=asterisk:asteriskrocks 9 | -------------------------------------------------------------------------------- /asterisk/res_fax.conf: -------------------------------------------------------------------------------- 1 | ; Generic Fax Application configuration 2 | 3 | [general] 4 | ; Maximum Transmission Rate 5 | ; Possible values are { 2400 | 4800 | 7200 | 9600 | 12000 | 14400 } 6 | ; Set this value to the maximum desired transfer rate. Default: 14400 7 | ;maxrate=14400 8 | 9 | ; Minimum Transmission Rate 10 | ; Possible values are { 2400 | 4800 | 7200 | 9600 | 12000 | 14400 } 11 | ; Set this value to the minimum desired transfer rate. Default: 4800 12 | ;minrate=4800 13 | 14 | ; Send Progress/Status events to manager session 15 | ; Manager events with 'call' class permissions will receive events indicating the 16 | ; steps to initiate a fax session. Fax completion events are always sent to manager 17 | ; sessions with 'call' class permissions, regardless of the value of this option. 18 | ; Default: no 19 | statusevents=yes 20 | 21 | ; modem capabilities 22 | ; Possible values are { v17 | v27 | v29 } 23 | ; Set this value to modify the default modem options. Default: v17,v27,v29 24 | ;modems=v17,v27,v29 25 | 26 | ; Enable/disable T.30 ECM (error correction mode) by default. 27 | ; Default: Enabled 28 | ;ecm=yes 29 | 30 | ; T.38 Negotiation Timeout in milliseconds 31 | ; Default: 5000 32 | t38timeout=5000 33 | -------------------------------------------------------------------------------- /asterisk/res_odbc.conf: -------------------------------------------------------------------------------- 1 | ;;; odbc setup file 2 | 3 | ; ENV is a global set of environmental variables that will get set. 4 | ; Note that all environmental variables can be seen by all connections, 5 | ; so you can't have different values for different connections. 6 | [ENV] 7 | ;INFORMIXSERVER => my_special_database 8 | ;INFORMIXDIR => /opt/informix 9 | ;ORACLE_HOME => /home/oracle 10 | 11 | ; All other sections are arbitrary names for database connections. 12 | 13 | ; 14 | ; The context name is what will be used in other configuration files, such 15 | ; as extconfig.conf and func_odbc.conf, to reference this connection. 16 | [asterisk] 17 | ; 18 | ; Permit disabling sections without needing to comment them out. 19 | ; If not specified, it is assumed the section is enabled. 20 | enabled => no 21 | ; 22 | ; This value should match an entry in /etc/odbc.ini 23 | ; (or /usr/local/etc/odbc.ini, on FreeBSD and similar systems). 24 | dsn => asterisk 25 | ; 26 | ; Username for connecting to the database. The user defaults to the context name if unspecified. 27 | ;username => myuser 28 | ; 29 | ; Password for authenticating the user to the database. The default 30 | ; password is blank. 31 | ;password => mypass 32 | ; 33 | ; Build a connection at startup? 34 | pre-connect => yes 35 | ; 36 | ; What should we execute to ensure that our connection is still alive? The 37 | ; statement should return a non-zero value in the first field of its first 38 | ; record. The default is "select 1". 39 | ;sanitysql => select 1 40 | ; 41 | ; The maximum number of connections to have open at any given time. 42 | ; This defaults to 1 and it is highly recommended to only set this higher 43 | ; if using a version of UnixODBC greater than 2.3.1. 44 | ;max_connections => 20 45 | ; 46 | ; When the channel is destroyed, should any uncommitted open transactions 47 | ; automatically be committed? 48 | ;forcecommit => no 49 | ; 50 | ; How should we perceive data in other transactions within the database? 51 | ; Possible values are read_uncommitted, read_committed, repeatable_read, 52 | ; and serializable. The default is read_committed. 53 | ;isolation => repeatable_read 54 | ; 55 | ; Is the backslash a native escape character? The default is yes, but for 56 | ; MS SQL Server, the answer is no. 57 | ;backslash_is_escape => yes 58 | ; 59 | ; How long (in seconds) should we attempt to connect before considering the 60 | ; connection dead? The default is 10 seconds, but you may wish to reduce it, 61 | ; to increase responsiveness. 62 | ;connect_timeout => 10 63 | ; 64 | ; When a connection fails, how long (in seconds) should we cache that 65 | ; information before we attempt another connection? This increases 66 | ; responsiveness, when a database resource is not working. 67 | ;negative_connection_cache => 300 68 | ; 69 | ; Enable query logging. This keeps track of the number of prepared queries 70 | ; and executed queries as well as the query that has taken the longest to 71 | ; execute. This can be useful for determining the latency with a database. 72 | ; The data can be viewed using the "odbc show" CLI command. 73 | ; Note that only successful queries are logged currently. 74 | ;logging => yes 75 | ; 76 | ; Slow query limit. If a query exceeds the given amount of time (in milliseconds) 77 | ; when executing then a WARNING message will be output to indicate that there 78 | ; may be a problem. Note that logging must be set to "yes" for this to occur. By 79 | ; default this is set to 5000 milliseconds (or 5 seconds). If you would like to 80 | ; disable the WARNING message it can be set to "0". 81 | ;slow_query_limit => 5000 82 | 83 | [mysql2] 84 | enabled => no 85 | dsn => MySQL-asterisk 86 | username => myuser 87 | password => mypass 88 | pre-connect => yes 89 | 90 | ; Certain servers, such as MS SQL Server and Sybase use the TDS protocol, which 91 | ; limits the number of active queries per connection to 1. 92 | [sqlserver] 93 | enabled => no 94 | dsn => mickeysoft 95 | max_connections => 5 96 | username => oscar 97 | password => thegrouch 98 | pre-connect => yes 99 | sanitysql => select count(*) from systables 100 | ; forcecommit => no ; Default to committing uncommitted transactions? 101 | ; Note: this is NOT the autocommit flag; this 102 | ; determines the end result of transactions which 103 | ; are not explicitly committed or rolled back. By 104 | ; default, such transactions are rolled back if the 105 | ; call ends without an explicit commit. 106 | ; isolation => read_committed ; Isolation level; supported levels are: 107 | ; read_uncommitted, read_committed, repeatable_read, 108 | ; serializable. Note that not all databases support 109 | ; all isolation levels (e.g. Postgres only supports 110 | ; repeatable_read and serializable). See database 111 | ; documentation for further information. 112 | ; 113 | ; Many databases have a default of '\' to escape special characters. MS SQL 114 | ; Server does not. 115 | backslash_is_escape => no 116 | 117 | ; 118 | ; If you are having problems with concurrency, please read this note from the 119 | ; mailing lists, regarding UnixODBC: 120 | ; 121 | ; http://lists.digium.com/pipermail/asterisk-dev/2009-February/036539.html 122 | ; 123 | ; In summary, try setting "Threading=2" in the relevant section within your 124 | ; odbcinst.ini. 125 | ; 126 | -------------------------------------------------------------------------------- /asterisk/res_pgsql.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Sample configuration for res_config_pgsql 3 | ; 4 | ; The value of dbhost may be either a hostname or an IP address. 5 | ; If dbhost is commented out or the string "localhost", a connection 6 | ; to the local host is assumed and dbsock is used instead of TCP/IP 7 | ; to connect to the server. 8 | ; 9 | [general] 10 | dbhost=127.0.0.1 11 | dbport=5432 12 | dbname=asterisk 13 | dbuser=asterisk 14 | dbpass=password 15 | ;dbappname=asterisk ; Postgres application_name support (optional). Whitespace not allowed. 16 | ; 17 | ; dbsock is specified as the directory where the socket file may be found. The 18 | ; actual socket is constructed as a combination of dbsock and dbport. For 19 | ; example, the values of '/tmp' and '5432', respectively, will specify a socket 20 | ; file of '/tmp/.s.PGSQL.5432'. 21 | ; 22 | ;dbsock=/tmp 23 | ; 24 | ; requirements - At startup, each realtime family will make requirements 25 | ; on the backend. There are several strategies for handling requirements: 26 | ; warn - Warn if the required column does not exist. 27 | ; createclose - Create columns as close to the requirements as possible. 28 | ; createchar - Create char columns only 29 | ; 30 | requirements=warn 31 | -------------------------------------------------------------------------------- /asterisk/res_pktccops.conf: -------------------------------------------------------------------------------- 1 | ;; Sample res_pktccops.conf 2 | ; 3 | ;[general] 4 | ;gateinfoperiod => 60 ; default 60s 5 | ;gatetimeout = 150 ; default 150 6 | ;t1 => 250 ; default 250s 7 | ;t7 => 200 ; default 200s 8 | ;t8 => 300 ; default 300s 9 | ;keepalive => 60 ; default 60s 10 | ; 11 | ;[teszt] 12 | ;host => 192.168.0.24 13 | ;pool => 10.0.1.0 10.0.1.255 14 | ;pool => 10.0.3.0 10.0.3.255 15 | ;pool => 10.0.7.0 10.0.8.255 16 | ;pool => 10.0.10.0 10.0.11.255 17 | ; 18 | ;[general] 19 | ;gateinfoperiod => 60 ; default 60s 20 | ;gatetimeout = 150 ; default 150 21 | ;t1 => 250 ; default 250s 22 | ;t7 => 200 ; default 200s 23 | ;t8 => 300 ; default 300s 24 | ;keepalive => 60 ; default 60s 25 | ; 26 | ;[test] 27 | ;host => 192.168.0.24 28 | ;pool => 10.0.1.0 10.0.1.255 29 | ;pool => 10.0.3.0 10.0.3.255 30 | ;pool => 10.0.7.0 10.0.8.255 31 | ;pool => 10.0.10.0 10.0.11.255 32 | ; 33 | -------------------------------------------------------------------------------- /asterisk/res_snmp.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Configuration file for res_snmp 3 | ; -------------------------------- 4 | ; 5 | ; Res_snmp can run as a subagent or standalone SNMP agent. The standalone snmp 6 | ; agent is based on net-snmp and will read a configuration file called 7 | ; asterisk.conf in the net-snmp configuration file path, starting with 8 | ; /etc/snmp on many systems. 9 | ; 10 | ; If you use the subagent model, you need to enable agentx in snmpd.conf 11 | ; Note that you can only run one Asterisk on the system in this case. 12 | ; 13 | ; See https://wiki.asterisk.org/wiki/display/AST/Simple+Network+Management+Protocol+(SNMP)+Support 14 | ; to get more information about 15 | ; snmp support in Asterisk 16 | 17 | [general] 18 | ; We run as a subagent per default -- to run as a full agent 19 | ; we must run as root (to be able to bind to port 161) 20 | ;subagent = yes 21 | ; SNMP must be explicitly enabled to be active 22 | ;enabled = yes 23 | -------------------------------------------------------------------------------- /asterisk/res_stun_monitor.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; Configuration file for the res_stun_monitor module 3 | ; 4 | ; The res_stun_monitor module sends STUN requests to a configured STUN server 5 | ; periodically. If the monitor detects a change in the external IP address or port 6 | ; provided by the STUN server an event is sent out internally within Asterisk 7 | ; to alert all listeners to that event of the change. 8 | 9 | ; The current default listeners for the network change event include chan_sip 10 | ; and chan_iax. Both of these channel drivers by default react to this event 11 | ; by renewing all outbound registrations. This allows the endpoints Asterisk 12 | ; is registering with to become aware of the address change and know the new 13 | ; location. 14 | ; 15 | [general] 16 | ; 17 | ; ---- STUN Server configuration --- 18 | ; Setting the 'stunaddr' option to a valid address enables the STUN monitor. 19 | ; 20 | ;stunaddr = mystunserver.com ; Address of the STUN server to query. 21 | ; Valid form: 22 | ; [(hostname | IP-address) [':' port]] 23 | ; The port defaults to the standard STUN port (3478). 24 | ; Set to an empty value to disable STUN monitoring. 25 | ; Default is disabled. 26 | ;stunrefresh = 30 ; Number of seconds between STUN refreshes. 27 | ; Default is 30. 28 | -------------------------------------------------------------------------------- /asterisk/resolver_unbound.conf: -------------------------------------------------------------------------------- 1 | ; Unbound DNS Resolver Configuration 2 | ; 3 | ; This file serves as a reference for the configurable options within the 4 | ; unbound DNS resolver. 5 | 6 | [general] 7 | ;hosts = /etc/hosts ; Full path to a hosts file which contains a mapping of 8 | ; ; hostnames to addresses. If "system" is specified then 9 | ; ; the system specific hosts file will be used. (default: system) 10 | ;resolv = /etc/resolv.conf ; Full path to a resolv.conf which contains the nameservers 11 | ; ; to use for resolution. If "system" is specified then the 12 | ; ; system specific resolv.conf file will be used. (default: system) 13 | ;nameserver = 127.0.0.1 ; An explicit nameserver to use for queries. If this option 14 | ; ; is specified multiple times the first configured one will 15 | ; ; be treated as the primary with each subsequent one being 16 | ; ; a backup. If the resolv options is also specified the 17 | ; ; nameservers from it will be tried after all nameserver 18 | ; ; options. 19 | ;debug = 99 ; The debug level to run the unbound resolver at. While 20 | ; ; there is no explicit range the higher the number the more 21 | ; ; debug is output. 22 | ;ta_file = /etc/asterisk/dnssec_keys ; Full path to a trusted anchors key file. These keys are 23 | ; ; used to verify DNSSEC signed results. 24 | -------------------------------------------------------------------------------- /asterisk/rtp.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; RTP Configuration 3 | ; 4 | [general] 5 | ; 6 | ; RTP start and RTP end configure start and end addresses 7 | ; 8 | ; Defaults are rtpstart=5000 and rtpend=31000 9 | ; 10 | rtpstart=10000 11 | rtpend=20000 12 | ; 13 | ; Whether to enable or disable UDP checksums on RTP traffic 14 | ; 15 | ;rtpchecksums=no 16 | ; 17 | ; The amount of time a DTMF digit with no 'end' marker should be 18 | ; allowed to continue (in 'samples', 1/8000 of a second) 19 | ; 20 | ;dtmftimeout=3000 21 | ; rtcpinterval = 5000 ; Milliseconds between rtcp reports 22 | ;(min 500, max 60000, default 5000) 23 | ; 24 | ; Enable strict RTP protection. This will drop RTP packets that do not come 25 | ; from the recoginized source of the RTP stream. Strict RTP qualifies RTP 26 | ; packet stream sources before accepting them upon initial connection and 27 | ; when the connection is renegotiated (e.g., transfers and direct media). 28 | ; Initial connection and renegotiation starts a learning mode to qualify 29 | ; stream source addresses. Once Asterisk has recognized a stream it will 30 | ; allow other streams to qualify and replace the current stream for 5 31 | ; seconds after starting learning mode. Once learning mode completes the 32 | ; current stream is locked in and cannot change until the next 33 | ; renegotiation. 34 | ; Valid options are "no" to disable strictrtp, "yes" to enable strictrtp, 35 | ; and "seqno", which does the same thing as strictrtp=yes, but only checks 36 | ; to make sure the sequence number is correct rather than checking the time 37 | ; interval as well. 38 | ; This option is enabled by default. 39 | ; strictrtp=yes 40 | ; 41 | ; Number of packets containing consecutive sequence values needed 42 | ; to change the RTP source socket address. This option only comes 43 | ; into play while using strictrtp=yes. Consider changing this value 44 | ; if rtp packets are dropped from one or both ends after a call is 45 | ; connected. This option is set to 4 by default. 46 | ; probation=8 47 | ; 48 | ; Whether to enable or disable ICE support. This option is enabled by default. 49 | ; icesupport=false 50 | ; 51 | ; Hostname or address for the STUN server used when determining the external 52 | ; IP address and port an RTP session can be reached at. The port number is 53 | ; optional. If omitted the default value of 3478 will be used. This option is 54 | ; disabled by default. 55 | ; 56 | ; e.g. stundaddr=mystun.server.com:3478 57 | ; 58 | ; stunaddr= 59 | ; 60 | ; Some multihomed servers have IP interfaces that cannot reach the STUN 61 | ; server specified by stunaddr. Blacklist those interface subnets from 62 | ; trying to send a STUN packet to find the external IP address. 63 | ; Attempting to send the STUN packet needlessly delays processing incoming 64 | ; and outgoing SIP INVITEs because we will wait for a response that can 65 | ; never come until we give up on the response. 66 | ; * Multiple subnets may be listed. 67 | ; * Blacklisting applies to IPv4 only. STUN isn't needed for IPv6. 68 | ; * Blacklisting applies when binding RTP to specific IP addresses and not 69 | ; the wildcard 0.0.0.0 address. e.g., A PJSIP endpoint binding RTP to a 70 | ; specific address using the bind_rtp_to_media_address and media_address 71 | ; options. Or the PJSIP endpoint specifies an explicit transport that binds 72 | ; to a specific IP address. 73 | ; 74 | ; e.g. stun_blacklist = 192.168.1.0/255.255.255.0 75 | ; stun_blacklist = 10.32.77.0/255.255.255.0 76 | ; 77 | ; stun_blacklist = 78 | ; 79 | ; Hostname or address for the TURN server to be used as a relay. The port 80 | ; number is optional. If omitted the default value of 3478 will be used. 81 | ; This option is disabled by default. 82 | ; 83 | ; e.g. turnaddr=myturn.server.com:34780 84 | ; 85 | ; turnaddr= 86 | ; 87 | ; Username used to authenticate with TURN relay server. 88 | ; turnusername= 89 | ; 90 | ; Password used to authenticate with TURN relay server. 91 | ; turnpassword= 92 | ; 93 | ; Subnets to exclude from ICE host, srflx and relay discovery. This is useful 94 | ; to optimize the ICE process where a system has multiple host address ranges 95 | ; and/or physical interfaces and certain of them are not expected to be used 96 | ; for RTP. For example, VPNs and local interconnections may not be suitable or 97 | ; necessary for ICE. Multiple subnets may be listed. If left unconfigured, 98 | ; all discovered host addresses are used. 99 | ; 100 | ; e.g. ice_blacklist = 192.168.1.0/255.255.255.0 101 | ; ice_blacklist = 10.32.77.0/255.255.255.0 102 | ; 103 | ; ice_blacklist = 104 | ; 105 | [ice_host_candidates] 106 | ; 107 | ; When Asterisk is behind a static one-to-one NAT and ICE is in use, ICE will 108 | ; expose the server's internal IP address as one of the host candidates. 109 | ; Although using STUN (see the 'stunaddr' configuration option) will provide a 110 | ; publicly accessible IP, the internal IP will still be sent to the remote 111 | ; peer. To help hide the topology of your internal network, you can override 112 | ; the host candidates that Asterisk will send to the remote peer. 113 | ; 114 | ; IMPORTANT: Only use this functionality when your Asterisk server is behind a 115 | ; one-to-one NAT and you know what you're doing. If you do define anything 116 | ; here, you almost certainly will NOT want to specify 'stunaddr' or 'turnaddr' 117 | ; above. 118 | ; 119 | ; The format for these overrides is: 120 | ; 121 | ; => 122 | ; 123 | ; The following will replace 192.168.1.10 with 1.2.3.4 during ICE 124 | ; negotiation: 125 | ; 126 | ;192.168.1.10 => 1.2.3.4 127 | ; 128 | ; You can define an override for more than 1 interface if you have a multihomed 129 | ; server. Any local interface that is not matched will be passed through 130 | ; unaltered. Both IPv4 and IPv6 addresses are supported. 131 | -------------------------------------------------------------------------------- /asterisk/sip_notify.conf: -------------------------------------------------------------------------------- 1 | ; rfc3842 2 | ; put empty "Content=>" at the end to have CRLF after last body line 3 | 4 | [clear-mwi] 5 | Event=>message-summary 6 | Content-type=>application/simple-message-summary 7 | Content=>Messages-Waiting: no 8 | Content=>Message-Account: sip:asterisk@127.0.0.1 9 | Content=>Voice-Message: 0/0 (0/0) 10 | Content=> 11 | 12 | ; Aastra 13 | 14 | [aastra-check-cfg] 15 | Event=>check-sync 16 | 17 | [aastra-xml] 18 | Event=>aastra-xml 19 | 20 | ; Digium 21 | 22 | [digium-check-cfg] 23 | Event=>check-sync 24 | 25 | ; Linksys 26 | 27 | [linksys-cold-restart] 28 | Event=>reboot_now 29 | 30 | [linksys-warm-restart] 31 | Event=>restart_now 32 | 33 | ; Polycom 34 | 35 | [polycom-check-cfg] 36 | Event=>check-sync 37 | 38 | ; Sipura 39 | 40 | [sipura-check-cfg] 41 | Event=>resync 42 | 43 | [sipura-get-report] 44 | Event=>report 45 | 46 | ; snom 47 | 48 | [snom-check-cfg] 49 | Event=>check-sync\;reboot=false 50 | 51 | [snom-reboot] 52 | Event=>check-sync\;reboot=true 53 | 54 | ; Cisco 55 | 56 | [cisco-check-cfg] 57 | Event=>check-sync 58 | -------------------------------------------------------------------------------- /asterisk/smdi.conf: -------------------------------------------------------------------------------- 1 | ; Asterisk SMDI configuration 2 | 3 | [interfaces] 4 | ; Specify serial ports to listen for SMDI messages on below. These will be 5 | ; referenced later in chan_dahdi.conf. If you do not specify any interfaces 6 | ; then SMDI will be disabled. Interfaces can have several different attributes 7 | ; associated with them. 8 | 9 | ; Set the number of stop bits to use per character here. The default is no, 10 | ; in which case one stop bit will be used. 11 | 12 | ;twostopbits = no 13 | 14 | ; Character size or bit length is the size of each character sent across the 15 | ; link. Character size can be 7 or 8. The default is 7. 16 | 17 | ;charsize = 7 18 | 19 | ; If you need parity checking enabled you can turn it on here. Acceptable 20 | ; values are even, odd, and none. The default is even. 21 | 22 | ;paritybit = even 23 | 24 | ; The baudrate to use for this port. Acceptable values are 1200, 2400, 4800, 25 | ; and 9600. The default is 9600. 26 | 27 | ;baudrate = 1200 28 | 29 | ; Often the numbering scheme for a set of mailboxes or extensions will not be 7 30 | ; or 10 digits (as SMDI requires). Use the msdstrip option to strip unused 31 | ; digits from the start of numbers. 32 | 33 | ;msdstrip = 0 34 | 35 | ; Occasionally Asterisk and the SMDI switch may become out of sync. If this 36 | ; happens, Asterisk will appear one or several calls behind as it processes 37 | ; voicemail requests. To prevent this from happening, adjust the msgexpirytime. 38 | ; This will make Asterisk discard old SMDI messages that have not yet been 39 | ; processed. The default expiry time is 30000 milliseconds. 40 | 41 | ;msgexpirytime = 30000 42 | 43 | ;smdiport => /dev/ttyS0 44 | 45 | 46 | [mailboxes] 47 | ; This section configures parameters related to MWI handling for the SMDI link. 48 | 49 | ; This option configures the polling interval used to check to see if the 50 | ; mailboxes have any new messages. This option is specified in seconds. 51 | ; The default value is 10 seconds. 52 | ; 53 | ;pollinginterval=10 54 | 55 | ; Every other entry in this section of the configuration file is interpreted as 56 | ; a mapping between the mailbox ID on the SMDI link, and the local Asterisk 57 | ; mailbox name. In many cases, they are the same thing, but they still must be 58 | ; listed here so that this module knows which mailboxes it needs to pay 59 | ; attention to. 60 | ; 61 | ; Syntax: 62 | ; =[@Asterisk Voicemail Context] 63 | ; 64 | ; If no Asterisk voicemail context is specified, "default" will be assumed. 65 | ; 66 | ; Before specifying mailboxes, you must specify an SMDI interface. All mailbox 67 | ; definitions that follow will correspond to that SMDI interface. If you specify 68 | ; another interface, then all definitions following that will correspond to the 69 | ; new interface. 70 | ; 71 | ;smdiport=/dev/ttyS0 72 | ;2565551234=1234@vmcontext1 73 | ;2565555678=5678@vmcontext2 74 | ;smdiport=/dev/ttyS1 75 | ;2565559999=9999 76 | -------------------------------------------------------------------------------- /asterisk/sorcery.conf: -------------------------------------------------------------------------------- 1 | ; Sample configuration file for Sorcery Data Access Layer 2 | 3 | ; 4 | ; Wizards 5 | ; 6 | ; Wizards are the persistence mechanism for objects. They are loaded as Asterisk modules and register 7 | ; themselves with the sorcery core. All implementation specific details of how objects are persisted is isolated 8 | ; within wizards. 9 | ; 10 | 11 | ; 12 | ; Caching 13 | ; 14 | ; A wizard can optionally be marked as an object cache by adding "/cache" to the object type within the mapping. 15 | ; If an object is returned from a non-object cache it is immediately given to the cache to be created. Multiple 16 | ; object caches can be configured for a single object type. 17 | ; 18 | 19 | ; 20 | ; Object Type Mappings 21 | ; 22 | ; To allow configuration of where and how an object is persisted object mappings can be defined within this file 23 | ; on a per-module basis. The mapping consists of the object type, options, wizard name, and wizard configuration 24 | ; data. This has the following format: 25 | ; 26 | ; object type [/options] = wizard name, wizard configuration data 27 | ; 28 | ; For example to configure an in-memory wizard for the 'bob' object type: 29 | ; 30 | ; bob = memory 31 | ; 32 | ; Or to configure the object type 'joe' from a configuration file: 33 | ; 34 | ; joe = config,joe.conf 35 | ; 36 | ; Note that an object type can have multiple mappings defined. Each mapping will be consulted in the order in which 37 | ; it appears within the configuration file. This means that if you are configuring a wizard as a cache it should 38 | ; appear as the first mapping so the cache is consulted before all other mappings. 39 | ; 40 | 41 | ; 42 | ; The following object mappings are used by the unit test to test certain functionality of sorcery. 43 | ; 44 | [test_sorcery_section] 45 | test=memory 46 | 47 | [test_sorcery_cache] 48 | test/cache=test 49 | test=memory 50 | 51 | ; 52 | ; The following object mapping is the default mapping of external MWI mailbox 53 | ; objects to give persistence to the message counts. 54 | ; 55 | ;[res_mwi_external] 56 | ;mailboxes=astdb,mwi_external 57 | 58 | ; 59 | ; The following object mappings set PJSIP objects to use realtime database mappings from extconfig 60 | ; with the table names used when automatically generating configuration from the alembic script. 61 | ; 62 | ;[res_pjsip] 63 | ;endpoint=realtime,ps_endpoints 64 | ;auth=realtime,ps_auths 65 | ;aor=realtime,ps_aors 66 | ;domain_alias=realtime,ps_domain_aliases 67 | 68 | ;[res_pjsip_endpoint_identifier_ip] 69 | ;identify=realtime,ps_endpoint_id_ips 70 | 71 | ;[res_pjsip_outbound_publish] 72 | ;outbound-publish=realtime,ps_outbound_publishes 73 | 74 | ;[res_pjsip_pubsub] 75 | ;inbound-publication=realtime,ps_inbound_publications 76 | 77 | ;[res_pjsip_publish_asterisk] 78 | ;asterisk-publication=realtime,ps_asterisk_publications 79 | -------------------------------------------------------------------------------- /asterisk/ss7.timers: -------------------------------------------------------------------------------- 1 | ;;;;; ITU-T Q.707 timers 2 | 3 | ;mtp3_timer.q707_t1 = 4000 4 | ;mtp3_timer.q707_t2 = 30000 5 | 6 | ;;;;; MTP3 timers as specified in ITU-T Q.704 or ANSI T1.111-2001 7 | 8 | mtp3_timer.t1 = 500 9 | mtp3_timer.t2 = 700 10 | mtp3_timer.t3 = 500 11 | mtp3_timer.t4 = 500 12 | mtp3_timer.t5 = 500 13 | mtp3_timer.t6 = 500 14 | mtp3_timer.t7 = 1000 15 | 16 | mtp3_timer.t10 = 60000 17 | 18 | mtp3_timer.t12 = 800 19 | mtp3_timer.t13 = 800 20 | mtp3_timer.t14 = 2000 21 | 22 | ; enable for ITU only. Timers after T17 are defined differently for ANSI 23 | ;mtp3_timer.t19 = 67000 24 | ;mtp3_timer.t21 = 63000 25 | ; 26 | ;mtp3_timer.t22 = 300000 27 | ;mtp3_timer.t23 = 300000 28 | 29 | 30 | ;;;;; ISUP timers as specified in ITU-T Q.764 or ANSI T1.113-2000 31 | 32 | isup_timer.t1 = 15000 33 | ;isup_timer.t2 = 180000 ; ITU only 34 | 35 | ;isup_timer.t5 = 300000 ; for ITU 36 | ;isup_timer.t5 = 60000 ; for ANSI 37 | isup_timer.t6 = 30000 38 | isup_timer.t7 = 20000 39 | isup_timer.t8 = 10000 40 | 41 | ;isup_timer.t10 = 4000 ; ITU only 42 | 43 | isup_timer.t12 = 15000 44 | ;isup_timer.t13 = 300000 ; for ITU 45 | ;isup_timer.t13 = 60000 ; for ANSI 46 | isup_timer.t14 = 15000 47 | ;isup_timer.t15 = 300000 ; for ITU 48 | ;isup_timer.t15 = 60000 ; for ANSI 49 | isup_timer.t16 = 15000 50 | ;isup_timer.t17 = 300000 ; for ITU 51 | ;isup_timer.t17 = 60000 ; for ANSI 52 | isup_timer.t18 = 15000 53 | ;isup_timer.t19 = 300000 ; for ITU 54 | ;isup_timer.t19 = 60000 ; for ANSI 55 | isup_timer.t20 = 15000 56 | ;isup_timer.t21 = 300000 ; for ITU 57 | ;isup_timer.t21 = 60000 ; for ANSI 58 | isup_timer.t22 = 15000 59 | ;isup_timer.t23 = 300000 ; for ITU 60 | ;isup_timer.t23 = 60000 ; for ANSI 61 | 62 | isup_timer.t27 = 240000 63 | 64 | isup_timer.t33 = 12000 65 | ;isup_timer.t35 = 15000 ; ITU only 66 | -------------------------------------------------------------------------------- /asterisk/stasis.conf: -------------------------------------------------------------------------------- 1 | [threadpool] 2 | ;initial_size = 5 ; Initial size of the threadpool. 3 | ; ; 0 means the threadpool has no threads initially 4 | ; ; until a task needs a thread. 5 | ;idle_timeout_sec = 20 ; Number of seconds a thread should be idle before 6 | ; ; dying. 0 means threads never time out. 7 | ;max_size = 50 ; Maximum number of threads in the Stasis threadpool. 8 | ; ; 0 means no limit to the number of threads in the 9 | ; ; threadpool. 10 | 11 | [declined_message_types] 12 | ; This config section contains the names of message types that should be prevented 13 | ; from being created. By default, all message types are allowed to be created. 14 | ; 15 | ; Using this functionality requires knowledge of the names of internal stasis 16 | ; message types which is generally the same as the name of the accessor function. 17 | ; 18 | ; Use of this functionality may break more complex functionality in Asterisk 19 | ; such as CEL, CDR, transfers, etc. and will likely cause related messages in ARI 20 | ; and AMI to go missing. 21 | ; decline=stasis_app_recording_snapshot_type 22 | ; decline=stasis_app_playback_snapshot_type 23 | ; decline=stasis_test_message_type 24 | ; decline=confbridge_start_type 25 | ; decline=confbridge_end_type 26 | ; decline=confbridge_join_type 27 | ; decline=confbridge_leave_type 28 | ; decline=confbridge_start_record_type 29 | ; decline=confbridge_stop_record_type 30 | ; decline=confbridge_mute_type 31 | ; decline=confbridge_unmute_type 32 | ; decline=confbridge_talking_type 33 | ; decline=cel_generic_type 34 | ; decline=ast_bridge_snapshot_type 35 | ; decline=ast_bridge_merge_message_type 36 | ; decline=ast_channel_entered_bridge_type 37 | ; decline=ast_channel_left_bridge_type 38 | ; decline=ast_blind_transfer_type 39 | ; decline=ast_attended_transfer_type 40 | ; decline=ast_endpoint_snapshot_type 41 | ; decline=ast_endpoint_state_type 42 | ; decline=ast_device_state_message_type 43 | ; decline=ast_test_suite_message_type 44 | ; decline=ast_mwi_state_type 45 | ; decline=ast_mwi_vm_app_type 46 | ; decline=ast_format_register_type 47 | ; decline=ast_format_unregister_type 48 | ; decline=ast_manager_get_generic_type 49 | ; decline=ast_parked_call_type 50 | ; decline=ast_channel_snapshot_type 51 | ; decline=ast_channel_dial_type 52 | ; decline=ast_channel_varset_type 53 | ; decline=ast_channel_hangup_request_type 54 | ; decline=ast_channel_dtmf_begin_type 55 | ; decline=ast_channel_dtmf_end_type 56 | ; decline=ast_channel_hold_type 57 | ; decline=ast_channel_unhold_type 58 | ; decline=ast_channel_chanspy_start_type 59 | ; decline=ast_channel_chanspy_stop_type 60 | ; decline=ast_channel_fax_type 61 | ; decline=ast_channel_hangup_handler_type 62 | ; decline=ast_channel_moh_start_type 63 | ; decline=ast_channel_moh_stop_type 64 | ; decline=ast_channel_monitor_start_type 65 | ; decline=ast_channel_monitor_stop_type 66 | ; decline=ast_channel_agent_login_type 67 | ; decline=ast_channel_agent_logoff_type 68 | ; decline=ast_channel_talking_start 69 | ; decline=ast_channel_talking_stop 70 | ; decline=ast_security_event_type 71 | ; decline=ast_named_acl_change_type 72 | ; decline=ast_local_bridge_type 73 | ; decline=ast_local_optimization_begin_type 74 | ; decline=ast_local_optimization_end_type 75 | ; decline=stasis_subscription_change_type 76 | ; decline=ast_multi_user_event_type 77 | ; decline=stasis_cache_clear_type 78 | ; decline=stasis_cache_update_type 79 | ; decline=ast_network_change_type 80 | ; decline=ast_system_registry_type 81 | ; decline=ast_cc_available_type 82 | ; decline=ast_cc_offertimerstart_type 83 | ; decline=ast_cc_requested_type 84 | ; decline=ast_cc_requestacknowledged_type 85 | ; decline=ast_cc_callerstopmonitoring_type 86 | ; decline=ast_cc_callerstartmonitoring_type 87 | ; decline=ast_cc_callerrecalling_type 88 | ; decline=ast_cc_recallcomplete_type 89 | ; decline=ast_cc_failure_type 90 | ; decline=ast_cc_monitorfailed_type 91 | ; decline=ast_presence_state_message_type 92 | ; decline=ast_rtp_rtcp_sent_type 93 | ; decline=ast_rtp_rtcp_received_type 94 | ; decline=ast_call_pickup_type 95 | ; decline=aoc_s_type 96 | ; decline=aoc_d_type 97 | ; decline=aoc_e_type 98 | ; decline=dahdichannel_type 99 | ; decline=mcid_type 100 | ; decline=session_timeout_type 101 | ; decline=cdr_read_message_type 102 | ; decline=cdr_write_message_type 103 | ; decline=cdr_prop_write_message_type 104 | ; decline=corosync_ping_message_type 105 | ; decline=agi_exec_start_type 106 | ; decline=agi_exec_end_type 107 | ; decline=agi_async_start_type 108 | ; decline=agi_async_exec_type 109 | ; decline=agi_async_end_type 110 | ; decline=queue_caller_join_type 111 | ; decline=queue_caller_leave_type 112 | ; decline=queue_caller_abandon_type 113 | ; decline=queue_member_status_type 114 | ; decline=queue_member_added_type 115 | ; decline=queue_member_removed_type 116 | ; decline=queue_member_pause_type 117 | ; decline=queue_member_penalty_type 118 | ; decline=queue_member_ringinuse_type 119 | ; decline=queue_agent_called_type 120 | ; decline=queue_agent_connect_type 121 | ; decline=queue_agent_complete_type 122 | ; decline=queue_agent_dump_type 123 | ; decline=queue_agent_ringnoanswer_type 124 | ; decline=meetme_join_type 125 | ; decline=meetme_leave_type 126 | ; decline=meetme_end_type 127 | ; decline=meetme_mute_type 128 | ; decline=meetme_talking_type 129 | ; decline=meetme_talk_request_type 130 | ; decline=appcdr_message_type 131 | ; decline=forkcdr_message_type 132 | ; decline=cdr_sync_message_type 133 | -------------------------------------------------------------------------------- /asterisk/statsd.conf: -------------------------------------------------------------------------------- 1 | [general] 2 | ;enabled = yes ; When set to yes, statsd support is enabled 3 | ;server = 127.0.0.1 ; server[:port] of statsd server to use. 4 | ; If not specified, the port is 8125 5 | ;prefix = ; Prefix to prepend to all metrics 6 | ;add_newline = no ; Append a newline to every event. This is 7 | ; useful if you want to run a fake statsd 8 | ; server using netcat (nc -lu 8125) 9 | -------------------------------------------------------------------------------- /asterisk/telcordia-1.adsi: -------------------------------------------------------------------------------- 1 | ; 2 | ; Asterisk default ADSI script 3 | ; 4 | ; 5 | ; Begin with the preamble requirements 6 | ; 7 | DESCRIPTION "Telcordia Demo" ; Name of vendor 8 | VERSION 0x02 ; Version of stuff 9 | ;SECURITY "_AST" ; Security code 10 | SECURITY 0x0000 ; Security code 11 | FDN 0x0000000f ; Descriptor number 12 | 13 | ; 14 | ; Predefined strings 15 | ; 16 | DISPLAY "talkingto" IS "Talking To" "$Call1p" WRAP 17 | DISPLAY "titles" IS "20th Century IQ Svc" 18 | DISPLAY "newcall" IS "New Call From" "$Call1p" WRAP 19 | DISPLAY "ringing" IS "Ringing" 20 | 21 | ; 22 | ; Begin state definitions 23 | ; 24 | STATE "callup" ; Call is currently up 25 | STATE "inactive" ; No active call 26 | 27 | ; 28 | ; Begin soft key definitions 29 | ; 30 | KEY "CB_OH" IS "Block" OR "Call Block" 31 | OFFHOOK 32 | VOICEMODE 33 | WAITDIALTONE 34 | SENDDTMF "*60" 35 | SUBSCRIPT "offHook" 36 | ENDKEY 37 | 38 | KEY "CB" IS "Block" OR "Call Block" 39 | SENDDTMF "*60" 40 | ENDKEY 41 | 42 | ; 43 | ; Begin main subroutine 44 | ; 45 | 46 | SUB "main" IS 47 | IFEVENT NEARANSWER THEN 48 | CLEAR 49 | SHOWDISPLAY "talkingto" AT 1 50 | GOTO "stableCall" 51 | ENDIF 52 | IFEVENT OFFHOOK THEN 53 | CLEAR 54 | SHOWDISPLAY "titles" AT 1 55 | SHOWKEYS "CB" 56 | GOTO "offHook" 57 | ENDIF 58 | IFEVENT IDLE THEN 59 | CLEAR 60 | SHOWDISPLAY "titles" AT 1 61 | SHOWKEYS "CB_OH" 62 | ENDIF 63 | IFEVENT CALLERID THEN 64 | CLEAR 65 | SHOWDISPLAY "newcall" AT 1 66 | ENDIF 67 | ENDSUB 68 | 69 | SUB "offHook" IS 70 | IFEVENT FARRING THEN 71 | CLEAR 72 | SHOWDISPLAY "ringing" AT 1 73 | ENDIF 74 | IFEVENT FARANSWER THEN 75 | CLEAR 76 | SHOWDISPLAY "talkingto" AT 1 77 | GOTO "stableCall" 78 | ENDIF 79 | ENDSUB 80 | 81 | SUB "stableCall" IS 82 | 83 | ENDSUB 84 | -------------------------------------------------------------------------------- /asterisk/test_sorcery.conf: -------------------------------------------------------------------------------- 1 | ; This is a res_sorcery_config compatible file for the sorcery unit tests 2 | 3 | [hey] 4 | bob=98 5 | joe=41 6 | 7 | [hey2] 8 | type=zombies 9 | bob=97 10 | joe=40 11 | 12 | [hey3] 13 | bob=96 14 | joe=39 15 | -------------------------------------------------------------------------------- /asterisk/udptl.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; UDPTL Configuration (UDPTL is one of the transports for T.38) 3 | ; 4 | [general] 5 | ; 6 | ; UDPTL start and UDPTL end configure start and end addresses 7 | ; 8 | udptlstart=4000 9 | udptlend=4999 10 | ; 11 | ; Whether to enable or disable UDP checksums on UDPTL traffic 12 | ; 13 | ;udptlchecksums=no 14 | ; 15 | ; The number of error correction entries in a UDPTL packet 16 | ; 17 | udptlfecentries = 3 18 | ; 19 | ; The span over which parity is calculated for FEC in a UDPTL packet 20 | ; 21 | udptlfecspan = 3 22 | ; 23 | ; Some VoIP providers will only accept an offer with an even-numbered 24 | ; UDPTL port. Set this option so that Asterisk will only attempt to use 25 | ; even-numbered ports when negotiating T.38. Default is no. 26 | use_even_ports = no 27 | -------------------------------------------------------------------------------- /asterisk/unistim.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; chan_unistim configuration file. 3 | ; 4 | 5 | [general] 6 | port=5000 ; UDP port 7 | ; 8 | ; See https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service for a description of these parameters. 9 | ;tos=cs3 ; Sets TOS for signaling packets. 10 | ;tos_audio=ef ; Sets TOS for RTP audio packets. 11 | ;cos=3 ; Sets 802.1p priority for signaling packets. 12 | ;cos_audio=5 ; Sets 802.1p priority for RTP audio packets. 13 | ; 14 | ;debug=yes ; Enable debug (default no) 15 | ;keepalive=120 ; in seconds, default = 120 16 | ;public_ip= ; if asterisk is behind a nat, specify your public IP 17 | ;autoprovisioning=no ; Allow undeclared phones to register an extension. See README for important 18 | ; informations. no (default), yes, tn. 19 | ;mohsuggest=default 20 | ; ----------------------------- JITTER BUFFER CONFIGURATION -------------------------- 21 | ; jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a 22 | ; SIP channel. Defaults to "no". An enabled jitterbuffer will 23 | ; be used only if the sending side can create and the receiving 24 | ; side can not accept jitter. The SIP channel can accept jitter, 25 | ; thus a jitterbuffer on the receive SIP side will be used only 26 | ; if it is forced and enabled. 27 | 28 | ; jbforce = no ; Forces the use of a jitterbuffer on the receive side of a SIP 29 | ; channel. Defaults to "no". 30 | 31 | ; jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds. 32 | 33 | ; jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is 34 | ; resynchronized. Useful to improve the quality of the voice, with 35 | ; big jumps in/broken timestamps, usually sent from exotic devices 36 | ; and programs. Defaults to 1000. 37 | 38 | ; jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a SIP 39 | ; channel. Two implementations are currently available - "fixed" 40 | ; (with size always equals to jbmaxsize) and "adaptive" (with 41 | ; variable size, actually the new jb of IAX2). Defaults to fixed. 42 | 43 | ; jblog = no ; Enables jitterbuffer frame logging. Defaults to "no". 44 | ; ---------------------------------------------------------------------------------- 45 | 46 | 47 | ;[black] ; name of the device 48 | ;device=000ae4012345 ; mac address of the phone 49 | ;rtp_port=10000 ; RTP port used by the phone, default = 10000. RTCP = rtp_port+1 50 | ;rtp_method=0 ; If you don't have sound, you can try 1, 2 or 3, default = 0 51 | ; value 3 works on newer i2004, 1120E and 1140E 52 | ;status_method=0 ; If you don't see status text, try 1, default = 0 53 | ; value 1 works on 1120E and 1140E 54 | ;titledefault=Asterisk ; default = "TimeZone (your time zone)". 12 characters max 55 | ;height=3 ; default = 3, the number of display lines the device can show 56 | ; For example on a Nortel I2001 or I2002, set this to 1 57 | ;maintext0="you can insert" ; default = "Welcome", 24 characters max 58 | ;maintext1="a custom text" ; default = the name of the device, 24 characters max 59 | ;maintext2="(main page)" ; default = the public IP of the phone, 24 characters max 60 | ;dateformat=0 ; 0 (default) = 31Jan, 1 = Jan31, 2 = month/day, 3 = day/month 61 | ;timeformat=1 ; 0 = 0:00am ; 1 (default) = 0h00, 2 = 0:00 62 | ;contrast=8 ; define the contrast of the LCD. From 0 to 15. Default = 8 63 | ;country=us ; country (ccTLD) for dial tone frequency. See README, default = us 64 | ;language=ru ; language used for audio files and onscreen messages translate 65 | ;ringvolume=2 ; ring volume : 0,1,2,3, can be overrided by Dial(), default = 2 66 | ;ringstyle=3 ; ring style : 0 to 7, can be overrided by Dial(), default = 3 67 | ;cwvolume=2 ; ring volume : 0,1,2,3, default = 0 68 | ;cwstyle=3 ; ring style : 0 to 7, default = 2 69 | ;sharpdial=1 ; dial number by pressing #, default = 0 70 | ;dtmf_duration=0 ; DTMF playback duration (in milliseconds) 0..150 (0 = off (default), 150 = maximum) 71 | ;interdigit_timer=4000 ; timer for automatic dial after several digits of number entered (in ms, 0 is off) 72 | ;callhistory=1 ; 0 = disable, 1 = enable call history, default = 1 73 | ;callerid="Customer Support" <555-234-5678> 74 | ;context=default ; context, default="default" 75 | ;mailbox=1234 ; Specify the mailbox number. Used by Message Waiting Indication 76 | ;linelabel="Support" ; Softkey label for the next line=> entry, 9 char max. 77 | ;extension=none ; Add an extension into the dialplan. Only valid in context specified previously. 78 | ; none=don't add (default), ask=prompt user, line=use the line number 79 | ;line => 100 ; Any number of lines can be defined in any order with bookmarks 80 | ;line => 200 ; After line defined it placed in next available slot 81 | ;bookmark=Hans C.@123 ; Use a softkey to dial 123. Name : 9 char max 82 | ;bookmark=Mailbox@011@54 ; 54 shows a mailbox icon. See #define FAV_ICON_ for other values (32 to 63) 83 | ;bookmark=Test@*@USTM/violet ; Display an icon if violet is connected (dynamic), only for unistim device 84 | ;bookmark=4@Pager@54321@51 ; Display a pager icon and dial 54321 when softkey 4 is pressed 85 | 86 | ;[violet] 87 | ;device=006038abcdef 88 | ;line => 102 89 | -------------------------------------------------------------------------------- /asterisk/users.conf: -------------------------------------------------------------------------------- 1 | ; 2 | ; User configuration 3 | ; 4 | ; Creating entries in users.conf is a "shorthand" for creating individual 5 | ; entries in each configuration file. Using users.conf is not intended to 6 | ; provide you with as much flexibility as using the separate configuration 7 | ; files (e.g. sip.conf, iax.conf, etc) but is intended to accelerate the 8 | ; simple task of adding users. Note that creating individual items (e.g. 9 | ; custom SIP peers, IAX friends, etc.) will allow you to override specific 10 | ; parameters within this file. Parameter names here are the same as they 11 | ; appear in the other configuration files. There is no way to change the 12 | ; value of a parameter here for just one subsystem. 13 | ; 14 | 15 | [general] 16 | ; 17 | ; Full name of a user 18 | ; 19 | fullname = New User 20 | ; 21 | ; Starting point of allocation of extensions 22 | ; 23 | userbase = 6000 24 | ; 25 | ; Create voicemail mailbox and use use macro-stdexten 26 | ; 27 | hasvoicemail = yes 28 | ; 29 | ; Set voicemail mailbox 6000 password to 1234 30 | ; 31 | vmsecret = 1234 32 | ; 33 | ; Create SIP Peer 34 | ; 35 | hassip = yes 36 | ; 37 | ; Create IAX friend 38 | ; 39 | hasiax = yes 40 | ; 41 | ; Create H.323 friend 42 | ; 43 | ;hash323 = yes 44 | ; 45 | ; Create manager entry 46 | ; 47 | hasmanager = no 48 | ; 49 | ; Set permissions for manager entry (see manager.conf.sample for documentation) 50 | ; (defaults to *all* permissions) 51 | ;managerread = system,call,log,verbose,command,agent,user,config 52 | ;managerwrite = system,call,log,verbose,command,agent,user,config 53 | ; 54 | ; 55 | ; MAC Address for res_phoneprov 56 | ; 57 | ;macaddress = 112233445566 58 | ; 59 | ; Auto provision the phone with res_phoneprov 60 | ; 61 | ;autoprov = yes 62 | ; 63 | ; Line Keys for hardphone 64 | ; 65 | ;LINEKEYS = 1 66 | ; 67 | ; Line number for hardphone 68 | ; 69 | ;linenumber = 1 70 | ; 71 | ; Local Caller ID number used with res_phoneprov and Asterisk GUI 72 | ; 73 | ;cid_number = 6000 74 | ; 75 | ; Remaining options are not specific to users.conf entries but are general. 76 | ; 77 | callwaiting = yes 78 | threewaycalling = yes 79 | callwaitingcallerid = yes 80 | transfer = yes 81 | canpark = yes 82 | cancallforward = yes 83 | callreturn = yes 84 | callgroup = 1 85 | pickupgroup = 1 86 | ;nat = no 87 | 88 | ;[6000] 89 | ;fullname = Joe User 90 | ;description = Courtesy Phone In Lobby ; Used to provide a description of the 91 | ; peer in console output 92 | ;email = joe@foo.bar 93 | ;secret = 1234 94 | ;dahdichan = 1 95 | ;hasvoicemail = yes 96 | ;vmsecret = 1234 97 | ;hassip = yes 98 | ;hasiax = no 99 | ;hash323 = no 100 | ;hasmanager = no 101 | ;callwaiting = no 102 | ;context = international 103 | ; 104 | ; Some administrators choose alphanumeric extensions, but still want their 105 | ; users to be reachable by traditional numeric extensions, specified by the 106 | ; alternateexts entry. 107 | ; 108 | ;alternateexts = 7057,3249 109 | ;macaddress = 112233445566 110 | ;autoprov = yes 111 | ;LINEKEYS = 1 112 | ;linenumber = 1 113 | ;cid_number = 6000 114 | -------------------------------------------------------------------------------- /asterisk/xmpp.conf: -------------------------------------------------------------------------------- 1 | [general] 2 | ;debug=yes ; Enable debugging (disabled by default). 3 | ;autoprune=yes ; Auto remove users from buddy list. Depending on your 4 | ; setup (ie, using your personal Gtalk account for a test) 5 | ; you might lose your contacts list. Default is 'no'. 6 | ;autoregister=yes ; Auto register users from buddy list. 7 | ;collection_nodes=yes ; Enable support for XEP-0248 for use with 8 | ; distributed device state. Default is 'no'. 9 | ;pubsub_autocreate=yes ; Whether or not the PubSub server supports/is using 10 | ; auto-create for nodes. If it is, we have to 11 | ; explicitly pre-create nodes before publishing them. 12 | ; Default is 'no'. 13 | ;auth_policy=accept ; Auto accept users' subscription requests (default). 14 | ; Set to deny for auto denial. 15 | ;[asterisk] 16 | ;type=client ; Client or Component connection 17 | ;serverhost=astjab.org ; Route to server for example, talk.google.com 18 | ;pubsub_node=pubsub.astjab.org ; Node to use for publishing events via PubSub 19 | ;username=asterisk@astjab.org/asterisk ; Username with optional resource. 20 | ;secret=blah ; Password 21 | ;refresh_token=TOKEN_VALUE ; Refresh token issued by Google OAuth 2.0 protocol. 22 | ; `secret` must NOT be set if you use OAuth. 23 | ; See https://developers.google.com/identity/protocols/OAuth2WebServer 24 | ; for more details. 25 | ; For test reasons you can obtain one on the page 26 | ; https://developers.google.com/oauthplayground/ 27 | ; 1. Click on Settings icon, check "Use your own OAuth credentials" 28 | ; and enter your Client ID and Client Secret (see below). 29 | ; 2. Input the scope https://www.googleapis.com/auth/googletalk 30 | ; and push "Authorize APIs" button. 31 | ; 3. Approve permissions. 32 | ; 4. On section "Step 2" push "Exchange authorization code for tokens" 33 | ; and get your Refresh token. 34 | ;oauth_clientid=OAUTH_CLIENT_ID_VALUE ; The application's client id to authorize using Google OAuth 2.0 protocol. 35 | ;oauth_secret=OAUTH_SECRET_VALUE ; The application's client secret to authorize using Google OAuth 2.0 protocol. 36 | ; 1. Create new Project on the page: 37 | ; https://console.cloud.google.com/apis/credentials/oauthclient 38 | ; 2. Create new Application ID on the same page with type Web-application. 39 | ; In section "Allowed URI redirections" put the path to the corresponding 40 | ; script on your site or https://developers.google.com/oauthplayground 41 | ; if you would like to obtain refresh_token from users by hand 42 | ; (for example, for test reasons). 43 | ; 3. Client ID and Client Secret will be shown and available on the same page. 44 | ;priority=1 ; Resource priority 45 | ;port=5222 ; Port to use defaults to 5222 46 | ;usetls=yes ; Use tls or not 47 | ;usesasl=yes ; Use sasl or not 48 | ;buddy=mogorman@astjab.org ; Manual addition of buddy to list. 49 | ; For distributed events, these buddies are 50 | ; automatically added in the whitelist as 51 | ; 'owners' of the node(s). 52 | ;distribute_events=yes ; Whether or not to distribute events using 53 | ; this connection. Default is 'no'. 54 | ;status=available ; One of: chat, available, away, xaway, or dnd 55 | ;statusmessage="I am available" ; Have custom status message for Asterisk 56 | ;timeout=5 ; Timeout (in seconds) on the message stack, defaults to 5. 57 | ; Messages stored longer than this value will be deleted by Asterisk. 58 | ; This option applies to incoming messages only, which are intended to 59 | ; be processed by the JABBER_RECEIVE dialplan function. 60 | ;sendtodialplan=yes ; Send incoming messages into the dialplan. Off by default. 61 | ;context=messages ; Dialplan context to send incoming messages to. If not set, 62 | ; "default" will be used. 63 | ;forceoldssl=no ; Force the use of old-style SSL. 64 | ;keepalive= 65 | -------------------------------------------------------------------------------- /db/acc: -------------------------------------------------------------------------------- 1 | id(int,auto) method(string) from_tag(string) to_tag(string) callid(string) sip_code(string) sip_reason(string) time(int) 2 | -------------------------------------------------------------------------------- /db/acc_cdrs: -------------------------------------------------------------------------------- 1 | id(int,auto) start_time(int) end_time(int) duration(double) 2 | -------------------------------------------------------------------------------- /db/active_watchers: -------------------------------------------------------------------------------- 1 | id(int,auto) presentity_uri(string) watcher_username(string) watcher_domain(string) to_user(string) to_domain(string) event(string) event_id(string,null) to_tag(string) from_tag(string) callid(string) local_cseq(int) remote_cseq(int) contact(string) record_route(string,null) expires(int) status(int) reason(string,null) version(int) socket_info(string) local_contact(string) from_user(string) from_domain(string) updated(int) updated_winfo(int) flags(int) user_agent(string,null) 2 | -------------------------------------------------------------------------------- /db/address: -------------------------------------------------------------------------------- 1 | id(int,auto) grp(int) ip_addr(string) mask(int) port(int) tag(string,null) 2 | -------------------------------------------------------------------------------- /db/aliases: -------------------------------------------------------------------------------- 1 | id(int,auto) ruid(string) username(string) domain(string,null) contact(string) received(string,null) path(string,null) expires(int) q(double) callid(string) cseq(int) last_modified(int) flags(int) cflags(int) user_agent(string) socket(string,null) methods(int,null) instance(string,null) reg_id(int) server_id(int) connection_id(int) keepalive(int) partition(int) 2 | -------------------------------------------------------------------------------- /db/carrier_name: -------------------------------------------------------------------------------- 1 | id(int,auto) carrier(string,null) 2 | -------------------------------------------------------------------------------- /db/carrierfailureroute: -------------------------------------------------------------------------------- 1 | id(int,auto) carrier(int) domain(int) scan_prefix(string) host_name(string) reply_code(string) flags(int) mask(int) next_domain(int) description(string,null) 2 | -------------------------------------------------------------------------------- /db/carrierroute: -------------------------------------------------------------------------------- 1 | id(int,auto) carrier(int) domain(int) scan_prefix(string) flags(int) mask(int) prob(double) strip(int) rewrite_host(string) rewrite_prefix(string) rewrite_suffix(string) description(string,null) 2 | -------------------------------------------------------------------------------- /db/cpl: -------------------------------------------------------------------------------- 1 | id(int,auto) username(string) domain(string) cpl_xml(string,null) cpl_bin(string,null) 2 | -------------------------------------------------------------------------------- /db/dbaliases: -------------------------------------------------------------------------------- 1 | id(int,auto) alias_username(string) alias_domain(string) username(string) domain(string) 2 | -------------------------------------------------------------------------------- /db/dialog: -------------------------------------------------------------------------------- 1 | id(int,auto) hash_entry(int) hash_id(int) callid(string) from_uri(string) from_tag(string) to_uri(string) to_tag(string) caller_cseq(string) callee_cseq(string) caller_route_set(string,null) callee_route_set(string,null) caller_contact(string) callee_contact(string) caller_sock(string) callee_sock(string) state(int) start_time(int) timeout(int) sflags(int) iflags(int) toroute_name(string,null) req_uri(string) xdata(string,null) 2 | -------------------------------------------------------------------------------- /db/dialog_vars: -------------------------------------------------------------------------------- 1 | id(int,auto) hash_entry(int) hash_id(int) dialog_key(string) dialog_value(string) 2 | -------------------------------------------------------------------------------- /db/dialplan: -------------------------------------------------------------------------------- 1 | id(int,auto) dpid(int) pr(int) match_op(int) match_exp(string) match_len(int) subst_exp(string) repl_exp(string) attrs(string) 2 | -------------------------------------------------------------------------------- /db/dispatcher: -------------------------------------------------------------------------------- 1 | id(int,auto) setid(int) destination(string) flags(int) priority(int) attrs(string) description(string) 2 | -------------------------------------------------------------------------------- /db/domain: -------------------------------------------------------------------------------- 1 | id(int,auto) domain(string) did(string,null) last_modified(int) 2 | -------------------------------------------------------------------------------- /db/domain_attrs: -------------------------------------------------------------------------------- 1 | id(int,auto) did(string) name(string) type(int) value(string) last_modified(int) 2 | -------------------------------------------------------------------------------- /db/domain_name: -------------------------------------------------------------------------------- 1 | id(int,auto) domain(string,null) 2 | -------------------------------------------------------------------------------- /db/domainpolicy: -------------------------------------------------------------------------------- 1 | id(int,auto) rule(string) type(string) att(string,null) val(string,null) description(string) 2 | -------------------------------------------------------------------------------- /db/dr_gateways: -------------------------------------------------------------------------------- 1 | gwid(int,auto) type(int) address(string) strip(int) pri_prefix(string,null) attrs(string,null) description(string) 2 | -------------------------------------------------------------------------------- /db/dr_groups: -------------------------------------------------------------------------------- 1 | id(int,auto) username(string) domain(string) groupid(int) description(string) 2 | -------------------------------------------------------------------------------- /db/dr_gw_lists: -------------------------------------------------------------------------------- 1 | id(int,auto) gwlist(string) description(string) 2 | -------------------------------------------------------------------------------- /db/dr_rules: -------------------------------------------------------------------------------- 1 | ruleid(int,auto) groupid(string) prefix(string) timerec(string) priority(int) routeid(string) gwlist(string) description(string) 2 | -------------------------------------------------------------------------------- /db/globalblocklist: -------------------------------------------------------------------------------- 1 | id(int,auto) prefix(string) allowlist(int) description(string,null) 2 | -------------------------------------------------------------------------------- /db/grp: -------------------------------------------------------------------------------- 1 | id(int,auto) username(string) domain(string) grp(string) last_modified(int) 2 | -------------------------------------------------------------------------------- /db/htable: -------------------------------------------------------------------------------- 1 | id(int,auto) key_name(string) key_type(int) value_type(int) key_value(string) expires(int) 2 | -------------------------------------------------------------------------------- /db/imc_members: -------------------------------------------------------------------------------- 1 | id(int,auto) username(string) domain(string) room(string) flag(int) 2 | -------------------------------------------------------------------------------- /db/imc_rooms: -------------------------------------------------------------------------------- 1 | id(int,auto) name(string) domain(string) flag(int) 2 | -------------------------------------------------------------------------------- /db/lcr_gw: -------------------------------------------------------------------------------- 1 | id(int,auto) lcr_id(int) gw_name(string,null) ip_addr(string,null) hostname(string,null) port(int,null) params(string,null) uri_scheme(int,null) transport(int,null) strip(int,null) prefix(string,null) tag(string,null) flags(int) defunct(int,null) 2 | -------------------------------------------------------------------------------- /db/lcr_rule: -------------------------------------------------------------------------------- 1 | id(int,auto) lcr_id(int) prefix(string,null) from_uri(string,null) request_uri(string,null) mt_tvalue(string,null) stopper(int) enabled(int) 2 | -------------------------------------------------------------------------------- /db/lcr_rule_target: -------------------------------------------------------------------------------- 1 | id(int,auto) lcr_id(int) rule_id(int) gw_id(int) priority(int) weight(int) 2 | -------------------------------------------------------------------------------- /db/location: -------------------------------------------------------------------------------- 1 | id(int,auto) ruid(string) username(string) domain(string,null) contact(string) received(string,null) path(string,null) expires(int) q(double) callid(string) cseq(int) last_modified(int) flags(int) cflags(int) user_agent(string) socket(string,null) methods(int,null) instance(string,null) reg_id(int) server_id(int) connection_id(int) keepalive(int) partition(int) 2 | -------------------------------------------------------------------------------- /db/location_attrs: -------------------------------------------------------------------------------- 1 | id(int,auto) ruid(string) username(string) domain(string,null) aname(string) atype(int) avalue(string) last_modified(int) 2 | -------------------------------------------------------------------------------- /db/missed_calls: -------------------------------------------------------------------------------- 1 | id(int,auto) method(string) from_tag(string) to_tag(string) callid(string) sip_code(string) sip_reason(string) time(int) 2 | -------------------------------------------------------------------------------- /db/mohqcalls: -------------------------------------------------------------------------------- 1 | id(int,auto) mohq_id(int) call_id(string) call_status(int) call_from(string) call_contact(string,null) call_time(int) 2 | -------------------------------------------------------------------------------- /db/mohqueues: -------------------------------------------------------------------------------- 1 | id(int,auto) name(string) uri(string) mohdir(string,null) mohfile(string) debug(int) 2 | -------------------------------------------------------------------------------- /db/mtree: -------------------------------------------------------------------------------- 1 | id(int,auto) tprefix(string) tvalue(string) 2 | -------------------------------------------------------------------------------- /db/mtrees: -------------------------------------------------------------------------------- 1 | id(int,auto) tname(string) tprefix(string) tvalue(string) 2 | -------------------------------------------------------------------------------- /db/pdt: -------------------------------------------------------------------------------- 1 | id(int,auto) sdomain(string) prefix(string) domain(string) 2 | -------------------------------------------------------------------------------- /db/pl_pipes: -------------------------------------------------------------------------------- 1 | id(int,auto) pipeid(string) algorithm(string) plimit(int) 2 | -------------------------------------------------------------------------------- /db/presentity: -------------------------------------------------------------------------------- 1 | id(int,auto) username(string) domain(string) event(string) etag(string) expires(int) received_time(int) body(string) sender(string) priority(int) ruid(string,null) 2 | -------------------------------------------------------------------------------- /db/pua: -------------------------------------------------------------------------------- 1 | id(int,auto) pres_uri(string) pres_id(string) event(int) expires(int) desired_expires(int) flag(int) etag(string) tuple_id(string,null) watcher_uri(string) call_id(string) to_tag(string) from_tag(string) cseq(int) record_route(string,null) contact(string) remote_contact(string) version(int) extra_headers(string) 2 | -------------------------------------------------------------------------------- /db/purplemap: -------------------------------------------------------------------------------- 1 | id(int,auto) sip_user(string) ext_user(string) ext_prot(string) ext_pass(string,null) 2 | -------------------------------------------------------------------------------- /db/re_grp: -------------------------------------------------------------------------------- 1 | id(int,auto) reg_exp(string) group_id(int) 2 | -------------------------------------------------------------------------------- /db/rls_presentity: -------------------------------------------------------------------------------- 1 | id(int,auto) rlsubs_did(string) resource_uri(string) content_type(string) presence_state(string) expires(int) updated(int) auth_state(int) reason(string) 2 | -------------------------------------------------------------------------------- /db/rls_watchers: -------------------------------------------------------------------------------- 1 | id(int,auto) presentity_uri(string) to_user(string) to_domain(string) watcher_username(string) watcher_domain(string) event(string) event_id(string,null) to_tag(string) from_tag(string) callid(string) local_cseq(int) remote_cseq(int) contact(string) record_route(string,null) expires(int) status(int) reason(string) version(int) socket_info(string) local_contact(string) from_user(string) from_domain(string) updated(int) 2 | -------------------------------------------------------------------------------- /db/rtpengine: -------------------------------------------------------------------------------- 1 | id(int,auto) setid(int) url(string) weight(int) disabled(int) stamp(int) 2 | -------------------------------------------------------------------------------- /db/rtpproxy: -------------------------------------------------------------------------------- 1 | id(int,auto) setid(string) url(string) flags(int) weight(int) description(string) 2 | -------------------------------------------------------------------------------- /db/sca_subscriptions: -------------------------------------------------------------------------------- 1 | id(int,auto) subscriber(string) aor(string) event(int) expires(int) state(int) app_idx(int) call_id(string) from_tag(string) to_tag(string) record_route(string,null) notify_cseq(int) subscribe_cseq(int) server_id(int) 2 | -------------------------------------------------------------------------------- /db/secfilter: -------------------------------------------------------------------------------- 1 | id(int,auto) action(int) type(int) data(string) 2 | -------------------------------------------------------------------------------- /db/silo: -------------------------------------------------------------------------------- 1 | id(int,auto) src_addr(string) dst_addr(string) username(string) domain(string) inc_time(int) exp_time(int) snd_time(int) ctype(string) body(string,null) extra_hdrs(string,null) callid(string) status(int) 2 | -------------------------------------------------------------------------------- /db/sip_trace: -------------------------------------------------------------------------------- 1 | id(int,auto) time_stamp(int) time_us(int) callid(string) traced_user(string) msg(string) method(string) status(string) fromip(string) toip(string) fromtag(string) totag(string) direction(string) 2 | -------------------------------------------------------------------------------- /db/speed_dial: -------------------------------------------------------------------------------- 1 | id(int,auto) username(string) domain(string) sd_username(string) sd_domain(string) new_uri(string) fname(string) lname(string) description(string) 2 | -------------------------------------------------------------------------------- /db/subscriber: -------------------------------------------------------------------------------- 1 | id(int,auto) username(string) domain(string) password(string) ha1(string) ha1b(string) 2 | -------------------------------------------------------------------------------- /db/topos_d: -------------------------------------------------------------------------------- 1 | id(int,auto) rectime(int) x_context(string) s_method(string) s_cseq(string) a_callid(string) a_uuid(string) b_uuid(string) a_contact(string) b_contact(string) as_contact(string) bs_contact(string) a_tag(string) b_tag(string) a_rr(string,null) b_rr(string,null) s_rr(string,null) iflags(int) a_uri(string) b_uri(string) r_uri(string) a_srcaddr(string) b_srcaddr(string) a_socket(string) b_socket(string) 2 | -------------------------------------------------------------------------------- /db/topos_t: -------------------------------------------------------------------------------- 1 | id(int,auto) rectime(int) x_context(string) s_method(string) s_cseq(string) a_callid(string) a_uuid(string) b_uuid(string) direction(int) x_via(string,null) x_vbranch(string) x_rr(string,null) y_rr(string,null) s_rr(string,null) x_uri(string) a_contact(string) b_contact(string) as_contact(string) bs_contact(string) x_tag(string) a_tag(string) b_tag(string) a_srcaddr(string) b_srcaddr(string) a_socket(string) b_socket(string) 2 | -------------------------------------------------------------------------------- /db/trusted: -------------------------------------------------------------------------------- 1 | id(int,auto) src_ip(string) proto(string) from_pattern(string,null) ruri_pattern(string,null) tag(string,null) priority(int) 2 | -------------------------------------------------------------------------------- /db/uacreg: -------------------------------------------------------------------------------- 1 | id(int,auto) l_uuid(string) l_username(string) l_domain(string) r_username(string) r_domain(string) realm(string) auth_username(string) auth_password(string) auth_ha1(string) auth_proxy(string) expires(int) flags(int) reg_delay(int) contact_addr(string) socket(string) 2 | -------------------------------------------------------------------------------- /db/uri: -------------------------------------------------------------------------------- 1 | id(int,auto) username(string) domain(string) uri_user(string) last_modified(int) 2 | -------------------------------------------------------------------------------- /db/userblocklist: -------------------------------------------------------------------------------- 1 | id(int,auto) username(string) domain(string) prefix(string) allowlist(int) 2 | -------------------------------------------------------------------------------- /db/usr_preferences: -------------------------------------------------------------------------------- 1 | id(int,auto) uuid(string) username(string) domain(string) attribute(string) type(int) value(string) last_modified(int) 2 | -------------------------------------------------------------------------------- /db/version: -------------------------------------------------------------------------------- 1 | id(int,auto) table_name(string) table_version(int) 2 | 0:version:1 3 | 0:acc:5 4 | 0:acc_cdrs:2 5 | 0:active_watchers:12 6 | 0:address:6 7 | 0:aliases:8 8 | 0:carrier_name:1 9 | 0:carrierfailureroute:2 10 | 0:carrierroute:3 11 | 0:cpl:1 12 | 0:dbaliases:1 13 | 0:dialog:7 14 | 0:dialog_vars:1 15 | 0:dialplan:2 16 | 0:dispatcher:4 17 | 0:domain:2 18 | 0:domain_attrs:1 19 | 0:domain_name:1 20 | 0:domainpolicy:2 21 | 0:dr_gateways:3 22 | 0:dr_groups:2 23 | 0:dr_gw_lists:1 24 | 0:dr_rules:3 25 | 0:globalblocklist:1 26 | 0:grp:2 27 | 0:htable:2 28 | 0:imc_members:1 29 | 0:imc_rooms:1 30 | 0:lcr_gw:3 31 | 0:lcr_rule:3 32 | 0:lcr_rule_target:1 33 | 0:location:9 34 | 0:location_attrs:1 35 | 0:matrix:1 36 | 0:missed_calls:4 37 | 0:mohqcalls:1 38 | 0:mohqueues:1 39 | 0:mtree:1 40 | 0:mtrees:2 41 | 0:pdt:1 42 | 0:pl_pipes:1 43 | 0:presentity:5 44 | 0:pua:7 45 | 0:purplemap:1 46 | 0:re_grp:1 47 | 0:rls_presentity:1 48 | 0:rls_watchers:3 49 | 0:rtpengine:1 50 | 0:rtpproxy:1 51 | 0:sca_subscriptions:2 52 | 0:secfilter:1 53 | 0:silo:8 54 | 0:sip_trace:4 55 | 0:speed_dial:2 56 | 0:subscriber:7 57 | 0:topos_d:2 58 | 0:topos_t:2 59 | 0:trusted:6 60 | 0:uacreg:5 61 | 0:uid_credentials:7 62 | 0:uid_domain:2 63 | 0:uid_domain_attrs:1 64 | 0:uid_global_attrs:1 65 | 0:uid_uri:3 66 | 0:uid_uri_attrs:2 67 | 0:uid_user_attrs:3 68 | 0:uri:1 69 | 0:userblocklist:1 70 | 0:usr_preferences:2 71 | 0:watchers:3 72 | 0:xcap:4 73 | -------------------------------------------------------------------------------- /db/watchers: -------------------------------------------------------------------------------- 1 | id(int,auto) presentity_uri(string) watcher_username(string) watcher_domain(string) event(string) status(int) reason(string,null) inserted_time(int) 2 | -------------------------------------------------------------------------------- /db/xcap: -------------------------------------------------------------------------------- 1 | id(int,auto) username(string) domain(string) doc(string) doc_type(int) etag(string) source(int) doc_uri(string) port(int) 2 | -------------------------------------------------------------------------------- /docker-compose.yaml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | 3 | services: 4 | kamailio: 5 | image: kamailio-dev-dc:master 6 | build: 7 | context: . 8 | dockerfile: Dockerfile.kamailio 9 | volumes: 10 | - ./kamailio:/etc/kamailio 11 | - ./db:/db 12 | ports: 13 | - "5060:5060" 14 | - "5060:5060/udp" 15 | networks: 16 | main: 17 | aliases: 18 | - kamailio 19 | 20 | asterisk: 21 | image: asterisk-dev-dc:master 22 | build: 23 | context: . 24 | dockerfile: Dockerfile.asterisk 25 | networks: 26 | main: 27 | aliases: 28 | - asterisk 29 | volumes: 30 | - ./asterisk:/etc/asterisk 31 | 32 | networks: 33 | main: -------------------------------------------------------------------------------- /docker-entrypoint-asterisk.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # run as user asterisk by default 4 | ASTERISK_USER=${ASTERISK_USER:-asterisk} 5 | ASTERISK_GROUP=${ASTERISK_GROUP:-${ASTERISK_USER}} 6 | 7 | if [ "$1" = "" ]; then 8 | COMMAND="/usr/sbin/asterisk -T -W -U ${ASTERISK_USER} -p -vvvdddf" 9 | else 10 | COMMAND="$@" 11 | fi 12 | 13 | if [ "${ASTERISK_UID}" != "" ] && [ "${ASTERISK_GID}" != "" ]; then 14 | # recreate user and group for asterisk 15 | # if they've sent as env variables (i.e. to macth with host user to fix permissions for mounted folders 16 | 17 | deluser asterisk && \ 18 | addgroup -g ${ASTERISK_GID} ${ASTERISK_GROUP} && \ 19 | adduser -D -H -u ${ASTERISK_UID} -G ${ASTERISK_GROUP} ${ASTERISK_USER} \ 20 | || exit 21 | fi 22 | 23 | chown -R ${ASTERISK_USER}: /var/log/asterisk \ 24 | /var/lib/asterisk \ 25 | /var/run/asterisk \ 26 | /var/spool/asterisk; \ 27 | exec ${COMMAND} -------------------------------------------------------------------------------- /kamailio/dictionary.kamailio: -------------------------------------------------------------------------------- 1 | # 2 | # $Id$ 3 | # 4 | # SIP RADIUS attributes 5 | # 6 | # Proprietary indicates an attribute that hasn't 7 | # been standardized 8 | # 9 | # 10 | # NOTE: All standard (IANA registered) attributes are 11 | # defined in the default dictionary of the 12 | # radiusclient-ng library. 13 | # 14 | 15 | 16 | #### Attributes ### 17 | ATTRIBUTE Sip-Uri-User 208 string # Proprietary, auth_radius 18 | ATTRIBUTE Sip-Group 211 string # Proprietary, group_radius 19 | ATTRIBUTE Sip-Rpid 213 string # Proprietary, auth_radius 20 | ATTRIBUTE SIP-AVP 225 string # Proprietary, avp_radius 21 | 22 | ### Acct-Status-Type Values ### 23 | #VALUE Acct-Status-Type Failed 15 # RFC2866, acc 24 | 25 | ### Service-Type Values ### 26 | #VALUE Service-Type Call-Check 10 # RFC2865, uri_radius 27 | VALUE Service-Type Group-Check 12 # Proprietary, group_radius 28 | ##VALUE Service-Type Sip-Session 15 # Schulzrinne, acc, auth_radius 29 | VALUE Service-Type SIP-Caller-AVPs 30 # Proprietary, avp_radius 30 | VALUE Service-Type SIP-Callee-AVPs 31 # Proprietary, avp_radius 31 | 32 | ### Sip-Method Values ### 33 | VALUE Sip-Method Undefined 0 34 | VALUE Sip-Method Invite 1 35 | VALUE Sip-Method Cancel 2 36 | VALUE Sip-Method Ack 4 37 | VALUE Sip-Method Bye 8 38 | VALUE Sip-Method Info 16 39 | VALUE Sip-Method Options 32 40 | VALUE Sip-Method Update 64 41 | VALUE Sip-Method Register 128 42 | VALUE Sip-Method Message 256 43 | VALUE Sip-Method Subscribe 512 44 | VALUE Sip-Method Notify 1024 45 | VALUE Sip-Method Prack 2048 46 | VALUE Sip-Method Refer 4096 47 | VALUE Sip-Method Other 8192 48 | 49 | 50 | -------------------------------------------------------------------------------- /kamailio/kamctlrc: -------------------------------------------------------------------------------- 1 | # The Kamailio configuration file for the control tools. 2 | # 3 | # Here you can set variables used in the kamctl and kamdbctl setup 4 | # scripts. Per default all variables here are commented out, the control tools 5 | # will use their internal default values. 6 | 7 | ## your SIP domain 8 | SIP_DOMAIN=kamailio.org 9 | 10 | ## chrooted directory 11 | # $CHROOT_DIR="/path/to/chrooted/directory" 12 | 13 | ## database type: MYSQL, PGSQL, ORACLE, DB_BERKELEY, DBTEXT, or SQLITE 14 | # by default none is loaded 15 | # 16 | # If you want to setup a database with kamdbctl, you must at least specify 17 | # this parameter. 18 | DBENGINE=DBTEXT 19 | 20 | ## database host 21 | DBHOST=db 22 | 23 | ## database port 24 | DBPORT=3306 25 | 26 | ## database name (for ORACLE this is TNS name) 27 | DBNAME=kamailio 28 | 29 | # database path used by dbtext, db_berkeley or sqlite 30 | DB_PATH="/db" 31 | 32 | ## database read/write user 33 | DBRWUSER="kamailio" 34 | 35 | ## password for database read/write user 36 | DBRWPW="kamailiorw" 37 | 38 | ## database read only user 39 | # DBROUSER="kamailioro" 40 | 41 | ## password for database read only user 42 | # DBROPW="kamailioro" 43 | 44 | ## database access host (from where is kamctl used) 45 | DBACCESSHOST=db 46 | 47 | ## database super user (for ORACLE this is 'scheme-creator' user) 48 | DBROOTUSER="root" 49 | 50 | ## password for database super user 51 | ## - important: this is insecure, targeting the use only for automatic testing 52 | ## - known to work for: mysql 53 | DBROOTPW="dbrootpw" 54 | 55 | ## database character set (used by MySQL when creating database) 56 | #CHARSET="latin1" 57 | 58 | ## user name column 59 | # USERCOL="username" 60 | 61 | 62 | # SQL definitions 63 | # If you change this definitions here, then you must change them 64 | # in db/schema/entities.xml too. 65 | # FIXME 66 | 67 | # FOREVER="2030-05-28 21:32:15" 68 | # DEFAULT_Q="1.0" 69 | 70 | 71 | # Program to calculate a message-digest fingerprint 72 | # MD5="md5sum" 73 | 74 | # awk tool 75 | # AWK="awk" 76 | 77 | # gdb tool 78 | # GDB="gdb" 79 | 80 | # If you use a system with a grep and egrep that is not 100% gnu grep compatible, 81 | # e.g. solaris, install the gnu grep (ggrep) and specify this below. 82 | # 83 | # grep tool 84 | # GREP="grep" 85 | 86 | # egrep tool 87 | # EGREP="egrep" 88 | 89 | # sed tool 90 | # SED="sed" 91 | 92 | # tail tool 93 | # LAST_LINE="tail -n 1" 94 | 95 | # expr tool 96 | # EXPR="expr" 97 | 98 | 99 | # Describe what additional tables to install. Valid values for the variables 100 | # below are yes/no/ask. With ask (default) it will interactively ask the user 101 | # for an answer, while yes/no allow for automated, unassisted installs. 102 | # 103 | 104 | # If to install tables for the modules in the EXTRA_MODULES variable. 105 | INSTALL_EXTRA_TABLES=yes 106 | 107 | # If to install presence related tables. 108 | INSTALL_PRESENCE_TABLES=yes 109 | 110 | # If to install uid modules related tables. 111 | INSTALL_DBUID_TABLES=yes 112 | 113 | # Define what module tables should be installed. 114 | # If you use the postgres database and want to change the installed tables, then you 115 | # must also adjust the STANDARD_TABLES or EXTRA_TABLES variable accordingly in the 116 | # kamdbctl.base script. 117 | 118 | # Kamailio standard modules 119 | STANDARD_MODULES="standard acc lcr domain group permissions registrar usrloc msilo 120 | alias_db uri_db speeddial avpops auth_db pdt dialog dispatcher 121 | dialplan" 122 | 123 | # Kamailio extra modules 124 | EXTRA_MODULES="imc cpl siptrace domainpolicy carrierroute userblacklist htable purple sca" 125 | 126 | 127 | ## type of aliases used: DB - database aliases; UL - usrloc aliases 128 | ## - default: none 129 | # ALIASES_TYPE="DB" 130 | 131 | ## control engine: RPCFIFO 132 | ## - default RPCFIFO 133 | # CTLENGINE="RPCFIFO" 134 | 135 | ## path to FIFO file for engine RPCFIFO 136 | # RPCFIFOPATH="/var/run/kamailio/kamailio_rpc_fifo" 137 | 138 | ## check ACL names; default on (1); off (0) 139 | # VERIFY_ACL=1 140 | 141 | ## ACL names - if VERIFY_ACL is set, only the ACL names from below list 142 | ## are accepted 143 | # ACL_GROUPS="local ld int voicemail free-pstn" 144 | 145 | ## check if user exists (used by some commands such as acl); 146 | ## - default on (1); off (0) 147 | # VERIFY_USER=1 148 | 149 | ## verbose - debug purposes - default '0' 150 | # VERBOSE=1 151 | 152 | ## do (1) or don't (0) store plaintext passwords 153 | ## in the subscriber table - default '1' 154 | # STORE_PLAINTEXT_PW=0 155 | 156 | ## Kamailio START Options 157 | ## PID file path - default is: /var/run/kamailio/kamailio.pid 158 | # PID_FILE=/var/run/kamailio/kamailio.pid 159 | 160 | ## Extra start options - default is: not set 161 | # example: start Kamailio with 64MB share memory: STARTOPTIONS="-m 64" 162 | # STARTOPTIONS= 163 | --------------------------------------------------------------------------------