[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

Asterisk Recording and Screen Pop

Posted on 2006-03-20
10
Medium Priority
?
969 Views
Last Modified: 2012-08-14
Hi,
We are thinking about implementing an asterisk based PBX in our office. Some of the issues that have come up are recording and screen pop.
1) Is it possible to record all phone calls into some database -- preferrably with the order number that the customer entered at prompt as reference? As well as the time/date/extension/DNIS line called/time of call as well as all transfers etc....? Is there special software available that does this already?

2) Can we do a screen pop with the order number of the customer (that was entered at prompt) to the person that the call is transferred to? possibly by sending some TCP message to the machine and running some program on the machine (windows) to do the pop? Again, is there anything out there that has handled this exact situation?


Thanks!
0
Comment
Question by:moruda
  • 4
  • 4
9 Comments
 
LVL 36

Expert Comment

by:grblades
ID: 16248126
1) Recording calls is no problem. See http://www.voip-info.org/wiki/view/MixMonitor for information on the mixmonitor command. Asterisk can also log all call information to a database. You can use the call reference ID as the audio filename so you can correlate the files to the entries in the database.

2) It will certenly be possible but I dont know if anyone has already done it. Some SIP based phones support the receiving of the text messages while in a call so if you used a compatible phone you could have the order number shown on the phone display itself.
0
 

Author Comment

by:moruda
ID: 16260923
any program that we can run on a windows box that polls asterisk for extension XX and sees if any order number was entered at the prompt-- and then we can pop a program with the order # populated?
0
 
LVL 36

Expert Comment

by:grblades
ID: 16261190
Asterisk allows you to program using variables and gotoif commands. It can also run external programs. You could therefore have the entered order number stored in the *{ORDER} variable and then you can run an external command such as :-
echo ${ORDER} | smbclient -M <macine-name>

The 'smbclient' is installed as standard on Linux normally and is part of the samba package which offers windown type file sharing. The -M parameter sends a popup message to the machine specified using the normal windows popup message method.
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:moruda
ID: 16262243
sounds like half of what I need, but I need it to actually run a program and pass the orderid to the program so that the order opens up on the screen. I know a lot of TAPI programs out there do this, but I have no idea how they work or how it could work with asterisk.
0
 
LVL 36

Expert Comment

by:grblades
ID: 16266874
Well if there is a client available for Linux and it accepts  the data either via a command line or as a file then it can be linked with Asterisk.
0
 

Author Comment

by:moruda
ID: 16266989
thanks
0
 
LVL 36

Assisted Solution

by:grblades
grblades earned 1000 total points
ID: 16267277
Here is an unrelated example of the sort of thing you can do when you use the programming features of asterisk together with external software.
The following macro receves a fax and looks op the destimation number in the asterisk database to see if it has a corresponding email address or printer defined. If there is a printer defined then it is printed and if an email address is defined then it is sent to the user as a PDF file.

[macro-fax]
exten => s,1,Set(FAXFILE=${UNIQUEID}.tif)
exten => s,2,Set(FAXOK=no)
exten => s,3,rxfax(/var/spool/asterisk-fax/${FAXFILE})
exten => s,4,Set(PRINTER=${DB(faxprinter/${MACRO_EXTEN})})
exten => s,5,GotoIf($["${PRINTER}" = "" ]?8)
exten => s,6,Set(FAXOK=yes)
exten => s,7,system(/usr/local/bin/printfax ${UNIQUEID} ${FAXFILE} ${PRINTER} "${CALLERIDNUM} ${CALLERIDNAME}")
exten => s,8,Set(EMAILADDR=${DB(faxemail/${MACRO_EXTEN})})
exten => s,9,GotoIf($["${EMAILADDR}" = "" ]?200)
exten => s,10,system(/usr/local/bin/mailfax ${UNIQUEID} ${FAXFILE} ${EMAILADDR} "${CALLERIDNUM} ${CALLERIDNAME}")
exten => s,11,Hangup
exten => s,108,Goto(201)
exten => s,111,Goto(201)
exten => s,200,GotoIf($["${FAXOK}" = "yes" ]?11)
exten => s,201,Set(EMAILADDR=helpdesk@xxxxx)
exten => s,202,Goto(10)

