How do I configure Cisco Call Manager SIP trunk with Adtran SIP header manipulation?

Trunking between a Cisco PBX and Jive Cloud allows phones that are still behind a Cisco call manager to use their existing functionality, while adding some additional cross-platform functionalities with Jive Cloud phones.

  • Currently trunking between the two platforms cannot be done natively via SIP, as Jive only supports authenticated connections and Cisco Call Manager has no parameters or fields where a username / password can be configured.
  • In order for this to be operational we will need to place an Adtran Netvanta 62xx or TA 908e router on each customer site where a Cisco Call Manager resides or at least accessible by the Cisco Call Manager.
    • AOS 11.4.5 or 11.4.6 are the currently tested and known working AOS versions. 12.x and 13.x do not currently work.
    • The router must either have a 1-to-1 NAT IP address or a Public IP address configured for it’s internet connectivity if the call manager is communicating to it via the WAN
    • The router will need unadulterated internet access to reach all of Jive’s IP blocks

Use Cases for Jive / Cisco Trunking
  • Customers who require a phased rollout of Jive.
  • Customers who want to maintain Call Manager for a specific location(s), but would rather roll out Jive to remote locations as a cost saving measure, ease of administration, etc.
  • When it’s not feasible to do a complete uproot of Cisco because a customer just bought into their system.
  • When the customer has 79xx phones they still have to support but need to add to their current setup.
  • Saving money on PSTN / Long distance calls by replacing their current PRI’s.
Cross-Platform Call Functionality Supported
  • PSTN calling
  • Extension-to-Extension dialing
  • Hold
  • Transfer
  • Conference

Functionality provided by the individual PBX will be maintained. This means that features like presence within the Cisco phones connecting to the Cisco Platform will still work, and features like presence within Jive connected phones will still work, but they will not work cross-platfrom.

Adtran Router Configuration

Prior to any configuration of the Adtran, Jive Customer Support (877-548-3003) will need to be contacted so that the trunk extension can be properly created within the Jive Platform and the SIP Credentials for that extension can be provided to the installer.
The configuration outlined in this guide pertains only to the SIP trunk configuration required for this to operate and assumes the rest of the Adtran configuration needed to enable an interface, route tables, NAT functionalities, etc. are already configured or will be after. It should be noted that configuration of an Adtran router purchased from Jive Communications is included.
  1. G.711 codec is used in this implementation. Others may work but this has been tested and confirmed fully functional as such it is our recommendation.

    voice codec-list CUCM
    	codec g711ulaw

  2. Configure trunk T01 as follows:

    voice trunk T01 type sip
    	sip-server primary "DOMAIN"
    	hmr Trunk-Outbound out
    	register "SIPUSERNAME" auth-name "SIPUSERNAME" password "SIPPASSWORD"
    	authentication username "SIPUSERNAME" password "SIPPASSWORD"

    • Replace DOMAIN with your unique domain (found in parentheses at the top of the admin dashboard).
    • Replace SIPUSERNAME and SIPPASSWORD with the Jive provided username/password for the trunk configured extension in the Jive PBX.

  3. Configure trunk T02 and group trunks with a SITE. In trunk T02:

    voice trunk T02 type sip
    	match dnis "720-644-9097" substitute "7711"
    	sip-server primary
    	code-list CUCM both
    voice grouped-trunk SITE1
    	trunk T01
    	accept $ cost 0
    voice grouped-trunk SITE2
    	trunk T02
    	accept $ cost 0 

    • The sip-server primary IP address is the IP address that Call Manager will use.
    • Any DIDs passed down from the Jive PBX and intended to ring on the Call Manager will be configured under this trunk with a destination extension. In this example, 720-644-9097 is being redirected to Call Manager as a call to extension 7711.

  4. Configure standard Header Manipulation Rules.

    hrm policy Trunk_Outbound
    	rule-set Modify_From_Add_PPI 10
    	rule-set Modify_To 20
    hmr rule-set Modify_From_Add_PPI
    	message-rule Initialize message-type request 10
    		set private-variable Source_Of_Dialog new-value true 10
    		set private-variable Is_REGISTER new-value false 20
    	message-rule Check_Dialog_Source message-type request 20
    		set private-variable Source_Of_Dialog header call-id position first match-value /^\w+@/ new-value false 10
    	message-rule Check_If_Register message-type request 30
    		set private-variable Is_REGISTER header sip-req-uri position first match-value "/^REGISTER /" new-value true 10
    	message-rule Modify_Headers message-type request 40
    		match private-variable Source_Of_Dialog match-value /true/
    		match private-variable Is_REGISTER match-value /false/
    		set private-variable Original_From_User header from position first match-value /.*sip:([^@]+).*/ new-value /\1/ 10
    		modify header from position first match-value /sip:[^@]+/ new-value /sip:%public.From_User%/ 20
    	message-rule Add_PPI message-type request 50
    		match private-variable Source_Of_Dialog match-value /true/
    		match header sip-req-uri match-value "/^INVITE /"
    		add header p-preferred-identity position if-not-present new-value <>
    hmr rule-set Modify_To
    	message-rule Initialize message-type response 10
    		set private-variable Source_Of_Dialog new-value true 10
    	message-rule Check_Dialog_Source message-type response 20
    		set private-variable Source_Of_Dialog header call-id position first match-value /^\w+@/ new-value false 10
    	message-rule Modify_Headers message-type response 30
    		match private-variable Source_Of_Dialog match-value /true/
    		modify header to position first match-value /sip:[^@]+/ new-value /sip:%public.From_User%/ 10
    hmr set public-variable From_User new-value "SIPUSERNAME"

    Note: The username at the very bottom will need to reflect the username for the Jive PBX trunk extension.

Call Manager Configuration

This section assumes the installer is familiar with navigating and making configuration changes within their Cisco Call Manager. This section only entails the necessary configuration needed to create a trunk to connect to the Adtran router and subsequently to Jive. Also that all other configurations of the Cisco Call Manager regarding internal routing decisions, extensions, etc. have been previously configured, or will be after the fact, as this would fall beyond the scope of Jive Customer Support.
  1. From Call Manager, go to System > Security > SIP Trunk Security Profile, and create a new security profile and set the following settings:

  2. Navigate to Call Routing > Class of Control > Partition, create a new partition and name it as desired. In the example provided it’s named “Jive” though perhaps a better name would be “Jive_Partition” so that you know what you are selecting in the next steps.

  3. Navigate to Call Routing > Class of Control > Calling Search Space, create a new Calling Search Space and name it something akin to “JiveCSS”. Make sure you select the partition we created in the previous step and add it to the “Selected Partitions” section.

  4. Navigate to Device > Trunk and add a new SIP Trunk.

  5. Copy the settings from the following screenshots. The IP address of will need to be replaced with the IP address that the Call Manager will use to communicate with the Adtran Router.

  6. Navigate to Call Routing > SIP Route Pattern and create a new SIP Route Pattern.

    • Under the IPV4 pattern, enter the IP address of the interface on the Adtran that the Call Manager will be communicating to. Make sure you select the Jive Partition that we created.
    • From the SIP Trunk drop down, select the SIP Trunk that we created.

  7. Navigate to Call Routing > Route/Hunt > Route Pattern and create a new Route Pattern.

    • On the Gateway/Route List option, make sure you select the Trunk we created in previous steps.
    • Create this route pattern in the same partition as your trunk/sip route pattern.
    Note: In this example, 1xxx is used to instruct the Call Manager that any calls to any 1000 extensions will be routed thru the gateway. Consult with Cisco for Route Pattern Syntax for mostly used PSTN numbers.