Setup:
- OS: Fedora 8
- No.of NIC: two, both with Public IP Address
SipXecs and OSBC are installed on the same box, each using a separate IP address
- UA's: Behind NAT
LINK:
http://wiki.sipfoundry.org/display/sipXecs/OpenSBC+Setup+Guide
This document will attempt to provide
working OpenSBC configurations for a few commonly used sipxecs calling
scenarios. It is a work in progress, so please check back often. For
any questions or comments, contact the author (raymund.nones [at]
gmail.com) or post to the OpenSBC forum at
http://www.opensourcesip.org.
| This page is work in progress. It will have more screenshots for Linux, OSBC and SipXecs and a more clearer guide. |
Scenario #1: Using OSBC for Far End NAT Traversal(FENT) - Public .
| This
enables remote workers on the WAN to access a sipXecs instance, where
sipXecs has a public IP address, from behind NAT routers. |
Setup:
- OS: Fedora 8
- No.of NIC: two, both with Public IP Address
SipXecs and OSBC are installed on the same box, each using a separate IP address
- UA's: Behind NAT
| Dues
to a limitation where the gateway configured in sipxecs always uses
port 5060, OSBC can not be used for FENT and SIP Trunking
simultaneously. |
1.a Registering a NAT'd UA to sipxecs through OSBC with UpperReg(without and with domain rewriting)
In OSBC:
Setting OSBC with UpperReg Mode:
- Go to OSBC General Parameters
- Select B2BUpperReg Mode
- Press Update (Note: After Update you need to restart OSBC)
Setting OSBC to listen to a specific interface:
- Go to OSBC General Parameters
- Input the interface address at the Interface Address Field and Click Add
- Press Update (Note: After Update you need to restart OSBC)
Setting OSBC Upper Registration
- Go to Upper Registration
- Input the Route at the Route-List Field and select Add
for the given example route: [sip:*] sip:sipx.example.com
this will route all traffic from OSBC to SipX instance at sipx.example.com
|
For domain rewriting, click the check box for Domain Rewriting (i'll be
giving examples regarding the Rewrite Feature on my next update) |
If Rewrite-TO-Domain is check, domain of the To-URI will be rewritten and use the domain parameter of the route-uri.
If Rewrite-FROM-Domain is check, domain of the From-URI will be rewritten and use the domain parameter of the route-uri
- Press Update
In SipXecs:
- Create a user / extension ex. Uid: 200 Pw: 200
In UA:
- Setup your phone
Uid: 200 Pw: 200
Domain: sipx.example.com <-- this domain should resolve to the IP address of your SipXecs instance
Proxy: osbc.example.com <-- tjis domain should resolve to the IP address of your OSBC instance
1.b Calls between UAs behind NAT
Callflow: UA1 ? OSBC ? SIPX ? OSBC ? UA2
In OSBC:
- Using the settings for OSBC from Scenario #1, Go to B2BUA Routes
- Add Routes to Route-List
Ex. [sip:*] sip:sipx.example.com
for the given example route: [sip:*] sip:sipx.example.com this will
route all calls from OSBC to SipX instance at sipx.example.com
- Press Update
In SipXecs:
- Create two users / extensions ex.
Uid: 200 Pw: 200
Uid: 201 Pw: 201
In UA:
- Setup your phones
Uid: 200 Pw: 200
Domain: sipx.example.com <-- this domain should resolve to the IP address of your SipXecs instance
Proxy: osbc.example.com <-- this domain should resolve to the IP address of your OSBC instance
Uid: 201 Pw: 201
Domain: sipx.example.com <-- this domain should resolve to the IP address of your SipXecs instance
Proxy: osbc.example.com <-- this domain should resolve to the IP address of your OSBC instance
1.c Calls to PSTN, UAs behind NAT
Callflow: UA1 ? OSBC ? SIPX ? OSBC _-> PSTN Gateway
In OSBC:
- Using the settings for OSBC from Scenario #1, Go to B2BUA Routes
- Add Routes to Route-List
Ex.
[sip:*] sip:sipx.example.com
for the given example route: [sip:*] sip:sipx.example.com this will
route all calls from OSBC to SipX instance at sipx.example.com
[sip:12*] sip:mypstngateway
for the given example route: [sip:12*] sip:mypstngateway this will route
all calls starting with 12(Prefix 9 was drop by SipXecs for outgoing
call) from OSBC to PSTN Gateway
- Press Update
In SipXecs:
- Create users / extensions ex.
Uid: 200 Pw: 200
- Setup your Gateway at SipXecs (Point your Gateway to OSBC Instance)
In UA:
- Setup your phones
Uid: 200 Pw: 200
Domain: sipx.example.com <-- your SipXecs instance
Proxy: osbc.example.com <-- your OSBC instance
1.d Calls From PSTN, UAs behind NAT
Callflow: PSTN Caller ? OSBC ? SIPX ? OSBC ? UA1
In OSBC:
- Using the settings for OSBC from Scenario #1, Go to B2BUA Routes
- Add Routes to Route-List
Ex. [sip:12345678] sip:100@sipx.example.com
| replace 12345678 with your correct DID number |
for the given example route: [sip:12345678] sip:100@sipx.example.com
this will route calls from OSBC(12345678) to SipX
AutoAttendant(indicated by ext 100 or replace with 200 to go directly to
extension) at sipx.example.com
- Press Update
In SipXecs:
- Create users / extensions ex.
Uid: 200 Pw: 200
In UA:
- Setup your phones
Uid: 200 Pw: 200
Domain: sipx.example.com <-- your SipXecs instance
Proxy: osbc.example.com <-- your OSBC instance
Scenario #2: Using OSBC for Far End NAT Traversal (FENT) - Private.
| This
enables remote workers on the WAN to access a sipxecs instance, where
SIPX has a private IP address, from behind NAT routers. |
Setup:
- OS: Fedora 8
- No.of NIC: two, One with Public IP Address and the other with a Private IP Address
- SipXecs and OSBC are installed on the same box, each using a separate IP address
- UA's: registered to sipxecs on a local network using private IP addresses, there is no NAT traversal involved.
|
Dues to a limitation where the gateway configured in sipxecs always
uses port 5060, OSBC can not be used for FENT and SIP Trunking
simultaneously. |
2.a Calls to PSTN, UAs and SipXecs on a Local Network
Callflow: UA1 ? SIPX ? OSBC _-> PSTN Gateway
In OSBC:
- Go to B2BUA Routes
- Add Routes to Route-List
Ex.
[sip:12*] sip:mypstngateway
for the given example route: [sip:12*] sip:mypstngateway this will route
all calls starting with 12(Prefix 9 was drop by SipXecs for outgoing
call) from OSBC to PSTN Gateway
- Press Update
In SipXecs:
- Create two users / extensions ex.
Uid: 200 Pw: 200
- Setup your Gateway at SipXecs (Point your Gateway to OSBC Instance)
In UA:
- Setup your phones
Uid: 200 Pw: 200
Domain: sipx.example.com <-- your SipXecs instance
2.b Calls from PSTN, UAs and SipXecs on a Local Network
Callflow: PSTN Caller ? OSBC ? SIPX ? UA1
In OSBC:
- Go to B2BUA Routes
- Add Routes to Route-List
Ex. [sip:12345678] sip:100@sipx.example.com
| replace 12345678 with your correct DID number |
for the given example route: [sip:12345678] sip:100@sipx.example.com
this will route calls from OSBC(12345678) to SipX
AutoAttendant(indicated by ext 100 or replace with 200 to go directly to
extension) at sipx.example.com(local SipXecs Address)
- Press Update
In SipXecs:
- Create users / extensions ex.
Uid: 200 Pw: 200
In UA:
- Setup your phones
Uid: 200 Pw: 200
Domain: sipx.example.com <-- your SipXecs instance
Scenario #3: Using OSBC for SIP trunking (this example uses RingCentral).
| This enables sipxecs users on a local private network to connect to the PSTN using a SIP Trunk account on the public network. |
Setup:
- OS: Fedora 8
- No.of NIC: two, One with Public IP Address and the other with a Private IP Address
- SipXecs and OSBC are installed on the same box, each using a separate IP address
- UA's: registered to sipxecs on a local network using private IP addresses, there is no NAT traversal involved.
- SIP Trunk provider: This call flow was tested using a RingCentral account
|
Dues to a limitation where the gateway configured in sipxecs always
uses port 5060, OSBC can not be used for FENT and SIP Trunking
simultaneously. |
3.a Registering OSBC to the SIP Trunk*
In OSBC:
Setting OSBC to Register to a Sip Trunk Provider:
- Go to OSBC Sip Trunk Config
- Paste the XML for the config (sample below)
<root>
<siptrunk trunk-name= "my.sipprovider.com"
route-set= "sip:sip.sipprovider.com"
sip-domain= "sip.sipprovider.com"
expires= "10" >
<trunk-accounts>
<account user-name= "xxxxxxx"
auth-user-name= "xxxxxx"
auth-password= "xxxxxx"
inbound-route= "sip:100@sipx.example.com"
expires= "3600" />
</trunk-accounts>
< transient -accounts>
<account user-name= "xxxxx"
auth-user-name= "xxxx"
auth-password= "xxxx"
inbound-route= "sip:100@sipx.example.com"
expires= "3600" />
</ transient -accounts>
</siptrunk>
</root>
|
- Press Update
- To check if registration is successful, Go to Sip-Trunk Registration Status
sip:xxxxxxx@sip.sipprovider.com sip:xxxxxx@xxx.xxx.xx.xx:5066
00773236-91be-dd11-8be9-e96beb558260@sip.sipprovider.com SIP/2.0 200 OK
3.b Routing of inbound calls from a trunk provider to the sipxecs autoattendant
Callflow: Caller ? SipTrunk Provider ? OSBC ? SipX
In OSBC:
- After Registration to a Trunk Provider from Scenario 3.a
- Go to B2BUA Routes
- Add Routes to Route-List
Ex. [sip:100*] sip:sipx.example.com
for the given example route: [sip:100*] sip:sipx.example.com this will
route all calls with prefix 100 from OSBC to SipXecs Auto Attendant at
sipx.example.com
- Press Update
In SipXecs:
- Create users / extensions ex.
Uid: 200 Pw: 200
In UA:
- Setup your phones
Uid: 200 Pw: 200
Domain: sipx.example.com <-- your SipXecs instance
3.c Routing of outbound calls from a trunk provider
Call Flow: UA1 ? SIPX ? OSBC _-> Sip Trunk Provider
In OSBC:
- Go to B2BUA Routes
- Add Routes to Route-List
Ex. [sip:12*] sip:sip.ringcentral.com;sip-trunk=true
for the given example route: [sip:12*]
sip:sip.ringcentral.com;sip-trunk=true, this will route all calls
starting with 12(Prefix 9 was drop by SipXecs for outgoing call) from
OSBC to Sip Trunk Provider (in this case, Ring Central)
- Press Update
In SipXecs:
- Create users / extensions ex.
Uid: 200 Pw: 200
- Setup your Gateway at SipXecs (Point your Gateway to OSBC Instance)
In UA:
- Setup your phones
Uid: 200 Pw: 200
Domain: sipx.example.com <-- your SipXecs instance
INFO: http://wiki.sipfoundry.org/display/sipXecs/Overview