Quick Guide to the Obi110

Introduction

Obi110 is made by Obihai, a company founded by some employees from Sipura. Obi110 is a successor to the Sipura SPA-3000, which became the Linksys SPA-3102 after Linksys bought Sipura; Linksys is now part of Cisco, and, the 3102 is now very seldom updated.

Until August 2011, Obihai products could only be delivered to US addresses, but they are now available in Europe through Amazon UK (with a hardwired 12V/1A UK transformer...), in Australia through Anyware, and in Hong Kong through Tak Shing.

What does the Obi110 do?

The core feature of the Obi110 is to bridge calls between the Internet (GoogleVoice, SIP-based ITSPs, other Obi devices on the Net), the PSTN, and possibly a handset (the Obi comes with a Phone interface to digitize an analog handset.)

In addition, it packs an AutoAttendant (AA)/Interactive Voice Response (IVR) to make the Obi a bit more dynamic for eg. callback for cheap/free call while away from home.

Obi110 offers much more features than a regular ATA, but it's not a replacement for a full-fledged IP PBX like Asterisk.

What features does it have the 3102 doesn't?

Setup

Connect the Obi110 to the power supply + Internet through its RJ45 cable + handset through its RJ11 cable, pick up the handset, dial *** followed by 1 to learn the IP address assigned to the Obi110 by your DHCP server, and aim your browser to that address (login = admin, password = admin).

Things to try

  1. Connect LINE and PHONE, call LINE from cellphone, and have PHONE ring

    **8<cellphone> doesn't ring cellphone: Must change dialplan?
     
  2. Configure Obi to reject anonymous callers (CID disabled), hide the CID on your cellphone, and call the Obi
  3. Connect Obi to ITSP, call ITSP from cellphone, and have PHONE ring
  4. Configure Obi AA, call from cellphone, play message, and have PHONE ring on choice #1
  5. Configure Obi AA, ring from cellphone, have Obi call back, prompt for number, bridge two legs
  6. Configure Obi as PSTN gateway for Asterisk
  7. Configure AA so it answers, plays a pre-recorded message, plays an IVR so the caller can choose an item, and ring the handset with an item-specific ring pattern
  8. Learn how to prevent just anyone to use the Obi from the Net and make calls through the LINE interface
  9. Configure Obi so that you can receive calls from the LINE interface and make calls through an SIP provider
  10. Install the ObiAPP on a PC, configure an SIP client to connect to Obi through ObiAPP, and test
  11. Try ObiON on a cellphone

Obi110 as VoIP gateway for Asterisk

Here, we'll configure Obi110 and Asterisk so that Obi110 acts as a gateway to the PSTN to send/receive phone calls.

http://www.obitalk.com/forum/index.php?topic=57.0

Obi110 as pre-answering device

Starting with firmware 1.3, the Obi110 can answer a call and present the caller with an IVR. For instance, this feature can be used by a restaurant to 1) provide information about address and opening hours, 2) make a reservation, 3) order take-out, or 4) ring a phone to talk to an employee.

DigitMap, etc.

Based on "OBi Call Routing and Digit Map" in OBi Device Administration Guide.pdf.

Each supported service is also referred to as a trunk (a traditional telco term for a physical wire or wires that deliver phone services to homes or businesses). Each trunk is represented with 2-letter abbreviation and a 1-based instance identifier:

- SP1 = the SP1 Voice Service (with ITSP A or B)

- SP2 = the SP2 Voice Service (with ITSP A or B)

- PP1 = the OBiTALK Service

- LI1 = the PSTN Line Service on the LINE Port

The instance identifier may be omitted if it is equal to 1; hence LI is equivalent LI1, PP is equivalent to PP1, etc.

The PHONE Port and the AA are the two entities in the OBi device that calls can terminate (i.e., starts or ends there), as opposed to the trunks, which rely on the corresponding service providers to terminate the call. In this document we refer to the PHONE Port and the AA as endpoints. Like the trunks, each endpoint is represented by a 2-letter abbreviation and a 1-based instance identifier:

- PH1 = the PHONE Port

- AA1 = the Auto Attendant

Call Routing is the process by which the OBi Device sets up a call bridge or a (endpoint) call based on such information as: the trunk on which the call originates, the caller’s number, the called number, etc. Call Routing Rules are parameters used to instruct the OBI device how to route calls. A call may transform into a call bridge or an endpoint call after being routed by the OBi according to the given routing rules.

Every call has to be originated from somewhere. From the device’s perspective, calls originated from the trunk side are considered Inbound Calls, while calls originated from an endpoint Outbound Calls.

Call Routing Rule configuration relies heaving on digit maps.

Every trunk has a corresponding InboundCallRoute in the OBi device configuration. It is a comma separated list of rules where each rule is also surrounded by a pair of curly braces { }. No extra white spaces are allowed. These rules tell the OBi how to handle an inbound call, such as sending it to the PHONE Port (and ringing the attached phone(s)), sending it to the Auto Attendant for further routing (interactively with the caller), or making another call on a specific trunk to bridge with this call. Note that the curly braces may be omitted if there is only one rule in the route

