Reply
 
Thread Tools Display Modes
  #1  
Old 05-08-08, 02:51 PM
wardmundy wardmundy is offline
Nerd Uno
 
Join Date: Oct 2007
Posts: 3,881
CallWho Ready for Testing
Overview: For those using AsteriDex, we have a new add-on that I think you'll really use. Here's how it works. Ideally, you assign a button on your phone to extension 412. When the button is pressed or 412 is dialed, CallWho will prompt the user to enter the first three letters of the person they wish to call. This represents the first three letters of an entry in the AsteriDex phonebook. If only one entry exists, the call will be placed. If more than one matching entry exists, a list of the matching entries will be read (up to 9) using Cepstral or Flite. The user picks the one they want, and the call is placed.

Prerequisites:
You must already have AsteriDex 4 installed (install script is available here) as well as either Flite or Cepstral (install tutorial is available here). The software defaults to Cepstral. To change it, edit extensions_custom.conf dialplan for 412 and reverse the commented and uncommented lines. Edit nv-callwho.php in /var/lib/asterisk/agi-bin and change the $ttspick entry from one to zero.

Installation: Log into your server as root and issue the following commands:

cd /root
wget http://bestof.nerdvittles.com/applic...x4/callwho.pbx
chmod +x callwho.pbx
./callwho.pbx

After the install completes, use your web browser and point it to the real IP address of your server with the following:

http://192.168.0.22/asteridex4/dialcode.php

This will populate the dialcodes in your AsteriDex database with 3-digit codes for each name entry. As you add new entries, don't forget to add new dialcodes or run this app again. It will only run as an AsteriDex admin. ** IT WILL ERASE ANY DATA YOU ALREADY HAVE IN THE dialcode FIELD THROUGHOUT YOUR DATABASE! **

Now dial 412 from any phone on your system. If it doesn't work, add a Misc Destination in FreePBX for CallWho at extension 412 and try again.

Feedback appreciated!!

Last edited by wardmundy : 03-01-09 at 01:50 PM. Reason: Adjusted web address to asteridex4
Reply With Quote
  #2  
Old 05-23-08, 02:55 AM
mds mds is offline
Junior Member
 
Join Date: May 2008
Posts: 1
This worked great after one modification:

The install puts dialcode.php into /var/www/html/asteridex while the current asteridex4 instructions install into /var/www/html/asteridex4 (by default & before hardening).

Since dialcode.php uses config.inc.php it wasn't able to run until I moved it to the asteridex4 directory and pointed my web browser to the new location.
Reply With Quote
  #3  
Old 05-23-08, 07:23 AM
wardmundy wardmundy is offline
Nerd Uno
 
Join Date: Oct 2007
Posts: 3,881
Fixed. I found it, too... and then forgot to change it. Thanks.
Reply With Quote
  #4  
Old 05-27-08, 02:47 PM
wifinetguy wifinetguy is offline
Member
 
Join Date: Jan 2008
Location: Virginia, USA
Posts: 88
I've installed and made the change noted above for the directory. Then ran the dialcode.php and it ran fine. However, when I enter 412 and Allison asks me for the the first 3 digits of the person I want to call, the call ends abruptly after entering the 3 digits. Here's the console output:

-- Executing [412@from-internal:1] Answer("SIP/4001-09cc74b8", "") in new stack
-- Executing [412@from-internal:2] Wait("SIP/4001-09cc74b8", "1") in new stack
-- Executing [412@from-internal:3] Set("SIP/4001-09cc74b8", "TIMEOUT(digit)=7") in new stack
-- Digit timeout set to 7
-- Executing [412@from-internal:4] Set("SIP/4001-09cc74b8", "TIMEOUT(response)=10") in new stack
-- Response timeout set to 10
-- Executing [412@from-internal:5] Swift("SIP/4001-09cc74b8", ""At the beep enter the first three letters of the name of the person you wish to call."") in new stack
-- Executing [412@from-internal:6] Read("SIP/4001-09cc74b8", "DIALCODE|beep|3") in new stack
-- Accepting a maximum of 3 digits.
-- <SIP/4001-09cc74b8> Playing 'beep' (language 'en')
-- User entered '747'
-- Executing [412@from-internal:7] NoOp("SIP/4001-09cc74b8", "Name lookup: 747") in new stack
-- Executing [412@from-internal:8] AGI("SIP/4001-09cc74b8", "nv-callwho.php|747") in new stack
-- Launched AGI Script /var/lib/asterisk/agi-bin/nv-callwho.php
-- AGI Script nv-callwho.php completed, returning 0
-- Executing [412@from-internal:9] NoOp("SIP/4001-09cc74b8", "Number to call: ") in new stack
-- Executing [412@from-internal:10] GotoIf("SIP/4001-09cc74b8", "0?12") in new stack
-- Executing [412@from-internal:11] Goto("SIP/4001-09cc74b8", "outbound-allroutes||1") in new stack
-- Goto (outbound-allroutes,412,1)
Reply With Quote
  #5  
Old 05-27-08, 03:05 PM
wardmundy wardmundy is offline
Nerd Uno
 
