Soubory Asterisku
/etc/asterisk/ - adresář s konfiguračními soubory
Druhy zápisu konfigurace
Jednoduchý:
extensions.conf, meetme.conf, voicemail.conf
každý objekt se svými parametry je deklarován na jednom řádku
[Session]
Object 1 => op1,op2,op3
Object 2=> op1b,op2b,op3b
Objektový s dědičností:
chan_dahdi.conf, agents.conf
použití tam, kde je hodně parametrů stejných
parametry jsou deklarovány před objektem
[Session]
op1 = bas
op2 = adv
object=>1 //object1(op1=bas, op2=adv)
op1 = int
object => 2 //object2(op1=int, op2=adv)
Kontextový objektový:
[entity1]
op1=value1
op2=value2
[entity2]
op1=value3
op2=value4
Soubory
asterisk.conf
users.conf
- sip.conf
[general]
port = 5060
context = lab
disallow = all
allow = alaw
dtmfmode = auto
[6000]
type = friend
username = 6000
userid = well
host = dynamic
[6001]
type = friend
username = 6001
userid = linksys
host = dynamic
[6002]
type = friend
username = 6002
userid = well2
host = dynamic
- extensions.conf
[general]
static = yes
writeprotect = yes
[globals]
[lab]
exten => 1000,1,Answer
exten => 1000,n,Playback(demo-echotest)
exten => 1000,n,Echo()
exten => 1000,n,Hangup()
exten => 6000,1,Dial(SIP/6000,5)
exten => 6000,n,Goto(s-${DIALSTATUS},1)
exten => 6001,1,Dial(SIP/6001,5)
exten => 6001,n,Goto(s-${DIALSTATUS},1)
exten => 6002,1,Dial(SIP/6002,5)
exten => 6002,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Playback(nbdy-avail-to-take-call)
exten => s-NOANSWER,2,Playback(pls-try-call-later)
exten => s-NOANSWER,3,Hangup()
exten => s-BUSY,1,Playback(the-party-you-are-calling)
exten => s-BUSY,2,Playback(is-curntly-busy)
exten => s-BUSY,3,Hangup()
exten => s-CHANUNAVAIL,1,Playback(pbx-invalid)
exten => s-CHANUNAVAIL,2,Hangup()
Logování
Asterisk loguje do adr. /var/log/asterisk
/etc/asterisk/logger.conf - nastavení logování
/etc/logrotate.d/asterisk - nastavení rotace logů
CLI> logger show channels
Channel Type Status Configuration
------- ---- ------ -------------
/var/log/asterisk/messages File Enabled - Warning Notice Error
Console Enabled - Warning Notice Error
CLI> logger rotate
== Parsing '/etc/asterisk/logger.conf': Found
Asterisk Event Logger restarted
Asterisk Queue Logger restarted
/etc/asterisk/sip.conf
[general]
allow/disallow - Definice povolených a zakázaných kodeků (alaw,ulaw,ilbc,g729,all)
bindaddr - IP adresa na které SIP naslouchá. Je-li nastaveno 0.0.0.0 (default), poslouchá na všech interfejsech.
context - Nastavení def.kontextu klientům, kteří jej nemají spoecifikovaný. Z bezp.důvodů se doporučuje nastavit nějaký “falešný” dummy context.
bindport - SIP UDP port.
maxexpirey - Maximum time to register (seconds).
defaultexpirey - Default time to register (seconds).
register - Registers Asterisk to another host.
allowguest - Def. no, aby se zamezilo přístupu neautorizovaným uživatelům.
alwaysauthreject - Je-li přijato INVITE či REGISTER, vždy odpoví (valid username, invalid password), což má zamezit hádání už.jména.
[name] - Jakmile se SIP zařízení připojí k Asterisku, použije se username ze SIP
URI k nalezení peera/usera.
type - Nastavení typu spojení. Možnosti jsou peer, user a friend.
peer - Používá se pro odchozí hovory asterisku.
user - Používá se pro příchozí hovory.
friend - Slouží pro oba směry.
host - IP adresa / hostname sip zařízení, může být i dynamic pro zař.,která se na asterisk registrují.
defaultip - Použije se v případě “host=dynamic”.
secret - Heslo.
context - Nastavení kontextu.
[general]
bindport = 5060
bindaddr = 10.1.30.45
context = dummy
disallow = all
allow = ulaw
maxexpirey = 120
defaultexpirey = 80
allowguest=no
alwaysauthreject=yes
srvlookup=yes
register => login:secret@domain:port/9999
[6000]
type=friend
secret=#MySecret1#7
host=10.1.30.50
context=from-internal
[6001]
type=friend
secret=Mys3cr3t#
host=dynamic
context=from-internal
defaultip=10.1.30.17
[siptrunk]
username=login
type=peer
secret=secret
port=5060
insecure=invite
host=dominio
fromuser=login
fromdomain=domain
dtmfmode=rfc2833
context=from-sip
disallow=all
allow=ilbc
allow=alaw
allow=g729
/etc/asterisk/extensions.conf
[general]
static - yes/no
writeprotect - yes/no (je-li static=yes a writeprotect=no, lze v konzoli použít příkaz “save dialplan”, který kompletně přepíše extensions.conf a smaže v něm veškeré komentáře.)
autofallthrough - yes/no - Projde-li vytočené číslo celý dialplan a už s ním nejde nic dělat tak v případě no je hovor ukončen (BUSY,HANGUP apod.) v případě yes se čeká na další volbu.
clearglobalvars - yes/no - Po restartu znovunačtení hodnot globálních proměnných či ponechání původních.
extenpatternmatchnew - yes/no - Od ver. 1.6 umožňuje rychlejší vyhledávání volby v dialplánu (def.no).
userscontext - Kontext, ve kterém budou záznamy ze souboru users.conf
[globals]
Definují se zde inicializační hodnoty globálních proměnných.
K proměnným lze v dialplánu přistupovat použitím ${GLOBAL(variable)}
Přistupovat lze i k linuxovým systémovým proměnným použitím ${ENV(variable)}
Syntaxe: RINGTIME⇒3
exten=9000,1,set(GLOBAL(RINGTIME)=4)
exten=9000,n,Noop(${GLOBAL(RINGTIME)})
exten=9000,n,hangup()
Extension patterns:
_ Start of a match
X matches any digit from 0-9
Z matches any digit from 1-9
N matches any digit from 2-9
[1237-9] matches any digit or letter in the brackets (in this example, 1,2,3,7,8,9)
[a-z] matches any lower case letter
[A-Z] matches any UPPER case letter
. wildcard, matches one or more characters
! wildcard, matches zero or more characters immediately (only Asterisk 1.2 and later, see note)
1111/2222 matches CallerID
s Standard
_. NEPOUZIVAT, zahrnuje i specialni funkce (l,t,h, apod.)
_X! matches any numeric pattern of one or more digits (but not * or #)
_[*#0-9]! same as previous entry but also includes * and # characters
_[*0-9]! same as the previous entry except excludes the # character s if there is no pattern at all, then using s will often match
1-9 Priority Number
n next
s same
n+/-x n+x, n-x
s+/-x s+x, s-x
hint Used with presence
Asterisk Special extensions:
i Invalid. Je spuštěno při volbě neexistující extenze. Ovlivňuje obsah CDR - pole dst.
s Start. Používá se pro manipulaci hovorů bez vytočeného čísla (FXO trunky a různá menu)
h Hangup. Požívá se při zavěšení hovoru.
t Timeout. Používá se k zavěšení neaktivní linky.
T AbsoluteTimeout. Používá se k zavěšení hovoru, který přesáhne max.povolenou délku definovanou funkcí absolutetimeout().
o Operator. Přepne na operátora, když uživatel ve voicemailu stiskne 0.
a
fax
Talk
Použití těchto extenzí může změnit obsah CDR - v poli dst nemusí být volané číslo. Proto je dobré použít volbu g ve funkci dial() a zvážit použití funkcí resetcdr(w) či nocdr().
Proměnné:
Channel-specific:
exten=9001,1,dumnpchan() ;vypis dostupnych promennych
Environment-specific
${ENV(LANG)}
Set(ENV(LANG))=en_US
Application-specific
${DIALEDTIME} - This is the time from dialing a channel until it is disconnected.
${ANSWEREDTIME} - This is the amount of time for the actual call.
${DIALSTATUS} - This is the status of the call:
CHANUNAVAIL
CONGESTION
NOANSWER
BUSY
ANSWER
CANCEL
DONTCALL
TORTURE
${CAUSECODE} → Error message for the call.
Práce s proměnnými:
${123456789:1} - vrací řetězec 23456789
${123456789:-4} - vrací řetězec 6789
${123456789:0:3} - vrací řetězec 123
${123456789:2:3} - vrací řetězec 345
${123456789:-4:3} - vrací řetězec 678
Funkce:
Výrazy:
$[expression1 operator expression2]
$[${I}+100]
Matematické operátory
+ Sčítání
- Odčítání
* Násobení
/ Dělení
% Modulo
Logické operátory
& AND
| OR
! dvojkový doplněk
Regulární výrazy
Operátory rovnosti
Podmínka
Priorita operátorů
str.57 (75)
Další:
Huntgroup - vse najednou
exten ⇒ 326211790,1,Dial(SIP/70&SIP/71,60,t)
Huntgroup - postupne po 15s
exten ⇒ 326211790,1,Dial(SIP/70,15,t)
exten ⇒ 326211790,n,Dial(SIP/71,15,t)
exten ⇒ 326211790,n,GoTo(326211670,1)