michael@310: michael@310: ;; michael@310: ;; asterisk.conf -- Asterisk master configuration michael@310: ;; michael@310: michael@310: [directories] michael@310: astetcdir = @l_prefix@/etc/asterisk michael@310: astmoddir = @l_prefix@/lib/asterisk/modules michael@310: astagidir = @l_prefix@/lib/asterisk/agi-bin michael@310: astvarlibdir = @l_prefix@/share/asterisk michael@310: astspooldir = @l_prefix@/var/asterisk/spool michael@310: astrundir = @l_prefix@/var/asterisk/run michael@310: astlogdir = @l_prefix@/var/asterisk/log michael@310: astdbdir = @l_prefix@/var/asterisk/db michael@310: michael@310: [files] michael@310: astctlowner = @l_rusr@ michael@310: astctlgroup = @l_rgrp@ michael@310: astctlpermissions = 700 michael@310: astctl = asterisk.ctl michael@310: michael@310: [options] michael@310: systemname = openpkg-pbx michael@310: runuser = @l_rusr@ michael@310: rungroup = @l_rgrp@ michael@310: verbose = 0 michael@310: alwaysfork = yes michael@310: dumpcore = no michael@310: quiet = yes michael@310: highpriority = no michael@310: initcrypto = no michael@310: nocolor = yes michael@310: execincludes = no michael@310: ;timestamp = yes michael@310: ;optiondebug = no michael@310: ;nofork = no michael@310: ;console = no michael@310: ;dontwarn = no michael@310: michael@310: michael@414: michael@414: ;; michael@414: ;; amd.conf -- Answering Machine Detection configuration michael@414: ;; michael@414: michael@414: [general] michael@414: initial_silence = 2500 ; Maximum silence duration before the greeting. michael@414: ; If exceeded then MACHINE. michael@414: greeting = 1500 ; Maximum length of a greeting. michael@414: ;If exceeded then MACHINE. michael@414: after_greeting_silence = 800 ; Silence after detecting a greeting. michael@414: ; If exceeded then HUMAN. michael@414: total_analysis_time = 5000 ; Maximum time allowed for the algorithm to michael@414: ; decide on a HUMAN or MACHINE. michael@414: min_word_length = 100 ; Minimum duration of Voice to considered a word. michael@414: between_words_silence = 50 ; Minimum duration of silence after a word to michael@414: ; consider the audio what follows as a new word. michael@414: maximum_number_of_words = 3 ; Maximum number of words in the greeting. michael@414: ; If exceeded then MACHINE. michael@414: silence_threshold = 256 michael@414: michael@414: michael@310: michael@310: ;; michael@310: ;; modules.conf -- Asterisk functionality module configuration michael@310: ;; michael@310: michael@310: [modules] michael@310: autoload = yes michael@310: michael@310: [global] michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; logger.conf -- Asterisk logging configuration michael@310: ;; michael@310: michael@310: [general] michael@310: dateformat = %F %T michael@310: queue_log = no michael@310: event_log = no michael@310: michael@310: [logfiles] michael@310: console = error,warning,notice,verbose michael@310: asterisk.log = error,warning,notice ; verbose,debug michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; manager.conf -- Asterisk internal manager API configuration michael@310: ;; michael@310: michael@310: [general] michael@310: enabled = yes michael@310: webenabled = no michael@310: bindaddr = 127.0.0.1 michael@310: port = 5038 michael@347: michael@347: ; You can open a TLS connection to this socket with: michael@347: ; michael@399: ; openssl s_client -connect my_host:5039 michael@347: ; michael@347: tlsenable = no michael@347: tlsbindaddr = 127.0.0.1 michael@347: tlsbindport = 5039 michael@347: tlscertfile = @l_prefix@/etc/asterisk/asterisk.pem michael@347: ; if tlsprivatekey is not specified search tlscertfile for key michael@347: ;tlsprivatekey = @l_prefix@/etc/asterisk/asterkey.pem michael@347: ;tlscipher = ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL michael@347: michael@310: displayconnects = yes michael@310: allowmultiplelogin = yes michael@310: timestampevents = yes michael@310: michael@310: [asterisk] michael@310: secret = asterisk michael@310: deny = 0.0.0.0/0.0.0.0 michael@310: permit = 127.0.0.1/255.0.0.0 michael@310: read = system,call,agent,user,config,log,verbose,dtmf,reporting,cdr,dialplan michael@310: write = system,call,agent,user,config,command,reporting michael@310: michael@310: michael@310: michael@310: ;; michael@414: ;; http.conf -- Asterisk HTTP server interface michael@310: ;; michael@310: michael@310: [general] michael@310: enabled = no michael@310: bindaddr = 127.0.0.1 michael@310: bindport = 8088 michael@347: tlsenable = no michael@347: tlsbindport = 8089 michael@347: tlsbindaddr = 127.0.0.1 michael@347: tlscertfile = @l_prefix@/etc/asterisk/asterisk.pem michael@310: enablestatic = yes michael@310: prefix = asterisk michael@310: redirect = / /asterisk/static/docs/index.html michael@310: michael@310: [post_mappings] michael@310: uploads = @l_prefix@/var/asterisk/spool/uploads/ michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; sip.conf -- Asterisk SIP configuration michael@310: ;; michael@310: michael@310: [general] michael@310: useragent = OpenPKG Asterisk PBX michael@310: realm = example michael@310: bindaddr = 127.0.0.1 michael@310: bindport = 5060 michael@310: tcpenable = yes michael@310: tcpbindaddr = 127.0.0.1:5060 michael@310: tlsenable = no michael@310: tlsbindaddr = 127.0.0.1:5061 michael@310: tlscipher = ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL michael@310: tlscertfile = asterisk.pem michael@310: tlscafile = asterisk.pem michael@310: srvlookup = yes michael@310: useclientcode = yes michael@310: allowguest = yes michael@310: canreinvite = no michael@310: nat = no michael@310: disallow = all michael@310: allow = speex michael@310: allow = g726 michael@310: allow = ulaw michael@310: allow = alaw michael@310: allow = gsm michael@310: videosupport = no michael@310: ;allow = h263 michael@310: ;allow = h263p michael@310: notifyhold = yes michael@310: notifyringing = yes michael@310: limitonpeer = yes michael@310: call-limit = 1 michael@310: incominglimit = 1 michael@310: context = external michael@310: ;register = NNNNNNN:XXXXXX:NNNNNNN@sipgate.de/s michael@310: ;tos = 0x18 michael@310: michael@310: ;[sipgate] michael@310: ;type = peer michael@310: ;defaultuser = NNNNNNN michael@310: ;host = sipgate.de michael@310: ;fromuser = NNNNNNN michael@310: ;fromdomain = sipgate.de michael@310: ;canreinvite = no michael@310: ;disallow = all michael@310: ;allow = speex michael@310: ;allow = g726 michael@310: ;allow = ulaw michael@310: ;allow = alaw michael@310: ;allow = gsm michael@310: ;context = external michael@310: michael@310: ;[gw] michael@310: ;type = friend michael@310: ;defaultuser = gw michael@310: ;callerid = "ISDN-to-SIP" michael@310: ;fromdomain = example.com michael@310: ;secret = asterisk michael@310: ;host = dynamic michael@310: ;canreinvite = no michael@310: ;disallow = all michael@310: ;allow = g726 michael@310: ;allow = ulaw michael@310: ;allow = alaw michael@310: ;allow = gsm michael@310: ;dtmfmode = rfc2833 michael@310: ;qualify = yes michael@310: ;insecure = yes michael@310: ;context = external michael@310: ;nat = no michael@310: michael@310: [std-user](!) michael@310: type = friend michael@310: context = internal michael@310: host = dynamic michael@310: dtmfmode = rfc2833 michael@310: qualify = yes michael@310: disallow = all michael@310: allow = speex michael@310: allow = g726 michael@310: allow = ulaw michael@310: allow = alaw michael@310: michael@310: [behind-nat](!) michael@310: nat = yes michael@310: michael@310: [with-mailbox](!) michael@310: hasvoicemail = yes michael@310: subscribemwi = yes michael@310: subscribecontext = internal michael@310: vmexten = voicemail michael@310: michael@310: [foo](std-user,with-mailbox) michael@310: secret = asterisk michael@310: callerid = "Mr. Foo" <11> michael@310: mailbox = 11@internal michael@310: michael@310: [bar](std-user,with-mailbox) michael@310: secret = asterisk michael@310: callerid = "Mr. Bar" <12> michael@310: mailbox = 12@internal michael@310: michael@310: michael@347: michael@347: ;; michael@347: ;; iax.conf -- Asterisk IAX configuration michael@347: ;; michael@347: michael@347: ;; This configuration is reread at reload michael@347: ;; or with the CLI command michael@399: ;; reload chan_iax2.so michael@347: ;; michael@347: ;; General settings, like port number to bind to, and michael@347: ;; an option address (the default is to bind to all michael@347: ;; local addresses). michael@347: ;; michael@347: ;[general] michael@347: ;bindport=4569 ; bindport and bindaddr may be specified michael@347: ; ; NOTE: bindport must be specified BEFORE michael@347: ; ; bindaddr or may be specified on a specific michael@347: ; ; bindaddr if followed by colon and port michael@347: ; ; (e.g. bindaddr=192.168.0.1:4569) michael@347: ;bindaddr=127.0.0.1 ; more than once to bind to multiple michael@399: ; ; addresses, but the first will be the michael@347: ; ; default michael@347: michael@347: michael@414: michael@414: ;; michael@414: ;; iaxprov.conf -- IAX2 provisioning information michael@414: ;; michael@414: michael@414: ; Contains provisioning information for templates and for specific service michael@414: ; entries. michael@414: ; michael@414: ; Templates provide a group of settings from which provisioning takes place. michael@414: ; A template may be based upon any template that has been specified before michael@414: ; it. If the template that an entry is based on is not specified then it is michael@414: ; presumed to be 'default' (unless it is the first of course). michael@414: ; michael@414: ; Templates which begin with 'si-' are used for provisioning units with michael@414: ; specific service identifiers. For example the entry "si-000364000126" michael@414: ; would be used when the device with the corresponding service identifier of michael@414: ; "000364000126" attempts to register or make a call. michael@414: ; michael@414: [default] michael@414: port=4569 ; the port number the device should bind to (default 4569) michael@414: server=127.0.0.1 ; our PRIMARY server for registration and placing calls michael@414: michael@414: ; altserver is the BACKUP server for registration and placing calls in the michael@414: ; event the primary server is unavailable. michael@414: ; michael@414: altserver=127.0.0.2 michael@414: michael@414: ; port is the port number to use for IAX2 outbound. The connections to the michael@414: ; server and altserver (default 4569) michael@414: ; michael@414: serverport=4569 michael@414: language=es ; the preferred language for the device michael@414: codec=ulaw ; requested codec, the iaxy supports ulaw and adpcm michael@414: michael@414: ; flags is a comma separated list of flags which the device should michael@414: ; use and may contain any of the following keywords: michael@414: ; michael@414: ; "register" - Register with server michael@414: ; "secure" - Do not accept calls / provisioning not originated by server michael@414: ; "heartbeat" - Generate status packets on port 9999 sent to 255.255.255.255 michael@414: ; "debug" - Output extra debugging to port 9999 michael@414: ; michael@414: ; Note that use can use += and -= to adjust parameters michael@414: ; michael@414: flags=register michael@414: michael@414: tos=ef ; see doc/ip-tos.txt michael@414: michael@414: ; Example iaxy provisioning michael@414: ; michael@414: ;[si-000364000126] michael@414: ;user=iaxy michael@414: ;pass=bitsy michael@414: ;flags += debug michael@414: michael@414: ;[si-000364000127] michael@414: ;user=iaxy2 michael@414: ;pass=bitsy2 michael@414: ;template=si-000364000126 michael@414: ;flags += debug michael@414: michael@414: michael@414: ; If specified, the '*' provisioning is used for all devices which do not michael@414: ; have another provisioning entry within the file. If unspecified, no michael@414: ; provisioning will take place for devices which have no entry. DO NOT michael@414: ; USE A '*' PROVISIONING ENTRY UNLESS YOU KNOW WHAT YOU'RE DOING. michael@414: ; michael@414: ;[*] michael@414: michael@414: ;template=default michael@414: michael@310: michael@310: ;; michael@310: ;; rtp.conf -- Asterisk RTP configuration michael@310: ;; michael@310: michael@310: [general] michael@310: rtpstart = 7070 michael@310: rtpend = 7089 michael@310: michael@310: michael@311: michael@311: ;; michael@311: ;; sip_notify.conf -- Asterisk NOTIFY automation from command line michael@311: ;; michael@311: michael@311: ; rfc3842 michael@311: ; put empty "Content=>" at the end to have CRLF after last body line michael@311: [clear-mwi] michael@311: Event=>message-summary michael@311: Content-type=>application/simple-message-summary michael@311: Content=>Messages-Waiting: no michael@311: Content=>Message-Account: sip:asterisk@127.0.0.1 michael@311: Content=>Voice-Message: 0/0 (0/0) michael@311: Content=> michael@311: michael@311: ; Aastra michael@311: [aastra-check-cfg] michael@311: Event=>check-sync michael@311: michael@311: [aastra-xml] michael@311: Event=>aastra-xml michael@311: michael@311: ; Linksys michael@311: [linksys-cold-restart] michael@311: Event=>reboot_now michael@311: michael@311: [linksys-warm-restart] michael@311: Event=>restart_now michael@311: michael@311: ; Polycom michael@311: [polycom-check-cfg] michael@311: Event=>check-sync michael@311: michael@311: ; Sipura michael@311: [sipura-check-cfg] michael@311: Event=>resync michael@311: michael@311: [sipura-get-report] michael@311: Event=>report michael@311: michael@311: ; Snom michael@311: [snom-check-cfg] michael@311: Event=>check-sync\;reboot=false michael@311: michael@311: [snom-reboot] michael@311: Event=>reboot michael@311: michael@311: ; Cisco michael@311: [cisco-check-cfg] michael@311: Event=>check-sync michael@311: michael@311: michael@414: michael@414: ;; michael@414: ;; extconfig.conf -- Static and realtime external configuration engine michael@414: ;; michael@414: michael@414: [settings] michael@414: ; michael@414: ; Static configuration files: michael@414: ; michael@414: ; file.conf => driver,database[,table[,priority]] michael@414: ; michael@414: ; maps a particular configuration file to the given michael@414: ; database driver, database and table (or uses the michael@414: ; name of the file as the table if not specified) michael@414: ; michael@414: ;uncomment to load queues.conf via the odbc engine. michael@414: ; michael@414: ;queues.conf => odbc,asterisk,ast_config michael@414: ;extensions.conf => sqlite,asterisk,ast_config michael@414: ; michael@414: ; The following files CANNOT be loaded from Realtime storage: michael@414: ; asterisk.conf michael@414: ; extconfig.conf (this file) michael@414: ; logger.conf michael@414: ; michael@414: ; Additionally, the following files cannot be loaded from michael@414: ; Realtime storage unless the storage driver is loaded michael@414: ; early using 'preload' statements in modules.conf: michael@414: ; manager.conf michael@414: ; cdr.conf michael@414: ; rtp.conf michael@414: ; michael@414: ; michael@414: ; Realtime configuration engine michael@414: ; michael@414: ; maps a particular family of realtime michael@414: ; configuration to a given database driver, michael@414: ; database and table (or uses the name of michael@414: ; the family if the table is not specified michael@414: ; michael@414: ;example => odbc,asterisk,alttable,1 michael@414: ;example => mysql,asterisk,alttable,2 michael@414: ;example2 => ldap,"dc=oxymium,dc=net",example2 michael@414: ; michael@414: ; Additionally, priorities are now supported for use as failover methods michael@414: ; for retrieving realtime data. If one connection fails to retrieve any michael@414: ; information, the next sequential priority will be tried next. This michael@414: ; especially works well with ODBC connections, since res_odbc now caches michael@414: ; when connection failures occur and prevents immediately retrying those michael@414: ; connections until after a specified timeout. Note: priorities must michael@414: ; start at 1 and be sequential (i.e. if you have only priorities 1, 2, michael@414: ; and 4, then 4 will be ignored, because there is no 3). michael@414: ; michael@414: ; "odbc" is shown in the examples below, but is not the only valid realtime michael@414: ; engine. There is: michael@414: ; odbc ... res_config_odbc michael@414: ; sqlite ... res_config_sqlite michael@414: ; pgsql ... res_config_pgsql michael@414: ; curl ... res_config_curl michael@414: ; ldap ... res_config_ldap michael@414: ; michael@414: ;iaxusers => odbc,asterisk michael@414: ;iaxpeers => odbc,asterisk michael@414: ;sippeers => odbc,asterisk michael@414: ;sipregs => odbc,asterisk ; (avoid sipregs if possible, e.g. by using a view) michael@414: ;voicemail => odbc,asterisk michael@414: ;extensions => odbc,asterisk michael@414: ;meetme => mysql,general michael@414: ;queues => odbc,asterisk michael@414: ;queue_members => odbc,asterisk michael@414: ;musiconhold => mysql,general michael@414: ;queue_log => mysql,general michael@414: ; michael@414: ; michael@414: ; While most dynamic realtime engines are automatically used when defined in michael@414: ; this file, 'extensions', distinctively, is not. To activate dynamic realtime michael@414: ; extensions, you must turn them on in each respective context within michael@414: ; extensions.conf with a switch statement. The syntax is: michael@414: ; switch => Realtime/[[db_context@]tablename]/ michael@414: ; The only option available currently is the 'p' option, which disallows michael@414: ; extension pattern queries to the database. If you have no patterns defined michael@414: ; in a particular context, this will save quite a bit of CPU time. However, michael@414: ; note that using dynamic realtime extensions is not recommended anymore as a michael@414: ; best practice; instead, you should consider writing a static dialplan with michael@414: ; proper data abstraction via a tool like func_odbc. michael@414: michael@414: michael@310: michael@310: ;; michael@310: ;; extensions.conf -- Asterisk inbound & outbound call configuration michael@310: ;; michael@310: michael@310: [general] michael@310: static = yes michael@310: writeprotect = yes michael@310: autofallthrough = yes michael@310: michael@310: [globals] michael@310: MEETME_SPOOLDIR = @l_prefix@/var/asterisk/spool/meetme michael@310: STAFF = SIP/foo&SIP/bar michael@310: CONSOLE = Console/dsp michael@310: DOLLAR = $ michael@310: michael@310: ;; michael@310: ;; SPECIAL CONTEXTS michael@310: ;; michael@310: michael@310: [macro-dial] michael@310: exten = s,1,Dial(${ARG1},${ARG2},${ARG3}) michael@310: exten = s,n,Goto(s-${DIALSTATUS},1) michael@310: exten = s-ANSWER,1,Hangup michael@310: exten = s-BUSY,1,GotoIf($["${ARG4}" == ""]?novm) michael@310: exten = s-BUSY,n,GotoIf($[${MAILBOX_EXISTS(${ARG4})} == 0]?novm) michael@310: exten = s-BUSY,n,VoiceMail(${ARG4},b) michael@310: exten = s-BUSY,n,Playback(vm-goodbye) michael@310: exten = s-BUSY,n(novm),Hangup michael@310: exten = s-NOANSWER,1,GotoIf($["${ARG4}" == ""]?novm) michael@310: exten = s-NOANSWER,n,MailboxExists(${ARG4}) michael@310: exten = s-NOANSWER,n,GotoIf($[${MAILBOX_EXISTS(${ARG4})} == 0]?novm) michael@310: exten = s-NOANSWER,n,VoiceMail(${ARG4},u) michael@310: exten = s-NOANSWER,n,Playback(vm-goodbye) michael@310: exten = s-NOANSWER,n(novm),Hangup michael@310: exten = _s-.,1,Goto(s-NOANSWER,1) michael@310: michael@310: [default] michael@310: ; currently empty michael@310: michael@310: ;; michael@310: ;; EXTERNAL DIAL CONTEXT michael@310: ;; michael@310: michael@310: [external] michael@310: include = default michael@310: michael@310: ; external incoming SIP connection michael@310: exten = example,hint,${STAFF} michael@310: exten = example,1,Goto(s,1) michael@310: exten = s,n,Ringing michael@310: exten = s,n,Wait(1) michael@310: exten = s,n,Answer michael@310: exten = s,n,Macro(dial,${STAFF},30,gTtr,1@external) michael@310: michael@310: ; external to internal mapping michael@310: exten = foo,hint,SIP/foo michael@310: exten = foo,1,Goto(internal,foo,1) michael@310: exten = bar,hint,SIP/bar michael@310: exten = bar,1,Goto(internal,bar,1) michael@310: michael@310: ;; michael@310: ;; INTERNAL DIAL CONTEXT michael@310: ;; michael@310: michael@310: [internal] michael@310: include = default michael@310: ;include = parkedcalls michael@310: michael@310: ; internal to external mapping michael@310: exten = example,1,Goto(external,example,1) michael@310: michael@310: ; internal user #11 michael@310: exten = foo,hint,SIP/foo michael@310: exten = foo,1,Goto(11,1) michael@310: exten = 11,hint,SIP/foo michael@310: exten = 11,1,Macro(dial,SIP/foo,30,gTtr,11@internal) michael@310: michael@310: ; internal user #12 michael@310: exten = bar,hint,SIP/bar michael@310: exten = bar,1,Goto(12,1) michael@310: exten = 12,hint,SIP/bar michael@310: exten = 12,1,Macro(dial,SIP/bar,30,gTtr,12@internal) michael@310: michael@310: ; internal group #20 michael@310: exten = all,1,Goto(20,1) michael@310: exten = 20/foo,1,Macro(dial,SIP/bar,60,) michael@310: exten = 20/bar,1,Macro(dial,SIP/foo,60,) michael@310: michael@310: ; internal service #7 michael@310: exten = conference,1,Goto(70,1) michael@310: exten = _7[0-9],1,Set(confno=${EXTEN:1}) michael@310: exten = _7[0-9],n,Goto(7,enter) michael@310: exten = 7,1,Set(TIMEOUT(digit)=3) michael@310: exten = 7,n,Set(TIMEOUT(response)=6) michael@310: exten = 7,n(repeat),Read(confno,conf-getconfno,3) michael@310: exten = 7,n,GotoIf($[${confno} >= 0 & ${confno} <= 9]?enter) michael@310: exten = 7,n,Playback(conf-invalid) michael@310: exten = 7,n,Goto(repeat) michael@310: exten = 7,n(enter),Playback(conf-placeintoconf) michael@310: exten = 7,n,SayNumber(${confno}) michael@310: exten = 7,n,Set(SPYGROUP=conference-${confno}) michael@310: exten = 7,n,Set(confopt=cCpsMvio) michael@310: exten = 7,n,GotoIf($[${confno} >= 4 & ${confno} <= 9]?l1:l2) michael@310: exten = 7,n(l1),Set(confopt=${confopt}i) michael@310: exten = 7,n(l2),GotoIf($[${confno} >= 7 & ${confno} <= 9]?l3:l4) michael@310: exten = 7,n(l3),Set(confopt=${confopt}r) michael@310: exten = 7,n,Set(MEETME_RECORDINGFILE=${MEETME_SPOOLDIR}/meetme-conference-${confno}-${STRFTIME(${EPOCH},UTC,%Y%m%d%H%M)}) michael@310: exten = 7,n,Set(MEETME_RECORDINGFORMAT=wav49) michael@310: exten = 7,n,Playback(this-call-may-be-monitored-or-recorded) michael@310: exten = 7,n(l4),MeetMe(${confno},${confopt}) michael@310: exten = 7,n,Playback(beep) michael@310: exten = 7,n,Wait(1) michael@310: exten = 7,n,Playback(vm-goodbye) michael@310: exten = 7,n,Hangup michael@310: michael@310: ; internal service #80/#*80 michael@310: exten = voicemail,1,Goto(80,1) michael@310: exten = 80,1,GotoIf($[${MAILBOX_EXISTS(${CALLERID(num)}@internal)} == 0]?novm) michael@310: exten = 80,n,VoiceMailMain(${CALLERID(num)}@internal,s) michael@310: exten = 80,n,Hangup michael@310: exten = 80,n(novm),Playback(invalid) michael@310: exten = 80,n,Hangup michael@310: exten = _*80.,1,GotoIf($[${MAILBOX_EXISTS(${EXTEN:3}@internal)} == 0]?novm) michael@310: exten = _*80.,n,VoiceMailMain(${EXTEN:3}@internal) michael@310: exten = _*80.,n,Hangup michael@310: exten = _*80.,n(novm),Playback(invalid) michael@310: exten = _*80.,n,Hangup michael@310: michael@310: ; internal service #81 michael@310: exten = echo,1,Goto(81,1) michael@310: exten = 81,1,Answer michael@310: exten = 81,n,Playback(demo-echotest) michael@310: exten = 81,n,Wait(1) michael@310: exten = 81,n,Playback(beep) michael@310: exten = 81,n,Echo michael@310: exten = 81,n,Wait(1) michael@310: exten = 81,n,Playback(demo-echodone) michael@310: exten = 81,n,Wait(1) michael@310: exten = 81,n,Playback(vm-goodbye) michael@310: exten = 81,n,Hangup michael@310: michael@310: ; internal service #82 michael@310: exten = reload,1,Goto(82,1) michael@310: exten = 82,1,Answer michael@310: exten = 82,n,Read(pin,conf-getpin,4) michael@310: exten = 82,n,GotoIf($[${pin} = 1234]?ok) michael@310: exten = 82,n,Playback(conf-invalidpin) michael@310: exten = 82,n,Hangup michael@310: exten = 82,n(ok),Playback(beep) michael@310: exten = 82,n,Wait(1) michael@310: exten = 82,n,Playback(beep) michael@310: exten = 82,n,Wait(1) michael@310: exten = 82,n,Playback(beep) michael@310: exten = 82,n,Wait(1) michael@310: exten = 82,n,System(@l_prefix@/sbin/asterisk -rx reload) michael@310: exten = 82,n,Hangup michael@310: michael@310: ; external outgoing ISDN (via SIP-to-ISDN gateway call-through) michael@310: ;exten = _0.,1,Set(number=${EXTEN:1}) michael@310: ;exten = _0.,n,Set(enum=${ENUMLOOKUP(+${number},ALL)}) michael@310: ;exten = _0.,n,Set(enum_is_sip_url=${REGEX("^SIP/.+" ${enum})}) michael@310: ;exten = _0.,n,GotoIf($["${enum_is_sip_url}" = "1"]?sip:isdn) michael@310: ;exten = _0.,n(sip),Dial(${enum},60,o) michael@310: ;exten = _0.,n,Goto(_0.,7) michael@310: ;exten = _0.,n(isdn),Dial(SIP/gw,60,D(w1234w0#31#${number}#)) michael@310: ;exten = _0.,n,Hangup michael@310: michael@310: ; internal outgoing SIP call (part 1/2) michael@310: ; (notice sort-order trickery!) michael@310: include = internal-siponly michael@310: michael@310: [internal-siponly] michael@310: ; internal outgoing SIP call (part 2/2) michael@310: ; (notice sort-order trickery!) michael@310: exten = _.[@].,1,Dial(SIP/${EXTEN}@${SIPDOMAIN},60,o) michael@310: exten = _.[@].,n,Hangup michael@310: exten = _.[@].,102,Busy michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; enum.conf -- Asterisk ENUM configuration michael@310: ;; michael@310: michael@310: [general] michael@310: search = e164.arpa michael@310: search = e164.org michael@310: michael@310: michael@310: michael@310: ;; michael@414: ;; musiconhold.conf -- Asterisk music on hold configuration michael@310: ;; michael@310: michael@310: [default] michael@310: mode = files michael@310: directory = @l_prefix@/share/asterisk/moh michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; voicemail.conf -- Asterisk voice mail configuration michael@310: ;; michael@310: michael@310: [general] michael@310: format = wav49 michael@310: serveremail = example@example.com michael@310: attach = yes michael@310: maxmsg = 20 michael@310: maxsecs = 180 michael@310: minsecs = 3 michael@310: maxgreet = 60 michael@310: skipms = 3000 michael@310: maxsilence = 10 michael@310: silencethreshold = 128 michael@310: maxlogins = 3 michael@310: charset = ISO-8859-1 michael@310: pbxskip = yes michael@310: fromstring = Asterisk PBX michael@310: usedirectory = yes michael@310: emailsubject = [PBX]: New voice message ${VM_MSGNUM} in mailbox ${VM_MAILBOX} michael@310: emailbody = Dear ${VM_NAME},\n\njust wanted to let you know you were left a ${VM_DUR} long\nvoice message (number ${VM_MSGNUM}) in voice mailbox ${VM_MAILBOX}\nfrom caller ${VM_CALLERID},\non ${VM_DATE}.\nYou might want to check it when you get a chance. Thanks!\n\n\t\t\t\t-- OpenPKG Asterisk PBX\n michael@310: pagerfromstring = Asterisk PBX michael@310: pagersubject = New VM michael@310: pagerbody = New ${VM_DUR} long msg in box ${VM_MAILBOX}\nfrom ${VM_CALLERID}, on ${VM_DATE} michael@310: emaildateformat = %A, %d %B %Y %H:%M:%S %r michael@310: mailcmd = @l_prefix@/sbin/sendmail -t michael@310: michael@310: [default] michael@310: michael@310: [external] michael@310: 1 = 1234,Example,example@example.com,,delete=yes michael@310: michael@310: [internal] michael@310: 11 = 1234,Mr. Foo,foo@example.com,,delete=no michael@310: 12 = 1234,Mr. Bar,bar@example.com,,delete=no michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; cdr.conf -- Asterisk Call Detail Record (CDR) configuration michael@310: ;; michael@310: michael@310: [general] michael@310: enable = yes michael@310: unanswered = no michael@310: batch = no michael@310: size = 100 michael@310: time = 300 michael@310: scheduleronly = no michael@310: safeshutdown = yes michael@310: endbeforehexten = yes michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; cdr_custom.conf -- Asterisk Call Detail Record (CDR) via Comma Separated Value (CSV) format configuration michael@310: ;; michael@310: michael@310: [mappings] michael@310: master.csv = "${CDR(start)}", "${CDR(answer)}", "${CDR(end)}", "${CDR(duration)}", "${CDR(billsec)}", "${CDR(clid)}", "${CDR(src)}", "${CDR(dst)}", "${CDR(dcontext)}", "${CDR(channel)}", "${CDR(dstchannel)}", "${CDR(lastapp)}", "${CDR(lastdata)}", "${CDR(disposition)}", "${CDR(amaflags)}", "${CDR(accountcode)}", "${CDR(uniqueid)}", "${CDR(userfield)}" michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; cdr_sqlite3_custom.conf -- Asterisk Call Detail Record (CDR) via SQLite RDBMS format configuration michael@310: ;; michael@310: michael@310: [master] michael@310: table = cdr michael@310: columns = start, answer, end, duration, billsec, clid, src, dst, dcontext, channel, dstchannel, lastapp, lastdata, disposition, amaflags, accountcode, uniqueid, userfield michael@310: values = "${CDR(start)}", "${CDR(answer)}", "${CDR(end)}", "${CDR(duration)}", "${CDR(billsec)}", "${CDR(clid)}", "${CDR(src)}", "${CDR(dst)}", "${CDR(dcontext)}", "${CDR(channel)}", "${CDR(dstchannel)}", "${CDR(lastapp)}", "${CDR(lastdata)}", "${CDR(disposition)}", "${CDR(amaflags)}", "${CDR(accountcode)}", "${CDR(uniqueid)}", "${CDR(userfield)}" michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; cdr_manager.conf -- Asterisk Call Detail Record (CDR) via Asterisk Manager Interface (AMI) configuration michael@310: ;; michael@310: michael@310: [general] michael@310: enabled = yes michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; meetme.conf -- Asterisk conference configuration michael@310: ;; michael@310: michael@310: [general] michael@310: audiobuffers = 32 michael@310: ;schedule = yes michael@310: ;logmembercount = yes michael@310: ;fuzzystart = 300 michael@310: ;earlyalert = 3600 michael@310: ;endalert = 120 michael@310: michael@310: [rooms] michael@310: conf = 0 michael@310: conf = 1 michael@310: conf = 2 michael@310: conf = 3 michael@310: conf = 4 michael@310: conf = 5 michael@310: conf = 6 michael@310: conf = 7 michael@310: conf = 8 michael@310: conf = 9,1234,1234 michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; codecs.conf -- Asterisk codec configuration michael@310: ;; michael@310: michael@310: [speex] michael@310: quality = 6 michael@310: complexity = 4 michael@310: enhancement = true michael@310: vad = true michael@310: vbr = true michael@310: abr = 8000 michael@310: vbr_quality = 5 michael@310: dtx = false michael@310: preprocess = false michael@310: pp_vad = false michael@310: pp_agc = false michael@310: pp_agc_level = 8000 michael@310: pp_denoise = false michael@310: pp_dereverb = false michael@310: pp_dereverb_decay = 0.4 michael@310: pp_dereverb_level = 0.3 michael@310: michael@310: [plc] michael@310: genericplc = true michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; chan_dahdi.conf -- Asterisk DAHDI channel configuration michael@310: ;; michael@310: michael@310: ; (an empty configuration is ok, but required even for DAHDI "dahdidummy" only) michael@310: [trunkgroups] michael@310: [channels] michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; capi.conf -- Asterisk ISDN/CAPI channel configuration michael@310: ;; michael@310: michael@310: [general] michael@310: nationalprefix = 0 michael@310: internationalprefix= 00 michael@310: rxgain = 1.0 michael@310: txgain = 1.0 michael@310: ulaw = no michael@310: debug = yes michael@310: michael@310: [ISDN1] michael@310: isdnmode = msn michael@310: incomingmsn = * michael@310: controller = 0 michael@310: group = 1 michael@310: ;prefix = 0 michael@310: softdtmf = off michael@310: relaxdtmf = off michael@310: accountcode = michael@310: context = external michael@310: holdtype = local michael@310: ;immediate = yes michael@310: echocancel = no michael@310: echosquelch = no michael@310: ;echotail = 64 michael@310: ;bridge = yes michael@310: ;callgroup = 1 michael@310: ;deflect = 1234567 michael@310: devices = 2 michael@310: ;dtmf_generate = yes michael@310: michael@310: michael@310: michael@310: ;; michael@414: ;; features.conf -- Asterisk call features configuration michael@310: ;; michael@310: michael@310: [general] michael@310: ;parkext = 700 michael@310: ;parkpos = 701-720 michael@310: ;context = parkedcalls michael@310: michael@310: michael@414: michael@414: ;; michael@414: ;; festival.conf -- Asterisk festival configuration michael@414: ;; michael@414: michael@414: [general] michael@414: host = localhost ; default 'localhost' michael@414: port = 1314 ; default '1314' michael@414: usecache = no ; default 'no' michael@414: michael@414: ; If usecache=yes, a directory to store waveform cache files. michael@414: ; The cache is never cleared (yet), so you must take care of cleaning it michael@414: ; yourself (just delete any or all files from the cache). michael@414: ; THIS DIRECTORY *MUST* EXIST and must be writable from the asterisk process. michael@414: ; Defaults to /tmp/ michael@414: ; michael@414: ;cachedir = /opsw/var/asterisk/festivalcache/ michael@414: ; michael@414: ; Festival command to send to the server. michael@414: ; Defaults to: (tts_textasterisk "%s" 'file)(quit)\n michael@414: ; %s is replaced by the desired text to say. The command MUST end with a michael@414: ; (quit) directive, or the cache handling mechanism will hang. Do not michael@414: ; forget the \n at the end. michael@414: ; michael@414: festivalcommand = (tts_textasterisk "%s" 'file)(quit)\n michael@414: michael@414: michael@399: michael@399: ;; michael@399: ;; gtalk.conf -- Asterisk GTalk configuration michael@399: ;; michael@399: michael@399: [general] michael@399: ;context = default ; Context to dump call into michael@399: ;bindaddr = 0.0.0.0 ; Address to bind to michael@399: ;externip = 127.0.0.1 ; Set your external ip if you are behind a NAT. michael@399: ;stunaddr = ; Get your external ip from a STUN server. michael@399: ; ; Note, if the STUN query is successful, this michael@399: ; ; will replace any value placed in externip; michael@399: ;allowguest = yes ; Allow calls from people not in list of peers michael@399: michael@399: [guest] ; special account for options on guest account michael@399: ;disallow = all michael@399: ;allow = ulaw michael@399: ;context = guest michael@399: michael@399: [ogorman] michael@399: ;username = @gmail.com ; username of the peer you're michael@399: ; ; calling or accepting calls from michael@399: ;disallow = all michael@399: ;allow = ulaw michael@399: ;context = default michael@399: ;connection = asterisk ; client or component in jabber.conf michael@399: ; ; for the call to leave on. michael@399: michael@399: michael@310: michael@310: ;; michael@310: ;; jabber.conf -- Asterisk Jabber configuration michael@310: ;; michael@310: michael@310: [general] michael@310: ;debug = yes michael@310: ;autoprune = yes michael@310: ;autoregister = yes michael@310: michael@310: ;[asterisk] michael@310: ;type = client michael@310: ;serverhost = jabber.example.com michael@310: ;username = asterisk@example.com/asterisk michael@310: ;secret = asterisk michael@310: ;priority = 1 michael@310: ;port = 5222 michael@310: ;usetls = no michael@310: ;usesasl = no michael@310: ;buddy = buddy@example.com michael@310: ;status = available michael@310: ;timeout = 100 michael@310: michael@310: michael@310: michael@310: ;; michael@414: ;; indications.conf -- Asterisk tone indications michael@310: ;; michael@310: michael@310: [general] michael@310: country = us michael@310: michael@310: ; United States michael@310: ; (according to tones in North America) michael@310: [us] michael@310: description = United States (US) michael@310: ringcadence = 2000,4000 michael@310: dial = 350+440 michael@310: busy = 480+620/500,0/500 michael@310: ring = 440+480/2000,0/4000 michael@310: congestion = 480+620/250,0/250 michael@310: callwaiting = 440/300,0/10000 michael@310: dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 michael@310: record = 1400/500,0/15000 michael@310: info = !950/330,!1400/330,!1800/330,0 michael@310: stutter = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 michael@310: michael@310: ; United Kingdom michael@310: ; (partly according to BT SIN350) michael@310: [uk] michael@310: description = United Kingdom (UK) michael@310: ringcadence = 400,200,400,2000 michael@310: dial = 350+440 michael@310: busy = 400/375,0/375 michael@310: ring = 400+450/400,0/200,400+450/400,0/2000 michael@310: congestion = 400/400,0/350,400/225,0/525 michael@310: callwaiting = 400/100,0/4000 michael@310: dialrecall = !350+440/100,!0/100,!350+440/100,!0/100,!350+440/100,!0/100,350+440 michael@310: record = 1400/500,0/60000 michael@310: info = 950/330,0/15,1400/330,0/15,1800/330,0/1000 michael@310: stutter = 350+440/750,440/750 michael@310: michael@310: ; Germany michael@310: ; (according to http://www.itu.int/ITU-T/inr/forms/files/tones-0203.pdf) michael@310: [de] michael@310: description = Germany (DE) michael@310: ringcadence = 1000,4000 michael@310: dial = 425 michael@310: busy = 425/480,0/480 michael@310: ring = 425/1000,0/4000 michael@310: congestion = 425/240,0/240 michael@310: callwaiting = !425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,!0/5000,!425/200,!0/200,!425/200,0 michael@310: dialrecall = !425/100,!0/100,!425/100,!0/100,!425/100,!0/100,425 michael@310: record = 1400/80,0/15000 michael@310: info = 950/330,1400/330,1800/330,0/1000 michael@310: stutter = 425+400 michael@310: michael@310: michael@347: michael@347: ;; michael@347: ;; ccss.conf -- Asterisk Call Completion Supplementary Services configuration michael@347: ;; michael@347: michael@347: ; Warning! The CCSS implementation brings several changes to the michael@347: ; channel components of Asterisk. To use CCSS, specify the number michael@347: ; of maximum requests in this file but do not forget to specify michael@347: ; the new CCSS related channel specific options in other config michael@347: ; files as well! Some are 'cc_offer_timer', 'ccbs_available_timer', michael@347: ; 'cc_agent_policy=never' and many more (in other files.) michael@347: michael@347: [general] michael@347: ; There is only a single option that may be defined in this file. michael@347: ; The cc_max_requests option is a global limit on the number of michael@347: ; CC requests that may be in the Asterisk system at any time. michael@347: ; michael@347: cc_max_requests = 20 michael@347: michael@347: michael@347: michael@347: ;; michael@347: ;; res_fax.conf -- Asterisk fax resource configuration michael@347: ;; michael@347: michael@347: [general] michael@347: ; Maximum Transmission Rate michael@347: ; Possible values are { 2400 | 4800 | 7200 | 9600 | 12000 | 14400 } michael@347: ; Set this value to the maximum desired transfer rate. Default: 14400 michael@347: maxrate=14400 michael@347: michael@347: ; Minimum Transmission Rate michael@347: ; Possible values are { 2400 | 4800 | 7200 | 9600 | 12000 | 14400 } michael@347: ; Set this value to the minimum desired transfer rate. Default: 2400 michael@347: minrate=2400 michael@347: michael@347: ; Send Progress/Status events to manager session michael@347: ; Manager events with 'call' class permissions will receive events indicating the michael@347: ; steps to initiate a fax session. Fax completion events are always sent to manager michael@347: ; sessions with 'call' class permissions, regardless of the value of this option. michael@347: ; Default: no michael@347: statusevents=yes michael@347: michael@347: ; modem capabilities michael@347: ; Possible values are { v17 | v27 | v29 } michael@347: ; Set this value to modify the default modem options. Default: v17,v27,v29 michael@347: modems=v17,v27,v29 michael@347: michael@347: ; Enable/disable T.30 ECM (error correction mode) by default. michael@347: ; Default: Enabled michael@347: ecm=yes michael@347: michael@347: michael@310: michael@310: ;; michael@310: ;; res_odbc.conf -- Asterisk ODBC resource configuration michael@310: ;; michael@310: michael@310: [ENV] michael@310: michael@310: [asterisk-sqlite] michael@310: enabled = no michael@310: dsn = asterisk-sqlite michael@310: username = michael@310: password = michael@310: pre-connect = no michael@310: sanitysql = SELECT 1 michael@310: ;idlecheck = 3600 michael@310: backslash_is_escape= yes michael@310: share_connections = yes michael@310: limit = 10 michael@310: michael@310: michael@310: michael@310: ;; michael@310: ;; func_odbc.conf -- Asterisk ODBC dialplan function configuration michael@310: ;; michael@310: michael@310: ; SQLite-based Asterisk Database Access (random SQL access) michael@310: ; Set(=${ASTDB_SQL(SELECT [...])}) michael@310: ; Set(ASTDB_SQL(UPDATE [...])) michael@310: [SQL] michael@310: prefix = ASTDB michael@310: dsn = asterisk-sqlite michael@310: readsql = ${ARG1} michael@310: writesql = ${ARG1} michael@310: michael@310: ; SQLite-based Asterisk Database Access (fixed key/value access) michael@310: ; Set(=${ASTDB_MAP()}) michael@310: ; Set(ASTDB_MAP()=) michael@310: [MAP] michael@310: prefix = ASTDB michael@310: dsn = asterisk-sqlite michael@310: readsql = SELECT val FROM map WHERE key='${SQL_ESC(${ARG1})}' michael@310: writesql = UPDATE map SET val='${SQL_ESC(${VAL1})}' WHERE key='${SQL_ESC(${ARG1})}' michael@310: escapecommas = no michael@310: michael@310: michael@310: michael@310: -----BEGIN CERTIFICATE----- michael@310: MIIDNjCCAp+gAwIBAgIBATANBgkqhkiG9w0BAQQFADCBqTELMAkGA1UEBhMCWFkx michael@310: FTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25ha2UgVG93bjEXMBUG michael@310: A1UEChMOU25ha2UgT2lsLCBMdGQxHjAcBgNVBAsTFUNlcnRpZmljYXRlIEF1dGhv michael@310: cml0eTEVMBMGA1UEAxMMU25ha2UgT2lsIENBMR4wHAYJKoZIhvcNAQkBFg9jYUBz michael@310: bmFrZW9pbC5kb20wHhcNOTkxMDIxMTgyMTUxWhcNMDExMDIwMTgyMTUxWjCBpzEL michael@310: MAkGA1UEBhMCWFkxFTATBgNVBAgTDFNuYWtlIERlc2VydDETMBEGA1UEBxMKU25h michael@310: a2UgVG93bjEXMBUGA1UEChMOU25ha2UgT2lsLCBMdGQxFzAVBgNVBAsTDldlYnNl michael@310: cnZlciBUZWFtMRkwFwYDVQQDExB3d3cuc25ha2VvaWwuZG9tMR8wHQYJKoZIhvcN michael@310: AQkBFhB3d3dAc25ha2VvaWwuZG9tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB michael@310: gQC554Ro+VH0dJONqljPBW+C72MDNGNy9eXnzejXrczsHs3Pc92Vaat6CpIEEGue michael@310: yG29xagb1o7Gj2KRgpVYcmdx6tHd2JkFW5BcFVfWXL42PV4rf9ziYon8jWsbK2aE michael@310: +L6hCtcbxdbHOGZdSIWZJwc/1Vs70S/7ImW+Zds8YEFiAwIDAQABo24wbDAbBgNV michael@310: HREEFDASgRB3d3dAc25ha2VvaWwuZG9tMDoGCWCGSAGG+EIBDQQtFittb2Rfc3Ns michael@310: IGdlbmVyYXRlZCBjdXN0b20gc2VydmVyIGNlcnRpZmljYXRlMBEGCWCGSAGG+EIB michael@310: AQQEAwIGQDANBgkqhkiG9w0BAQQFAAOBgQB6MRsYGTXUR53/nTkRDQlBdgCcnhy3 michael@310: hErfmPNl/Or5jWOmuufeIXqCvM6dK7kW/KBboui4pffIKUVafLUMdARVV6BpIGMI michael@310: 5LmVFK3sgwuJ01v/90hCt4kTWoT8YHbBLtQh7PzWgJoBAY7MJmjSguYCRt91sU4K michael@310: s0dfWsdItkw4uQ== michael@310: -----END CERTIFICATE----- michael@310: -----BEGIN RSA PRIVATE KEY----- michael@310: MIICXgIBAAKBgQC554Ro+VH0dJONqljPBW+C72MDNGNy9eXnzejXrczsHs3Pc92V michael@310: aat6CpIEEGueyG29xagb1o7Gj2KRgpVYcmdx6tHd2JkFW5BcFVfWXL42PV4rf9zi michael@310: Yon8jWsbK2aE+L6hCtcbxdbHOGZdSIWZJwc/1Vs70S/7ImW+Zds8YEFiAwIDAQAB michael@310: AoGBAKTvnFGKSkUJnNQGe66I0wunGgCA3W7kbarAzEF2qKYhGlZhJQnn68RmVnAW michael@310: pXUFvB+vmtu/+4J9OmWBJsGHFvC9xH32a0PWNr7APjAKrjAD8GWS7Z6BjuxN8QhD michael@310: WlFMmpYhYIjT1jt7RNfs2gJGS2Ryu3zutUQGwtUB9Pou03dJAkEA6yttwVINFqQP michael@310: utgUZ1JUHrN/rE73FzYsF/CwJp5d3rLHenZzLT0iW+kNDLUw/VpzYxK7bF2Qrt/3 michael@310: QIUWwm2InQJBAMpe+jhNMJeLDLc3tG3zeithT0mFkuzWWmT2PJgQ0V78UWhw/fSn michael@310: Qqnq7KBY/DNjlfhezrozLDD73/ccmha0Ax8CQQCBaBlyOtNm9QqO116K6HvPlRiZ michael@310: Wa6QQEgNOG3GInknFZu9ILcKWsywZNLAfmgh0gcSqnkmDWqTQD0PbOz0Ok/lAkEA michael@310: g24JrfUbwOASww9PhDUju/a36rTwhhZ0oKt3EP+jKsBOErmHhZP3bKlhQoZoTOu5 michael@310: Y5QXSMChS7LZcwDFZkdE2wJATRgMbhErif+ZRwt9XJRdCo5Sx6ewyGyxjc5gvUyK michael@310: KegHcgru/ZC3pGlujRD2LqxgJNAn5QTdW4LK8xVPFySTYg== michael@310: -----END RSA PRIVATE KEY----- michael@310: