Programmable Voice

  1. Home
  2. Docs
  3. Programmable Voice
  4. How do I
  5. Setup Border Elements

Setup Border Elements

BE-logo.png

Getting Started

SQL Server

Border Elements requires a SQL Server edition of your choice 2008 or better. Border Elements can be run using SQL Server Express on low load systems.

Download and Run the Border Elements Installer

A default folder ‘C:\Program Files\Inventive Labs\Border Elements\Installation Scripts’ is created containing ‘BorderElements.sql’ and ‘BorderElementsHistory.sql’.

Install your License

For more information, see Licensing Questions.

Determine your Border Elements Configuration

StandAlone Border Elements Architecture

Border Elements can be installed in a standalone configuration. In this setting, you would create the BorderElements database on a single SQL server, along with the BorderElementsHistory database on that same SQL server.

Multiple Border Elements Installations with a Single, Common Database

For redundancy, you can have Border Elements installed on two different machines. These machines can be in different data centers (co-locations) or within the same corporate LAN. In this configuration, a single SQL Server can service both BorderElements installations. Here you would create the BorderElements database and the BorderElementsHistory database on a single instance of SQL server within your network.

Distributed Border Elements Architecture

Please note for those companies using Distributed Border Elements Architecture (multiple Border Elements servers within the same company), the Border Elements History Database would normally be installed on the main SQL server. In some distributed settings, SQL server replication can be used. In these cases, you need a SQL server for each Border Elements server. Regardless of whether using replication, where you want to maintain your session history tables will decide where you put your session history database. Inventive Labs can help you with your configuration design to accommodate more complicated systems.

To gain all of the benefits of Border Elements (the built in redundancy) you will want to install and setup at least two border elements servers, although many features are still available with a single server.

Create your Databases

Create the Border Elements Database

  • Launch the SQL Server Management Studio
  • Create a new database called Border Elements (right click on Databases; New Database…)

Create the Border Elements Database
  • Load and execute the script ‘BorderElements.sql’
  • This will create all the tables, functions and stored procedures for Border Elements

File Structure after executing BorderElements.sql

Create the Border Elements History Database

  • Launch the SQL Server Management Studio
  • Create a new database called Border Elements History (right click on Databases; New Database…)
  • Load and run the script ‘BorderElementsHistory.sql’
  • This will create the session history tables

File Structure after executing BorderElementsHistory.sql

Create your Carrier Records

Using multiple carriers ensures that you will be able to make outbound calls despite any carrier outages that may occur. Also, you can define call paths so that the cheapest carrier available is used for each situation. For example, to realize cost savings you may have an 800 number for inbound calls that comes in on one carrier, and use a separate carrier when you dial out.

Set up each of your carriers:
Open the Carrier table (right click; edit top 200 rows)
Input the column values. Each row in the table defines one carrier.

Carrier ID

Automatically populated by the database

Name

Maximum of 50 characters

Name your carrier. Each carrier will need a unique name.

Short Name

Maximum of 5 characters.

A short version, or nickname, of the carrier name used to uniquely identify the carrier within the system. This will be used later in the Default Route setting of the Border Controller Table. For example if the carrier’s name is ‘Inventive Labs Dallas’, you could create a short name of IVLD.

Address

Maximum of 50 characters.

Not required for system operations. This refers to the physical location of the carrier which might be useful for considering the time zone the carrier is located in.

If not using, leave as NULL.

Dial Template

This defines how calls will be placed for this carrier.

If your carrier requires dialing a 1 first, enter: ‘1nnnnnnnnnn’ (10 n’s)

If your carrier requires the 1 be stripped from dialed calls, enter: ‘!1′

If your carrier is unconcerned with this, set field value to NULL

Queue Time Interval

Reserved for future use. Not presently operational. Set field value to 1000.

Max Queue Size

Many carriers limit the call starts per second (CPS) that you may place with their equipment. Border Elements allows you to queue calls when this limit is exceeded. Caution should be used when selecting the value for this field. If you are allowed 5 call starts per second and have a queue of 100, then a call could be queued for up to 20 seconds before it is sent to the carrier. The formula is:

Maximum Wait Time (in seconds) = MaxQueueSize / CallStartsPerSecond

If the queue is full for this carrier, the call being placed will be sent to the next carrier in the default route. See Default Route in Create your Border Controller Records.

Fail Response Codes

Reserved for future use. Not presently operational. Set field value to NULL.

Call Starts per Second

This setting controls the number of calls that can be placed per second using this carrier. Often carriers will limit the call starts per second, and this setting ensures that you won’t exceed those limitations. Check with your carrier to find out what this setting should be. See Max Queue Size above for more imformation.

