User Tools

Site Tools


wiki:voip:asterisk:soubory

Soubory Asterisku

/etc/asterisk/ - adresář s konfiguračními soubory

  • ; - středník,odkomentuje řádek
  • = a ⇒ - značí rovnost
  • mezery - jsou ignorovány

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ý:
  • iax.conf, sip.conf
  • každá entita obsahuje kontext parametrů
  • občas se vyskytuje rezervovaný kontext parametrů společný pro všechny entity [general]
[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
  • extenze jsou case-sensitivní
  • nejde udělat dvě extenze se stejným názvem a jinou velikostí písmen!

Priority format:

  • 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} - dialed extension
  • ${CONTEXT} - current context
  • ${CALLERID(num)}
  • ${CALLERID(name)}
  • ${PRIORITY}
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:

  • ${EXTEN:7} - ořízne 7 číslic zleva
  • ${EXTEN:-3} - vrátí poslední 3 čísla
  • ${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:

  • NoOp()
  • Set() - set(Global(variable)=content)
  • Dial()
  • GoTo() depreached
  • GoSub()
  • Hangup()
  • Answer
  • Playback()
  • Background()
  • Voicemail()
  • SetVar()
  • SetGlobalVar()

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

  • : Regular expression matching
  • =~ Regular expression exact matching

Operátory rovnosti

  • =
  • !=
  • <
  • >
  • <=
  • >=

Podmínka

  • expression1 ? expression2 :: expression3

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)
wiki/voip/asterisk/soubory.txt · Last modified: 2014/12/26 18:31 (external edit)