Showing posts with label Linux. Show all posts
Showing posts with label Linux. Show all posts

Wednesday, January 9, 2008

Interactive Voice Response (IVR)

Interactive Voice Response (IVR).

Interactive Voice Response (IVR) is the technology that let you interact with a menu using a touch-tone telephone. In our day to day life we have already come across IVR in many ways, a best example is when you call banks

It is very easy to set-up such a menu with Asterisk.

The following is just an example for an IVR system where you call the number 9877777777 and you enter the IVR system. First you will get the greeting message ("welcome to dash dash Bank, please press 1 for Account related Enquiry, 2 for Credit card Enquiry or press 9 to talk to pur representative") and during this message you can press key 1, 2 or 9. According to the number pressed, you will be directed to the right extension

In extensions.conf place this snippet

exten => 9877777777,1,Answer
exten => 9877777777,2,SetMusicOnHold(default)
exten => 9877777777,3,DigitTimeout,5
exten => 9877777777,4,ResponseTimeout,10
exten => 9877777777,5,Background(greeting)

;; greeting -- "welcome to dash dash Bank, please press 1 for Account related Enquiry, 2 for ;;Credit card Enquiry or press 9 to talk to pur representative

exten => 1,1,Playback(ivr1) ; takes to another Account related IVR

exten => 2,1,Playback(ivr2) ; takes to another Credit card related IVR

exten => 9,1,Playback(representative)
exten => 9,2,Dial(SIP/bankrep)
;; representative -- Please wai while the call is transfered to our representative

Monday, December 17, 2007

Vim Commands Cheat Sheet

Cursor movement

  • h - move left
  • j - move down
  • k - move up
  • l - move right
  • w - jump by start of words (punctuation considered words)
  • W - jump by words (spaces separate words)
  • e - jump to end of words (punctuation considered words)
  • E - jump to end of words (no punctuation)
  • b - jump backward by words (punctuation considered words)
  • B - jump backward by words (no punctuation)
  • 0 - (zero) start of line
  • ^ - first non-blank character of line
  • $ - end of line
  • G - Go To command (prefix with number - 5G goes to line 5)

Note: Prefix a cursor movement command with a number to repeat it. For example, 4j moves down 4 lines.

Insert Mode - Inserting/Appending text

  • i - start insert mode at cursor
  • I - insert at the beginning of the line
  • a - append after the cursor
  • A - append at the end of the line
  • o - open (append) blank line below current line (no need to press return)
  • O - open blank line above current line
  • ea - append at end of word
  • Esc - exit insert mode

Editing

  • r - replace a single character (does not use insert mode)
  • J - join line below to the current one
  • cc - change (replace) an entire line
  • cw - change (replace) to the end of word
  • c$ - change (replace) to the end of line
  • s - delete character at cursor and subsitute text
  • S - delete line at cursor and substitute text (same as cc)
  • xp - transpose two letters (delete and paste, technically)
  • u - undo
  • . - repeat last command

Marking text (visual mode)

  • v - start visual mode, mark lines, then do command (such as y-yank)
  • V - start Linewise visual mode
  • o - move to other end of marked area
  • Ctrl+v - start visual block mode
  • O - move to Other corner of block
  • aw - mark a word
  • ab - a () block (with braces)
  • aB - a {} block (with brackets)
  • ib - inner () block
  • iB - inner {} block
  • Esc - exit visual mode

Visual commands

  • > - shift right
  • < - shift left
  • y - yank (copy) marked text
  • d - delete marked text
  • ~ - switch case

Cut and Paste

  • yy - yank (copy) a line
  • 2yy - yank 2 lines
  • yw - yank word
  • y$ - yank to end of line
  • p - put (paste) the clipboard after cursor
  • P - put (paste) before cursor
  • dd - delete (cut) a line
  • dw - delete (cut) the current word
  • x - delete (cut) current character

Exiting

  • :w - write (save) the file, but don't exit
  • :wq - write (save) and quit
  • :q - quit (fails if anything has changed)
  • :q! - quit and throw away changes

Search/Replace

  • /pattern - search for pattern
  • ?pattern - search backward for pattern
  • n - repeat search in same direction
  • N - repeat search in opposite direction
  • :%s/old/new /g - replace all old with new throughout file
  • :%s/old/new/gc - replace all old with new throughout file with confirmations

Working with multiple files

  • :e filename - Edit a file in a new buffer
  • :bnext (or :bn) - go to next buffer
  • :bprev (of :bp) - go to previous buffer
  • :bd - delete a buffer (close a file)
  • :sp filename - Open a file in a new buffer and split window
  • ctrl+ws - Split windows
  • ctrl+ww - switch between windows
  • ctrl+wq - Quit a window
  • ctrl+wv - Split windows vertically

Appending Character to start of multiple lines

  • ctrl+v;shift+i;;ESC

Tuesday, November 27, 2007

Postfix SMTP relayhost configuration

Recently I was working on setting up SMTP Authentication to send mails through there ISP's mail server.

I first tried with perl MIME::Lite program which i found very hard to work with SMTP Authentication. So I decided to configure Postfix to relay mails to ISP mail server ( with SMTP Authentiction).

Postfix main configuration file: /etc/postfix/main.cf

myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = localhost, localhost.localdomain, localhost
relayhost = smtp.isp.com
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = loopback-only
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth ## **
smtp_sasl_security_options = noanonymous

To check postfix config.

#postfix check
#postconf


** smtp_auth is the file we store Authentication information
smtp.isp.com sheeju@isp.com:mypassword

smtp_auth is in this format
***:password

*** - Depending on your provider this can be username or useremail.

Next create hash DB of smtp_auth.
#postmap hash:/etc/postfix/smtp_auth

otherwise you get the error..

postfix/smtp[nnnnn]: fatal: open database /etc/postfix/smtp_auth.db: No such file or directory

Restart Postfix

# /etc/init.d/postfix restart

Testing Postfix:

echo testing | mail -s Bla sheejuec7@gmail.com

This is used to send test mail to sheejuec7@gmail.com. Next to check whether the mail relayed through ISP use

mailq
tail /var/log/mail.log