21

Asterisk FreePBX. . Asterisk.

Asterisk . , , dahdi, libpri, iax2, Asterisk.

, Asterisk CentOS 7

sngrep SIP-. ?


, Asterisk. :

  • /usr/lib64/asterisk/modules ;
  • /var/log/asterisk -, ( );
  • /var/spool/asterisk , , , , ;
  • /var/lib/asterisk , , ( IVR), .

/etc/asterisk. Asterisk . ( .conf), , , , . . , .

:

  • asterisk.conf , Asterisk;
  • cdr.conf ;
  • sip.conf SIP- ( , , );
  • rtp.conf (RTP);
  • iax.conf IAX- ( , , );
  • extensions.conf , , ;
  • features.conf (, , );
  • logger.conf , ;
  • modules.conf Asterisk;
  • musiconhold.conf , , ;

, . . :

asterisk, , .

   Asterisk

asterisk

asterisk rvvvvv
  • r ;
  • vvvvv , ( verbose - v). v , ;
Asterisk -

asterisk.conf:

  asterisk.conf
  • [directories](!) . (!) . , .
  • [options] , maxcalls , Asterisk;
    • transmit_silence_during_record = yes - SLINEAR ;
    • languageprefix = yes | no - ? , <>/<>/<> , <>/<>/<>;
    • execincludes = yes | no - #exec ;
    • hideconnect = yes | no - ;
    • dontwarn = yes | no - (warning messages);
    • debug = no - : No (1-4);
    • maxcalls = 10 - ;

cdr.conf. :

[general]

enable=yes			;     
unanswered=no		;    
safeshutdown=yes		;     ,     

[csv]

usegmtime=yes  ; date/time   GMT.   NO
loguniqueid=yes
loguserfield=yes

. features.conf:

[general]

[featuremap]			;       

blindxfer => ##			;  
atxfer => *2			;  
automon => *1
disconnect => **			
parkext => 700			; 
parkpos => 710-780		;    
context => parkedcalls	;     
parkingtime => 180		;  
comebacktoorigin => no	;    ,    	 
parkedplay => both		;   courtesytone     . : callee, caller, both  no( )

parkedcalltransfers => caller	;         DTMF. : callee, caller, both  no( )
parkedcallrepark => caller	;   ,     DTMF. : callee, caller, both  no( )
parkedcallhangup => no		;   ,     DTMF : callee, caller, both  no( )
parkedcallrecording => no	;    ,   DTMF. : callee, caller, both  no( )..
parkedmusicclass => default	;     , 
adsipark => no	;    ADSI       
findslot => first
pickupexten => *8	;  

[applicationmap]	;    

sendsms => *99,peer/both,Macro,sendsms
pitch => *00,self/both,Macro,pitch

RTP rtp.conf

[general]
rtpstart=36600
rtpend=39999

. musiconhold.conf

[default]
mode=files
directory=/var/lib/asterisk/moh/

logger.conf:

[general]
[logfiles]
console => notice,warning,error,dtmf,verbose(5)		;   ,   
full => debug,notice,warning,error,verbose(9),dtmf,fax,security		;   ,   -

, , .

- modules.conf. 2 : , :

[modules]
autoload=yes
noload => codec_g723-ast110-gcc4-glibc-x86_64-core2-sse4.so

, . . :

[modules]
autoload = no

; Applications

load = app_bridgewait.so
load = app_dial.so
load = app_playback.so

; Bridging

load = bridge_builtin_features.so
load = bridge_builtin_interval_features.so
load = bridge_holding.so

; Call Detail Records

load = cdr_custom.so

; Channel Drivers

load = chan_bridge_media.so
load = chan_sip.so

; Codecs

load = codec_gsm.so
load = codec_ulaw.so
load = codec_alaw.so
load = codec_g722.so

; Formats

load = format_gsm.so
load = format_pcm.so
load = format_wav_gsm.so
load = format_wav.so

; Functions

load = func_callerid.so
load = func_cdr.so
load = func_pjsip_endpoint.so

; Core/PBX

load = pbx_config.so

; Resources

load = res_musiconhold.so
load = res_pjproject.so
load = res_pjsip_acl.so