Here is the /usr/local/bin/printfax script :-
#!/bin/sh
FAXID=$1
FAXFILE=$2
FAXPRINTER=$3
FAXSENDER=$4
DATETIME=`date +"%A %d %b %Y %H:%M"`
cd /var/spool/asterisk-fax
if [ -e $FAXFILE ]
then
  tiff2ps -2eaz -w 8.25 -h 11.5 $FAXFILE | lp -d $FAXPRINTER -
fi

And the mailfax script:-

#!/bin/sh
FAXID=$1
FAXFILE=$2
FAXRECIPIENT=$3
FAXSENDER=$4
DATETIME=`date +"%A %d %b %Y %H:%M"`
cd /var/spool/asterisk-fax
if [ -e $FAXFILE ]
then
  MAILFILE="$FAXID.mail"
  PAGES=$(tiffinfo $FAXFILE | grep "Page")
  DT=$(tiffinfo $FAXFILE | grep "Date")
  DTFAX=${DT#*:}
  COUNT=${PAGES#*-}
  echo "You have just recieved a new fax document." >$MAILFILE
  echo >>$MAILFILE
  echo "From        : $FAXSENDER" >>$MAILFILE
  echo "Received at : $DATETIME" >>$MAILFILE
  echo "Dated       : $DTFAX" >>$MAILFILE
  echo "Pages       : $COUNT" >>$MAILFILE
  echo >>$MAILFILE
  echo "The fax has been converted to an Acrobat .PDF and attached to this email." >>$MAILFILE
  tiff2ps -2eaz -w 8.25 -h 11.5 $FAXFILE | ps2pdf - | mime-construct --to $FAXRECIPIENT --subject "Fax Received from $FAXSENDER" --file $MAILFILE --attachment $FAXID.pdf --type application/pdf --file -
#  tiff2pdf -p a4 $FAXFILE | mime-construct --to $FAXRECIPIENT --subject "Fax Received from $FAXSENDER" --string "$BODY" --attachment $FAXID.pdf --type application/pdf --file -
else
  MAILFILE="$FAXID.mail"
  echo "A call was received on your fax line however no fax was received or there was an error." >$MAILFILE
  echo >>$MAILFILE
  echo "From  : $FAXSENDER" >>$MAILFILE
  echo "When  : $DATETIME" >>$MAILFILE
  mime-construct --to $FAXRECIPIENT --subject "Error receiving fax from $FAXSENDER" --file $MAILFILE
  cat $MAILFILE
fi
0
 

Author Comment

by:moruda
ID: 16267323
i guess anything is possible with asterisk -- i wish i had some program that i could try this out in windows with, so that I could demo this to my clients -- they want some advice whether to go ahead with asterisk or not
0
 
LVL 1

Accepted Solution

by:
CallingCircles earned 1000 total points
ID: 16333093
I hate to do shameless plugs for my own products, but I was looking for something similar (to demonstrate screenpops) and wound up writing a tool for Outlook 2003.  You can download a free trial at http://www.callingcircles.com.

Using the Manager interface, we monitor devices (any kind of channel, SIP/IAX,ZAP, etc.) and our client program pops the Outlook contact of the person.  You can also configure the software to create a new contact for you if one is not found.

Although you didn't ask about click-2-dial, this program also lets you do that from Outlook (and soon maybe other office programs too - stay tuned).  Click on the contact and use the Calling Circles Toolbar to dial.

Full setup instructions are on the website and feel free to contact me if you need additional assistance.
0

Featured Post

Restore individual SQL databases with ease

Veeam Explorer for Microsoft SQL Server delivers an easy-to-use, wizard-driven interface for restoring your databases from a backup. No expert SQL background required. Web interface provides a complete view of all available SQL databases to simplify the recovery of lost database

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Although VoiceOver IP has been around for a while, internet connections have only recently become fast enough to provide good call quality. Now, VoIP has become a real option for businesses looking at ways to improve their business model. In this ar…
Why do some people recommend buying business VoIP from an ISP? What are the benefits to my company? What are the costs?
Integration Management Part 2
Loops Section Overview

873 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question