Use server side number resolution with separate data sources (multi tenant)

13.07.2018

One major problem on Swyx-Servers with multiple companies or tenants is to separate the data between them. Using MetaServices brings server side number resolution along. It uses the SwyxWare ECR-Preprocessing script to set the calling party name by performing a LDAP request against the LDAP-directory.

With MetaServices 8.10 there is a way to workaround that. Usually the Pre-Processing queries the Global LDAP-node defined and searchs the "3imediaserver" LDAP node in LDAP-directory.

Instead of using a fixed LDAP node it's now possible to work with place holders. One possibility would be to use the "<%CallingDeviceName%>" which represents the Swyx-Trunk-Name over which the call comes in. Another possibility would be the "<%Location%>" placeholder which contains the location name of the called user.

Follow these instructions to configure the MetaServices to use separate LDAP nodes for each trunk:

  • Open "3iMedia MetaServices Configuation" in start menu
  • Change to the tab "configuration nodes"
  • Select the "global" entry in the list
  • Change the entry "LDADC" or "LDAPDCPhonebook" to one of the placeholders above
  • Open "3iMedia MetaServices Administration" in start menu
  • Under "Database Management" you'll find the LDAP node "3imediaserver" with its assigned replication source
  • Create a new LDAP node with the name of the location or trunk name from SwyxWare. Be aware that all whitespaces and braces are replaces by "-"
  • Assign the replication sources for this location or trunk to the newly created LDAP node

Now incoming calls are only the resolved against the resolved LDAP node.

There are other placeholders that can be used:

  • CallingDeviceName: Trunk name (applies to LDAPDC, LDAPDCPhonebook, LDAPUserName, LDAPDisplayString)
  • CallingDeviceType: Tunk type (applies to LDAPDC, LDAPDCPhonebook, LDAPUserName, LDAPDisplayString)
  • Location: Location name of called user (applies to LDAPDC, LDAPDCPhonebook, LDAPUserName, LDAPDisplayString)
  • CallId: CallID from SwyxWare (applies to LDAPDisplayString)
  • PostDialingDigits: PostDialingDigits (applies to LDAPDisplayString)
  • CalledPartyNumber: Internal number of called user (applies to LDAPDisplayString)
  • CallingPartyName: Internal name of called user (applies to LDAPDisplayString)
  • CallingPartyNumber: Number of caller (applies to LDAPDisplayString)