[Asterisk-Users] Mini Call-ID Winpopup

Rich Adamson radamson at routers.com
Thu Nov 18 01:46:40 MST 2004


> > Hey, thanks to everybody who posted to my earlier thread.  Here's a
> > solution I came up with based on reading your scripts and advice.
> > 
> > It's really simple and stupid- but seems to work great.  Incoming
> > calls for any type of extension can be configured to make winpopups
> > (or linpopups : ) on any local network machine show Caller ID info. 
> > You need to write no scripts other than what's below.  I use a scratch
> > file but somebody smarter than me could probably even figure out a way
> > to do it without one.
> > 
> > Requirements- you need smbclient on your asterisk machine
> > 
> > Here's how to set up an entry in your extensions.conf
> > 
> > ; Extension 200 Call ID Popup Example
> > exten => 200,1,NoOp(${CALLERID} ${DATETIME})
> > exten => 200,2,System(/bin/echo "'Incoming Call From:
> > ${CALLERID}'">>/etc/asterisk/callidmsg)
> > exten => 200,3,System(/bin/echo 'Received:
> > ${DATETIME}'>>/etc/asterisk/callidmsg)
> > exten => 200,4,System(/usr/bin/smbclient -M target_netbios_name <
> > /etc/asterisk/callidmsg)
> > exten => 200,5,System(rm -f /etc/asterisk/callidmsg)
> > exten => 200,6,Dial,sip/tom|30|t 
> > exten => 200,7,Congestion
> > 
> > Note that I used both the " and the ' marks in one of the echo
> > commands as the NAME part of $CALLERID contains " (double quotation
> > marks), and messes up the echo.  
> 
> You might consider this a potential security issue if someone manages to
> inject nasty characters into the callerid...
> Perhaps someone else can suggest something less likely to cause
> problems??
> 
> Also, you can use something like (untested code):
> exten => 200,2,System(/bin/echo -e 'Incoming Call From: ${CALLERID}'\n
> Received: ${DATETIME}\n > /tmp/asterisk/${UNIQUEID}
> exten => 200,3,System(/usr/bin/smbclient -M target_netbios_name <
> /tmp/asterisk/${UNIQUEID})
> 
> (I wouldn't bother with the rm command, it just 'looks' dangerous, since
> the echo command will start with an empty file every time, it isn't
> really needed).
> 
> People might also like to use a DB variable to retrieve the
> "target_netbios_name" ....
> 
> > You can set this up per extension, of course, naming the file
> > differently per extension to avoid any problems... also it might be
> > smart to use a different working directory.  Just don't name your
> > scratch file something really dumb like extensions.conf.
> 
> Better would be to name the file from ${UNIQUEID} which, as it suggests,
> is definitely unique. Lots of people might also immediately think to use
> /tmp/${UNIQUEID} but I would suggest against that! However, if you
> create /tmp/asterisk and have the directory permissions owner/group to
> asterisk user/group, and 0700 then you should use
> /tmp/asterisk/${CALLERID} or something.
> 
> Hopefully this can be improved upon somewhat, and then posted to the
> wiki, as a very useful dialplan snippet...

Before folks get too carried away with this, the smb messaging function
is considered a 'vulnerability' by most corp security folks and have it
disabled at the workstation level.





More information about the asterisk-users mailing list