SIP Trunk (SOA1)

Description

This type of interface allows the system to send and receive calls over a LAN, private or public IP network using the SIP protocol.

Release notes

Version 2.6.2 - Early deployment
  • Bugfix: Some characters in register password were not accepted (TS-587)
  • Dependency:
    • Communication Server module v3.5.0 or higher

Version 2.6.1 - Early deployment
  • Bugfix: Incorrect source ip of RTP packet on HA configuration (TS-173)
  • Dependency:
    • Communication Server module v3.5.0 or higher

Version 2.6.0 - Early deployment
  • Bugfix: Allow negotiation of DTMF RFC2833 (M20598)
  • Dependency:
    • Communication Server module v3.5.0 or higher

Version 2.5.0 - Early deployment
  • Feature: Activation of the SIP TLS
  • Dependency:
    • Communication Server module v3.5.0 or higher

Version 2.4.0 - Early deployment
  • Feature: Subscribe context is now configurable (M15507)
  • Dependency:
    • Communication Server module v3.5.0 or higher

Version 2.3.0 - Early deployment
  • Improvement: Support progress in-band per peer (M15139)
  • Improvement: Number of call saved in configuration file for the new probe (M13970)
  • Dependency:
    • Communication Server module v3.5.0 or higher

Version 2.2.0 - Early deployment
  • Feature: G.722 support (M12725)
  • Improvement: Improve support of Caller ID method (M13191)
  • Dependency:
    • Communication Server module v3.5.0 or higher

Version 2.1.0 - Early deployment
  • Feature: Configurable context for instant messaging (M12276)
  • Dependency:
    • Communication Server module v3.5.0 or higher

Version 2.0.0 - Early deployment
  • Feature: Inbound authentication user is now configurable (M11840)
  • Feature: Allow overriding SIP URI domain (M11628)
  • Feature: Symmetric Response Routing (M11628)
  • Feature: Add notify format (M11907)
  • Dependency:
    • Communication Server module v3.5.0 or higher

Version 1.55.1 - Early deployment
  • Bugfix: Some characters in register password were not accepted (TS-587)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module

Version 1.55.0 - Early deployment
  • Improvement: Number of call saved in configuration file for the new probe (Backport) (M13970)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module

Version 1.54.0 - Early deployment
  • Feature: G.722 support (M12725)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module

Version 1.53.1 - General deployment
  • Bugfix: When the Caller-ID method was set to 'P-Asserted-Id header', the Remote-Party-ID was also taken into account (M10158)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module

Version 1.53.0 - General deployment
  • Improvement: Enabled redundancy mode for T38 and set T38 maxdatagram to 400 (M0)
  • Improvement: Added the possibility to activate the Promiscuous Redirect (M9504)
  • Feature: Added auth register and user register options (M9568)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module 2.0.0+

Version 1.52.1 - General deployment
  • Bugfix: Service creation mode was not working for all fields (M8993)
  • Feature: Add the P-Preferred-ID option and the P-Preferred-ID-NO_CLIR option in the caller ID method (M8963)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module 2.0.0+

Version 1.52.0 - General deployment
  • Feature: Allow to set a default callerid in case a regular expression is not matched (M8655)
  • Improvement: activate local Music-on-hold or not (M8381)
  • Improvement: Added the possibility to activate the reinvite on outgoing calls only (M8436)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module 2.0.0+

Version 1.51.0 - General deployment
  • Improvement: added the release cause in the SIP header when hanging up the call (M8129)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module 2.0.0+

Version 1.50.0 - General deployment
  • Improvement: Support of providers sending the called extension in the TO header (M6897)
  • Bugfix: Register was not working when a sipsock id was set (M7903)
  • Bugfix: Register timeout to request was not applied to Communication Server 3 (M7903)
  • Feature: Added the possibility to configure ptime (M8013)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module 2.0.0+

Version 1.47.0 - General deployment
  • Feature: Support Extra codecs including video codecs (g723, h261, h263, h263, h264, mpeg4) (M7512)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module 2.0.0+

