Brekeke SIP Server Wiki

  1. Brekeke SIP Server Basic Info
    1. BSS v3 Quick start guide
    2. What is the Brekeke SIP Server?
    3. Environments BSS runs on
    4. Hardware Spec vs BSS performance
    5. How to check your BSS version
    6. Editions of Brekeke SIP Server
    7. Benefits & Features (BSS)
    8. Interoperability (BSS)
    9. BSS has no limitations
  2. Avoid Attacks
  3. Update & Upgrade
    1. Minor version update
    2. Update license (same Product ID)
    3. Upgrade evaluation license to commercial with new Product ID
    4. Upgrade BSS from v2 to v3
    5. Upgrade OnDO SIP Server to BSS
    6. Update web server (Apache Tomcat)
  4. Configuration
    1. Installation
      1. How to install Brekeke SIP Server
      2. Installing Java SE
      3. Installing Apache Tomcat
      4. Installation with a commercial license
      5. Configuration for BSS behind NAT
      6. Use BSS with a firewall/antivirus
      7. Install on Debian or Ubuntu
      8. Install BSS on 32-bit or 64-bit OS
      9. Increase Linux File Descriptor Limit on CentOS
      10. Increase Threads/Processes Limits on CentOS 6
      11. Increase the memory space in BSS
      12. Running both Brekeke SIP Server and PBX on the same machine
      13. Update Java used by Brekeke SIP Server on Windows
      14. Use BSS with mesh network
      15. Uninstall Brekeke SIP Server
    2. SIP UA Configuration
      1. How to set up a SIP-UA?
      2. Presence feature
    3. Network Configuration
      1. Bind BSS to one IP address
      2. BSS Dial Plan settings for VPN
      3. Default value of TOS in the packets from BSS
      4. How to set port forwarding?
      5. Use FQDN as Network Interface
    4. Dial Plan
      1. Dial Plan Reference
        1. Matching Patterns functions
          1. $addr
          2. $addrPort
          3. $addrPrefix
          4. $addrRange
          5. $addrType
          6. $alias
            1. $alias.lookup
            2. $alias.reverse
          7. $and
          8. $body
          9. $date
          10. $db
            1. $db.get
            2. $db.query
            3. $db.update
          11. $dispatcher
          12. $eval and $e
          13. $evalRule
          14. $exist
          15. $getDisplayName
          16. $getHost
          17. $getSIPuser
          18. $getUri
          19. $globalAddr
          20. $header
          21. $headerParam
          22. $hop
          23. $if
          24. $ifAddr
          25. $isNull
          26. $isReachable
          27. $isTalking
          28. $localhost
          29. $math
            1. $math.dec
            2. $math.eval
            3. $
            4. $
            5. $
            6. $
            7. $math.le
            8. $math.max
            9. $math.min
            10. $math.rand
            11. $math.range
          30. $mirroring
          31. $mydomain
          32. $not
          33. $nslookup
          34. $nsreverse
          35. $or
          36. $outbound
          37. $param
          38. $pb.displayname
          39. $pb
            1. $pb.item
          40. $pn
            1. $pn.user
          41. $port
          42. $primary
          43. $radius
            1. $radius.auth
            2. $radius.setServiceType
            3. $radius.setVSA
            4. $radius.preauth
          44. $regAddr
          45. $regdb
            1. $regdb.attribute
            2. $regdb.recordnum
            3. $regdb.transport
          46. $registered
          47. $registeredSender
          48. $regUa
          49. $regUri
          50. $request
          51. $rule
            1. $rule.cntEvaled
            2. $rule.cntMatched
            3. $rule.matched
            4. $
            5. $rule.sps
          52. $route
            1. $route.concurrent
            2. $route.ifMin
            3. $route.sps
            4. $route.spslimit
            5. $route.underlimit
          53. $sdp
            1. $
            2. $
          54. $servertime
          55. $sessionNum
          56. $sid
          57. $soapGet
          58. $sps
          59. $stackSize
          60. $str
            1. $str.equals
            2. $str.contain
            3. $str.hashcode
            4. $str.indexOf
            5. $str.isdigits
            6. $str.length
            7. $str.lowercase
            8. $str.md5
            9. $str.remove
            10. $str.replace
            11. $str.reverse
            12. $str.sha
            13. $str.substring
            14. $str.trim
            15. $str.uppercase
          61. $subParam
          62. $threadNum
          63. $time
          64. $timeRange
          65. $transport
          66. $uriParam
          67. $url
            1. $url.decode
            2. $url.encode
          68. $webGet
          69. $ws
            1. $ws.cookie
            2. $
            3. $ws.origin
            4. $ws.resource
            5. $ws.useragent
        2. Deploy Patterns functions
          1. $action
          2. $alert.message
          3. $auth
          4. $b2bua
          5. $continue
          6. $ifdst
          7. $ifsrc
          8.  $log
          9. $nat
          10. $replaceuri.from
          11. $
          12. $request
          13. $response
          14. $rtp
          15. $session
          16. $target
          17. $transport
        3. Deploy Patterns variables
          1. &net.rtp.binddst
          2. &net.rtp.bindsrc
          3. &net.rtp.ifdst
          4. &net.rtp.ifsrc
          5. &net.srtp.dst
          6. &net.srtp.src
      2. $webget method examples
        1. Automatically Block Unwanted Calls
        2. CNAM lookup
        3. Send SMS from Brekeke SIP Server
      3. How do I create a Dial Plan rule?
      4. Red letters in the Dial Plan
      5. What does %1, %2 mean in rules?
      6. %{} in Dial Plan Deploy Patterns
      7. Global and Local Variables
      8. Add time between dialed prefix and phone number
      9. Change user password in the rule
      10. Connect to Gateways with BSS
      11. Brekeke SIP Server works as Redirect Server
      12. Authenticate callers by IP address
      13. Decline calls from non-numbered callers (SIP ID)
      14. Reject non-registered caller's call
      15. Restrict registration only from single UA
      16. Restrict Upper or Thru Registration
      17. Count registration records per user
      18. Set a registered client never expire
      19. Remove all current registrations
      20. Restrict REGISTER requests
      21. Restrict INVITE Requests
      22. Set time range in Dial Plan
      23. Limit Concurrent Sessions through a specific route
      24. Limit session per sec in Dial Plan
      25. Apply two plugin to one call
      26. Execute SQL query from Dialplan
      27. Define outgoing From and To headers with / method
      28. Response Header Definition
      29. DNS-SRV failover
      30. Failover with the Dial Plan
      31. Change payload type
      32. Change RTP Connection Info
      33. Disable RTP-Relay if SDP indicates a Public IP address
      34. Change Contact header
    5. Block List
      1. Block List Settings
      2. Block List Filtering Policy
      3. Blocked IP Address
      4. Blocked User Name
      5. Honeypot
    6. SDN
      1. OpenFlow Settings
        1. Add in_port parameters
    7. Advanced Edition
      1. Alias function
        1. Create an Alias Definition
        2. Create a DialPlan Rule
      2. Call detailed records (CDR)
        1. Variables for CDR
      3. Failover
        1. Multiple-Target Failover
        2. Failover Plugin
      4. Load balancing by BSS
        1. Brekeke SIP Server Load Balancing
          1. Front-end Server Setup
          2. Back-end Servers Setup
      5. RADIUS
        1. RADIUS Accounting
        2. RADIUS Authentication
        3. RADIUS Preauthentication
        4. RADIUS Attributes
          1. RADIUS Accounting Request: Attributes
          2. RADIUS Authentication Request: Attributes
          3. RADIUS PreAuthentication Request: Attributes
        5. Environment Variables for RADIUS
        6. Define Vendor-Specific Attribute (VSA) in Brekeke RADIUS Request
        7. Troubleshooting for RADIUS
      6. TLS
        1. Key and Certificate
        2. How to create a self-signed certificate using OpenSSL
        3. How to install a certificate chain
        4. Peer Certification Validation
        5. Environment Variables for TLS
        6. Monitoring and Diagnostic
        7. How to convert TLS to another transport protocol (UDP,TCP)
      7. SRTP Conversion
      8. Brekeke SIP Server Redundancy
        1. 1. Set Up Brekeke SIP Server Mirroring
          1. OS commands for redundancy
          2. Replace default gateway
        2. 2. Set up Brekeke SIP Server Auto Sync
        3. 3. Brekeke SIP Server Heartbeat
          1. Set up Heartbeat on Secondary BSS
          2. Set up Heartbeat on Primary BSS
        4. 4. Test Brekeke SIP Server redundancy
        5. 5. Resume to the State before Failover
      9. Brekeke Heartbeat Remote Access Setup
      10. Brekeke SIP Server Failure Notification
      11. Heavy loads alert with Brekeke Heartbeat
      12. Monitoring SIP Devices with Heartbeat
    8. Other Functions
      1. Access Brekeke SIP Server Admintool from any computer
      2. Back-To-Back User Agent (B2BUA) Mode
      3. Billing feature
      4. Brekeke SIP Server back up
      5. Call to PSTN by Brekeke SIP Server
      6. Call transfer and voice message
      7. Check call status
      8. Compact Form with BSS
      9. Settings for Microsoft Lync or OCS
      10. Connect to Brekeke SIP Server Admintool with SSL
      11. Difference between RTP relay ON and AUTO
      12. Does Brekeke SIP Server support Video call?
      13. Change RTP buffer size for Video
      14. How to tune T1 timer
      15. IPv6
      16. NAT Traversal
      17. Push Notification
        1. Quick Guide
        2. Management
          1. [Application] page
            1. [Edit Application] page
          2. [Devices] page
          3. [Settings] page
        3. Sample Dial Plan rules
          1. Notify Incoming Call
          2. Notify Incoming Call for Brekeke PBX
          3. Notify New Voice Message
        4. Variables Reference
          1. Dial Plan Variables for Push Notification
          2. Logging Variables for Push Notification
        5. How to get a server key and a sender ID for WebPush
      18. Replace response code
      19. Use Microsoft SQL server
      20. UPnP
      21. Upper or Thru Registration
      22. log
        1. How to log SIP packets
        2. Logging Level
        3. View call logs
        4. Log path
        5. Timestamp Format in Session Log
        6. Change system log file size
      23. Monitoring Brekeke SIP Server with SNMP
        1. Monitoring Brekeke SIP Server with Net-SNMP
        2. Monitoring Brekeke SIP Server with Java's SNMP
      24. TCP or TLS with BSS
        1. TCP-UDP and UDP-TCP conversion
        2. TCP Support Details
        3. TLS Support Details
      25. Does Brekeke SIP Server support Path (RFC3327)?
      26. Does Brekeke SIP Server support Service-Route (RFC3608)?
      27. Set up Brekeke SIP Server to use WebSocket as SIP transport
      28. Management Command Reference
        1. blockctrl
        2. blockquery
        3. blockstat
        4. certinfo
        5. ciphersuitesinfo
        6. classpath
        7. disconnect
        8. dnscache
        9. dnslookup
        10. dnsremove
        11. dnssrvcache
        12. env
        13. getwarning
        14. iflist
        15. info
        16. policytable
        17. portlist
        18. portmap
        19. radiuscachedport
        20. regexlist
        21. regclear
        22. reglist
        23. rtplist
        24. routerinfo
        25. rulelist
        26. rtplist
        27. sipexlist
        28. subsclist
        29. tlslist
        30. weberrorlist
      29. Setup secure connections (TLS/WSS/HTTPS) with certificate
      30. Set up the email notifications at BSS
      31. Get free certificates from "Let's Encrypt"
  5. Troubleshooting
    1. How to get debug logs 
    2. How to get jstack information
    3. Brekeke SIP Server License and Activation
    4. Starting up
      1. Can't access Brekeke SIP Server Admintool after installation
      2. Can't start Brekeke SIP Server when using some SIP UAs
      3. Can't start Brekeke SIP Server in linux and the "UnsatisfiedLinkError" message is in a log.log
      4. Cannot move from the first screen
      5. Can't start Brekeke SIP Server when Java10/11 and Tomcat7 are used
      6. Error "Cannot open database"
      7. Error message "Cannot open the listening port."
      8. Error - Port Not Ready 
      9. Error - SIP Server already installed, please uninstall existing SIP server
      10. Error - The page can not be displayed
      11. Error NO-200 in Brekeke SIP Server admintool
      12. Forgot admin password
      13. Error 1067 in Windows Service
      14. Got Exceptions when using GCJ
      15. Lost changed settings when Brekeke SIP Server restarts
      16. Internet Explorer doesn't show the admin page
      17. No response from Brekeke SIP Server
      18. Unable to install Brekeke SIP Server Service
      19. Unable to open Brekeke service when restart server machine
    5. Registering problem
      1. Authentication Problem (401 Unauthorized)
      2. Cannot register my UA(phone) to Brekeke SIP Server
      3. Failure on Upper/Thru registration
      4. Registration fails for SIP clients from different LANs
      5. Registration fails from SIP clients within the network
    6. Trouble with SIP UAs
      1. Cannot connect to a SIP-UA
      2. Cannot connect using Windows Messenger
      3. Ring multiple phones at the same time
      4. Talking Session exits after call disconnected
      5. Windows Messenger Presence feature
      6. Counterpath's Presence feature with Brekeke SIP Server
    7. Trouble with Calling
      1. 401 Unauthorized, 407 Proxy Authentication Required
      2. 404 Not Found, 484 Address Incomplete, 603 Decline
      3. 415 Unsupported Media Type, 488 Not Acceptable Here
      4. 482 Loop Detected, 483 Too Many Hops
      5. 486 Busy Here
      6. 603 Packet-Too-Big
      7. Call drops after getting connected
      8. Call drops after getting connected and caller hears ring back tone
      9. Call drops; only one-side voice; no voice
      10. Callee not ring, caller hears ring tome
      11. Disconnected during a call
      12. Neither a busy tone nor a ring back tone
      13. UA1 calls UA2, UA2 does not ring
      14. One way call
      15. Other response codes
      16. Port Allocation failed
      17. Can not find a response code
      18. Poor sound quality
        1. Bandwidth, quality, or Network equipments
        2. Codecs and protocols
        3. Stress on Server
        4. Sound quality on different types of phone
  6. Known Bugs & Version History
    1. Known Bugs
    2. Version History

