All posts
CPaaSUpdated April 15, 20232 min read

Building a SIP Registrar with Jambonz

This is a tutorial on how to create sip registrar from scratch with jambonz open source CPaaS platform, works with any sip client.

Paste into Claude, ChatGPT, or Cursor to have it help you integrate in minutes — full article, code samples, and FAQs included.

Introduction

TelecomsXChange (TCXC) is a wholesale communication service provider platform that doesn’t require SIP registration to send traffic. However, two of their enterprise customers had a change in their infrastructure and now need SIP registration to send traffic. TCXC had to find a way to serve their customers without adding a SIP Registrar to the platform due to performance and security concerns.

Jambonz and TCXC integration:

TCXC chose to move SIP registration to the edge using Jambonz, an open-source CPaaS platform. Jambonz was selected because it allows developers to choose their own carrier and can easily integrate with any SIP/SMPP carriers.

How TCXC Built a SIP Registrar Service at the Edge using Jambonz

To make this idea work, TCXC had a short list of needs:

  1. Registrar Authentication: TCXC created a new sub-domain and pointed it to Jambonz in their DNS records. When a SIP registration request comes, Jambonz calls a SIP Registration web-hook URL to check if the user entered the proper username and password. If the credentials are correct, the SIP client will register successfully.
  2. Dial Plan Rules: TCXC needed special caller-id rules for their customers. Dave Horton, the Jambonz founder, quickly wrote a web-hook for TCXC to apply these rules whenever a call is made.
  3. Outbound Calling: TCXC routed calls to TCXC SIP Providers using different credentials for each customer. They created a different buyer account for each customer on the TCXC platform with unique SIP Digest Authentication for each one to differentiate billing and routing.

Building a SIP Registrar at the Edge with Jambonz

The below code few lines of code are responsible for handling all the business rules that we needed:


{
  "register.telecomsxchange.com": {
    "AcmeInc": {
      "password": "sip-pass",
      "techPrefix": "444242#",
      "outboundAuth": {
        "username": "siptrunk1-username",
        "password": "siptrunk1-password"
      },
      "callerId": {
       "default":"+18009992222",
        "patterns": [;
          { "match":"^966", "callerId": "0598888833" },
          { "match":"^971", "callerId": "045677777" }
        ]
      }
    },
    "JaneDoe": {
      "password": "sip-password",
      "techPrefix": "444924#", 
      "outboundAuth": {
        "username": "siptrunk2-username",
        "password": "siptrunk2-password
      },
      "callerId": "+12127771222"
    }
  }
}

Full Web Hook App Source Code available here

Conclusion

To meet our customers’ needs without building a SIP registrar in our platform, we decided to move it to the edge as a micro-service. With Jambonz’s help and their cloud-native platform running on AWS, we were able to quickly build a SIP registrar service using hosted services and web-hooks. This solution not only satisfied our existing customers but also allowed us to offer SIP registrar services to new customers without worrying about scaling up. Jambonz’s auto-scaling and Geo-distribution capabilities made it easy for us to keep our customers happy and continue to provide excellent service.

Back to all posts