Version 1.46.0 - General deployment
  • Feature: Select another SIP socket than the default one (M6625)
  • Feature: Added the possibility to provide a SOPKey in the sip gateway field (M6843)
  • Feature: Configurable qualify timers (M7070)
  • Feature: Configurable register timeout requested on remote host (M7070)
  • Improvement: You can now use the variable "resource name"_DirectoryIdentifier in order to use the directory identifier in a callflow (M6994)
  • Improvement: Added the possibility to configure SIP retransmission timer (M6777)
  • Improvement: Added the possibility to configure SIP session timers (M6779)
  • Bugfix: The "Send Caller ID method" option always set "Use Private-Asserted_Identity"
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module 2.0.0+

Version 1.45.1 - General deployment
  • Bugfix: The "Send Caller ID method" option always set "Use Private-Asserted_Identity"
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module 2.0.0+

Version 1.45.0 - General deployment
  • Feature: Added the possibility to send the caller ID in the Private-Asserted_identity header
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module 2.0.0+

Version 1.44.0 - General deployment
  • Feature: add tcp support (M5608)
  • Feature: add number of channels (M5756)
  • Dependency:
    • Asterisk-1.2 module v2.30+ or Communication Server module 2.0.0+

Version 1.43.1 - General deployment
  • Bugfix: T.38 gateway was always started on the SIP trunk channel causing failing reinvites.
  • Dependency:
    • Asterisk-1.2 module v2.30+
    • Communication Server module 2.0.0+ (If T.38 support is required).

Version 1.43.0 - General deployment
  • Feature: Support for T.38. (M0005496)
  • Dependency:
    • Asterisk-1.2 module v2.30+
    • Communication Server module 2.0.0+ (If T.38 support is required).

Version 1.42 - General deployment
  • Bugfix: Fixed support for Remote-Party-Header
  • Dependency:
    • Asterisk-1.2 module v2.30+

Version 1.41 - General deployment
  • Bugfix: No configuration generated if SOP field is set to '*'
  • Dependency:
    • Asterisk-1.2 module v2.30+

Version 1.40 - General deployment
  • Feature: Added possibility to configure the contact extension
  • Limitation: When upgrading from version 1.39 or lower to version 1.40 or higher, please make sure that the Remote-Party-ID and Contact extension settings is set correctly and saved.
  • Limitation: Potential update impact level 2 DONE: in the event this update contains a bug, it might have critical impact. Respect dependencies and retest your most important callflows and applicative integrations.
  • Dependency:
    • Asterisk-1.2 module v2.30+

Version 1.39 - General deployment
  • Feature: Add Remote-party id handling parameter (M0004626)
  • Dependency:
    • Asterisk-1.2 module v2.30+

Version 1.38 - Deprecated
  • Feature: Added SIP overload configuration parameters (M0003721)
  • Deprecated: Remote Party ID breaks "from" and "Contact" SIP field for outgoing calls.
  • Dependency:
    • Asterisk-1.2 module v2.30+

Version 1.37 - General deployment
  • Improvement: added usereqphone
  • Improvement: added outboundproxy
  • Improvement: removed duplicate host parameter
  • Dependency:
    • Asterisk-1.2 module v2.27+

Version 1.36 - Deprecated
  • Feature: Added the possibility to force an in-band audio ringtone
  • Deprecated: Significant improvements have been done in a higher version
  • Dependency:
    • Asterisk-1.2 module v2.27+

Version 1.35 - General deployment
  • Feature: Added possibility to activate qualify on the interface level
  • Dependency:
    • Asterisk-1.2 module v2.27+

Version 1.34 - General deployment
  • Bugfix: SIP reinvite on SIP trunk should not trigger music-on-hold (M0001378)
  • Dependency:
    • Asterisk-1.2 module v2.27+

Version 1.33 - Deprecated
  • Deprecated: The type of SIP peer cannot be changed for security reason
  • Feature: added possibility to set 'type' to 'peer'
  • Bugfix: not created properly when some fields are not filled in

Version 1.32 - General deployment
  • Potential update impact level 2 DONE: in the event this update contains a bug, it might have critical impact. Respect dependencies and retest your most important callflows and applicative integrations.
  • Added the possibility to specify the desired context
  • The default codecs will be used if no codecs are specified