Brekeke SIP Server NAT Traversal Feature

Brekeke SIP Server supports both Near-end and Far-end NAT Traversal.

Deployment Sample
Brekeke SIP Server

Server A – Brekeke SIP Server with a global IP address.
Server B – Brekeke SIP Server running on a machine that has two NIC cards installed. One of the NIC cards has a global IP address, and the other has a local IP address.
Server C – Brekeke SIP Server that has one local IP address. Port forwarding to the SIP port (usually 5060) and the RTP ports (default: 10000-29999) to the Brekeke SIP server is configured at Router Y.

SIP User Agents (UAs)

UA 1 and UA 2 – SIP UA on the global IP network.
UA 3 and UA 4 – SIP UA on a local network. UA 3 and UA 4 access the Internet through Server B.
UA 5 and UA 6 – SIP UA on a local network. UA 5 and UA 6 access the Internet through Router Y.
UA 7 and UA 8 – SIP UA on a local network. UA 7 and UA 8 access the Internet through Router X.


Router X and Router Y – Routers for their respective local area networks.


Brekeke SIP Server supports both Near-End NAT traversal and Far-End NAT traversal. All of UAs in the above diagram can register themselves to any of the Brekeke SIP Servers, and the UAs registered on the same server can communicate with each other.

For example, when UA 1 and UA 5 are registered to Server B, UA 1 and UA 5 can communicate with each other. If UA 3 and UA 6 are registered to Server C, UA 3 and UA 6 can communicate with each other. Also, SIP UAs registered to different Brekeke SIP Servers can communicate with each other by using appropriate routing settings at each Brekeke SIP Server.

