Action parameters

  • Description: Free description to describe the goal of the action instance within the call flow
  • Number to dial: Number which will be dialed by the interface(s)
  • Interface 1..4: This action implements a hunt group of up to 4 interfaces (Interface 1 to Interface 4)
  • Hunting Mechanism: The hunting mechanism can either be
    • 'Linear': the order of the interface is preserved, or
    • 'Random' the order is taken randomly
  • Timeout: Each interface will be called during a certain timeout. (infinite if empty)
  • Caller ID policy:
    • Translate (previously "As set in Global Parameter"): Update the caller id using the information from Outgoing Number Mapping (callerid_[caller id] global parameters)
    • Transparent: Do not change the caller id
    • Hide: Hide the caller id. The caller ID is set to '00' and the caller presentation indicates the caller ID as a private number
    • Clear RDNIS: RDNIS (Redirected Dialed Number Information Service) is mainly used on ISDN interfaces. The normal way is that when a call is redirected through a phone set call forwarding, the RDNIS will be the initial caller id. Fore some reasons, some provider does not support RDNIS (example: BASE mobile provider). This feature enables to clear it. (available on version 1.3 or higher)
    • CLIR: CLIR stands for Calling Line Identification Restriction. On an ISDN line this will set the CLIR flag in the outgoing SETUP in order to ask the network to keep the Caller ID private, except for the emergency services and billing services. In SIP, it will add the Privacy header in order to indicate that the provided caller ID must remain private. When used together with the 'Translate' mode, this will make sure that a proper caller ID is always provided to the remote network. If the callerid_[caller id] is empty, the PrivateAssertedIdentityNumber will be used instead in order to set the Caller ID.

This action has 3 exits:

  • Congestion:
    • If one of the interfaces is congested, the following interface in the list is called.
    • If all the interfaces are congested, the action goes to the 'congestion' exit.
  • Busy:
    • If one of the interfaces is busy, the call goes to the 'busy' exit.
  • Timeout:
    • If the specified timeout expired during an interface call, the following interface in the list is called
    • If all the interfaces time out, the call goes to the 'timeout' exit

Dependencies

  • Global Parameters:
    • PrivateAssertedIdentityNumber : If this variable is set when the action is called, the callinterface action will use this number to send the privacy header in SIP invite message when the CLI must be masked. This can be requested by specific SIP providers (Example: Belgacom NGN SIP trunk). (Only used in version 1.3 or higher)
    • MaximumCallDuration : If this variable is set, the call duration will have the correspondant maximum dureation. (Only used in version 1.3 or higher)
    • DialInterfaceOption : If this variable is set, the corresponding dialing option will be used. (For example, 'r' for forcing ringback tone by the PBX, 'm' to play music during ringback, ...)
  • Actions:
    • MapNumber 1.16+ : When CallInterface is used in an outgoing callflow, you should use at least this version of MapNumber. Otherwise the call history of basic/advanced reporting and net.Desktop will be incorrect.

Example of use

This action is mainly used to organize a specific routing mechanism for outgoing calls (extra cluster routing) and should be used within an outgoing call flow (see application notes for more details).

For example, if you need to route 120 simultaneous calls to a certain destination among 3 different Voice-Over-IP gateways taking care each gateway has the same load, you can use this action by:
  • Creating 3 SIP interfaces to the 3 VoIP gateways.
  • Creating an outgoing call flow which use the CallInterface action with the 3 interfaces. (Choose random hunting mechanism)
  • Create an external route to this outgoing call flow. (See Outgoing call flow application note)

Remark: It is not advised to use a CallInterface action within an incoming call flow because the routing mechanism to route incoming calls to internal extension should be implemented by the intra-cluster routing mechanism in order not to hard-code interfaces involved in the routing.

Integration Notes

Ring tone

By default the ring tone is the ring tone of the network. If you have a ring tone issue it is possible to force the SOP to play the ring tone. This can be done by adding a SetVar action in the callflow with the following parameters:
  • Variable: DialInterfaceOption
  • Value: ${DialInterfaceOption}r

The Dial option 'r' will indeed force this ring tone

NAT and firewall traversal

When a call is coming from a SIP trunk and sent back to this SIP trunk due to a callforward to an external number, often audio issues are encountered. In order to force the NAT or the firewall to open a door, the ring tone can be force via the option 'r' in the DialInterfaceOption.

Shared trunk and IMS trunk

When a trunk is shared by several organizations, the proper caller ID is to be provided in the outgoing number mapping page in order to always set the right caller ID. If a number is to be hidden, this is to be handled in a callflow. The privacy status can be stored in a profile parameter and used in an outgoing callflow in order to call the action CallInterface with the caller ID policy 'Translate - Set CLIR'.

This way of working is also recommended for an IMS trunk.

From version 1.10, if the parameter 'Send Caller Id method' defined in the SIP interface is set to 'Use P-Asserted-Identity', the caller ID and the caller Presentation of the current call will be used in order to create the header. The host defined in the P-Asserted-Identity will be the gateway defined in the SIP interface. If you work in this way, it is recommended to remove the global parameter 'PrivateAssertedIdentityNumber' which won't be used any more.

Phone based call forwarding

Version 1.10.2 removed a legacy feature which is no longer supported. If you were setting a phone based call forward to an external number and you were using an outgoing callflow to the PSTN, you have to modify the outgoing callflow to maintain this legacy behaviour. You have to add a few actions to your callflow:
If($[$["${CHANNEL:0:5}" = "Local"] & $["${LastUserExt}"!=""]])
 |
 | True: SetVar(CALLERID(num)=${LastUserExt})
 |  |
 |  | Redirect (<extension of false>)
 | 
 | False : <Rest of the previous callflow>

Copyright © Escaux SA