0% found this document useful (0 votes)
84 views30 pages

Datatatadf

This document provides instructions and commands for configuring and managing an Asterisk server. It includes information about: - Connecting to the Asterisk server via CLI and restarting/reloading services. - Commands for modules, applications, codecs, translations and more. - Information on CDR logs, dialplans and downloading codec packages. - Configuring SIP trunks and routes. - Installing and checking the Asterisk real-time web configuration GUI. - Using tcpdump to capture network packets. - Installing Festival TTS and setting caller ID.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views30 pages

Datatatadf

This document provides instructions and commands for configuring and managing an Asterisk server. It includes information about: - Connecting to the Asterisk server via CLI and restarting/reloading services. - Commands for modules, applications, codecs, translations and more. - Information on CDR logs, dialplans and downloading codec packages. - Configuring SIP trunks and routes. - Installing and checking the Asterisk real-time web configuration GUI. - Using tcpdump to capture network packets. - Installing Festival TTS and setting caller ID.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 30

Asterisk

Lab
172.16.18.232.
User : nocds
Pass : noc@123

CLI
asterisk -r
service asterisk restart
service asterisk reload

module reload app_playback.so

core show application

sip set debug on / off

core show settings

module show like


core show file formats
module load format_wav.so
core show functions
core show applications
core show codec 256
core show translation
module load codec_gsm.so
module load codec_alaw.so
module load codec_g729.so
core show translation paths gsm
dialplan show nomor@nama-context
dialplan show 8002@nocdata
dialplan reload

CDR
/var/log/asterisk/cdr-csv

apt-get update
apt-get install asterisk

CLI> dialplan show 101@open

wget http://jaist.dl.sourceforge.net/project/mpg123/mpg123/1.20.0/mpg123-
1.20.0.tar.bz2
wget http://www.mpg123.de/mpg123/mpg123-0.59r.tar.gz

core show version

apt-get install asterisk-mp3


core show file formats

===================================================================================
===
http://172.31.67.2:8088/static/config/index.html
http://asterisk:8088/static/config/index.html
===================================================================================
===
root@asterisk:/usr/src/asterisk-gui# make checkconfig
--- Checking Asterisk configuration to see if it will support the GUI ---
* Checking for http.conf: OK
* Checking for manager.conf: OK
* Checking if HTTP is enabled: OK
* Checking if HTTP static support is enabled: OK
* Checking if manager is enabled: OK
* Checking if manager over HTTP is enabled: OK
--- Everything looks good ---
* GUI should be available at
http://asterisk:8088/asterisk/static/config/index.html

* Note: If you have bindaddr=127.0.0.1 in /etc/asterisk/http.conf


you will only be able to visit it from the local machine.

Example: http://localhost:8088/asterisk/static/config/index.html

* The login and password should be an entry from /etc/asterisk/manager.conf


which has 'config' permission in read and write. For example:

[admin]
secret = mysecret5207
read = system,call,log,verbose,command,agent,config
write = system,call,log,verbose,command,agent,config

===================================================================================
===
TCP Dump

tcpdump -i eth0 -w filename.pcap -s0 -v "port 5060"

#Display real time to a console


tcpdump -nqt -s 0 -A -i eth0 port 5060
tcpdump -nqt -s 0 -A -vvv -i eth0 port 5060 (print some under layer protocol
details, as check sums, header lengths...)

#Second option to use tcpdump is to capture data and write them to a pcacp file,
then do post analysis, using wireshark for example.
tcpdump -nq -s 0 -vvv -i any -w /home/nocinfra/dumpdev.pcap
tcpdump -nq -s 0 -vvv -i any -w /home/nocds/dumpold.pcap
tcpdump -nq -s 0 -vvv -i eth0 -w /home/nocinfra/dump3333.pcap port 5060

===================================================================================
===
Install Festival

(defvar mlsa_alpha_param 0.42)


(defvar mlsa_beta_param 0.0)

(define (tts_textasterisk string mode)


"(tts_textasterisk STRING MODE)
Apply tts to STRING. This function is specifically designed for
use in server mode so a single function call may synthesize the string.
This function name may be added to the server safe functions."
(let ((wholeutt (utt.synth (eval (list 'Utterance 'Text string)))))
(utt.wave.resample wholeutt 8000)
(utt.wave.rescale wholeutt 5)
(utt.send.wave.client wholeutt)))