Brekeke SIP Server supports most network environments. Multiple Brekeke SIP Servers can work together by using flexible settings. Brekeke SIP Server also works with most third-party SIP servers available in the market.


Near-End NAT Traversal

When a SIP UA is in the same LAN as Brekeke SIP Server, Brekeke SIP Server does Near-End NAT Traversal so that the SIP UA can communicate with a SIP UA over the Internet.

Brekeke SIP Server does address mappings between SIP UAs’ local IP addresses and the global IP address that Brekeke SIP Server has as a Network Interface. All SIP packets and RTP packets are relayed through Brekeke SIP Server. To recipient SIP UAs, the calling SIP UA will appear as if it were on the global IP network (Internet) rather than a protected local network.

This scenario corresponds to when UA 3 and UA 4 talk with some UAs over the Internet via Server B, and when UA 5 and UA 6 talk with UAs over the Internet via Server C.


Far-End NAT Traversal

When a SIP UA in a local network communicates with a SIP UA via an Brekeke SIP Server which is outside it’s local network, Brekeke SIP Server does Far-End NAT traversal.

For Far-end NAT Traversal, Brekeke SIP Server does the same kind of process as Near-End NAT traversal. Brekeke SIP Server relays all SIP packets and RTP packets.

In the above diagram, Server A does Far-End NAT traversal for all UAs in local networks (UAs 3, 4, 5, 6, 7, and 8).