Allows Outbound

True or False

Set to True if the carrier permits outbound calls. Set to False if it does not.

Rule Procedure

Enter the name of a user-written stored procedure in the SQL database.

This is an advanced feature for customers who wish to control the blocking of certain calls on certain carriers. To use this feature, you would need to create a stored procedure in SQL Server that determines whether or not a call should be accepted. For example, let’s say you have a list of “banned” phone numbers. You could create a stored procedure that determines if the phone number is in the “banned” list and those numbers would not be accepted from the carrier. You could also create a stored procedure to reject pay-phone calls for this carrier.

T38 Support

True or False

This setting controls whether or not the carrier supports T38 for faxing operations. When an INVITE is sent to Border Elements for an outbound call, you can include a header (IBC-T38FaxCarrier: True) in the INVITE request that directs Border Elements to only use carriers that support T38. When this header is present, Border Elements will only use carriers that have this value set to True.

If you are using the Voice Elements Platform, use the following code snippet to add the header to your INVITE request:

SipChannel sc = m_ChannelResource as SipChannel;
if (sc != null)
{
    sc.OutgoingSipHeaders = new string[] { "IBC-T38FaxCarrier: True" };
}

Allows International

True or False

Set to True if this carrier is capable of dialing international calls. Caution: If the carrier allows international calls, and you don’t want to allow international calls at all then set the value to False.

Allows Domestic

True or False

Set to True if this carrier is capable of dialing domestic calls.

What if I have no carriers and will not be allowing calls to leave my corporate network?

Use the following Carrier setup:

  • Name — Null Carrier
  • Short name — None
  • Address — NULL
  • Dial Template — NULL
  • Queue Time Interval — 1000
  • Max Queue Size — 100
  • Fail Response Codes — NULL
  • Call Starts Per Second — 10
  • Allows Outbound — False
  • Rule Procedure — NULL
  • T38 Support — False
  • Allows International — False
  • Allows Domestic — False

What if my carrier has multiple IP Addresses for sending and receiving calls?

Often carriers will allow you to set up a primary and secondary IP address fro redundancy. You will need to set this up in Border Elements so that you can handle sending traffic to your carrier. The IP’s of the carriers are setup in the Authentication Table in a later step. For now, if you have two IPs that will accept traffic for the same carrier, you will need to setup two Carrier rows in the carrier table with two different Short Names.

Create your Border Controller Records

Open the BorderController table (right click; edit top 200 rows)
Input the column values:

Border Controller ID

Automatically populated by the database

Border Controller Name

Give your Border Controller a unique name. It could be the name of the server or other pertinent name that would apply to your system. Companies with Distributed Border Elements Architecture would give each Border Controller a unique name.

IP Address

Enter the IP Address the Border Elements server will be using for SIP traffic

Port

Enter the Port that Border Elements will be using for SIP traffic (default port 5060)

Default VE Authentication ID

For customers using Inventive Labs’ Voice Elements Servers, this can be set to the Authentication ID of the default Voice Elements Server that calls will be sent to when no other route can be found. Leave this NULL until you create your Authentication IdD for your Voice Elements Servers which will be done in a later step.

Default Route

Each Border Controller on your network has a default route for placing outbound calls. This setting defines that path. Here you will put each carrier’s short name in order with a comma to divide each individual carrier. For example if you have two carriers, InventiveLabs Dallas (IVLD) and InventiveLabs Salt Lake City (IVLS) and you want calls to first egress over the Dallas carrier you would specify the following:

IVLD,IVLS

With this default route, the border controller would try to place an outbound call on the Dallas carrier first, and then attempt a call on the Salt Lake carrier if Dallas’ queue is full, or if Dallas is unable to handle the call.

Define your Customers

Set up your own company as a customer. If you provide SIP Trunking for others, set up these customers in this table. Setting up this Customer table is a pre-requisite for setting up the Accounts Table.

Set up each of your customers:
Open the Customer table (right click; edit top 200 rows)
Input the column values. Each row in the table defines one customer.

Customer ID

Automatically populated by the database

Name

Maximum of 50 characters.

Begin with creating your business as the first customer. Continue entering all of your customers, if applicable.

Address

Maximum of 50 characters.

Enter the physical address of the customer.

Outbound Call Limits

Maximum of 10 characters.

Reserved for future use. Not presently operational. Set field value to NULL.

Username

Maximum of 100 characters.

Reserved for future use. Not presently operational. Set field value to NULL.

Password

Maximum of 50 characters.

Reserved for future use. Not presently operational. Set field value to NULL.

Set up Individual Accounts

