Bitcoin Forum
May 11, 2024, 05:42:36 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: IVR interface to Bitcoin  (Read 2500 times)
BladeMcCool (OP)
Member
**
Offline Offline

Activity: 83
Merit: 10


View Profile
September 13, 2011, 01:11:15 AM
Last edit: May 13, 2012, 11:10:38 PM by BladeMcCool
 #1

EDIT 2012 05 13: I've released the code on github (see link in recent post). The live system described below is not up and running any longer as i've shut off asterisk since my DIDs and SMS service expired, lol.
----------------- ~~~~~~~~~~~~~ -----------------

IVR System Introduction:
-----------------
This system is still experimental and provides a telephone-banking style interface to an online wallet.
It is running on an Amazon ec2 'small' instance. It uses IPKall DID number with SIP connecting to an Asterisk server running on the instance. Espeak TTS engine is used for the custom voice prompts (forgive the lousy audio quality please). Coding is written in Perl using the AGI interface to asterisk and JSON RPC to interact with the bitcoind that is also running on this system. The SMS gateway is provided by SMSDragon (funded via BTC! awesome!). All accounting/tx/balance information is currently handled only by bitcoind with accounts that map directly to userids. The pin numbers are currently NOT salted/hashed and the wallet.dat file is not encrypted.
That said, this system is functional. I have tested it to send and receive bitcoin into and out of the system as well as between users of the system directly.
I think this tool, or one very much like it, is what is needed to bring bitcoin to the lowest common denominator of voice/sms enabled cell phones throughout the world.
I would like to find out if there is any interest in this type of system. The system in its current state represents three intense days of personal effort to bring together all this work of others into something new and, to me anyway, somewhat exciting.

IVR System Documentation
-----------------
Dial Voice # 2538020361 to connect.

When you connect you will be prompted to enter your account number then your pin.
If you dont have an account, press # to create one.

To create your new account you'll just need to enter a pin number then #. The system will read your new syscode ID to you, write it down!

Once you are in your account, you'll have the option to 1) Hear BTC Balance, 2) Send BTC to address book recipient 3) Hear your full form BTC address , 4) Manage your directory of payees, 5) Wait for incoming BTC transactions from other system users and #) to log out of your account.

Listening to your balance you will just hear your current balance.

Listining to your full BTC address will say each digit of your BTC address with nato phonetic alphabet and capitalization info so you can easily write it down, and then will repeat just the characters so you can quickly verify you wrote it down correctly.