(Mlabel) is a named digit map, where label is the abbreviated name of any terminal that has a digit map defined: SP1, SP2, LI, PP, PH, or AA

An inbound call matches a rule if its caller-number/callee-number matches one of the peering objects of the rule. Peering objects are tested in the order left and right, and the first matched peering object will win. Rules are also checked in the order left to right, and the first matched rule will win. Therefore it is important that you place the more specific rules first in the InboundCallRoute if multiple rules can potentially match the same inbound call.

Every endpoint has an OutboundCallRoute parameter in the OBi device configuration. It tells the device where to send the call when the endpoint attempts to make a call.

Note that every endpoint also has a digit map defined. The user dialed number is completely processed with the endpoint’s digit map first before it is passed to the OutboundCallRoute for routing decision. Therefore the number used for matching call routing rules has already incurred the transformations, if any, implied by the digit map.

A digit map serves to transform and restrict the number that may be dialed or called, and determine if sufficient digits have been dialed by the user to form a complete number. Each map is composed of one more rules surrounded by parentheses (which MUST NOT be omitted).

-------

http://www.obitalk.com/forum/index.php?topic=34.0

"M" stands for DigitMap, if you look at the configuration, there are unique configuration For DigitMap on calls via SP1 (Msp1), DigitMap on calls via sp2 (Msp2), Digitmap on obi to obi calls / (Mpp) DigitMap for your PrimaryLine (Mpli) - this one will be applied to whatever setting Your PrimaryLine currently points to.

i.e: for Msp1, click on left column "ITSP Profile A" -> General see DigitMap on right column for Msp2, click on left column "ITSP Profile B" -> General see DigitMap on right column

CallReturnDigitMaps: Mean how you set the dialplan for a call back to the number that you see from Incoming callerID.

DigitMap as indicated earlier, is specific to the SP or outgoing trunk interface.

Now you might ask if "xx." is the wildcard, then why not use it only?

Because the best user experience will occur if the OBi can match the number sooner and then send

to the service than having to wait for the timeout (10 seconds) to expire.

 

DigitMap names associated to the various OBi interfaces are as follows:

Msp1 = DigitMap for SP1

Msp2 = DigitMap for SP2

Mpli = DigitMap for Primary Line

Mpp  = DigitMap for PP (OBiTALK)

 

Any of the above can be "included" in any DigitMap. For example, in your DigitMap for SP2, you can include Msp1 to include the SP1's settings for DigitMap to apply to SP2.

 

More examples:

xxxxxxxS4 = Dial the entered 7 digit string after 4 seconds.

<S4:1234> = Call 1234 if no digits entered for 4 seconds.

obxxxxxxxxx = "ob" followed by 9 digits is an OBiTALK call.

 

x means 0-9

x. means zero or more occurrences of 0-9

 

'<1aaa>' where aaa is your local area code

If S0 is matched already, or S0 is working, then 11 or 7 digits US number should be dialed immediately after I press last digit.  It should be as fast as I would have pressed # after last digit. But it is not.

Having a route of {(1xxxxxxxxxx|<1aaa>[2-9]xxxxxx):sp2} in the OutboundCallRoute isn't interesting when it comes to evaluating DigitMap's.  Once the DMP has evaluated all the applicable DigitMap's as previously described, then the value selected by the DMP is compared to routes in the OutboundCallRoute to determine where to send the call.

Mipd is a User Defined DigitMap and stands for IP Dialing.  It allows entry of a SIP URI from the keypad:

 

18005551212@tf.callwithus.com

 

can be dialed as:

 

18005551212*204*74*220*162

For the purposed of this document and elsewhere on OBi device web page, documentation and the OBiTALK portal, the term ITSP is used to describe the logical entity providing the SIP Trunk service to the OBi. ITSP stands for Internet Telephony Service Provider. Please note that when the OBi is used in conjunction with an IP PBX, the IP PBX would take the place of the ITSP if it is the entity providing the SIP Trunk account credential and connectivity to the OBi.

An ITSP Profile includes such parameters as ProxyServer, OutboundProxy, and DigitMap, but does not include account specific parameters. A SP Service includes account specific parameters such as AuthUserName (usually the phone number of the account), AuthPassword, CallerIDName, and X_ServProfile (which ITSP Profile to assume).

Q&A

How to display call notification on Windows?

http://en.wikipedia.org/wiki/Growl_(software)

http://www.sustworks.com/pa_guide/index.html

http://www.obitalk.com/forum/index.php?topic=185.30

How to use a syslog server?

The famous TFTPd free server for Windows can also act as a syslog server.

Just type its IP address in System Management > Syslog.

InboundCallRoute, OutboundCallRoute, DigitMap, CallReturnDigitMaps?

DigitMap: "Digit map to limit dialable numbers on this port"