Now that you have set up your company and its customers in the Customer Table, add a default account for your company. You can also add accounts for individual employees if you want to track employees on a individual basis. The account table allows you to track individual call data and group it as a whole for the entire company for billing purposes. You can set very granular settings on the Account Table to control how many and what type of calls a customer can make.

Set up each of your accounts:
Open the Account table (right click; edit top 200 rows)
Input the column values. Each row in the table defines one account.

Account ID

Automatically populated by the database

Customer ID

Enter the Customer ID defined in the Customer Table.

Name

Maximum of 50 characters.

Enter a name for this account, such as your company name, or if you want to track by employee, enter the employee name, extension #, etc.

SIP Username

Maximum of 100 characters.

This is the username designated for this account and can be an email address or typical username. If you are going to register a SIP device, this is the username that will be used for registering that device.

SIP Password

Maximum of 50 characters.

This is the password associated with the above username.

APP Unavailable Message

Maximum of 255 characters.

For customers using Border Elements with our Voice Elements servers, place the name of a file on the Voice Elements server that will be played if this account can not be reached. For example, if the system attempts to reach an end point for an incoming call and cannot reach that end point, it will transfer the call to a local Voice Elements Server and have that server play this message. This is an optional feature. Setting this up is not required.

If you will not be using this feature, leave it NULL.

Seconds Allowed

Integer

This setting controls the total amount of seconds that an account is able to make. You can limit accounts to a certain amount of calls by limiting this field. If you would like to allow them to make unlimited calls, this value should be set to -1.

Seconds Used

Integer

Enter 0 in this field. This field keeps track of the total amount of seconds that the account has used on calls. As calls end, the amount of seconds used on the call are added to this column.

Call Max Seconds

Integer

You may want to limit customers to shorter phone calls. This setting will automatically terminate the call once it has reached the maximum amount of seconds entered in this field.

Max Concurrent

Integer

This setting controls the maximum number of calls that an account can make at a single time.

Allows International

True or False

This setting controls whether or not international calls are allowed for this account.

International Seconds Allowed

Integer

This setting controls the total amount of seconds of international calls that an account can make. If you would like to allow the account to make unlimited international calls, this should be set to -1.

International Seconds Used

Integer

Enter 0 in this field. This setting keeps track of the total amount of seconds that the account has used on international calls. As calls end, the amount of seconds used on the call are added to this column.

Is Demo

True or False

Reserved for future use. Not presently operational. Set field value to False.

Default Route

Maximum of 100 characters.

Leave this NULL to use the Default Route defined in the Border Controller Table.

You may override the Border Controller’s Default Route on an account by account basis. Enter each carrier’s short name in order separated by a comma.

For example: IVLD,IVLS

Allow Pay Phone

True or False

You can choose whether or not to allow inbound calls from pay phones. Surcharges from these calls can get quite expensive. Note: the carrier must be able to report the ANI2 information in order to know if the call is coming from a payphone.

Registered Authentication ID

Used internally by the system. Do not populate.

Email

Maximum of 100 characters.

Enter the email of the person administering this account.

Static Caller ID

Maximum of 50 characters.

If you specify a Caller ID in this field, it will always use this whenever this account places a call. If you have a Voice Elements Server, this would allow you to force a Caller ID and not permit the Voice Elements Server to set the Caller ID.

Set Up Endpoints / Voice Elements Servers

A SIP Endpoint in Border Elements is any SIP enabled device that can make or receive calls. A SIP Endpoint for example, can be a Voice Elements Server, a Polycom phone, an X-Lite softphone, a PBX, or asterisk server.

Set up each of your Endpoints:
Open the Authentication table (right click; edit top 200 rows)
Input the column values. Each row in the table defines one Endpoint.

Authentication ID

Automatically populated by the database

Endpoint Type

Integer

Enter either a 0, 1, 2, or 3 to identify the type of endpoint you are defining:

0 = Border Controller

1 = SIP Endpoint

2 = Voice Elements Server

3 = Carrier

IP

Maximum of 50 characters

The IP address of the endpoint.

Port

Integer

The port that the SIP Endpoint will use to send and receive SIP traffic.

Special Headers

Reserved for future use. Not presently operational. Set field value to NULL.

Handle RTP

True or False

This field defines whether you want to have Border Elements handle the RTP data between the two endpoints.

Set to True to have the RTP hairpin through Border Elements.

Set to False to have the RTP go directly between the endoints.

Account ID

Integer

Enter the Account ID defined in the Account Table that minutes get charged to when talking to this endpoint.

Border Controller ID

This is the Border Controller ID of the Border Controller that handles this call.