Version 1.31 - General deployment
  • Potential update impact level 2 DONE: in the event this update contains a bug, it might have critical impact. Respect dependencies and retest your most important callflows and applicative integrations.
  • Remove generation of sip.conf in asterisk (bug)
  • Auth User added
  • SIP port configuration added
  • Advanced Asterisk configuration added
    • From User
    • From Domain
    • Security
    • Host

Version 1.30 - General deployment

Version 1.20 - General deployment

Version 1.10 - General deployment

Version 1.00 - General deployment

Version 0.2 - Deprecated
  • Deprecated: Significant improvements have been done in a higher version

Version 0.1 - Deprecated
  • Deprecated: Significant improvements have been done in a higher version

Version 0.0 - General deployment
  • Feature: Initial release

Resource configuration interface

GUI unavailable.

Resource configuration parameters

This resource is used to interconnect two SIP systems.

Trunking parameters:

  • Codecs: codecs to be used to encode the media with the remote party.
  • DTMF mode: format of be used to exchange DTMF
  • SIP can reinvite: If set to 'yes' a reinvite is allowed upon the answer of the call in order to prevent RTP going through the SOP. If set to 'no', the RTP will always go through the SOP and no reinvite will be sent upon the answer of the call. If Communication Server 3 or higher is used, the option 'outgoing' can be used in order to activate the reinvite only for outgoing call. This option is experimental and can be used in to prevent the collision between reinvite (491 Request Pending). This can be used if you have a front-end gateway SOP and an applicative SOP and you want to avoid that both SOPs sends reinvites when the call is answered.

Outgoing call parameters:

  • Gateway: remote SIP provider IP address or domain name
  • Outbound Proxy: optional SIP messages destination
  • Port: remote SIP provider port
  • Outbound auth user/User: login name used for the authorization that will be requested by the SIP provider
  • Password: password to be used together with User
  • Register settings:
    • Register on remote host: if set to yes, REGISTER will be sent to the IP address specified in the gateway and port fields.
    • Register user : If Register on remote host is set to yes, will be used to generate the REGISTER. If this field is empty, the field User will be used instead.
    • Register auth : If Register on remote host is set to yes, will be used to generate the REGISTER. If this field is empty, the fied Auth user will be used.
    • Register timeout to request: Allows you to specify a register timeout that will be requested on the remote host. Whether or not this value is accepted depends on the remote host. Note that this option is only compatible with the Communication Server module. It is ignored on the Asterisk-1.2x module.
  • From User: SIP user name to be used in the from header of all SIP messages, if not specified the callerid will be used
  • From Domain: Domain name to be used in the from header, if not specified the SOP IP will be used (eg: Put your public IP If the remote party need to identify you via this IP, otherwise the remote party will see the LAN SOP IP )
  • Use Remote-Party-ID: Renamed in version 1.45 to 'Send Caller ID method', in version 1.52.0 to 'Caller Id method'. See below.
  • Caller ID method: Specify where the Caller Id should be extracted
    • Use From header: This is the default header. The caller number and the caller name are received and sent via the the From header
    • Use Remote-Party-Id header: The Caller number, the caller name and the caller privacy are received and sent via the Remote-Party-Id header
    • Use P-Asserted-Id header: The Caller number, the caller name and the caller privacy are received and sent via the P-Asserted-Id and the Privacy headers. If you want to ise this option, make sure you use the Communication Server 3.4.1 or higher.
    • Use P-Asserted-Identity header (outgoing only): The Caller number, the caller name and the caller privacy are sent via the P-Asserted-Id and the Privacy headers. The reception is done via the From header. If you want to use this option , make sure you use the CallInterface action 1.10 or higher.
    • Use P-Preferred-Identity header (outgoing only): The Caller number, the caller name and the caller privacy are sent via the P-Preferred-Id header. The reception is done via the From header. If you want to use this option , make sure you use the CallInterface action 1.10 or higher.
    • Use P-Preferred-ID-NO_CLIR header (outgoing only): Does the same than the previous option but does not apply the anonymization of the caller ID in case of private call. This is required by some operators.
  • Validating Regex: Regex used to validate the Caller ID used on the trunk. This can be used in order to avoid call being rejected by an operator in case of invalid Caller ID. For example you can use the regex /^02788[2-4]/ if you trunk support the range between 027882XX and 027884XX.
  • Default callerid: If the regex is not matched, replace the current Caller ID by this value
  • Promiscuous Redirect: If set to yes a '302 Moved temporarily' to another domain will be allowed. No Local channel will be created.

