News:

On Tuesday September 6th the forum will be down for maintenance from 9:30 PM to 11:59 PM PDT

Main Menu

Using Any OBi as a Home PBX

Started by ianobi, January 02, 2013, 10:02:45 AM

Previous topic - Next topic

ianobi

This post explains how any OBi device may be used to set up a PBX if certain conditions are met. In this example the "PBX" OBi is an OBi110 using sp2 for the PBX routing. Sp2 UserAgentPort is 30071. This is a working setup with only a few personal numbers changed here. I chose 601 to 607 for my extension numbering, but the range is up to the user.

Conditions:
All devices (extensions) must be set to call without registration.
All devices (except OBi devices/OBiAPPs/OBiONs) must be in the same router subnet.
All devices must be on static subnet addresses.

Functions:
Any extension can call any other extension.
Any extension can make outgoing calls using any of the "PBX" OBi's trunks.
Incoming calls via the Auto Attendant can call any extension using Option 2 followed by the extension number.
Call transfer and conference etc work between extensions and trunks, depending on the capabilities of the devices.
Direct Inward Dialling (see notes).

Extensions:
601: OBi Home (200111111). Subnet address (sp2) 192.168.1.10:30071
602: OBiAPP/OBiON (290111111) using OBi Home as gateway.
603: OBi Distant (200222222)
604: OBiAPP/OBiON (290222222) using OBi Distant as gateway.
605: Softphone on PC. Subnet address 192.168.1.13:30076 (Set Outgoing Proxy to 192.168.1.10:30071)
606: Softphone on Laptop. Subnet address 192.168.1.11:30077 (Set Outgoing Proxy to 192.168.1.10:30071)
607: Android cell phone set up as wifi phone using CSipSimple. Subnet address 192.168.1.12:30082.


PBX OBi Setup:

Assumes that PrimaryLine is sp1

Service Providers -> ITSP Profile B -> SIP -> ProxyServer : 127.0.0.1
Service Providers -> ITSP Profile B -> SIP -> X_SpoofCallerID : checked
Service Providers -> ITSP Profile B -> General -> DigitMap:
([^*#]@@.'@'@@.)

Voice Services -> SP2 Service -> Enable : (checked)
Voice Services -> SP2 Service -> AuthUserName : 601
Voice Services -> SP2 Service -> X_RegisterEnable : (unchecked)
Voice Services -> SP2 Service -> X_ServProvProfile : B
Voice Services -> SP2 Service -> X_UserAgentPort : 30071
Voice Services -> SP2 Service -> CallerIDName : Whatever
Voice Services -> SP2 Service -> MaxSessions : 4

Voice Services -> SP2 Service -> X_InboundCallRoute:
{(Mcot)>(601):ph},{(Mcot)>(Mextns):sp2},{(Mcot)>(Msoft):pp},{(Mcot)>(Msp1):sp1},{(Mcot)>(<**1:>(Msp1)):sp1},{(Mcot)>(<**2:>(Msp2)):sp2},{(Mcot)>(<**8:>(Mli)):li},{(Mcot)>(<**9:>(Mpp)):pp},{(Mcot)>**0:aa},{(Mcot):aa}

Voice Services -> OBiTALK Service -> InboundCallRoute:
{(Mcot)>(601):ph},(Mcot)>(Mextns):sp2},(Mcot)>(Msoft):pp},{(Mcot)>(Msp1):sp1},{(Mcot)>(<**1:>(Msp1)):sp1},{(Mcot)>(<**2:>(Msp2)):sp2},{(Mcot)>(<**8:>(Mli)):li},{(Mcot)>(<**9:>(Mpp)):pp},{(Mcot)>**0:aa},{(Mcot):aa},{ph}