If your setup has redundant Border Controllers, use the Border Controll ID that will be handling this endpoint.

Carrier ID

Integer

The Carrier ID is only used if this endpoint is a Carrier. If so, enter the Carrier ID assigned in the Carrier Table.

Suspended

True or False

This field allows you to suspend the endpoint from sending or receiving calls without deleting the record. Operational endpoints are set to False.

Set to True to suspend the record.

Sequence

Integer

If you are not using redundant Border Controllers, set this to ‘1’.

If you have multiple Border Controllers that can place calls to the same carrier you will need two authentication records. The sequence determines which border controller will attempt to place the call first. If that border controller is down, the second Border Controller will place the call.

Description

Maximum of 255 characters

This field allows you to add more information to better identify the endpoint.

Allow IP Only Authentication

True or False

Set to False to authenticate by the IP and Port. This is the typical setting.

Set to True if you want to authenticate only by the IP address.

Registration Expiration

This field is for internal use. Initially set field value to NULL.

DNIS

Dialed Number Information Service

  • 3 types of calls: inbound from carrier, outbound, in network call
  • Defines how calls are received and directed to their endpoints
  • Set up calls directed to voicemail
  • Define each phone number and their failover route (BCs, SIPs, VE Servers, Carriers)

Set up your DNIS
Open the DNIS table (right click; edit top 200 rows)
Input the column values. Each row in the table defines one phone number.

DNIS ID

Automatically populated by the database

Dialed Number

Maximum of 50 characters

Enter the phone number you are setting up that is being dialed.

Border Controller ID

Integer

Enter the Border Controller ID that is handling the call.

Authentication ID

Integer

Enter the Authentication ID that is the endpoint that this call will be routed to.

Carrier ID

Integer

If this number is serviced by a carrier (inbound), place the Carrier ID in this field

Otherwise, leave NULL

Sequence

Integer

Calls may be presented to multiple endpoints. For example: rolling a call over to voicemail if the first endpoint does not answer, rolling a call to another server if it’s down, etc. When the call is presented to the Border Controller, it will route the call first to Sequence 1, then failover to sequence 2 (if defined). If you have multiple sequences, you will need to enter the dialed number for each failover record. Regardless, you should have at least one record with sequence 1 for each unique dialed number.

Max Dial Time

Integer

Used when setting up a failover; otherwise leave NULL.

When setting up a failover, enter the length of time in seconds that Border Elements will attempt to contact the endpoint specified by the Authentication ID before failing over to the next record.

The last sequence in a series should always be NULL.

Account ID

Integer

Enter the Account ID that this number’s activity will be billed to.

Maintenance Code

Integer

When testing a carrier and failover sequences, it is often desirable to have the Border Controller return a failure to the carrier.

Specify a valid SIP response code for this field and Border Elements will reject any inbound call using the code specified.

Only use this field for testing. Otherwise, leave NULL.

Description

Maximum of 255 characters

This field allows you to add more information to better identify the DNIS record.

Date Added

Date Time

For your own recordkeeping, you may enter a date and time that you added this record to the database.

VTN

Y or N

Reserved for future use. Not presently operational. Set field value to N.

Skip Internal Handling

True or False

Set to False to keep in-network calls routed within the network.

If you want to force a call to go out over a carrier knowing that the carrier will send the call back into Border Elements, set this to True.

Skip If Caller ID Hidden

True or False

Set to True to reject the call if the Caller ID is hidden.

If this is a call going to a SIP phone set up to fail over to voicemail, set to True on the first record and all calls with hidden Caller IDs will go to voicemail.

If set to True and no voicemail failover is defined, calls will be rejected back to the carrier.

Set to False to allow all calls regardless of Caller ID.

Anonymous Authentication ID

Integer

Normally NULL

The Border Controller is capable of accepting calls to a specify DNIS from any external IP without requiring you to enter the IP in the Authentication Table. You can use the feature to allow your system to accept any call from anywhere in the world.

If you wish to do this, you must first setup an anonymous authentication record as follows:

  • EndPointType: 3
  • Ip: Anonymous
  • Port: 0
  • SpecialHeaders: NULL
  • Handle RTP: True or False based on your configuration
  • Account Id: The Account you want to be charged for the calls
  • Border Controller Id: The Border Controller handling the calls
  • CarrierId: NULL
  • Suspended: False
  • Sequence: 1
  • Description: For Calls to DIDs that allow anonymous access
  • AllowIpOnlyAuthentication: False
  • RegistrationExipration: NULL

Then, enter the Authentication Id created into this field.

Was this article helpful to you? Yes 8 No

How can we help?