Incoming call parameters:

  • On incoming calls select a SIP trunk where:
    1. the Resource ID field matches the user given in the From header of the incoming SIP INVITE
    2. the Gateway field matches the IP address the call originates from and the Port field matches the port on which the call was received (see Security)
  • Method (1) is tried first and if it fails method (2) is used. If (1) and (2) both fail and we don't allow guests (see module configuration) the call is refused (SIP 401 or 403) else it is redirected to the default context (see module configuration).

  • Resource ID: login that the remote party has to use to access the service
  • Inbound auth user: if set, this will be the login that the remote party has to use to access the service, instead of the Resource ID (available in v2.0.0 + Communication Server 3.5.0 or higher)
  • Password: password that the remote party has to use to access the service (see also "Security" below)
  • Gateway: if set to 'dynamic', the remote user must register itself. If an IP address is provided, it will be checked together with the User field
  • Outbound Proxy: optional SIP messages destination
  • Context: context in which the call is to be placed for processing, set by default to "incoming". If set to "NoRestrict", won't need to Map DDIs anymore.
  • Called identifier: Set if the trunk send the the calls extension in the URI or in the header "To".
  • Use Remote-Party-ID: Renamed in version 1.45 to 'Send Caller Id method', in version 1.52.0 to 'Caller Id method'. See below.
  • Caller ID method: Specify where the Caller Id should be extracted
    • Use From header: This is the default header. The caller number and the caller name are received and sent via the the From header
    • Use Remote-Party-Id header: The Caller number, the caller name and the caller privacy are received and sent via the Remote-Party-Id header
    • Use P-Asserted-Id header: The Caller number, the caller name and the caller privacy are received and sent via the P-Asserted-Id and the Privacy headers. If you want to ise this option, make sure you use the Communication Server 3.4.1 or higher.
    • Use P-Asserted-Identity header (outgoing only): The Caller number, the caller name and the caller privacy are sent via the P-Asserted-Id and the Privacy headers. The reception is done via the From header. If you want to use this option , make sure you use the CallInterface action 1.10 or higher.
    • Use P-Preferred-Identity header (outgoing only): The Caller number, the caller name and the caller privacy are sent via the P-Preferred-Id header. The reception is done via the From header. If you want to use this option , make sure you use the CallInterface action 1.10 or higher.

  • Security:
    • Very insecure: No authentication will be required, Password field will be ignored. SIP trunk selection (2) ignores Port field.
    • Insecure: Authentication required only if Password field is not empty. SIP trunk selection (2) ignores Port field.
    • Authenticate All Connections: Authentication always required and will always fail if Password field is empty.

  • Contact extension: This can only be used in combination with Register set to yes. Some providers (Toledo) require this to be set to the username. If not set, an incoming call will always be send to 's' instead of the actual called number

SIP Overload parameters

  • SIP Overload Control: 'Default' has currently the same function as 'Disabled' (planned for future use), 'Enable' to use the settings defined in this resource and 'Disabled' to deactivate the sip overload control
  • Max Call per period: The maximum number of call allowed during polling period. If the maximum is reached the SIP requests will be rejected with the a SIP error 480 Temporarily unavailable'
  • Polling period: Period during which the maximum number of calls is to be checked. At the end of each period the overload control counters are reset.
  • SIP blacklisting: 'Default' to keep settings defined in asterisk module, 'Enable' to use the settings defined in this resource and 'Disabled' to deactivate the sip blacklisting
  • Blacklisting time after overload: The time after the overload during which the IP address of incoming SIP requests will be blacklisted
  • IP blacklisted time: The time during which the IP address will remain blacklisted