. . . sip.conf extensions.conf. .


sip.conf SIP Asterisk:

[general]
bindaddr=0.0.0.0		;  IP-  ,     bindport=5060		; SIP-
language=ru		;      
alwaysauthreject=yes
allowguest=no		;    ,      

, , , IP- NAT .

, (, , - ), , .

[ ] (!). , , / , NAT . :

[office](!)

type=friend
deny=0.0.0.0/0.0.0.0
permit=192.168.10.0/255.255.255.0
host=dynamic
context=from-internal
nat=no
qualify=yes
directmedia=no
disallow=all
allow=alaw
allow=ulaw
dtmfmode=info

. , , , .

[]()
callerid= <>
secret=
callgroup=5			;   
pickupgroup=1,2,3,4,5		;    

:

   Asterisk     Asterisk

, sip show peers

sip show peers Asterisk

, . , ( ). extensions.conf, . :

:

  • ;
  • ;
  • ;
  • ;

() , . (extension). , , , . ( ). []. .

, [general] [globals]

  • [general] ;
  • [globals] ;

. , .

Asterisk , , , , , .

, ( ), Asterisk . , . ( ) Asterisk , . , .

:

  • ( ). ;
  • ( ; );
  • ( ), ;

:

exten => ,,()

:

  • s - , , s. (s - start (), , .;
  • i - ( ), i;
  • t - WaitExten(), t ( - 10 );
  • h - . ;

same exten. , same => n ,

. , 1, . Asterisk n, . , Asterisk n, 1. , .

( , , , ).

, Answer() Hangup(), . . , , , , . , .

extensions.conf ; - , :)

, (, )

. , (context=from-internal)

   Asterisk

(), 1 Dial c /. , . , :

     Asterisk

10 ( ) 1 Dial /_, 60 (transfer).

- , . , . :

  • X - 0 - 9;
  • Z - 1 9;
  • N - 2 - 9;
  • [1237-9] - ( ,1,2,3,7,8,9);

Asterisk dialplan reload .

    Asterisk

. 3 :

    Asterisk

810 destination-closed ( Asterisk) .


, , IP-, Asterisk, 2- SIP IAX.

SIP- , IAX- Asterisk. ( , ) ( IP- ). sip.conf [general] :

register => :@SIP-/

:

  • SIP- - IP- ;
  • : - ;
  • - , ;

SIP- . ( 3-5) , . , .

[voip-provider](!)		;  

type=peer			;  
context=from-trunk		;     
disallow=all			;   
allow=alaw			;   
allow=ulaw
insecure=invite,port		;      
qualify=yes			;  
directmedia=no		;       					 
dtmfmode=rfc2833		;    DTMF
            

[-1](voip-provider)
defaultuser=-1
fromuser=-1
secret=-1
host=1-  IP-  
fromdomain= -1  IP-  

[-2](voip-provider)
defaultuser=-2
fromuser=-2
secret=-2
host=-2  IP-  
fromdomain=   IP-  

:

register => -1:-1@-1/-1
register => -2:-2@-2/-2

sip.conf :

sip show peers   Asterisk

,

[AST10SIP](voip-provider)
type=friend			;      friend (     )
port=5060		;    
insecure=port,invite
host=IP-_
context=from-trunk-sip-AST10SIP	;         ,    .

sip.conf :

SIP -     Asterisk

IAX-. IAX- iax.conf, , Asterisk , IAX. , sip.conf:

[general]		;      IAX

bindaddr=0.0.0.0
bindport=4569		; - IAX-   4569   ,     
language=ru

;     
register => msk-spb:SuperPASS@10.10.10.10	

[msk-spb]

username = msk-spb		;      
type = friend
trunk = yes
secret = SuperPASS		;   
qualify = yes
host = 10.10.10.10		; IP-  
disallow= all
context = from-iax		;    ,    
allow = alaw
allow = ulaw

iax.conf, iax2 show peers:

IAX -    Asterisk

, IAX, SIP-.

, , , . :