Waiting for bitcoin allows you to hear the moment when another user of this system has deposited 6xCONFIRMED bitcoins into your account. You can use these IMMEDIATELY. (Note this loop only reports incoming transactions from other users of the system. For generic btc transactions you'll have to wait for 6 confirmations before you hear you balance has increased.)

The payee directory allows you to add payees in 2 different ways. The first method is to add by syscode aka your userid number in the system. The second way is to receive full form BTC addresses via SMS text message. To complete the SMS process you must set a mobile number onto your account so the system knows from which number to expect SMS messages for you. Once this is complete you can send SMS from that mobile to a virtual mobile number 2064205914. Your text message must contain only the 34 (case-sensitive) characters of the BTC address. The system will find all correctly formed BTC addresses sent via SMS from the mobile number listed on your account and tne you'll be able to send BTC to any of those addresses via regular address book navigation.
Once you have added payees you can list them from the option 3 in the address book manager.

Of course the most important part is being able to send bitcoins, option 2 from the customer menu is how this is done. Simply enter an amount (use * for decimal) and then select an address book recipient. Your transaction will be completed as long as your balance allows it to do so.

----------------
My Favorite Use Case:

Merchant and Customer both have accounts in the system. Customer has some 6x confirmed BTC sitting in his account. Merchant calls and and does the "wait for bitcoin" thing. Meanwhile customer puts in a payment. Merchant hears "You have just receive x.xx bitcoin from acount 55551212" and then completes the transaction. Also because the customer sent 6x confirmed BTC internally to the merchant, the merchant can withdraw that to his exchange account or wherever right away.

------------

I hope this system can be useful to people who may not have direct access to the internet but have access to a voice+sms mobile phone.

1715449356
Hero Member
*
Offline Offline

Posts: 1715449356

View Profile Personal Message (Offline)

Ignore
1715449356
Reply with quote  #2

1715449356
Report to moderator
1715449356
Hero Member
*
Offline Offline

Posts: 1715449356

View Profile Personal Message (Offline)

Ignore
1715449356
Reply with quote  #2

1715449356
Report to moderator
"There should not be any signed int. If you've found a signed int somewhere, please tell me (within the next 25 years please) and I'll change it to unsigned int." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
bc
Member
**
Offline Offline

Activity: 72
Merit: 10



View Profile
September 13, 2011, 01:29:23 AM
 #2

Excellent.

"Democracy is the original 51% attack." - Erik Voorhees
trentzb
Sr. Member
****
Offline Offline

Activity: 406
Merit: 251


View Profile
September 13, 2011, 01:41:09 AM
 #3

Very cool!
J.P. Larocque
Newbie
*
Offline Offline

Activity: 29
Merit: 0


View Profile
September 17, 2011, 10:58:22 AM
 #4

Pretty slick.  It's genuinely hard to tell what the hell the TTS is saying at first.  Festival is a huge PITA to install but you'll get much better results there, or just record your own prompts.  (I know, no one likes the sound of their own voice.)

All I did was deposit a tiny amount of money and listened to it announce the unconfirmed transaction.  The only problem I found was after I had chosen to hear my receiving address: after the confirmation part, the canned prompt said "press," but then no "any key" as I would have expected, and it then looped, repeating the address.  I just hit 5 to get out of that and back to the main menu.

You might want to have it express capitalization during the quick confirmation phase.  I wasn't paying attention the first time around and missed that one of the letters was capitalized.  It also seems like it might be easier if it explicitly says "lower-case," to avoid confusion, and keep a constant rhythm.
BladeMcCool (OP)
Member
**
Offline Offline

Activity: 83
Merit: 10


View Profile
September 17, 2011, 09:04:59 PM
 #5

Thank you very much for taking the time to play with the system I have set up. I truly appreciate your feedback.

I've started changing over the voice prompts to use Festival and I agree it sounds much better. (I could not for the life of me get Festival to work properly with the Asterisk AGI, but in the end used a kludge that generates .wav files into the filesystem so that the stream_file can be used for it). I do agree that having it say lower-case for the lowercase letters improves the overall flow, so I've made some changes to that effect. Also changed in the spot you mentioned now it says 'press any button to return to the customer menu'. Smiley

Thanks again for your feedback!
Stephen Gornick
Legendary
*
Offline Offline

Activity: 2506
Merit: 1010


View Profile
March 16, 2012, 07:51:43 PM
Last edit: March 16, 2012, 09:34:41 PM by Stephen Gornick
 #6

i hope this system can be useful to people who may not have direct access to the internet but have access to a voice+sms mobile phone.

Only a few [billion] of those exist, right?

[Update: Related, just to consider what an enabling technology sms and IVR are]
 - http://blog.nextdrop.org/2012/02/28/our-first-public-tap-pilot

I learned of this project from your post on the M-Pesa article on Bitcoin Media:
 - http://bitcoinmedia.com/the-brave-new-world-of-mobile-payment

Looking forward to seeing this project either get pulled back off the shelf or open sourced!

Unichange.me

            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █


BladeMcCool (OP)
Member
**
Offline Offline

Activity: 83
Merit: 10


View Profile
May 13, 2012, 10:49:47 PM
 #7

I created this as a labor of love, and so now I have decided to give it away to anyone who may be interested.

https://github.com/BladeMcCool/BitcoinIVR

sergio
Sr. Member
****
Offline Offline

Activity: 313
Merit: 258


View Profile WWW
May 14, 2012, 11:38:48 AM
 #8

I think the IVR interface to Bitcoin is a good idea.
If you need a did to continue with your service, I can give you a free shared did, that way your service will be available to everyone from any where in the word at the same time avoiding long distance charges for the calling party. The only problem with shared dids is that the person dialing will need to enter an extension after the number, the good thing is that I can give you one for free, and the calling party saves on long distance.

The shared did you can map it to a phone number (costs money) or to your voip account (free).
Since you use asterisk, you can configure your voip account it your asterisk server.
And since I support IAX2, you can provide the service behind a firewall if you wish without any nat problems.

After you create the account just send me an email, and I will provide you with a shared did free of charge.
to create the account go here http://www.btcvoip.com
sergio
Sr. Member
****
Offline Offline

Activity: 313
Merit: 258


View Profile WWW
May 25, 2012, 03:12:01 PM
 #9

If there is interest on a bitcoin ivr, I will implement this software on my server.

If you would like to have access to a server with bitcoinivr please let me know.













Stephen Gornick
Legendary
*
Offline Offline

Activity: 2506
Merit: 1010


View Profile
June 13, 2012, 12:57:19 AM
 #10

Here's an interesting article about Paga in Lagos. Nigeria.  It is a mobile payments network that uses IVR:

Quote
He dialed a colleague's cell phone number in Nigeria and punched in the amount of money he wanted to transfer to her from his Paga account, followed by his PIN number. After a few moments, a recorded voice confirmed the transaction, while a text message alerted his colleague about how much money had been sent. The entire process took about 35 seconds. There's no charge to pay bills or add cell phone airtime, but mobile money senders are charged a fee based on the amount transferred.

 - http://www.gsb.stanford.edu/news/headlines/oviosu_mobile_2012.html

 - http://bitcointalk.org/index.php?topic=63687.msg958729#msg958729

Unichange.me

            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █
            █


Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!