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