Wichtige Pfade und Inhalte

Audiodateien der Ansagen

/var/lib/asterisk/sounds/custom/announcements/
/var/lib/asterisk/de_DE

Achtung einige Audiodateien werden über die GUI (Administrator/Systemaufzeichnungen) eingespielt.

Wählplan

/etc/asterisk/extensions_custom.conf

[from-internal-custom]
include => ivr
include => log-choice

[ivr]
exten => 30,1,Verbose("Neuer Anruf")
same => n,Wait(1)
same => n,Answer()
same => n,Set(TIMEOUT(digit)=1)
same => n,Background(/var/lib/asterisk/sounds/custom/announcements/auswahl-ansage)
same => n,WaitExten(5)
same => n,GoTo(ivr,1011,1)

exten => 1011,1,Verbose("Anruf an Zentrale")
same => n,GoSub(log-choice,s,1(${EXTEN}))
same => n,Dial(Local/1060@from-internal,15)
same => n,Verbose(${DIALSTATUS})
same => n,Playback(/var/lib/asterisk/sounds/custom/announcements/zentrale-noanswer)
same => n,ExecIf([${DIALSTATUS} != ANSWER]?Dial(Local/321@from-internal))
same => n,Hangup()

exten => 5,1,Verbose("Anruf an Support")
same => n,GoSub(log-choice,s,1(${EXTEN}))
same => n,Playback(silence/2)
same => n,Verbose($[${QUEUE_WAITING_COUNT(322)}])
same => n,ExecIf($[${QUEUE_WAITING_COUNT(322)}<2]?Dial(Local/322@from-internal))
same => n,Hangup()

exten => 42,1,Verbose("Anruf an Support Level 2")
same => n,Dial(Local/323@from-internal)
same => n,Hangup()

exten => i,1,Verbose("Error")
same => n,Playback(/var/lib/asterisk/sounds/custom/announcements/illegal-choice)
same => n,GoTo(ivr,30,1)

[log-choice]
exten => s,1,Verbose("log-choice")
same => n,Set(PS_LOG_CALL()=${CALLERID(number)},${ARG1},${STRFTIME(${EPOCH},Europe/Berlin,%Y-%m-%d %H:%M:%S)})
same => n,Return()


Datenbank ODBC

/etc/odbc.ini
[asterisk-connector]
Description = PostgreSQL connection to 'asterisk' database
Driver = PostgreSQL Unicode
Database = asterisk
Servername = localhost
UserName = asterisk
Password = asterisk
Port = 5432
Protocol = 12
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =

/etc/odbcinst.ini
PostgreSQL ANSI]
Description=PostgreSQL ODBC driver (ANSI version)
Driver=psqlodbca.so
Setup=libodbcpsqlS.so
Debug=0
CommLog=1
UsageCount=1

[PostgreSQL Unicode]
Description=PostgreSQL ODBC driver (Unicode version)
Driver=psqlodbcw.so
Setup=libodbcpsqlS.so
Debug=0
CommLog=1
UsageCount=1

/etc/asterisk/func_odbc.conf
[CONFIRM_SERVICENR]
prefix=MM
writehandle=asterisk
readsql=SELECT COUNT(*) FROM confirm_service WHERE service_nr=${SQL_ESC(${ARG1})}

[UPDATE_SERVICENR]
prefix=MM
writehandle=asterisk
writesql=UPDATE confirm_service SET callerid='${SQL_ESC(${VAL1})}', date='${SQL_ESC(${VAL2})}', accepted=${SQL_ESC(${VAL3})} WHERE service_nr=${SQL_ESC(${VAL4})} ;

[LOG_CALL]
prefix=PS
writehandle=asterisk
writesql=INSERT INTO extension_log (cid, extension, date) VALUES ('${SQL_ESC(${VAL1})}', ${SQL_ESC(${VAL2})},'${SQL_ESC(${VAL3})}')

/etc/asterisk/res_odbc_custom.conf
[asterisk]
enabled => yes
dsn => asterisk-connector
username => asterisk
password => asterisk
pooling => no
limit => 1
pre-connect => yes


Angelegte Nebenstellen:
1060 - Zentrale DECT
30 - IVR
60 - Zentrale
55 - Support
90 - Support Level 2
80 - Herr Gruber
5 - Support (Wählplan)

How To's:

Konvertieren von WAV Dateien in andere Formate:
sox -V vm-intro.wav -r 8000 -c 1 -t ul vm-intro.ulaw
sox -V vm-intro.wav -r 8000 -c 1 -t al vm-intro.alaw
sox -V vm-intro.wav -r 8000 -c 1 -t gsm vm-intro.gsm
ffmpeg -i vm-intro.wav -ar 16000 -acodec g722 vm-intro.g722

In die Datenbank asterisk einloggen:
psql -U asterisk

Einträge über Auswahl der Kunden ansehen:
select * from extension_log;