Other parameters

  • Remote host qualification: Monitor the remote party status by sending SIP OPTIONS messages at regular intervals.
    • Qualify remote host: enable to periodically try the remote host for a response. If there is no response, it will be marked as UNREACHABLE.
    • Qualify frequency: configure the interval to send OPTIONS messages.
    • Qualify response timeout: configure the interval within which the remote host has to respond. This value is only taken into account when the "Qualify remote host" parameter is explicitely set to "yes".
  • User equals phone: Indicates whether to add a ";user=phone" to the SIP URI (some providers need it).
  • Number of channels: Maximum number of simultaneous calls (incoming and outgoing) allowed, used for billing. This limit is currently not enforced but it could be at any point in the future. Default value if left blank is 512 channels.
  • Allow T.38: Indicate whether or not T.38 traffic should be accepted on this SIP trunk.
  • Transport: "Default (udp)" means that all the SIP traffic of this SIP trunk will be in UDP. "tcp and udp" means that the SIP trunk will support both protocol for SIP. Note that TCP support must be activated in the Asterisk module configuration for TCP to work on the SIP trunk. Attention This will only work on Communication server 2+
  • SIP socket ID: To make the SIP trunk available on another IP address and/or port than the default one of the SOP, this field can contain an ID corresponding to the list of "IP:Port" that can optionally be defined in Communication Server Module. Leave empty if you don't need this feature.
  • SIP re-transmission timer:
    • SIP Timer T1: The re-transmission timer used to re-transmit a SIP message when no response has been received. This timer will double at each re-transmission. The maximum re-transmission time is 64 times this timer. The default value is 500 ms. The maximum re-transmission time is then 32 s.
  • SIP Session timers:
    • SIP Session Timer: Set to originate to sent the sip-session-timer re-invite. Set to accept, to accept the reception of the sip-session-rimer re-invites. Set to refuse for refusing the sip-session-timer re-invites.
    • Session expire: The maximum time during which hangup the call if there isn't any successful sip-sesion-timers re-invite processed
    • Session refresh: The time between the transmission or the sip-session-timer re-invites
    • Session refresher: Indicate which sides of the call needs to send the sip-session-timer re-invites. Set to uac for the side which initiates the call or set to uas for the side which has been invited.
  • RTP ptimes: The ptime defines the size of the payload to be transmitted on the network. For more information about RTP packetization, see below.
  • Allow local music-on-hold: Allow to use the local music-on-hold for this SIP trunk. Do not use except for specific use (E.g.: Lync integration)

  • Symmetric Response Routing:
    • Automatic: default CS behavior, SIP compliant routing based on Via header.
    • Force rport: Behave as if the "rport" option was provided in the Via header (RFC 3581), i.e. send SIP responses to the source IP and port from which the request originated instead of the address/port listed in the top-most Via header.
  • NAPT PBX URI domain: Override the domain of the URI and To header, without impacting the real destination of SIP Requests. Useful when the remote SIP host is behind a router doing NAPT and not a real SIP proxy.

Important remarks

The field Auth user should be left empty. It is not used anymore.

Some SIP trunk providers require specific trunk settings. Please refer to the Sip provider settings and Application note: Privacy headers documents on how to configure this correctly for your provider.

If you need to provide a specific SIP port, make sure to fill it in in the dedicated field. The format : in the IP field is not supported any more.

If you want to know the profile parameter of the directory identifier in a callflow you can use the GetExtensionInfo with the extension ${<Interface Name>_DirectoryIdentifier} where <Interface Name> is to be replaced by the resource identifier of the interface (e.g. ${SOA10001_DirectoryIdentifier}).

RTP packetization (ptime)

The following table lists the minimum and maximum values that are valid per codec, as well as the increment value used for each. Please note that the maximum values here are only recommended maximums, and should not exceed the RTP MTU.

Name Minimum (ms) Maximum (ms) Default (ms) Increment (ms)
g723 30 300 30 30
gsm 20 300 20 20
ulaw 10 150 20 10
alaw 10 150 20 10
g726 10 300 20 10
ADPCM 10 300 20 10
SLIN 10 70 20 10
lpc10 20 20 20 20
g729 10 230 20 10
speex 10 60 20 10
ilbc 30 30 30 30
g726_aal2 10 300 20 10
g722 10 150 20 10

Invalid framing options are handled based on the following rules:

If the specified framing is less than the codec's minimum, then the minimum value is used.

If the specific framing is greater than the codec's maximum, then the maximum value is used

If the specificed framing does not meet the increment requirement, the specified framing is rounded down to the closest valid framing options.
Copyright © Escaux SA