Roger Hanson
2005-Jan-24 01:57 UTC
[Asterisk-Users] Auto callout - reminder - is it possible?
I'm trying to get a script working on a website to send out automatic email reminders to customers reminding them monthly to change furnace filters. I haven't got one running successfully, yet. That made me think - could it be done with a phone call using Asterisk? A monthly automated phone call to remind people to change their furnace filter? I have no ability to figure this out myself, but can it be done? Has it been done? Can I just search for an Asterisk application to do it and customize it for my own use?
Julian J. M.
2005-Jan-24 05:46 UTC
[Asterisk-Users] Auto callout - reminder - is it possible?
Check sample.call in the asterisk tarball... edit the file, move it to /var/spool/asterisk/outgoing and it'll dial and connect de callee with the extension of your choice... Greetings On Mon, 24 Jan 2005 02:57:13 -0600, Roger Hanson <roger@makarios.us> wrote:> I'm trying to get a script working on a website to send out automatic > email reminders to customers reminding them monthly to change furnace > filters. I haven't got one running successfully, yet. > > That made me think - could it be done with a phone call using Asterisk? > A monthly automated phone call to remind people to change their furnace > filter? > > I have no ability to figure this out myself, but can it be done? Has it > been done? Can I just search for an Asterisk application to do it and > customize it for my own use? > > _______________________________________________ > Asterisk-Users mailing list > Asterisk-Users@lists.digium.com > http://lists.digium.com/mailman/listinfo/asterisk-users > To UNSUBSCRIBE or update options visit: > http://lists.digium.com/mailman/listinfo/asterisk-users >
Peter Svensson
2005-Jan-24 07:36 UTC
[Asterisk-Users] Auto callout - reminder - is it possible?
On Mon, 24 Jan 2005, Andrew Kohlsmith wrote:> As far as integrating with a website or database -- that is a piece of cake. > Your backend logic just determines when a call is needed and gerates the > approprate .call file. Just remember to create it in /tmp or something, > close it and then MOVE it to the outgoing spool instead of creating and > working on it in the outgoing spool.You need to create the temporary file on the same device as the call spool resides on. Otherwise the move from the temporary location the the call spool will not be an atomic operation but rather a read-write-unlink sequence. This has been discussed earlier on the mailing list. Just make a temporary directory next to the call spool directory and create the files there. Peter
Roger Hanson
2005-Jan-24 12:22 UTC
[Asterisk-Users] Auto callout - reminder - is it possible?
>> On January 24, 2005 08:38 am, Roger Hanson wrote: >>> I did see the wiki items: "asterisk auto-dial out deliver message" >>> and >>> "Asterisk Auto-dial out" and think I may be able to muddle my way >>> through getting that working (although that may be questionable) but >>> is >>> it feasable to integrate this wit a website, where a user enters a >>> phone >>> number in a form, then asterisk somehow gets this information from >>> the >>> website and it gets added to a database or some way for Asterisk to >>> gather that information and make the phone calls automatically? >>> Maybe >>> with another option on what type of notification it would be >>> (furnace >>> filter, 1 month reminder, 2 month reminder) based on a variable in >>> the >>> form? >> >> The callout in the wiki blows goatass -- at least the voicemail >> one -- I have >> a cron script which looks for messages in the watched "INBOX" folders > and > generates a callout every 5 minutes until the message is listened to > (at > which time it is moved to the Old folder). > > As far as integrating with a website or database -- that is a piece of > cake. > Your backend logic just determines when a call is needed and gerates > the > approprate .call file. Just remember to create it in /tmp or > something, > close it and then MOVE it to the outgoing spool instead of creating > and > working on it in the outgoing spool. > > -A.OK - I've made some progress. I was able to use the wiki page "Asterisk auto-dail out deliver message" to record the messages, successfully. Now, I can't figure out this auto-dial thing. Nothing happens when I move the call file to the /outgoing/ directory I have a file made in /var/spool/asterisk/tmp01 called 1.call. Here it is: ------------------------------------------------------------------------ Channel: ZAP/go/9337367 Callerid: 9524458585 MaxRetries: 5 RetryTimie: 300 WaitTime: 45 Context: outboundmsg1 Extension: s Priority: 1 ---------------------------------------------------------------------- I copy it to /var/spool/asterisk/outgoing and it magically disappears (or does not appear?) in /var/spool/asterisk and nothing happens. I have another CLI window to asterisk and nothing passes by - just dead. Now, I'm using AMP, if that matters. I've added the following to extensions.conf: ------------------------------------------------------------------- [record-outboundmsgs] ; Record voice files ; ; Before using this the first time ; mkdir /var/lib/asterisk/sounds/outboundmsgs ; chown asterisk_user:asterisk_user /var/lib/asterisk/sounds/outboundmsgs ; (Where asterisk_user = the user that asterisk runs under: = root for many installations) ; ; In a context for incoming calls put something like ; include => record-outboundmsgs ; ; Then call ; 2051 to Record a new outbound msg1 ; 2052 to Record a new outbound msg2 ; ; 2061 to Record the msg played when the recipient acks the message ; 2062 to Record the "How to ACK message" ; ; After dialing one of the extensions above: ; Wait for the record start tone ; Record your message ; Press # to stop recording ; Listen to an automatic playback of your new message ; ; outbound msg1 exten => 2051,1,Wait(2) exten => 2051,2,Record(outboundmsgs/msg1:gsm) exten => 2051,3,Wait(2) exten => 2051,4,Playback(outboundmsgs/msg1) exten => 2051,5,wait(2) exten => 2051,6,Hangup ; ; outbound msg2 exten => 2052,1,Wait(2) exten => 2052,2,Record(outboundmsgs/msg2:gsm) exten => 2052,3,Wait(2) exten => 2052,4,Playback(outboundmsgs/msg2) exten => 2052,5,wait(2) exten => 2052,6,Hangup ; ; ; Msg played when msg is acked exten => 2061,1,Wait(2) exten => 2061,2,Record(outboundmsgs/thankyou:gsm) exten => 2061,3,Wait(2) exten => 2061,4,Playback(outboundmsgs/thankyou) exten => 2061,5,wait(2) exten => 2061,6,Hangup ; ; Msg played after outbound msg: "Press 1 to replay or 2 to acknowledge receiving this message" exten => 2062,1,Wait(2) exten => 2062,2,Record(outboundmsgs/how_to_ack:gsm) exten => 2062,3,Wait(2) exten => 2062,4,Playback(outboundmsgs/how_to_ack) exten => 2062,5,wait(2) exten => 2062,6,Hangup -------------------------------------------------------------- Which is working correctly. I can see that I've recorded and saved the above files in the correct places. In extensions.conf, I added this line: ------------------------------------------------------------ include extensions_callout.conf ------------------------------------------------------------- Because I thought that may survive an AMP reload? Then I created another .conf file, called extensions_callout.conf as shown: --------------------------------------------------------------- [outboundmsg1] exten => s,1,DigitTimeout,5 exten => s,2,ResponseTimeout,10 exten => s,3,Answer exten => s,4,Wait(1) exten => s,5,Background(outboundmsgs/msg1) exten => s,6,Background(outboundmsgs/how_to_ack) exten => 1,1Goto(s,5) exten => 2,1,Goto(msgack,s,1) exten => t,1,Playback(vm-goodbye) exten => t,2,Hangup [msgack] exten => s,1,Playback(outboundmsgs/thankyou) exten => s,2,Playback(vm-goodbye) [record-outboundmsgs] ;Before using this the first time ; mkdir /var/lib/asterisk/sounds/outboundmsgs ; chown asterisk_user:asterisk_user /var/lib/asterisk/sounds/outboundmsgs ;In a context for incoming calls, put something like ; include => record-outboundmsgs ; Then call ; 2051 to Record a new outbound msg1 ; 2052 to Record a new outbound msg2 ; 2061 to Record the msg played when the recipient acs the message ; 2062 to Record the "How to ACK message" ; ; After dialing one of the extensions above: ; Wait for the record start tone ; Record your message ; Press # to stop recording ; Listen to an automatic playback of your new messsage ; ; outbound msg1 exten => 2051,1,Wait(2) exten => 2051,2,Record(outboundmsgs/msg1:gsm) exten => 2051,3,Wait(2) exten => 2051,4,Playbacak(outboundmsgs/msg1) exten => 2051,5,Wait(2) exten => 2051,6,Hangup ; ; ; Msg played when msg is acked exten => 2061,1,Wait(2) exten => 2061,2,Record(outboundmsgs/thankyou:gsm) exten => 2061,3,Wait(2) exten => 2061,4,Playback(outboundmsgs/thankyou) exten => 2061,5,Wait(2) exten => 2061,6,Hangup ; ; ; Msg played after outbound msg: Press 1 to replay or 2 to acknowledge exten => 2062,1,Wait(2) exten => 2062,2,Record(outboundmsgs/how_to_ack:gsm) exten => 2062,3,Wait(2) exten => 2062,4,Playback(outboundmsgs/how_to_ack) exten => 2062,5,Wait(2) exten => 2062,6,Hangup ; ; -------------------------------------------------------------------- Am I way off base here? I'm new to asterisk and definately over my head. Help? I can supply more information as needed.Sorry that this went to the non-commercial list - I didn't catch that.
Roger Hanson
2005-Jan-24 16:58 UTC
[Asterisk-Users] Auto callout - reminder - is it possible?
Sorry, I don't know what happened to my line returns. Here's that message readable.> On January 24, 2005 08:38 am, Roger Hanson wrote: >> I did see the wiki items: "asterisk auto-dial out deliver message" >> and >> "Asterisk Auto-dial out" and think I may be able to muddle my way >> through getting that working (although that may be questionable) but >> is >> it feasable to integrate this wit a website, where a user enters a >> phone >> number in a form, then asterisk somehow gets this information from >> the >> website and it gets added to a database or some way for Asterisk to >> gather that information and make the phone calls automatically? Maybe >> with another option on what type of notification it would be (furnace >> filter, 1 month reminder, 2 month reminder) based on a variable in >> the >> form? > > The callout in the wiki blows goatass -- at least the voicemail one -- > I have > a cron script which looks for messages in the watched "INBOX" folders > and > generates a callout every 5 minutes until the message is listened to > (at > which time it is moved to the Old folder). > > As far as integrating with a website or database -- that is a piece of > cake. > Your backend logic just determines when a call is needed and gerates > the > approprate .call file. Just remember to create it in /tmp or > something, > close it and then MOVE it to the outgoing spool instead of creating > and > working on it in the outgoing spool. > > -A.OK - I've made some progress. I was able to use the wiki page "Asterisk auto-dail out deliver message" to record the messages, successfully. Now, I can't figure out this auto-dial thing. Nothing happens when I move the call file to the /outgoing/ directory I have a file made in /var/spool/asterisk/tmp01 called 1.call. Here it is: ------------------------------------------------------------------------ Channel: ZAP/go/9337367 Callerid: 9524458585 MaxRetries: 5 RetryTimie: 300 WaitTime: 45 Context: outboundmsg1 Extension: s Priority: 1 ---------------------------------------------------------------------- I copy it to /var/spool/asterisk/outgoing and it magically disappears (or does not appear?) in /var/spool/asterisk and nothing happens. I have another CLI window to asterisk and nothing passes by - just dead. Now, I'm using AMP, if that matters. I've added the following to extensions.conf: ------------------------------------------------------------------- [record-outboundmsgs] ; Record voice files ; ; Before using this the first time ; mkdir /var/lib/asterisk/sounds/outboundmsgs ; chown asterisk_user:asterisk_user /var/lib/asterisk/sounds/outboundmsgs ; (Where asterisk_user = the user that asterisk runs under: = root for many installations) ; ; In a context for incoming calls put something like ; include => record-outboundmsgs ; ; Then call ; 2051 to Record a new outbound msg1 ; 2052 to Record a new outbound msg2 ; ; 2061 to Record the msg played when the recipient acks the message ; 2062 to Record the "How to ACK message" ; ; After dialing one of the extensions above: ; Wait for the record start tone ; Record your message ; Press # to stop recording ; Listen to an automatic playback of your new message ; ; outbound msg1 exten => 2051,1,Wait(2) exten => 2051,2,Record(outboundmsgs/msg1:gsm) exten => 2051,3,Wait(2) exten => 2051,4,Playback(outboundmsgs/msg1) exten => 2051,5,wait(2) exten => 2051,6,Hangup ; ; outbound msg2 exten => 2052,1,Wait(2) exten => 2052,2,Record(outboundmsgs/msg2:gsm) exten => 2052,3,Wait(2) exten => 2052,4,Playback(outboundmsgs/msg2) exten => 2052,5,wait(2) exten => 2052,6,Hangup ; ; ; Msg played when msg is acked exten => 2061,1,Wait(2) exten => 2061,2,Record(outboundmsgs/thankyou:gsm) exten => 2061,3,Wait(2) exten => 2061,4,Playback(outboundmsgs/thankyou) exten => 2061,5,wait(2) exten => 2061,6,Hangup ; ; Msg played after outbound msg: "Press 1 to replay or 2 to acknowledge receiving this message" exten => 2062,1,Wait(2) exten => 2062,2,Record(outboundmsgs/how_to_ack:gsm) exten => 2062,3,Wait(2) exten => 2062,4,Playback(outboundmsgs/how_to_ack) exten => 2062,5,wait(2) exten => 2062,6,Hangup -------------------------------------------------------------- Which is working correctly. I can see that I've recorded and saved the above files in the correct places. In extensions.conf, I added this line: ------------------------------------------------------------ include extensions_callout.conf ------------------------------------------------------------- Because I thought that may survive an AMP reload? Then I created another .conf file, called extensions_callout.conf as shown: --------------------------------------------------------------- [outboundmsg1] exten => s,1,DigitTimeout,5 exten => s,2,ResponseTimeout,10 exten => s,3,Answer exten => s,4,Wait(1) exten => s,5,Background(outboundmsgs/msg1) exten => s,6,Background(outboundmsgs/how_to_ack) exten => 1,1Goto(s,5) exten => 2,1,Goto(msgack,s,1) exten => t,1,Playback(vm-goodbye) exten => t,2,Hangup [msgack] exten => s,1,Playback(outboundmsgs/thankyou) exten => s,2,Playback(vm-goodbye) [record-outboundmsgs] ;Before using this the first time ; mkdir /var/lib/asterisk/sounds/outboundmsgs ; chown asterisk_user:asterisk_user /var/lib/asterisk/sounds/outboundmsgs ;In a context for incoming calls, put something like ; include => record-outboundmsgs ; Then call ; 2051 to Record a new outbound msg1 ; 2052 to Record a new outbound msg2 ; 2061 to Record the msg played when the recipient acs the message ; 2062 to Record the "How to ACK message" ; ; After dialing one of the extensions above: ; Wait for the record start tone ; Record your message ; Press # to stop recording ; Listen to an automatic playback of your new messsage ; ; outbound msg1 exten => 2051,1,Wait(2) exten => 2051,2,Record(outboundmsgs/msg1:gsm) exten => 2051,3,Wait(2) exten => 2051,4,Playbacak(outboundmsgs/msg1) exten => 2051,5,Wait(2) exten => 2051,6,Hangup ; ; ; Msg played when msg is acked exten => 2061,1,Wait(2) exten => 2061,2,Record(outboundmsgs/thankyou:gsm) exten => 2061,3,Wait(2) exten => 2061,4,Playback(outboundmsgs/thankyou) exten => 2061,5,Wait(2) exten => 2061,6,Hangup ; ; ; Msg played after outbound msg: Press 1 to replay or 2 to acknowledge exten => 2062,1,Wait(2) exten => 2062,2,Record(outboundmsgs/how_to_ack:gsm) exten => 2062,3,Wait(2) exten => 2062,4,Playback(outboundmsgs/how_to_ack) exten => 2062,5,Wait(2) exten => 2062,6,Hangup ; ; -------------------------------------------------------------------- Am I way off base here? I'm new to asterisk and definately over my head. Help? I can supply more information as needed.