Server B and Server C do Far-End NAT traversal for the UAs that are located in different local networks from Brekeke SIP Server (UAs 5, 6, 7, and 8 for Server B; UAs 3, 4, 7 and 8 for Server C).

Brekeke SIP Server does not do Far-End NAT Traversal for SIP UAs on local networks that use STUN or UPnP.


Using STUN Server with Brekeke SIP Server

STUN is a widely accepted method for NAT Traversal, reportedly resolves over 70% of NAT types. Suppose UA 5 and UA 7 are registered to Server A. If Router X and Router Y have a type of NAT function that utilizes STUN, the SIP UAs can also use STUN. In this case, Server A doesn’t need to Far-End NAT Traversal and RTP relay for these SIP UAs, so Server A’s load can be reduced.

There is a type of NAT, Symmetric NAT, that cannot use STUN. If Symmetric NAT is used, Brekeke SIP Server must do Far-End NAT Traversal.

When NAT Traversal fails with the SIP UA you are using, disabling the STUN setting of the UA might be necessary. (Note that most SIP UA disables STUN function automatically.) Please disable STUN functions for the SIP UAs in the same LAN as Brekeke SIP Server. (The SIP UAs use the Near-End NAT Traversal feature of Brekeke SIP Server.)

Brekeke SIP Server itself does not have STUN Server function. Please use a STUN Server from a third party vendor or service provider.


Related Links:
Yes No
Suggest Edit