Physical Interfaces > PHONE Port > DigitMap:
([1-9]x?*(Mpli)|[1-9]S9|[1-9][0-9]S9|911|**0|***|#|**1(Msp1)|**2(Msp2)|**8(Mli)|**9(Mpp)|60x|(Mpli))

Physical Interfaces -> Phone Port -> OutboundCallRoute:
{([1-9]x?*(Mpli)):pp},{(<#:>|911):li},{**0:aa},{***:aa2},{(Mextns):sp2},{(Msoft):pp},{(<**1:>(Msp1)):sp1},{(<**2:>(Msp2)):sp2},{(<**8:>(Mli)):li},{(<**9:>(Mpp)):pp},{(Mpli):pli}

Voice Services > Auto Attendant > DigitMap:
([1-9]x?*(Mpli)|[1-9]|[1-9][0-9]|<00:$1>|0|**1(Msp1)|**2(Msp2)|**8(Mli)|**9(Mpp)|60x|(Mpli))

Voice Services -> Auto Attendant 1 -> OutboundCallRoute:
{([1-9]x?*(Mpli)):pp},{0:ph},{(Mextns):sp2},{(Msoft):pp},{(<**1:>(Msp1)):sp1},{(<**2:>(Msp2)):sp2},{(<**8:>(Mli)):li},{(<**9:>(Mpp)):pp},{(Mpli):pli}


User Defined DigitMaps:

Label > cot
DigitMap > (60x|200222222|290111111|290222222)

Label > extns
DigitMap > (<605:605@192.168.1.16:30076>|<606:606@192.168.1.11:30077>|<607:607@192.168.1.12:30082>)

Label > soft
DigitMap > (<602:ob290111111>|<603:ob200222222>|<604:ob290222222>)


Notes:

Direct Inward Dialing - As there is now a look-up table within sp2's InboundCallRoute, extensions can be called directly from any remote location. This relies on the OBi PBX having a fixed external IP address or a dynamic dns address. For instance to call extension 605 from a remote site send:
605@myddns.com:30071
30071 in this case is the UserAgentPort of sp2, so the digits 605 get sent to sp2's InboundCallRoute, where the look-up tables (Mextns and Msoft) direct the call to the correct extension address.


CsipSimple – To create an account that calls without registration:
1. Create a Local account – it just requires an account name.
2. Long press on the account name > Choose wizard > Expert.
3. Long press on the account name > Modify account. Expert will prompt you for Account id. Insert accountname<sip:607@127.0.0.1>
4. Set Proxy URI to sip:192.168.1.10:30071
5. Go to Settings > long press to go to expert mode if not already in it > Network > UDP Port > change to 30082.
6. Leave all other settings at default


Edit - changed extension numbers to three digits to avoid clash with speed dials. Simplified digit maps.


I hope that some of you managed to read through to the end without falling asleep  :D

QBZappy

Sorry I dozed off a little at the end. lol

+1 (Very nice)
ianobi=RonR
Owner of the 1st OBi110/100 units in service in Canada & South America. 1st OBi202 on my street. 1st OBi1032 in Montreal.

giqcass

I like this setup.  This should probably be under tips and tricks so it's easy to find.
Long live our new ObiLords!

ianobi

LOL QBZ - nice pic.

Your equation is not quite accurate - RonR is 4000 posts ahead of me and he stopped posting some time ago!

There's not much new in my PBX idea, but it does bring a lot of ideas together. Using User Defined DigitMaps as "look-up lists" is maybe new.

QBZappy

Ian,

One of the drawbacks of using the speed dials as pseudo extension numbers was the requirement of forcing the user to press '#' after pressing the speed dial number as I mentioned here:
Re: 99 Virtual extensions available via the OBi (possible since v 1.30)
http://www.obitalk.com/forum/index.php?topic=1734.msg11140#msg11140

Using the idea of a look up list removes that requirement, making it IMO a much better solution. The only idea I can think of to give callers a verbal cue as how to find people at various different extensions is to combine what you suggested with voice over of the OBiMAN voice prompts with your own indicating the various extensions. In a business setting this might be interesting. I think it is possible to add MOH (Music on Hold) to this scheme as well.

Soon the OBi will compete with the Raspberry PI as the least expensive solution as a home brew PBX.
Owner of the 1st OBi110/100 units in service in Canada & South America. 1st OBi202 on my street. 1st OBi1032 in Montreal.

giqcass

I was very seriously looking at Raspberry Pi prior to the Obi but the Obi is packed up in a neat little box with thoroughly tested software and regular updates.
Long live our new ObiLords!

QBZappy

A full blown PBX in a Flash ( http://pbxinaflash.net/ ) setup on a Raspberry PI has a lot more going for it. Considering that it as simple as embedding an image on the Raspberry PI. You get a real traditional PBX with all the bells and whistles including the usual MOH, IVR, Trunks, web based configuration and other unusual features such as built in fax server, to name just a few things.

The OBi is not designed to be a PBX. However it will do if you can live within the limitations of the product. I think we can fairly say that the OBi can be seen as a supercharged ATA or a poor man's PBX. Although we can sense that it would not take much to blur the lines even more if a few more key PBX like features were added to the OBi.

Owner of the 1st OBi110/100 units in service in Canada & South America. 1st OBi202 on my street. 1st OBi1032 in Montreal.

Ostracus

For a PBX one could use something like this instead.

ianobi

#8
@ QBZ and giqcass: Thanks for the feed back. As you suspected I am trying to extract the last drop of value from an OBi device  :)

A further function that I forgot to mention is DID (Direct Inward Dialling). As there is now a look-up table within sp2's InboundCallRoute, extensions can be called directly from any remote location. This relies on the OBi PBX user having a fixed external IP address or a dynamic dns address. For instance to call extension 605 from a remote site send:

605@myddns.com:5471

5471 in this case is the UserAgentPort of sp2, so the digits 605 get sent to sp2's InboundCallRoute, where the look-up tables (Mextns and Msoft) direct the call to the correct extension address.

By the way, sp2's InboundCallRoute could be simplified. All those **7 rules are there because I use a sip2sip account on my mobile to call in to sp2. If the **7 rules are removed, then also remove the **7 prefix rule from the CSipSimple example.

vtsnaab

#9
I have always been fascinated by PBXIAF and at the same time reluctant to keep h/w running 24/7 for functions that are excessive for a tiny apartment with only 2 people...

That having been said - the Raspberry PI idea comes close to using almost no electricity to gain alot of goodies so I've been watching to see when it comes closer to being a full & tiny single board PC.

The other thing I think most homes will benefit from is small Android powered PCs like the Odroid mentioned in posting #7 (for US folks - http://ameridroid.com/).
Again - when such devices arrive with all ports on-board and of good quality so that they may have a nice, big touchscreen with tiny & easy to hide h/w, many cool ideas will arrive for them, I think.

In the meantime, to make a full PBX on a $35 Quad core ARMv7 PC is a pretty cool idea IMO.
I may consider suggesting this idea for a friend's small office when he needs to replace his ancient phone system.

All good stuff - great info - great thread !!!

lrosenman

I have a RaspberryPi B+ (single core) running PIAF integrated nicely with my OBI202.  It does the CNAM lookup for my 2 Google Voice accounts.

It works nicely.

Ostracus


lrosenman


hiops

Is there a way to get SUBSCRIBE/NOTIFY messages proxied through a Service Provider so that BLF keys can show idle/ringing/busy colors?

That would really eliminate the need to maintain a software PBX for home use! :D