Opentaps Asterisk Integration

From Opentaps Wiki
Revision as of 11:17, 18 March 2009 by Spark (talk | contribs)
Jump to navigationJump to search

opentaps can be integrated with the Asterisk open source PBX which allows to call from opentaps using Asterisk and to be automatically redirected to the inbound caller in opentaps. This short tutorial teaches you how to configure the opentaps-Asterisk integration and how to use Asterisk from opentaps.

Configuring the opentaps Asterisk Integration

To configure this, first edit the file /etc/asterisk/manager.conf and add follow lines to create an manager account for opentaps connect:

 ;login account
 [eventsdaemon]
 ;login password
 secret = pa55w0rd321
 ;permit network area
 permit = 0.0.0.0/0.0.0.0
 ;listen events
 read = system,call,log,verbose,command,agent,user
 ;write events
 write = system,call,log,verbose,command,agent,user

next edit the file hot-deploy/opentaps-common/config/asterisk.properties and follow these steps:

  • Turn on asterisk integration by changing asterisk.enabled from N to Y
 asterisk.enabled = Y
  • Set up the asterisk server address and login credentials:
 asterisk.host = asterisk.host.org
 asterisk.username = eventsdaemon
 asterisk.password = password
  • Enter the telephone number associated with your asterisk server. This should be a Plain Old Telephone System (POTS) phone number that someone from the outside could call you on:
 asterisk.countryCode = 1
 asterisk.areaCode = 310
 asterisk.phoneNumber = 9876543
  • Now configure your outbound dialing prefrences. You need the outbound dialing prefix and additional prefix for calling long distance and foreign phone numbers:
 asterisk.outbound.prev = 9
 asterisk.outbound.area = 1
 asterisk.outbound.foreign = 011
  • In some places such as Los Angeles, you must always dial the area code, even when the phone number you are calling is in the same area code. These properties configure whether you must always dial the country or area code:
 asterisk.alwaysDialCountryCode = Y
 asterisk.alwaysDialAreaCode = Y
  • Finally, this property configures how frequently opentaps should check for new inbound calls from the asterisk server. By default, it's set to every three seconds:
 asterisk.checkFrequencySeconds = 3

Next, you would need to set up the extensions on the Asterisk PBX server for your opentaps users. In opentaps, you can assign a different user login to each unique extension. This can be done by modifying the AsteriskUser entity in Web tools or its equivalent ASTERISK_USER table in your database. You would need to enter the user login ID, the extension, and the effective dates, like this:

AsteriskUser values.PNG

Now you are ready. Restart opentaps, and let's see what it does!

Using Asterisk from opentaps

Outbound Calls

Making outbound calls is easy. Wherever you see a phone number with a link underneath it, you can click on the link, and opentaps will call out from your Asterisk servers using the extension associated with your user login. This should cause the Asterisk server to ring the handset configured to your extension: Asterisk outbound call 1.PNG

All you have to do is pick up your phone, and the call is establish. If you are in the opentaps CRM application, opentaps will then take you to the screen for logging the call so that you can record this call: Asterisk outbound call 2.PNG

Inbound Calls

When an inbound call rings to your Asterisk extension, an opentaps widget will display in the upper right-hand corner of your screen: Asterisk inbound call 1.PNG

Click on the link in the widget, and opentaps will take you to a page with the caller's information: Asterisk inbound call 2.PNG

Configuring Asterisk on Amazon Elastic Computing (EC2) Cloud

If you don't have an asterisk server, you can use one of the AMI images from resvoip. We used ami-2ec62147. This image sets up a virtual Linux server with asterisk preinstalled.

The only special configuration we found necessary when using Asterisk on the Amazon EC2 cloud was to edit the /etc/asterisk/sip_general_custom.conf file to configure both the external and internal IP addresses:

# your Amazon EC2 Internet IP
externip = 174.123.456.789
# your Amazon EC2 local network setting              
localnet= 10.254.234.123/255.255.254.0 

Also, the following ports need to be opened:

udp 10000-20000, 4569, 5036, 5060
tcp 5060, 5038
tcp 22, 80 

Then, your opentaps instance can connect to the Asterisk server on Amazon EC2 through an SSH tunnel, like this:

$ ssh -i ~/ec2/asterisktest.pem -L 5038:ec2-174-123-456-789.compute-1.amazonaws.com:5038   root@ec2-174-123-456-789.compute-1.amazonaws.com

Test your connection with:

$ telnet localhost 5038

If it's successful, then you should set your asterisk.host in asterisk.properties to localhost when configuring opentaps for Asterisk integration. (See above.)