Join Date: Oct 2007
Posts: 3,881
Sounds like there's a problem with callwho.php in /var/lib/asterisk/agi-bin. Did you use our callwho.pbx installer? You might wanna check permissions and ownership on the callwho.php file. Also look and be sure it's there and not corrupted.
Reply With Quote
  #6  
Old 05-27-08, 03:17 PM
wifinetguy wifinetguy is offline
Member
 
Join Date: Jan 2008
Location: Virginia, USA
Posts: 88
I just followed the installation steps in the first post of this thread.
Reply With Quote
  #7  
Old 06-10-08, 05:45 AM
wifinetguy wifinetguy is offline
Member
 
Join Date: Jan 2008
Location: Virginia, USA
Posts: 88
Sorry for the delay in getting back to this. Had actual work to do. ;-)

Anyway, the file nv-callwho.php is there and doing a "more" on it doesn't show any corruption. As for permissions and ownership:

-rwxrwxr-x 1 asterisk asterisk 6691 May 8 14:01 nv-callwho.php
Reply With Quote
  #8  
Old 09-22-08, 02:59 PM
dad311 dad311 is offline
Guru
 
Join Date: Jan 2008
Posts: 364
I just installed the FONmail script. I tried to use the AnyWho (412) but Asterisk hangs up on me after prompting for the three numbers. Below is my console output, any ideas????

-- Executing [412@from-internal:2] Wait("SIP/202-085370b8", "1") in new stack
-- Executing [412@from-internal:3] Set("SIP/202-085370b8", "TIMEOUT(digit)=7") in new stack
-- Digit timeout set to 7
-- Executing [412@from-internal:4] Set("SIP/202-085370b8", "TIMEOUT(response)=10") in new stack
-- Response timeout set to 10
-- Executing [412@from-internal:5] Flite("SIP/202-085370b8", ""At the beep enter the first three letters of the name of the person you wish to contact."") in new stack
== Parsing '/etc/asterisk/flite.conf': Found
-- <SIP/202-085370b8> Playing '/tmp/flite_buf_3Xni4C' (language 'en')
-- Executing [412@from-internal:6] Goto("SIP/202-085370b8", "s|11") in new stack
-- Goto (from-internal,s,11)
== Auto fallthrough, channel 'SIP/202-085370b8' status is 'UNKNOWN'
-- Executing [h@from-internal:1] Macro("SIP/202-085370b8", "hangupcall") in new stack
-- Executing [s@macro-hangupcall:1] ResetCDR("SIP/202-085370b8", "w") in new stack
-- Executing [s@macro-hangupcall:2] NoCDR("SIP/202-085370b8", "") in new stack
-- Executing [s@macro-hangupcall:3] GotoIf("SIP/202-085370b8", "1?skiprg") in new stack
-- Goto (macro-hangupcall,s,6)
-- Executing [s@macro-hangupcall:6] GotoIf("SIP/202-085370b8", "1?skipblkvm") in new stack
-- Goto (macro-hangupcall,s,9)
-- Executing [s@macro-hangupcall:9] GotoIf("SIP/202-085370b8", "1?theend") in new stack
-- Goto (macro-hangupcall,s,11)
-- Executing [s@macro-hangupcall:11] Hangup("SIP/202-085370b8", "") in new stack
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/202-085370b8' in macro 'hangupcall'
== Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/202-085370b8'

Last edited by wardmundy : 09-24-08 at 06:01 AM.
Reply With Quote
  #9  
Old 09-22-08, 04:19 PM
wardmundy wardmundy is offline
Nerd Uno
 
Join Date: Oct 2007
Posts: 3,881
Ooops!
Last minute "improvement" left a line missing. Just replace the existing 412 context in extensions_custom.conf with the following and then asterisk -rx "dialplan reload"...

Code:
exten => 412,1,Answer
exten => 412,2,Wait(1)
exten => 412,3,Set(TIMEOUT(digit)=7)
exten => 412,4,Set(TIMEOUT(response)=10)
exten => 412,5,GotoIf($[${STAT(e,/usr/bin/swift)}]?8)
exten => 412,6,Flite("At the beep enter the first three letters of the name of the person you wish to contact.")
exten => 412,7,Goto(s,9)
exten => 412,8,Swift("At the beep enter the first three letters of the name of the person you wish to contact.")
exten => 412,9,Read(DIALCODE,beep,3)
exten => 412,10,NoOp(Name lookup: ${DIALCODE})
exten => 412,11,AGI(nv-callwho.php,${DIALCODE})
exten => 412,12,NoOp(Number to call: ${NUM2CALL})
exten => 412,13,GotoIf($["foo${NUM2CALL}" = "foo0"]?15)
exten => 412,14,Goto(outbound-allroutes,${NUM2CALL},1)
exten => 412,15,Wait(1)
exten => 412,16,Hangup
Reply With Quote
  #10  
Old 09-22-08, 06:31 PM
dad311 dad311 is offline
Guru
 
Join Date: Jan 2008
Posts: 364
Much Better, Thx!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 08:59 PM.


Design by Vjacheslav Trushkin, color scheme by ColorizeIt!.
Powered by vBulletin®
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Copyright ©2007-2008, Ward Mundy & Associates