OutboundCallRoute: "Routing rule for outbound calls made from this port"

CallReturnDigitMaps: "Digit map to apply to caller's number for each trunk for call return"

Voice Services vs. Gateway vs. Trunks?

A gateway in this context is another OBi device which lets incoming OBiTALK callers to call further on one or more of its trunks (such as SP1, SP2, or LI). The caller can call the gateway first with a normal OBiTALK call, get the AA, and then dial the target number. For authentication the AA may ask the user to enter a PIN before establishing the second call. This way of dialing is known as 2-stage dialing.

On the other hand, a gateway can be configured on the originating OBi device such that the caller can dial the target number directly without going through the AA. We refer to this method of dialing as direct dialing or 1-stage dialing. Since it is not possible to enter a PIN in the case of direct dialing, a userid/password pair can be configured for the gateway also so that the deivce can authenticate with the gateway automatically using HTTP digest method. HTTP digest authentication is optional. You do not need to provide user/password if the gateway does not require authentication for direct dialing.

Can the Obi110 handle incoming calls with CID blocked?

As of Sept 2011, the Obi110 cannot be configured to either block incoming calls that have their CallerID hidden, or prompt the user to type a number that you can check either on the Obi110 or on the handset

What can we do with an Obi110? 10,000 foot view

Can the AA/IVR the caller hears use a language other than English?

How can the handset be made to play different rings depending on which menu item was chosen by the caller in the AA/IVR?

Where can I find the locale-specific settings for RING, etc.?

Why do we need an SIP proxy/registration in the first place?

If the two end-points use static IP's and have no NAT issues, there is no need for an SIP server.

In System Management, what are Local DNS Records?

How do those work together?

How does dialplan rules work?

Distinctive ring depending on choice made in IVR?

So that the user knows which option was chosen simply by listening to the ring played by the handset

Does it handle off-hours?

Handset shouldn't ring when receiving calls outside business hours

What are Gateways and Trunk Groups?

How to get called back for free?

Using the following settings, you can ring the Obi110 from a landline or cellphone, hang up before the AA/IVR answers, and have the Obi110 call you back:

Physical Interfaces → LINE Port → InboundCallRoute : {(<**8>12341234567):aa($1)},{ph}

**8 = The LINE interface

12341234567 = your cellphone. Can the Obi110 be made to call any other number after making sure the call is from me?

aa = IVR #1?

$1 = What's between the brackets (<**8>12341234567)

ph = In case the callback times out, ie. you didn't answer the call from your cellphone, tells the Obi110 to next try ringing the handset connected to the PHONE interface

What are User Settings > User Defined Digit Maps?

Configuring Physical Interfaces, Tone Settings, and Ring Settings for France?

Service Providers/ITSP, Voice Services/SP: Who needs both?

"the term ITSP is used to describe the logical entity providing the SIP Trunk service to the OBi. ITSP stands for Internet Telephony Service Provider. Please note that when the OBi is used in conjunction with an IP PBX, the IP PBX would take the place of the ITSP if it is the entity providing the SIP Trunk account credential and connectivity to the OBi."

How can the Obi110 prompt me for a number to call?

"Go to the OBiTALK portal, and add your mobile phone's number to the 'trusted Caller IDs' section of the web site. Now, when this phone calls your OBi, the OBi Automated Attendent will answer and either direct the call to the attached phone or it will allow the mobile phone caller to make a new call."

What is OBIOn?

"The OBiON iPhone & iPod touch and the OBiON Android are applications for iPhone and iPod touch and Android smart phones which makes possible placing and receiving calls to/from other OBi endpoints."

What is OBIApp for OBITalk?

"The OBiAPP is an application for a PC that facilitates placing and receiving calls to and from other OBi endpoints. Use it in conjunction with a SIP compliant soft client already installed on the PC, and you're ready to go. This free application can be downloaded from the OBiTALK portal. The OBiON iPhone & iPod touch and the OBiON Android are applications for iPhone and iPod touch and Android smart phones which makes possible placing and receiving calls to/from other OBi endpoints."

What are the information displayed at http://www.obihai.com/OBi110/?

What is Google Voice?

Does it support blacklisting numbers?

What are SIP URIs?

"A SIP or SIPS URI identifies a communications resource. Like all URIs, SIP and SIPS URIs may be placed in web pages, email messages, or printed literature. They contain sufficient information to initiate and maintain a communication session with the resource." http://www.voip-info.org/wiki/view/SIP+URI

Temp stuff

When you want to make a call via a service that is not the Primary Line, you will need to dial that service’s access code before the destination number.

The default service route access codes are defined as:

 ** 1 : SIP Service Provider 1 or Google Voice Service 1

 ** 2 : SIP Service Provider 2 or Google Voice Service 2

 ** 8 : PSTN Line Port Service Provider

 ** 9 : OBiTALK Network

Upgraded from 1.2.0 (Build: 2102) to OBi-1-2-1-2384.fw  (1.2.1 (Build: 2384))

Resources