(provide 'festival)

===================================================================================
===
CallerID

cp name_file /var/spool/asterisk/outgoing/

===================================================================================
===
Besok Pak Riko akan create WO untuk routing 33333 dan RBT
DN 02141463962

Trunk

[gmsc]
type=friend
host=192.168.36.69
context=gmsc
qualify=1000|yes
media_address=172.19.31.138

allow-hotplug eth0
iface eth0 inet static
address 172.31.67.2
netmask 255.255.255.252
network 172.31.67.0
broadcast 172.31.67.3
gateway 172.31.67.1

auto eth1.1
iface eth1.1 inet static
address 172.19.31.134
netmask 255.255.255.252
gateway 172.19.31.133

auto eth1.2
iface eth1.1 inet static
address 172.19.31.138
netmask 255.255.255.252
gateway 172.19.31.137

===================================================================================
===
### ip route add (remote_network) via (remote_connecting_gatway) dev
(local_outgoing_interface)
up route add -net 172.31.67.0 netmask 255.255.255.252 gw 0.0.0.0 dev eth0
up route add -net 192.168.36.69 netmask 255.255.255.255 gw 172.19.31.133 dev
eth1.702
up route add -net 172.19.31.136 netmask 255.255.255.252 gw 0.0.0.0 dev eth1.704
up route add -net 172.19.31.132 netmask 255.255.255.252 gw 0.0.0.0 dev eth1.702
up route add -net 172.19.25.0 netmask 255.255.255.0 gw 172.19.31.137 dev eth1.704
up route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.31.67.1 dev eth0

route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.16.12.1 dev eth0


down route add -net 172.31.67.0 netmask 255.255.255.252 gw 0.0.0.0 dev eth0
down route add -net 192.168.36.69 netmask 255.255.255.255 gw 172.19.31.133 dev
eth1.702
down route add -net 172.19.31.136 netmask 255.255.255.252 gw 0.0.0.0 dev eth1.704
down route add -net 172.19.31.132 netmask 255.255.255.252 gw 0.0.0.0 dev eth1.702
down route add -net 172.19.25.0 netmask 255.255.255.0 gw 172.19.31.137 dev eth1.704
down route add -net 0.0.0.0 netmask 0.0.0.0 gw 172.31.67.1 dev eth0
route add -net 172.26.220.0 netmask 255.255.255.0 gw 172.19.31.133 dev eth1.702

RejaBdg
172.16.12.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 172.16.12.1 0.0.0.0 UG 0 0 0 eth0

root@asterisk:/etc/network# netstat -nr


Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 172.31.67.1 0.0.0.0 UG 0 0 0 eth0
172.19.25.0 172.19.31.137 255.255.255.0 UG 0 0 0 eth1.704
172.19.31.132 0.0.0.0 255.255.255.252 U 0 0 0 eth1.702
172.19.31.136 0.0.0.0 255.255.255.252 U 0 0 0 eth1.704
172.19.89.0 172.19.31.137 255.255.255.0 UG 0 0 0 eth1.704
172.19.124.0 172.19.31.133 255.255.255.0 UG 0 0 0 eth1.702
172.26.220.0 172.19.31.133 255.255.255.0 UG 0 0 0 eth1.702
172.31.67.0 0.0.0.0 255.255.255.252 U 0 0 0 eth0
192.168.36.69 172.19.31.133 255.255.255.255 UGH 0 0 0 eth1.702
===================================================================================
===
Context
Jika type=user, Context adalah untuk panggilan yang masuk ke definisi user SIP.
Jika type=peer, Context di dialplan untuk panggilan keluar / outbound dari
definisi peer SIP.
Jika type=friend maka Context digunakan untuk semua hubungan inbound dan outbound
ke definisi entitas SIP.

===================================================================================
===

54 yum -y update
73 yum list | more
77 yum list | grep openssl-devel
78 yum list | grep openssl
79 yum list | grep ncurses
80 yum list | grep newt
81 yum list | grep libxml2
82 yum list | grep gcc
83 yum list | grep kernel
84 yum list | grep sqlite
88 yum -y update
89 yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-
devel kernel-devel gcc gcc-c++ sqlite-devel
97 yum list | grep newt
98 yum list | grep kernel
99 yum list | grep openssl
100 yum list | grep ncurses
101 yum list | grep libxml2
113 yum list | grep kernel
114 yum install kernel-devel-`uname -r`
116 yum list | grep libxml2
117 yum list | grep libtermcap
118 yum list | grep gcc
119 yum list | grep libtermcap
120 yum -y groupinstall "Development tools" "Debugging Tools"
126 yum -y update
127 yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-
devel kernel-devel gcc gcc-c++ sqlite-devel
132 yum install --enablerepo=dvd *openssl-devel
133 yum -y update --enablerepo=dvd
134 yum install --enablerepo=dvd *ncurses-devel *newt-devel
135 yum install --enablerepo=dvd *newt-devel
136 yum install --enablerepo=dvd newt-devel
137 yum install --enablerepo=dvd *libxml2-devel
138 yum install --enablerepo=dvd *kernel-devel
139 yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-
devel kernel-devel gcc gcc-c++ sqlite-devel
140 yum install --enablerepo=dvd *openssl
141 yum install --enablerepo=dvd *gcc
142 yum repolist
145 yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-
devel kernel-devel gcc gcc-c++ sqlite-devel
146 yum install --enablerepo=dvd *newt-devel
147 yum install --enablerepo=dvd *libxml2-devel
148 yum install --enablerepo=dvd *kernel-devel
149 yum install --enablerepo=dvd *gcc
150 yum install --enablerepo=dvd *gcc-c++
151 yum install --enablerepo=dvd *sqlite-devel
152 yum install --enablerepo=dvd *newt
153 yum install --enablerepo=dvd *newt-dev
154 yum install --enablerepo=dvd *newt-de
155 yum install --enablerepo=dvd *newt
165 yum install --enablerepo=dvd *ncurses
166 yum install --enablerepo=dvd *term
168 yum install --enablerepo=dvd *ncurses
169 yum install --enablerepo=dvd *ncurses-dev
170 yum install --enablerepo=dvd *ncurses-devel
yum install --enablerepo=dvd php5

vi /etc/yum.repos.d/rhel-dvd.repo
[root@BDG-SVR-01 yum.repos.d]# more rhel-dvd.repo
[dvd]
name=Red Hat Enterprise Linux Installation DVD
baseurl=file:/media
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

service iptables stop

===================================================================================
===
Add DNS di Redhat:
[root@BDG-SVR-01 asterisk]# more /etc/resolv.conf
nameserver 172.16.7.77
nameserver 172.16.32.12
search ESIA.CO.ID

===================================================================================
===
route add -net 172.16.12.0 netmask 255.255.255.0 gw 172.16.130.1 eth0
vi /etc/sysconfig/network-scripts/route-eth0
vi /etc/sysconfig/network-scripts/route-eth0
route add default gw 172.16.130.1 eth0
===================================================================================
===
Call Transfer is used to transfer a call in progress to some other destination.

There are two types of call transfer:


1. Supervised call transfer - Where the call is placed on hold, a call is placed to
another party, a conversation can take place privately before the caller on hold is
connected to the new destination. This is also called "Attended Call Transfer"
elsewhere in this website.
2. Blind call transfer - Where the call is transferred to the other destination
with no intervention (the other destination could ring out and not be answered for
instance).
===================================================================================
===

===================================================================================
===

make[2]: Leaving directory `/usr/src/asterisk-11.11.0/menuselect/mxml'


gcc -o cmenuselect menuselect.o strcompat.o menuselect_curses.o mxml/libmxml.a
-lncurses
make[1]: Leaving directory `/usr/src/asterisk-11.11.0/menuselect'
CC="cc" CXX="" LD="" AR="" RANLIB="" CFLAGS="" LDFLAGS="" make -C menuselect
CONFIGURE_SILENT="--silent" nmenuselect
make[1]: Entering directory `/usr/src/asterisk-11.11.0/menuselect'
make[1]: Nothing to be done for `nmenuselect'.
make[1]: Leaving directory `/usr/src/asterisk-11.11.0/menuselect'
CC="cc" CXX="" LD="" AR="" RANLIB="" CFLAGS="" LDFLAGS="" make -C menuselect
CONFIGURE_SILENT="--silent" gmenuselect
make[1]: Entering directory `/usr/src/asterisk-11.11.0/menuselect'
make[1]: Nothing to be done for `gmenuselect'.
make[1]: Leaving directory `/usr/src/asterisk-11.11.0/menuselect'
make[1]: Entering directory `/usr/src/asterisk-11.11.0'
Generating input for menuselect ...
CC="cc" CXX="" LD="" AR="" RANLIB="" CFLAGS="" LDFLAGS="" make -C menuselect
CONFIGURE_SILENT="--silent" menuselect
make[2]: Entering directory `/usr/src/asterisk-11.11.0/menuselect'
gcc -g -D_GNU_SOURCE -Wall -c -o menuselect_stub.o menuselect_stub.c
gcc -o menuselect menuselect.o strcompat.o menuselect_stub.o mxml/libmxml.a
make[2]: Leaving directory `/usr/src/asterisk-11.11.0/menuselect'

===================================================================================
===
Copy file

scp asterisk-11-current.tar.gz [email protected]:/


===================================================================================
===
more /proc/cpuinfo

cat /etc/redhat-release
CentOS release 6.5 (Final)
===================================================================================
===
-rwxr-xr-x 1 root root 21157 Jan 30 2013 logo_elastix.ori.png
-rwxr-xr-x 1 root root 7350 Jan 30 2013 logo_elastix_new_mini.ori.png
-rwxr-xr-x 1 root root 4803 Jan 30 2013 logo_elastix_new3.ori.gif
-rwxr-xr-x 1 root root 7086 Jan 30 2013 logo_elastix_mini.ori.jpg
-rwxr-xr-x 1 root root 6230 Jan 30 2013 elastix.ori.bmp
-rwxr-xr-x 1 root root 5186 Jan 30 2013 elastix_logo_mini.ori.png
-rw-r--r-- 1 root root 10158 Nov 28 09:06 logo_elastix.png
-rw-r--r-- 1 root root 10158 Nov 28 09:06 logo_elastix_new_mini.png
-rw-r--r-- 1 root root 10158 Nov 28 09:06 elastix_logo_mini.png
-rw-r--r-- 1 root root 4110 Nov 28 09:14 logo_elastix_new3.gif
-rw-r--r-- 1 root root 13739 Dec 18 13:36 logo_elastix_mini.jpg
-rw-r--r-- 1 root root 3518 Dec 18 13:53 elastix.bmp
[root@JKT-VOIST-E-LPD01 images]#
[root@JKT-VOIST-E-LPD01 images]#
[root@JKT-VOIST-E-LPD01 images]# ls *voist* -ltr
-rwxr-xr-x 1 root root 93068 Nov 28 07:33 logo_voist.png
-rw-r--r-- 1 root root 10158 Nov 28 09:06 logo_voist3.png

===================================================================================
===
1. Elastix features & reporting readiness
2. Elastix capacity readiness
3. Enhancement & infra needed & timeline
4. Commercial scheme between NOC-BTEL & LPD
5. Others

===================================================================================
===
sip.conf

Here is the configuration for the Toronto box:

[general]
register => toronto:[email protected]/osaka
register => elastix3:[email protected]/from-pstn

[osaka]
type=friend
secret=welcome
context=osaka_incoming
host=dynamic
disallow=all
allow=ulaw

And the configuration for the Osaka box:

[general]
register => osaka:[email protected]/toronto
[toronto]
type=friend
secret=welcome
context=toronto_incoming
host=dynamic
disallow=all
allow=ulaw

SIP Phone Configuration

Toronto sip.conf:

[1000]type=friend
host=dynamic
context=phones

Osaka sip.conf:

[1001]type=friend
host=dynamic
context=phones

Configuring the Dialplan

We are going to build up a dialplan based on this simple configuration. The


dialplan for each server will be very similar to the other one, but for
clarity we will show both. The new lines we�re adding to the file will be
italicized.

Toronto extensions.conf:

[globals][general]autofallthrough=yes
[default][incoming_calls][phones]include => internal
include => remote
[internal]exten => _2XXX,1,NoOp()
exten => _2XXX,n,Dial(SIP/${EXTEN},30)
exten => _2XXX,n,Playback(the-party-you-are-calling&is-curntly-unavail)
exten => _2XXX,n,Hangup()
[remote]exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(SIP/osaka/${EXTEN})
exten => _1XXX,n,Hangup()
[osaka_incoming]include => internal

Osaka extensions.conf:

[globals][general]autofallthrough=yes
[default][incoming_calls][phones]include => internal
include => remote
[internal]exten => _1XXX,1,NoOp()
exten => _1XXX,n,Dial(SIP/${EXTEN},30)
exten => _1XXX,n,Playback(the-party-you-are-calling&is-curntly-unavail)
exten => _1XXX,n,Hangup()
[remote]exten => _2XXX,1,NoOp()

exten => _2XXX,n,Dial(SIP/toronto/${EXTEN})


exten => _2XXX,n,Hangup()
[toronto_incoming]include => internal

Once you�ve configured your extensions.conf file, you can reload it from the
Asterisk console with the dialplan reload command. Verify your dialplan loaded with
the dialplan show command.
===================================================================================
===
Getting Remote UNIX connection disconnected

Depending on your Asterisk version, add hideconnect = yes to asterisk.conf and


restart.
===================================================================================
===
Modify CDR

1067 history | more


[root@JKT-VOIST-A-LPD01 recording]# more /usr/local/bin/voist-zipcdr.sh
#gzip file voist-cdr-rollover#
find /data2/voist/cdrvoist/ -type f -name "cdr-*" -mtime +1 -exec gzip {} \;

[root@JKT-VOIST-A-LPD01 recording]# more /usr/local/bin/voist-cdr-rollover.sh


DATE=`date +%Y%m%d%H%M%S`
CSV_DIR=/var/log/asterisk/cdr-csv
CSV_FILE=$CSV_DIR/Master.csv
if [ -f $CSV_FILE ]; then
mv $CSV_FILE $CSV_DIR/cdr-$DATE.csv
touch $CSV_FILE
mv $CSV_DIR/cdr-$DATE.csv /data2/voist/voistcdr/
fi

cd /etc/cron.d
[root@JKT-VOIST-A-LPD01 cron.d]# more voist-cdr-rollover
59 23 * * * root /usr/local/bin/voist-cdr-rollover.sh

[root@JKT-VOIST-A-LPD01 cron.d]# more voist-zipcdr


0 1 * * * root /usr/local/bin/voist-zipcdr.sh

===================================================================================
===
Logrotate

more /etc/anacrontab
more /etc/logrotate.d/cdrrbt

[root@JKT-VOIST-A-LPD01 logrotate.d]# more lpdcdr


/var/log/asterisk/cdr-csv/Master.csv {
missingok
notifempty
daily
maxage 100
}

[root@JKT-VOIST-A-LPD01 bin]# more voist-zipcdr.sh


#gzip file voist-cdr-rollover#
find /data2/voist/cdrvoist/ -type f -name "cdr-*" -mtime +1 -exec gzip {} \;

#gzip file configure#


find /data2/voist/backup/config/ -type f -name "extensions-*" -mtime +1 -exec gzip
{} \;
find /data2/voist/backup/config/ -type f -name "sip-*" -mtime +1 -exec gzip {} \;

[root@JKT-VOIST-A-LPD01 bin]# more voist-cdr-rollover.sh


DATE=`date +%Y%m%d%H%M%S`
CSV_DIR=/var/log/asterisk/cdr-csv
CSV_FILE=$CSV_DIR/Master.csv
if [ -f $CSV_FILE ]; then
mv $CSV_FILE $CSV_DIR/cdr-$DATE.csv
touch $CSV_FILE
mv $CSV_DIR/cdr-$DATE.csv /data2/voist/cdrvoist/
fi

===================================================================================
===
Multi-tenancy is an architecture in which a single instance of a software
application serves multiple customers. Each customer is called a tenant.
For creating multitenant we need to create custom extensions in
/etc/asterisk/extensions_custom.conf and give relevant context route calls:
[company1]
exten => 1234512345,1,Set(__FROM_DID=${EXTEN})
exten => 1234512345,n,Gosub(app-blacklist-check,s,1)
exten => 1234512345,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=$
{CALLERID(num)}))
exten => 1234512345,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => 9498851902,n,Set(CALLERPRES()=allowed_not_screened)
exten => s,1,Dial(SIP/1500)

[company2]
exten => 1234567890,1,Set(__FROM_DID=${EXTEN})
exten => 1234567890,n,Gosub(app-blacklist-check,s,1)
exten => 1234567890,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=$
{CALLERID(num)}))
exten => 1234567890,n,Set(__CALLINGPRES_SV=${CALLERPRES()})
exten => 1234567890,n,Set(CALLERPRES()=allowed_not_screened)
exten => s,1,Dial(SIP/1701)
===================================================================================
===
! Telstra Global Service Desk <[email protected]>
! Telstra Global Duty Manager <[email protected]>
===================================================================================
===
List module
more /usr/lib/asterisk/modules/

===================================================================================
===
Asterisk Log
tail /var/log/asterisk/full
===================================================================================
===
edit the welcome message when ssh start?
vi /etc/motd
===================================================================================
===
Unable to open Asterisk database '/var/lib/asterisk/astdb': Permission denied

solved with the simple command:

chown asterisk:asterisk /var/lib/asterisk/astdb


===================================================================================
===
Sample Dialplan for FAX Asterisk

Sampel1:

[fax-rx]
exten => receive,1,NoOp(**** FAX RECEIVE ****)
exten => receive,n,Set(GLOBAL(FAXCOUNT)=$[ ${GLOBAL(FAXCOUNT)} + 1 ])
exten => receive,n,Set(FAXCOUNT=${GLOBAL(FAXCOUNT)})
exten => receive,n,Set(FAXFILE=fax-${FAXCOUNT}-rx.tif)
exten => receive,n,Set(GLOBAL(LASTFAXCALLERNUM)=${CALLERID(num)})
exten => receive,n,Set(GLOBAL(LASTFAXCALLERNAME)=${CALLERID(name)})
exten => receive,n,NoOp(**** SETTING FAXOPT ****)
exten => receive,n,Set(FAXOPT(ecm)=yes)
exten => receive,n,Set(FAXOPT(headerinfo)=MY FAXBACK RX)
exten => receive,n,Set(FAXOPT(localstationid)=1234567890)
exten => receive,n,Set(FAXOPT(maxrate)=14400)
exten => receive,n,Set(FAXOPT(minrate)=2400)
exten => receive,n,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})
exten => receive,n,NoOp(FAXOPT(headerinfo) : ${FAXOPT(headerinfo)})
exten => receive,n,NoOp(FAXOPT(localstationid) : ${FAXOPT(localstationid)})
exten => receive,n,NoOp(FAXOPT(maxrate) : ${FAXOPT(maxrate)})
exten => receive,n,NoOp(FAXOPT(minrate) : ${FAXOPT(minrate)})
exten => receive,n,NoOp(**** RECEIVING FAX : ${FAXFILE} ****)
exten => receive,n,ReceiveFAX(/home/dwayne/faxin/${FAXFILE})
; Hangup! Print FAXOPTs
exten => h,1,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})
exten => h,n,NoOp(FAXOPT(filename) : ${FAXOPT(filename)})
exten => h,n,NoOp(FAXOPT(headerinfo) : ${FAXOPT(headerinfo)})
exten => h,n,NoOp(FAXOPT(localstationid) : ${FAXOPT(localstationid)})
exten => h,n,NoOp(FAXOPT(maxrate) : ${FAXOPT(maxrate)})
exten => h,n,NoOp(FAXOPT(minrate) : ${FAXOPT(minrate)})
exten => h,n,NoOp(FAXOPT(pages) : ${FAXOPT(pages)})
exten => h,n,NoOp(FAXOPT(rate) : ${FAXOPT(rate)})
exten => h,n,NoOp(FAXOPT(remotestationid) : ${FAXOPT(remotestationid)})exten =>
h,n,NoOp(FAXOPT(resolution) : ${FAXOPT(resolution)}
exten => h,n,NoOp(FAXOPT(status) : ${FAXOPT(status)})
exten => h,n,NoOp(FAXOPT(statusstr) : ${FAXOPT(statusstr)})
exten => h,n,NoOp(FAXOPT(error) : ${FAXOPT(error)})

[fax-tx]
exten => send,1,NoOp(**** SENDING FAX ****)
exten => send,n,Wait(6)
exten => send,n,Set(GLOBAL(FAXCOUNT)=$[ ${GLOBAL(FAXCOUNT)} + 1 ])
exten => send,n,Set(FAXCOUNT=${GLOBAL(FAXCOUNT)})
exten => send,n,Set(FAXFILE=dw-faxout.tif)
; Set FAXOPTs
exten => send,n,NoOp(**** SETTING FAXOPT ****)
exten => send,n,Set(FAXOPT(ecm)=yes)
exten => send,n,Set(FAXOPT(headerinfo)=Fax from $
{GLOBAL(LASTFAXCALLERNAME)} at ${GLOBAL(LASTFAXCALLERNUM)} was received.)
exten => send,n,Set(FAXOPT(localstationid)=1234567890)
exten => send,n,Set(FAXOPT(maxrate)=14400)
exten => send,n,Set(FAXOPT(minrate)=2400)
; Send the fax
exten => send,n,NoOp(**** SENDING FAX : ${FAXFILE} ****)
exten => send,n,SendFAX(/home/dwayne/faxout/${FAXFILE},d)
; Hangup! Print FAXOPTs
exten => h,1,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})
exten => h,n,NoOp(FAXOPT(filename) : ${FAXOPT(filename)})
exten => h,n,NoOp(FAXOPT(headerinfo) : ${FAXOPT(headerinfo)})
exten => h,n,NoOp(FAXOPT(localstationid) : ${FAXOPT(localstationid)})
exten => h,n,NoOp(FAXOPT(maxrate) : ${FAXOPT(maxrate)})
exten => h,n,NoOp(FAXOPT(minrate) : ${FAXOPT(minrate)})
exten => h,n,NoOp(FAXOPT(pages) : ${FAXOPT(pages)})
exten => h,n,NoOp(FAXOPT(rate) : ${FAXOPT(rate)})
exten => h,n,NoOp(FAXOPT(remotestationid) : ${FAXOPT(remotestationid)})
exten => h,n,NoOp(FAXOPT(resolution) : ${FAXOPT(resolution)})
exten => h,n,NoOp(FAXOPT(status) : ${FAXOPT(status)})
exten => h,n,NoOp(FAXOPT(statusstr) : ${FAXOPT(statusstr)})
exten => h,n,NoOp(FAXOPT(error) : ${FAXOPT(error)})
[default]
exten => fax,1,NoOp(**** FAX DETECTED ****)
exten => fax,n,Goto(fax-rx,receive,1)

exten => 100,1,Wait(1)


exten => 100,n,Answer()
exten => 100,n,Set(GLOBAL(FAXCOUNT)=$[ ${GLOBAL(FAXCOUNT)} + 1 ])
exten => 100,n,Set(FAXCOUNT=${GLOBAL(FAXCOUNT)})
exten => 100,n,Set(FAXFILE=fax-${FAXCOUNT}-rx.tif)
exten => 100,n,Set(LOCALHEADERINFO=Receiving fax number ${FAXCOUNT})
exten => 100,n,Set(LOCALSTATIONID=${FAXCOUNT})
exten => 100,n,ReceiveFAX(${GLOBAL(FAXRXDIR)}/${FAXFILE})
exten => 111,1,Wait(1)
exten => 111,n,Answer()
exten => 111,n,Set(GLOBAL(FAXCOUNT)=$[ ${GLOBAL(FAXCOUNT)} + 1 ])
exten => 111,n,Set(FAXCOUNT=${GLOBAL(FAXCOUNT)})
exten => 111,n,Set(LOCALHEADERINFO=Sending fax number ${FAXCOUNT})
exten => 111,n,Set(LOCALSTATIONID=${FAXCOUNT})
exten => 111,n,Set(NUMPAGES=${RAND(1,3)})
exten => 111,n,GotoIf($[${NUMPAGES} = 1]?send1page:)
exten => 111,n,GotoIf($[${NUMPAGES} = 2]?send11pages:)
exten => 111,n,GotoIf($[${NUMPAGES} = 3]?send20pages:)
exten => 111,n(send20pages),Set(FAXFILE=${GLOBAL(FAX20PAGES)})
exten => 111,n,Goto(sendit)
exten => 111,n(send11pages),Set(FAXFILE=${GLOBAL(FAX11PAGES)})
exten => 111,n,Goto(sendit)
exten => 111,n(send1page),Set(FAXFILE=${GLOBAL(FAX1PAGE)})
exten => 111,n(sendit),SendFAX(${GLOBAL(FAXTXDIR)}/${FAXFILE})
exten => h,1,NoOp(FaxStatus : ${FAXSTATUS})
exten => h,n,NoOp(FaxStatusString : ${FAXSTATUSSTRING})
exten => h,n,NoOp(FaxError : ${FAXERROR})
exten => h,n,NoOp(RemoteStationID : ${REMOTESTATIONID})
exten => h,n,NoOp(FaxPages : ${FAXPAGES})
exten => h,n,NoOp(FaxBitRate : ${FAXBITRATE})
exten => h,n,NoOp(FaxResolution : ${FAXRESOLUTION}

Sampel2:
[inbound-fax]
exten => s,1,NoOp(FAX RECEIVED from ${CALLERID(num)} ${STRFTIME(${EPOCH},,%c)}
****)
exten => s,n,Set(FILENAME=fax-${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
exten => s,n,Set(FAXFILE=${FILENAME}.tif)
exten => s,n,Set(FAXOPT(ecm)=yes)
exten => s,n,Set(FAXOPT(localstationid)=01042064013)
exten => s,n,Set(FAXOPT(maxrate)=14400)
exten => s,n,Set(FAXOPT(minrate)=2400)
exten => s,n,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})
exten => s,n,NoOp(FAXOPT(headerinfo) : ${FAXOPT(headerinfo)})
exten => s,n,NoOp(**Receiving Fax : ${FAXFILE}**)
exten => s,n,ReceiveFAX(/tmp/${FAXFILE})
exten => s,n,Hangup()
exten => h,1,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})

[send-fax]
exten => sendfax,1,NoOp(Sending a fax)
exten => sendfax,n,Set(FAXOPT(filename)=${FAXFILE})
exten => sendfax,n,Set(FAXOPT(ecm)=yes)
exten => sendfax,n,Set(FAXOPT(headerinfo)=Inform.Pressapochista +3901042064013)
exten => sendfax,n,Set(FAXOPT(localstationid)=003901042064013)
exten => sendfax,n,Set(FAXOPT(maxrate)=14400)
exten => sendfax,n,Set(FAXOPT(minrate)=2400)
exten => sendfax,n,SendFAX(/tmp/${FAXFILE},d)
exten => h,1,NoOp(FAXOPT(ecm) : ${FAXOPT(ecm)})

To receive simple point an incoming number to inbound-fax,s,1: faxes will be saved


to /tmp in tiff format.

To transmit create a call file and put it in /var/spool/asterisk/outgoing.

channel: SIP/1110/
Context: send-fax
Extension: sendfax
Priority: 1
Set: FAXFILE=/tmp/
Set: FaxID=003901042064013

Att.: SIP/1110 is the SIP trunk. It is very important to specify directly a SIP
channel here, and not Local channel, otherwise it is possible that you will have
some issues using T38 protocol (Asterisk reply to a T38 offer complaining with
�SIP/2.0 488 Not acceptable here�).
===================================================================================
===
;========================= Transmedika Inbound =========================
exten => 02191272727,1,GotoIfTime(8:00-10:59,mon-fri,*,*?pagi:ifsiang)
exten => 02191272727,n(pagi),Playback(Greeting_pagi)
exten => 02191272727,n,Wait(1)
exten => 02191272727,n,Goto(Transmedika-out,996,1)
exten => 02191272727,n(ifsiang),GotoIfTime(11:00-15:59,mon-fri,*,*?siang:ifsore)
exten => 02191272727,n(siang),Playback(Greeting_siang)
exten => 02191272727,n,Wait(1)
exten => 02191272727,n,Goto(Transmedika-out,996,1)
exten => 02191272727,n(ifsore),GotoIfTime(16:00-17:59,mon-fri,*,*?sore:ifmalam)
exten => 02191272727,n(sore),Playback(Greeting_sore)
exten => 02191272727,n,Wait(1)
exten => 02191272727,n,Goto(Transmedika-out,996,1)
exten => 02191272727,n(ifmalam),GotoIfTime(18:00-21:59,mon-fri,*,*?malam:notime)
exten => 02191272727,n(malam),Playback(Greeting_malam)
exten => 02191272727,n,Wait(1)
exten => 02191272727,n,Goto(Transmedika-out,996,1)
exten => 02191272727,n(notime),Playback(Trannotoperation)
exten => 02191272727,n,Goto(Transmedika-out,13,2)

[Transmedika-out]
exten => 996,1,Background(TramedikaArea)
exten => 996,2,WaitExten(3)
exten => 1,1,Dial(SIP/GMSCJKT/02194262728)
exten => 1,2,Goto(13,2)
exten => 2,1,Dial(SIP/GMSCJKT/)
exten => 2,2,Goto(13,2)
exten => 3,1,Dial(SIP/GMSCJKT/)
exten => 3,2,Goto(13,2)
exten => 4,1,Dial(SIP/GMSCJKT/)
exten => 4,2,Goto(13,2)
exten => 5,1,Dial(SIP/GMSCJKT/)
exten => 5,2,Goto(13,2)
exten => 6,1,Dial(SIP/GMSCJKT/)
exten => 6,2,Goto(13,2)
exten => 7,1,Dial(SIP/GMSCJKT/)
exten => 7,2,Goto(13,2)
exten => 8,1,Dial(SIP/GMSCJKT/)
exten => 8,2,Goto(13,2)
exten => 9,1,Dial(SIP/GMSCJKT/)
exten => 9,2,Goto(13,2)
exten => 10,1,Dial(SIP/GMSCJKT/)
exten => 10,2,Goto(13,2)
exten => 11,1,Dial(SIP/GMSCJKT/)
exten => 11,2,Goto(13,2)
exten => 12,1,Dial(SIP/GMSCJKT/)
exten => 12,2,Goto(13,2)
exten => 13,1,Dial(SIP/GMSCJKT/)
exten => 13,2,Hangup()
exten => i,1,Goto(996,1)
===================================================================================
===
JKT-VOIST-E-LPD01*CLI>
JKT-VOIST-E-LPD01*CLI> sip show channels
Peer User/ANR Call ID Format Hold Last
Message Expiry Peer
172.17.42.60 3007 2fb8b49d1a88916 0x4 (ulaw) No Rx:
ACK 3007
192.168.36.69 02196552962 e9564a19c15716e 0x4 (ulaw) No Rx:
ACK GMSC-TRA
172.17.42.145 3024 091705ab4dc2d8e 0x0 (nothing) No Rx:
INVITE 3024
192.168.36.69 02191114224 649d61ea987def1 0x4 (ulaw) No Rx:
ACK GMSC-TRA
172.17.42.132 3018 4c99cf647cd4d10 0x4 (ulaw) No Tx:
ACK 3018
172.16.17.201 4011 601f21731240e8f 0x4 (ulaw) No Tx:
ACK 4011
172.17.42.228 3009 3fac471f27336b5 0x0 (nothing) No Rx:
INVITE 3009
172.16.17.200 4003 294872280cbab9c 0x4 (ulaw) No Tx:
ACK 4003
172.16.17.128 4008 07e209e238bbe71 0x4 (ulaw) No Tx:
ACK 4008
172.16.16.110 4006 0acce49439cc105 0x4 (ulaw) No Rx:
ACK 4006
192.168.36.69 02291919939 12dd9d9bdebd6ce 0x4 (ulaw) No Rx:
ACK GMSC-TRA
172.31.67.2 (None) 6b9e7a566f2817b 0x0 (nothing) No Init:
OPTIONS Asterisk67
192.168.36.69 02199003638 96d45d201acd0e3 0x4 (ulaw) No Rx:
ACK GMSC-TRA
===================================================================================
===
Automatic auto-dial out

/var/spool/asterisk/outgoing/

Channel: SIP/GMSC/02193122327
MaxRetries: 1
RetryTime: 60
WaitTime: 30
Context: ELASTIX
Extension: 1010
Priority: 1
Set: variablename=variablevalue
CallerID: Someone <2125551234>

[ELASTIX]
exten => 1010,1,Answer()
exten => 1010,n,Record(/home/ck987/asterisk_sounds/rec/incoming_call.gsm,5,30)
exten => 1010,n,Playback(vm-goodbye)
exten => 1010,n,Hangup()

mv callfile.call /var/spool/asterisk/outgoing/.

===================================================================================
===
${DIALSTATUS} will be one of:

CHANUNAVAIL : Channel unavailable (for example in sip.conf, when using


qualify=, the SIP chan is unavailable)
BUSY : Returned busy
NOANSWER : No Answer (i.e SIP 480 or 604 response)
ANSWER : Call was answered
CANCEL : Call attempt cancelled (i.e user hung up before the call connected)
DONTCALL : Privacy manager don't call
TORTURE : Privacy manager torture menu
CONGESTION : Means Congestion, or anything else (some other error setting up
the call)
===================================================================================
===
I have been searching around but I can't seem to find the answer. I want to see if
what I want to do is possible:
I want to playback music on hold to my caller when my phpagi script is executed. Is
there anyway I can grab any DTMF that is being pressed during the musiconhold? I
want the music to play continuously....
Any kind of insight I can get on this is greatly appreciated.
===================================================================================
===
http://raspimods.blogspot.mx/2012/09/portero-ip-con-asterisk-y-tarjeta-de.html?m=1
===================================================================================
===
Asterisk Backup

Files to consider for backup

Asterisk Configuration Files


astetcdir => /etc/asterisk

Asterisk Modules
astmoddir => /usr/lib/asterisk/modules

Various Libraries
astvarlibdir => /var/lib/asterisk

Database Directory
astdbdir => /var/lib/asterisk

Encryption Keys
astkeydir => /var/lib/asterisk

System Data Directory


astdatadir => /var/lib/asterisk

AGI(Asterisk Gateway Interface) Directory


astagidir => /var/lib/asterisk/agi-bin

Spool Directories
astspooldir => /var/spool/asterisk

Running Process Directory


astrundir => /var/run/asterisk

Logging Output
astlogdir => /var/log/asterisk

System Binary Directory


astsbindir => /usr/sbin

sample script backup

vi /usr/local/bin/voist-backup.sh
DATE=`date +%Y%m%d%H%M%S`
CONF_DIR=/etc/asterisk
EXT_FILE=$CONF_DIR/extensions.conf
SIP_FILE=$CONF_DIR/sip.conf
if [ -f $EXT_FILE ]; then
cp $EXT_FILE $CONF_DIR/extensions-$DATE.conf
touch $EXT_FILE
mv $CONF_DIR/extensions-$DATE.conf /data2/voist/backup/config/
fi

if [ -f $SIP_FILE ]; then
cp $SIP_FILE $CONF_DIR/sip-$DATE.conf
touch $SIP_FILE
mv $CONF_DIR/sip-$DATE.conf /data2/voist/backup/config/
fi
===================================================================================
===
Sample Configurasi Extentions

[root@JKT-VOIST-A-LPD01 ~]# more /etc/asterisk/extensions.conf


[btelecom]
;switch => Realtime/btelecom@extensions

[CRMIVR]

;====IVR Call Center====


exten => 88810,1,Answer()
same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,AGI(reja_ivr-dev.php,${CALLERID(num)},${EXTEN})
;same => n,Set(MONITOR_FILENAME=/var/log/asterisk/cdr-csv/recording/${STRFTIME($
{EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)})
;same => n,Playback(/var/ivr/Tg_agt8k)
;same => n,Playback(/var/ivr/lpd-88810/Greeting_Siang)
;same => n,Dial(SIP/8881001,10)
;same => n,Queue(5052)
;same => n,Dial(SIP/GMSCJKT/02193839132,30,tT)
;same => n,Dial(SIP/8881002,30,tT)
same => n,Hangup()

exten => 6026,1,Answer()


same => n,Set(_RGPREFIX=LPD6026:)
same => n,Set(CALLERID(num)=${RGPREFIX}${CALLERID(num)})
;same => Macro(automon)
;same => n,Set(MONITOR_FILENAME=${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}-$
{CALLERID(num)})
;same => n,Set(MONITOR_FILENAME=/data2/voist/recording/lpd-60262626/${STRFTIME($
{EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)})
same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,AGI(ivr.php,${CALLERID(num)},${EXTEN})
same => n,Hangup()

exten => 60261,1,Answer()


same => n,Set(_RGPREFIX=LPD6026:)
same => n,Set(CALLERID(num)=${RGPREFIX}${CALLERID(num)})
;same => n,Set(MONITOR_FILENAME=/data2/voist/recording/lpd-60262626/${STRFTIME($
{EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)})
same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
;same => n,AGI(ivrmalam.php,${CALLERID(num)},${EXTEN})
same => n,AGI(ivr.php,${CALLERID(num)},${EXTEN})
same => n,Hangup()

;===End IVR Call Center ====

exten => 02193839132,1,Dial(SIP/GMSCJKT/02193839132,20,tT)


;exten => 02194262728,1,Dial(SIP/GMSCJKT/02194262728,20,tT)
exten => 02193122327,1,Dial(SIP/GMSCJKT/02193122327,20,tT)

;=====Start IVR Reja====

exten => 2156102502,1,Answer()


same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,AGI(reja_ivr.php,${CALLERID(num)},${EXTEN})
same => n,Hangup()

exten => 2160880000,1,Answer()


same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,AGI(reja_ivr.php,${CALLERID(num)},${EXTEN})
same => n,Hangup()

exten => 200,1,Answer()


same => n,Dial(SIP/GMSCJKT/02152971862)

exten => _1XX,1,Answer()


same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,AGI(reja_ivr-transfer.php,${CALLERID(num)},${EXTEN})
same => n,Hangup()

exten => _2XX,1,Answer()


same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,AGI(reja_ivr-transfer.php,${CALLERID(num)},${EXTEN})
same => n,Hangup()

exten => _3XX,1,Answer()


same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,AGI(reja_ivr-transfer.php,${CALLERID(num)},${EXTEN})
same => n,Hangup()

exten => _5XX,1,Answer()


same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,AGI(reja_ivr-transfer.php,${CALLERID(num)},${EXTEN})
same => n,Hangup()

exten => _6XX,1,Answer()


same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,AGI(reja_ivr-transfer.php,${CALLERID(num)},${EXTEN})
same => n,Hangup()

;=====END IVR Reja======

;=====Start *999 and 9100999=====


exten => 9999,1,Answer()
same => n,Set(_RGPREFIX=LPD9999)
same => n,Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)})
;same => n,Set(MONITOR_FILENAME=/data2/voist/recording/lpd-9999/${STRFTIME($
{EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)})
same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,Playback(/var/ivr/Tg_agt8k)
same => n,AGI(filter_iseng.php,${CALLERID(num)},${EXTEN})
same => n,Queue(9999)
same => n,Hangup()

exten => 9149444,1,Answer()


;same => n,Set(MONITOR_FILENAME=/data2/voist/recording/lpd-9999/${STRFTIME($
{EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)})
same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,Playback(/var/ivr/Tg_agt8k)
same => n,Set(_RGPREFIX=LPD9149444)
same => n,Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)})
same => n,Queue(9999)
same => n,Hangup()

exten => 991,1,Answer()


same => n,Set(_RGPREFIX=LPD990)
same => n,Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)})
;same => n,Set(MONITOR_FILENAME=/data2/voist/recording/lpd-990/${STRFTIME($
{EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)})
same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,Playback(/var/ivr/Tg_agt8k)
same => n,AGI(filter_iseng.php,${CALLERID(num)},${EXTEN})
same => n,Queue(9999)
same => n,Hangup()

exten => 990,1,Answer()


same => n,Set(_RGPREFIX=LPD990)
same => n,Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)})
;same => n,Set(MONITOR_FILENAME=/data2/voist/recording/lpd-990/${STRFTIME($
{EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)})
same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,Playback(/var/ivr/Tg_agt8k)
same => n,AGI(filter_iseng.php,${CALLERID(num)},${EXTEN})
same => n,Queue(9999)
same => n,Hangup()

exten => 1003,1,Answer()


same => n,Set(_RGPREFIX=LPD333)
same => n,Set(CALLERID(name)=${RGPREFIX}${CALLERID(name)})
;same => n,Set(MONITOR_FILENAME=/data2/voist/recording/lpd-333/${STRFTIME($
{EPOCH},,%Y%m%d-%H%M%S)}-${CALLERID(num)})
same => n,Set(CDR(userfield)=${CHANNEL(recvip)})
same => n,Playback(/var/ivr/Tg_agt8k)
same => n,AGI(filter_iseng.php,${CALLERID(num)},${EXTEN})
same => n,Queue(99001)
same => n,Hangup()

;========================= FLEXINDO hunting =========================


exten => 02749448235,1,Answer()
exten => 02749448235,n,Set(CDR(userfield)=${CHANNEL(recvip)})
exten =>
02749448235,n,Dial(SIP/GMSCJKT/02749123000&SIP/GMSCJKT/02743500040&SIP/GMSCJKT/0274
9200430)
exten => 02749448235,n,Hangup

exten => 2749448235,1,Goto(02749448235,1)


exten => 0101002749448235,1,Goto(02749448235,1)

;exten => 2749448235,1,Answer()


;exten => 2749448235,n,Set(CDR(userfield)=${CHANNEL(recvip)})
;exten =>
2749448235,n,Dial(SIP/GMSCJKT/02749123000&SIP/GMSCJKT/02743500040&SIP/GMSCJKT/02749
200430)
;exten => 2749448235,n,Hangup

;exten => 0101002749448235,1,Answer()


;exten => 0101002749448235,n,Set(CDR(userfield)=${CHANNEL(recvip)})
;exten =>
0101002749448235,n,Dial(SIP/GMSCJKT/02749123000&SIP/GMSCJKT/02743500040&SIP/GMSCJKT
/02749200430)
;exten => 0101002749448235,n,Hangup

exten => _XN./2749123000,1,Answer()


exten => _XN./2749123000,n,Set(CALLERID(num)=02749448235)
exten => _XN./02749448235,n,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02749448235,n,Hangup

exten => _XN./2743500040,1,Answer()


exten => _XN./2743500040,n,Set(CALLERID(num)=02749448235)
exten => _XN./02749448235,n,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02749448235,n,Hangup

exten => _XN./2749200430,1,Answer()


exten => _XN./2749200430,n,Set(CALLERID(num)=02749448235)
exten => _XN./02749448235,n,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02749448235,n,Hangup

exten => 9448235/2749123000,1,Hangup


exten => 2292025858/2749123000,1,Hangup
exten => 02749448235/2749123000,1,Hangup
exten => 0101002749448235/2749123000,1,Hangup

exten => 9448235/2743500040,1,Hangup


exten => 2292025858/2743500040,1,Hangup
exten => 02749448235/2743500040,1,Hangup
exten => 0101002749448235/2743500040,1,Hangup

exten => 9448235/2749200430,1,Hangup


exten => 2292025858/2749200430,1,Hangup
exten => 02749448235/2749200430,1,Hangup
exten => 0101002749448235/2749200430,1,Hangup

;========================= FLEXINDO hunting 2151126100 =========================

exten => 2151126100,1,Goto(02151126100,1)


exten => 0101002151126100,1,Goto(02151126100,1)

;exten => 02151126100,1,Answer()


;exten => 02151126100,n,Set(CDR(userfield)=${CHANNEL(recvip)})
;exten => 02151126100,n,Dial(SIP/GMSCJKT/02151126100)
;exten =>
02151126100,n,Dial(SIP/GMSCJKT/02151125156&SIP/GMSCJKT/02151125166&SIP/GMSCJKT/0215
1125177&SIP/GMSCJKT/02151125955&SIP/GMS
CJKT/02151126066)
;exten => 02151126100,n,Hangup

;exten => _XN./2151125156,1,Goto(_XN./02151125156,1)


;exten => _XN./02141463962,1,Answer()
;exten => _XN./02141463962,n,Set(CALLERID(num)=02151126100)
;exten => _XN./02151126100,n,Dial(SIP/GMSCJKT/${EXTEN})
;exten => _XN./02151126100,n,Hangup

exten => _XN./2151125156,1,Goto(_XN./02151125156,1)


exten => _XN./02151125156,1,Answer()
exten => _XN./02151125156,n,Set(CALLERID(num)=02151126100)
exten => _XN./02151126100,n,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02151126100,n,Hangup

exten => _XN./2151125166,1,Goto(_XN./02151125166,1)


exten => _XN./02151125166,1,Answer()
exten => _XN./02151125166,n,Set(CALLERID(num)=02151126100)
exten => _XN./02151126100,n,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02151126100,n,Hangup

exten => _XN./2151125177,1,Goto(_XN./02151125177,1)


exten => _XN./02151125177,1,Answer()
exten => _XN./02151125177,n,Set(CALLERID(num)=02151126100)
exten => _XN./02151126100,n,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02151126100,n,Hangup

exten => _XN./2151125955,1,Goto(_XN./02151125955,1)


exten => _XN./02151125955,1,Answer()
exten => _XN./02151125955,n,Set(CALLERID(num)=02151126100)
exten => _XN./02151126100,n,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02151126100,n,Hangup

exten => _XN./2151126066,1,Goto(_XN./02151126066,1)


exten => _XN./02151126066,1,Answer()
exten => _XN./02151126066,n,Set(CALLERID(num)=02151126100)
exten => _XN./02151126100,n,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02151126100,n,Hangup

exten => 51126100/2151125156,1,Hangup


exten => 2151126100/2151125156,1,Hangup
exten => 02151126100/2151125156,1,Hangup
exten => 0101002151126100/2151125156,1,Hangup

exten => 51126100/2151125166,1,Hangup


exten => 2151126100/2151125166,1,Hangup
exten => 02151126100/2151125166,1,Hangup
exten => 0101002151126100/2151125166,1,Hangup

exten => 51126100/2151125177,1,Hangup


exten => 2151126100/2151125177,1,Hangup
exten => 02151126100/2151125177,1,Hangup
exten => 0101002151126100/2151125177,1,Hangup

exten => 51126100/2151125955,1,Hangup


exten => 2151126100/2151125955,1,Hangup
exten => 02151126100/2151125955,1,Hangup
exten => 0101002151126100/2151125955,1,Hangup

exten => 51126100/2151126066,1,Hangup


exten => 2151126100/2151126066,1,Hangup
exten => 02151126100/2151126066,1,Hangup
exten => 0101002151126100/2151126066,1,Hangup

;========================= PENDOPO hunting =========================


exten => 2192290300,1,Answer()
exten => 2192290300,n,Set(CDR(userfield)=${CHANNEL(recvip)})
exten => 2192290300,n,Dial(SIP/GMSCJKT/02131700225)
exten => 2192290300,n,Goto(stdexten-${DIALSTATUS},1)
exten => 02192290300,1,Goto(2192290300,1)
exten => 0101002192290300,1,Goto(2192290300,1)

exten => stdexten-NOANSWER,1,Dial(SIP/GMSCJKT/02131700243)


exten => stdexten-NOANSWER,2,Goto(stdexten1-${DIALSTATUS},1)
exten => stdexten1-NOANSWER,1,Dial(SIP/GMSCJKT/02131700245)
exten => stdexten1-NOANSWER,2,Goto(stdexten2-${DIALSTATUS},1)

exten => stdexten2-NOANSWER,1,Dial(SIP/GMSCJKT/02183658502)


exten => stdexten2-NOANSWER,2,Hangup

exten => stdexten-CHANUNAVAIL,1,Dial(SIP/GMSCJKT/02131700243)


exten => stdexten-CHANUNAVAIL,2,Goto(stdexten1-${DIALSTATUS},1)

exten => stdexten1-CHANUNAVAIL,1,Dial(SIP/GMSCJKT/02131700245)


exten => stdexten1-CHANUNAVAIL,2,Goto(stdexten2-${DIALSTATUS},1)

exten => stdexten2-CHANUNAVAIL,1,Dial(SIP/GMSCJKT/02183658502)


exten => stdexten2-CHANUNAVAIL,2,Hangup

exten => stdexten-BUSY,1,Dial(SIP/GMSCJKT/02131700243)


exten => stdexten-BUSY,2,Goto(stdexten1-${DIALSTATUS},1)

exten => stdexten1-BUSY,1,Dial(SIP/GMSCJKT/02131700245)


exten => stdexten1-BUSY,2,Goto(stdexten2-${DIALSTATUS},1)

exten => stdexten2-BUSY,1,Dial(SIP/GMSCJKT/02183658502)


exten => stdexten2-BUSY,2,Hangup

;exten => 02131700225/8881001,1,Answer()


;exten => 02131700225/8881001,2,Dial(SIP/GMSCJKT/02131700225)

exten => _XN./02131700225,1,Answer()


exten => _XN./02131700225,2,Set(CALLERID(num)=02192290300)
exten => _XN./02192290300,3,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02192290300,4,Hangup

exten => _XN./02131700243,1,Answer()


exten => _XN./02131700243,2,Set(CALLERID(num)=02192290300)
exten => _XN./02192290300,3,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02192290300,4,Hangup

exten => _XN./02131700245,1,Answer()


exten => _XN./02131700245,2,Set(CALLERID(num)=02192290300)
exten => _XN./02192290300,3,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02192290300,4,Hangup

exten => _XN./02183658502,1,Answer()


exten => _XN./02183658502,2,Set(CALLERID(num)=02192290300)
exten => _XN./02192290300,3,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02192290300,4,Hangup

exten => _XN./02151191975,1,Answer()


exten => _XN./02151191975,2,Set(CALLERID(num)=02192290300)
exten => _XN./02192290300,3,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02192290300,4,Hangup

;exten => _XN./02141463962,1,Answer()


;exten => _XN./02141463962,2,Set(CALLERID(num)=02192290300)
;exten => _XN./02192290300,3,Dial(SIP/8881001)
;exten => _XN./02192290300,4,Hangup

exten => 92290300/02131700225,1,Hangup


exten => 2192290300/02131700225,1,Hangup
exten => 02192290300/02131700225,1,Hangup
exten => 0101002192290300/02131700225,1,Hangup

exten => 92290300/02131700243,1,Hangup


exten => 2192290300/02131700243,1,Hangup
exten => 02192290300/02131700243,1,Hangup
exten => 0101002192290300/02131700243,1,Hangup

exten => 92290300/02131700245,1,Hangup


exten => 2192290300/02131700245,1,Hangup
exten => 02192290300/02131700245,1,Hangup
exten => 0101002192290300/02131700245,1,Hangup

exten => 92290300/02183658502,1,Hangup


exten => 2192290300/02183658502,1,Hangup
exten => 02192290300/02183658502,1,Hangup
exten => 0101002192290300/02183658502,1,Hangup

;========================= Lamudi Inbound =========================


exten => 2151115321,1,Answer()
exten => 2151115321,2,Set(CDR(userfield)=${CHANNEL(recvip)})
exten => 2151115321,3,Dial(SIP/EVOISTLPD01/02151115321)
exten => 2151115321,4,Hangup()

exten => 02151115321,1,Goto(2151115321,1)

;========================= Patria Inbound =========================


exten => 02151126100,1,Answer()
exten => 02151126100,2,Set(CDR(userfield)=${CHANNEL(recvip)})
exten => 02151126100,3,Dial(SIP/TESTSBC/02151126100)
exten => 02151126100,4,Hangup()

;========================= Transmedika Inbound =========================


exten => 2191272727,1,Goto(02191272727,1)
exten => 02191272727,1,Answer()
exten => 02191272727,n,Set(CDR(userfield)=02191272727)
exten => 02191272727,n,Set(CALLERID(num)=02191272727)
exten => 02191272727,n,GotoIfTime(7:00-10:59,*,*,*?pagi:ifsiang)
exten => 02191272727,n(pagi),Playback(Greeting_pagi)
exten => 02191272727,n,Wait(1)
exten => 02191272727,n,Goto(Transmedika-out,996,1)
exten => 02191272727,n(ifsiang),GotoIfTime(11:00-15:59,*,*,*?siang:ifsore)
exten => 02191272727,n(siang),Playback(Greeting_siang)
exten => 02191272727,n,Wait(1)
exten => 02191272727,n,Goto(Transmedika-out,996,1)
exten => 02191272727,n(ifsore),GotoIfTime(16:00-17:59,*,*,*?sore:ifmalam)
exten => 02191272727,n(sore),Playback(Greeting_sore)
exten => 02191272727,n,Wait(1)
exten => 02191272727,n,Goto(Transmedika-out,996,1)
exten => 02191272727,n(ifmalam),GotoIfTime(18:00-21:59,*,*,*?malam:notime)
exten => 02191272727,n(malam),Playback(Greeting_malam)
exten => 02191272727,n,Wait(1)
exten => 02191272727,n,Goto(Transmedika-out,996,1)
exten => 02191272727,n(notime),Playback(Trannotoperation)
exten => 02191272727,n,Goto(Transmedika-out,13,2)

;========================= RumahTotok Inbound =========================


exten => 2190606060,1,Goto(02190606060,1)
exten => 02190606060,1,Answer()
exten => 02190606060,n,Set(CDR(userfield)=02190606060)
exten => 02190606060,n,Set(CALLERID(num)=02190606060)
exten => 02190606060,n,GotoIfTime(6:00-10:59,*,*,*?rtpagi:rtifsiang)
exten => 02190606060,n(rtpagi),Playback(RTGreetingPagi)
exten => 02190606060,n,Wait(1)
exten => 02190606060,n,Goto(Rumahtotok-out,997,1)
exten => 02190606060,n(rtifsiang),GotoIfTime(11:00-15:59,*,*,*?rtsiang:rtifsore)
exten => 02190606060,n(rtsiang),Playback(RTGreetingSiang)
exten => 02190606060,n,Wait(1)
exten => 02190606060,n,Goto(Rumahtotok-out,997,1)
exten => 02190606060,n(rtifsore),GotoIfTime(16:00-17:59,*,*,*?rtsore:rtifmalam)
exten => 02190606060,n(rtsore),Playback(RTGreetingSore)
exten => 02190606060,n,Wait(1)
exten => 02190606060,n,Goto(Rumahtotok-out,997,1)
exten => 02190606060,n(rtifmalam),GotoIfTime(18:00-22:59,*,*,*?rtmalam:rtnotime)
exten => 02190606060,n(rtmalam),Playback(RTGreetingMalam)
exten => 02190606060,n,Wait(1)
exten => 02190606060,n,Goto(Rumahtotok-out,997,1)
exten => 02190606060,n(rtnotime),Playback(Trannotoperation)
exten => 02190606060,n,Goto(Rumahtotok-out,7,2)

[Rumahtotok-out]
exten => 997,1,Background(RTArea)
exten => 997,2,WaitExten(3)
exten => 1,1,Goto(IVRRumahtotok-out,998,1)
exten => 2,1,Dial(SIP/GMSCJKT/087860992727)
exten => 2,2,Goto(7,2)
exten => 3,1,Dial(SIP/GMSCJKT/)
exten => 3,2,Goto(7,2)
exten => 4,1,Dial(SIP/GMSCJKT/)
exten => 4,2,Goto(7,2)
exten => 5,1,Dial(SIP/GMSCJKT/087875972277)
exten => 5,2,Goto(7,2)
exten => 6,1,Dial(SIP/GMSCJKT/081231077341)
exten => 6,2,Goto(7,2)
exten => 7,1,Dial(SIP/GMSCJKT/085264382277)
exten => 7,2,Hangup()
exten => i,1,Goto(997,1)

[IVRRumahtotok-out]
exten => 998,1,Background(RTAreaJkt)
exten => 998,2,WaitExten(3)
exten => 1,1,Dial(SIP/GMSCJKT/02132111136)
exten => 1,2,Goto(4,2)
exten => 2,1,Dial(SIP/GMSCJKT/087888860006)
exten => 2,2,Goto(4,2)
exten => 3,1,Dial(SIP/GMSCJKT/087784392002)
exten => 3,2,Goto(4,2)
exten => 4,1,Dial(SIP/GMSCJKT/087885240899)
exten => 4,2,Hangup()

[Transmedika-out]
exten => 996,1,Background(TramedikaArea)
exten => 996,2,WaitExten(3)
exten => 1,1,Dial(SIP/GMSCJKT/087786860676)
exten => 1,2,Goto(13,2)
exten => 2,1,Dial(SIP/GMSCJKT/082322266333)
exten => 2,2,Goto(13,2)
exten => 3,1,Dial(SIP/GMSCJKT/081287853935)
exten => 3,2,Goto(13,2)
exten => 4,1,Dial(SIP/GMSCJKT/081394263388)
exten => 4,2,Goto(13,2)
exten => 5,1,Dial(SIP/GMSCJKT/082331277277)
exten => 5,2,Goto(13,2)
exten => 6,1,Dial(SIP/GMSCJKT/)
exten => 6,2,Goto(13,2)
exten => 7,1,Dial(SIP/GMSCJKT/082339999910)
exten => 7,2,Goto(13,2)
exten => 8,1,Dial(SIP/GMSCJKT/082390909020)
exten => 8,2,Goto(13,2)
exten => 9,1,Dial(SIP/GMSCJKT/081282872444)
exten => 9,2,Goto(13,2)
exten => 10,1,Dial(SIP/GMSCJKT/081348062777)
exten => 10,2,Goto(13,2)
exten => 11,1,Dial(SIP/GMSCJKT/081273904999)
exten => 11,2,Goto(13,2)
exten => 12,1,Dial(SIP/GMSCJKT/082390965027)
exten => 12,2,Goto(13,2)
exten => 13,1,Dial(SIP/GMSCJKT/081327000100)
exten => 13,2,Hangup()
exten => i,1,Goto(996,1)

[LamudiOut]
exten => _801XN./02151115321,1,Answer()
exten => _801XN./02151115321,2,Set(CDR(userfield)=${CHANNEL(recvip)})
exten => _801XN./02151115321,3,Dial(SIP/GMSCJKT/${EXTEN:3})
exten => _801XN./02151115321,4,Hangup

[PatriaOut]
exten => _XN./02151126100,1,Answer()
exten => _XN./02151126100,2,Set(CDR(userfield)=${CHANNEL(recvip)})
exten => _XN./02151126100,3,Dial(SIP/GMSCJKT/${EXTEN})
exten => _XN./02151126100,4,Hangup
===================================================================================
===
Sample Configurasi SIP

[root@JKT-VOIST-A-LPD01 ~]# more /etc/asterisk/sip.conf


[general]
context = btelecom
allowguest = yes
allowoverlap = no
bindport = 5060
bindaddr = 0.0.0.0
srvlookup = no
disallow = all
allow = ulaw
allow = alaw
allow = gsm
allow = slin
;allow = g729
alwaysauthreject = yes
canreinvite = no
insecure=port,invite
nat = force_rport
session-timers =refuse
externrefresh = 15
;subscribecontext = default
;rtcachefriends = yes
useragent = BTEL-VG-CRM
sdpsession = BTEL-VG-CRM

[GMSCJKT]
type=friend
insecure=port,invite
host=192.168.36.69
nat = force_rport
context=CRMIVR
;qualify=1000|yes
qualify=yes
qualifyfreq=360

[EVOISTLPD01]
type=friend
insecure=port,invite
host=172.16.17.2
nat = force_rport
context=LamudiOut
qualify=yes
qualifyfreq=360

;[TRADA]
;type=friend
;insecure=port
;host=202.78.195.91
;nat = force_rport
;externip=150.129.188.14
;localnet=172.19.165.2/255.255.255.252
;context=TradaOut
;qualify=yes
;qualifyfreq=360

[88810]
type = friend
host = dynamic
secret = 123
context = CRMIVR

[8881001]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

;[02151115321]
;type = friend
;host = dynamic
;secret = 123
;context = CRMIVR

[8881002]
type = friend
host = dynamic
secret = 123
context = CRMIVR
[55555]
type = friend
host = dynamic
secret = 123
context = testing

[77777]
type = friend
host = dynamic
secret = 123
context = CRMIVR

;[ASTPAT]
;type=friend
;insecure=port
;host=172.16.71.152
;nat = force_rport
;context=patria
;qualify=1000|yes
;qualify=yes
;qualifyfreq=360

;====START LPD Layanan 60262626======


[02001]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[02002]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[02003]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[02004]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[02005]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[02006]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 2

[02007]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[02008]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

;====END LPD Layanan 60262626======

;====START LPD Layanan 990======


[99001]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[99002]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[99003]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[99004]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[99005]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[99006]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[99007]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[99008]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[99009]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

[99010]
type = friend
host = dynamic
secret = 123
context = CRMIVR
call-limit = 1

;===END LPD Layanan 990======

[TESTSBC]
type=friend
insecure=port,invite
host=172.31.67.2
nat = force_rport
context=PatriaOut
qualify=yes
qualifyfreq=360
===================================================================================
===
How to change the default FreePBX Asterisk MySQL database password:

from the ssh shell:


mysqladmin -u asteriskuser -p password newpass

You can find the current database username and password in:
/etc/amportal.conf

Now verify that the new password works:


mysql -u asteriskuser -p

Once you change the password using mysqladmin, you will need to modify
/etc/amportal.conf
to also use the new password.

We suggest making a copy of:


/etc/amportal.conf
before you edit it.

Simply type:
cp /etc/amportal.conf /etc/amportal.conf.bak
at the shell prompt to copy the current amportal.conf file into a new file called
amportal.conf.bak

Inside /etc/amportal.conf you will want to check these two lines:

AMPDBUSER=asteriskuser
AMPDBPASS=newpass

Make sure that they both match the username and password (new password) you set
above.

There are two more files you should modify in the same way:
/etc/asterisk/cdr_mysql.conf:

check these two lines:

password=newpass
user=asteriskuser

And:

/etc/asterisk/res_mysql.conf:

Check these two lines:


dbuser = asteriskuser
dbpass = newpass
===================================================================================
===
===================================================================================
===
===================================================================================
===
===================================================================================
===
===================================================================================
===
===================================================================================
===
===================================================================================
===
===================================================================================
===

You might also like