exten => 500,1,Playback(it-otdel)		;   it-otdel
exten => 500,1,Dial(SIP/1001,5),Tt		; 5      1001
exten => 500,n,Dial(SIP/1002&SIP/1003)	;      1002  1003

, ( ), :

; ,  2    
exten => 060,1,Answer()
same => n,Wait(2)
same => n,Hangup()
; ,   hello-world   
exten => 061,1,Answer()
same => n,Playback(hello-world)
same => n,Hangup()
;     somefile.gsm     
exten => 067,1,Record(/tmp/somefile.gsm,3,30)
same => n,Playback(/tmp/somefile)

SIP IAX: IAX Asterisk , 1, 2, 3. ( ) 2. :

exten => _2[1-3].,1,Dial(IAX2/msk-spb/${EXTEN:1},30,r)
exten => _2.,2,Hangup()

, 21-23, msk-spb IAX , 1 () . 30 , .

-1 9

exten => _9849[589]XXXXXXX,1,Dial(SIP/-1/${EXTEN:1})	;   ,   9,      -1   SIP  ,   1 ()  

, , , .

. , , (context=from-trunk context = from-iax)

( ) exten => _10XX,1,Dial(SIP/${EXTEN},60,tTm)

( ) IVR . :

9:00 19:00 . (01-hello) (07-working-hours). ( GoToIfTime(09:00-19:00,mon-fri)) ([working-time]), (0 , 1 . , 2 (GoTo(ivr-2,s,1)), . (exten => _1xx,1,NoOp), (exten => i,1,NoOp), , (exten => t,1,NoOp), .

/var/lib/asterisk/sound/ru . -.

( sip.conf language = ru). , Asterisk , , , ivr /var/lib/asterisk/sound/ru ( asterisk ). , /var/lib/asterisk/sound/en. , asterisk. ( , , ivr ), . ( , Windows) wav ( , 8, 16 , )

, , , ivr . ivr . .

[from-trunk]

exten => _X.,1,NoOp( :     -    working-time,   -  )
same => n,Answer()
same => n,Playback(01-hello)
same => n,GoToIfTime(09:00-19:00,mon-fri,*,*?working-time,s,1)
same => n,Playback(07-working-hours)
same => n,Hangup()

[working-time]

exten => s,1,Answer()
same => n,Background(01-ivr1)
same => n,StartMusicOnHold()
same => n,WaitExten(5)
;
exten => 0,1,NoOp(  "0" -  )
same => n,Playbacr(ostavaites-na-linii)
same => n,Dial(SIP/1005,30,mtT)
same => n,Hangup()
;
exten => 1,1,NoOp(  "1" -    : 1001+1002)
same => n,Playback(it-otdel)
same => n,Dial(SIP/1001&SIP/1002,30,mtT)
same => n,Hangup()
;
exten => 2,1,NoOp(  "2" -   ivr-2)
same => n,GoTo(ivr-2,s,1)
;
exten => _1xx,1,NoOp(   )
same => n,Playback(ostavaites-na-linii)
same => n,Dial(SIP/${EXTEN}15,mtT)
same => n,Hangup()
;
exten => i,1,NoOp(  :i=illegal)
same => n,Playback(oshibka)
same => n,Dial(SIP/1005,30,r)
;
exten => t,1,NoOp( ,    )
same => n,Playback(ostavaites-na-linii)
same => n,Dial(SIP/1005,30,m)
;

[ivr-2]

exten => s,1,Background(02-ivr2)
same => n,StartMusicOnHold()
same => n,WaitExten(5)
;
exten => 1,1,NoOp(  "1" -   1001)
same => n,Dial(SIP/1001,30,mtT)
same => n,Hangup()
;
exten => 2,1,NoOp(  "2" -   1002)
same => n,Dial(SIP/1002,30,mtT)
same => n,Hangup()
;
exten => _1xx,1,NoOp(   )
same => n,Dial(SIP/${EXTEN}15,mtT)
same => n,Hangup()
;
exten => i,1,NoOp(  :i=illegal)
same => n,Playback(oshibka)
same => n,Dial(SIP/1005,30,r)
;

extensions.conf (dialplan reload) . .

Asterisk , , , .


50% Merion Academy