58.1. CTISIP resource

The Abilis SIP driver provides gateway functionalities between SIP and ISDN networks for audio services only; it isn't intended to support full SIP to SIP videoconferencing gateway. The Abilis SIP driver can be interfaced with:

58.1.1. CTISIP overview

For each of its SIP users ABILIS provides the choice of 4 possible operating modes, defined by the SIP-TYPE parameter.

SIP-TYPE can be specified as:

  • PHONE: to be used when connecting SIP phones to Abilis;

  • SERVER: to be used when Abilis has to emulate a SIP phone;

  • LOCAL-PEER: to be used with a SIP gateway when the SIP-DOMAIN is owned by the Abilis;

  • REMOTE-PEER: to be used with a SIP gateway when the SIP-DOMAIN is owned by the SIP gateway.

[Note]Note

Many of the other SIP configuration parameters, like SIP-DOMAIN, are to be specified depending to the SIP-TYPE.

[Note]Note

The user may also be a PEER, it means a device that has the same SIP role of the Abilis and the calling number has to be passed unchanged.

58.1.2. CTISIP Registration

The SIP registration process looks something like this:

Figure 58.1. SIP registration

SIP registration

Registration is the process in which the endpoint sends a SIP REGISTER message to the SIP SERVER to let it know where it is. The second REGISTER contains an Authorization header, what contains the SIP user and the password.

On Abilis, depending of SIP-TYPE parameter the registration can be:

  • Local: the endpoint will register on Abilis. The USER and PWD parameters of Abilis are used for registration.

  • Remote: the Abilis will register on SIP server. The SIP-REM-USER, SIP-REM-AUTH-USER and SIP-REM-PASS parameters of Abilis are used for registration.

    [Note]Note

    To enable remote registration, the SIP-REM-REG parameter must be enabled.

    [Note]Note

    The SIP-REM-AUTH-USER must be configured only if SIP authentication user is different from SIP user. By default the SIP-REM-AUTH-USER is the same as SIP-REM-USER.

If the SIP-TYPE: PHONE usually the registration is Local, the SIP phone registers itself on Abilis. The SIP-HOST and/or SIP-UDP-REMPORT must be dynamic.

For SIP-TYPE: LOCAL-PEER if the SIP-HOST and/or SIP-UDP-REMPORT are dynamic then the endpoint must register itself on Abilis, in order that the Abilis can find the IP address of the endpoint.

For SIP-TYPE: SERVER or SIP-TYPE:REMOTE-PEER usually the registration is Remote, the Abilis register itself on SIP server.

Examples of basic configuration of SIP user to interconnect with Abilis for each SIP-TYPE:

To check if SIP users are registered, type the following command:

[11:04:10] ABILIS_CPX:d ctisip registry

User                             Host                 Port REG    LIFETIME  AGE
-------------------------------------------------------------------------------
voipclient                       080.080.080.080     5060  REMOTE      240    9
sip_peer                         192.168.020.104     46022 LOCAL       120  112
sip_phone                        192.168.020.107     56125 LOCAL       120  112

In this example, the SIP user voipclient is registered to the remote peer with IP address: 80.80.80.80. SIP users sip_peer and sip_phone are registered to Abilis.

58.1.2.1. CTISIP without registration

The SIP devices can communicate also without SIP Registration, only if the devices are on the same LAN or both are on static public IPs. In this case, SIP-HOST and SIP-UDP-REMPORT must be configured, not dynamic.

[Note]Note

To disable remote registration, the SIP-REM-REG parameter must be disabled.

[Tip]Tip

If Abilis has more IP addresses, then SIP-SRCADD parameter must be configured with a corresponding source IP address.

Example of configuration of SIP user to comunicate without registration:

[08:30:09] ABILIS_CPX:a user:sip_no_reg sip:yes sip-type:remote-peer sip-domain:sipserver.com sip-host:80.80.80.80 sip-srcadd:77.77.77.77 sip-udp-remport:5060 

COMMAND EXECUTED 

[08:31:09] ABILIS_CPX:s user:sip_no_reg sip-maxses-bid:20 sip-number:* sip-rem-reg:no

COMMAND EXECUTED 
[Note]Note

The SIP-MAXSES-BID parameter is the maximum number of SIP bidirectional sessions.

58.1.3. CTISIP INVITE messages

Figure 58.2. Basic SIP call flow

Basic SIP call flow

A caller sends this message (INVITE) to request that another endpoint join a SIP session, such as a conference or a call. This message can also be sent during a call to change session parameters.

Meaning of the most important parameters:

  • Request-URI: The Request-URI header field contains the URI of the next hop of the message.

  • From: The From header field identify the initiator of the invitation

  • To: The To header field identify the recipient of the invitation

These parameters change depending on the SIP-TYPE parameter.

Below we see the differences between the INVITE message for each SIP-TYPE:

Figure 58.3. INVITE message for SIP-TYPE:PHONE

INVITE message for SIP-TYPE:PHONE

If SIP-TYPE:PHONE the INVITE from 101 to the user sent by the Abilis contains:

  • Request-Uri: test@80.80.80.80 (where test is the SIP user and 80.80.80.80 is the IP address of the device)

  • From: 101@abilis.voip.net (where abilis.voip.net is the local domain of the Abilis)

  • To: test@abilis.voip.net

[Note]Note

If the SIP-DOMAIN parameter isn't configured, then Abilis send the local IP address:

  • Request-Uri: test@80.80.80.80

  • From: 101@77.77.77.77

  • To: test@77.77.77.77

Figure 58.4. INVITE message for SIP-TYPE:LOCAL-PEER

INVITE message for SIP-TYPE:LOCAL-PEER

If SIP-TYPE:LOCAL-PEER the INVITE from 101 to 0123456 sent by the Abilis contains:

  • Request-Uri: 0123456@80.80.80.80 (where 0123456 is the called number and 80.80.80.80 is the IP address of the user)

  • From: 101@abilis.voip.net (where abilis.voip.net is the local domain of the Abilis)

  • To: 0123456@80.80.80.80

[Note]Note

If the SIP-DOMAIN parameter isn't configured, then Abilis send the local IP address:

  • Request-Uri: 0123456@80.80.80.80

  • From: 101@77.77.77.77

  • To: 0123456@80.80.80.80

[Note]Note

LOCAL-PEER handling is similar to PHONE but it allows calling/called number to pass unchanged.

[Note]Note

If the SIP-DOMAIN parameter isn't configured for LOCAL-PEER and REMOTE-PEER, then the INVITE message is identical.

Figure 58.5. INVITE message for SIP-TYPE:SERVER

INVITE message for SIP-TYPE:SERVER

If SIP-TYPE:SERVER the INVITE to 0123456 sent by the Abilis contains:

  • Request-Uri: 0123456@sipserver.com (where 0123456 is the called number and sipserver.com is the FQDN of the server)

  • From: abilis@sipserver.com (where abilis is the SIP remote user and sipserver.com is the remote domain)

  • To: 0123456@sipserver.com

[Note]Note

If the SIP-DOMAIN parameter isn't configured, then Abilis send the IP address of the SIP server:

  • Request-Uri: 0123456@80.80.80.80

  • From: abilis@80.80.80.80

  • To: 0123456@80.80.80.80

Figure 58.6. INVITE message for SIP-TYPE:REMOTE-PEER

INVITE message for SIP-TYPE:REMOTE-PEER

If SIP-TYPE:REMOTE-PEER the INVITE from 101 to 0123456 sent by the Abilis contains:

  • Request-Uri: 0123456@sipserver.com (where 0123456 is the called number and sipserver.com is the FQDN of the remote peer)

  • From: 101@77.77.77.7 (where 77.77.77.77 is the IP address of the Abilis)

  • To: 0123456@sipserver.com

[Note]Note

If the SIP-DOMAIN parameter isn't configured, then Abilis send the IP address of the SIP server:

  • Request-Uri: 0123456@80.80.80.80

  • From: 101@77.77.77.77

  • To: 0123456@80.80.80.80

[Note]Note

REMOTE-PEER handling is similar to SERVER but it allows calling/called number to pass unchanged.

[Note]Note

If the SIP-DOMAIN parameter isn't configured for REMOTE-PEER and LOCAL-PEER, then the INVITE message is identical.

58.1.4. Activating the CTISIP resource

Add the resource to the Abilis system with the following command.

[09:08:14] ABILIS_CPX:a res:ctisip

RES:CTISIP ALREADY EXISTS

The CTISIP resource may already exist in the system, but may not yet be active: set it active with the command:

[09:10:00] ABILIS_CPX:s act res:ctisip

COMMAND EXECUTED
[Caution]Caution

After adding or setting the CTISIP active, you must restart the Abilis to make the resource running (use the command warm start to reboot the Abilis).

[11:01:39] ABILIS_CPX:s p ctisip act:yes

COMMAND EXECUTED
[Caution]Caution

Execute the initialization command init res:ctisip to activate the changes made on the upper case parameters. Use the command save conf and restart Abilis (i.e. With warm start command) to set act the changes made on the lowercase parameters.

58.1.5. CTISIP resource parameters

Use the command d p ctisip to show the parameters of the resource and use the command d p ctisip ? to display the meaning of the parameters.

[11:02:19] ABILIS_CPX:d p ctisip

       LOG:NO                  ACT:YES                 mxps:2172
       sesnum:10               non-invite-sesnum:50    
                               UDP-PORT-BASE:6000      SIP-TOS:0-N
       udp-locport:5060        UDP-PORT-RANGE:200      RTP-TOS:0-D
       SRCADD:OUT-IP                 
       EXTERNAL-IP:OUT-IP                              DISPLAY-NAME:NO
       IPSRC:127.000.000.001   IPSRCLIST:PrivateIpAdd
       SUB-LIFETIME:180        max-sub:100             CTIP-TYPE:USER
       AUTH:DIGEST             KEEPALIVE:90            NPOO-CT:SYS
       LIFETIME:120            DISC-AUDIO:NO           ROUTING:EN-BLOC
       REM-AUTH:DIGEST         T1:500                  DIALT:5
       REM-LIFETIME:120        T2:4                    T302:15
       AUTH-TOUT:4             T4:5                    ROUTE-BY-SD:NO
       AUTH-TOUT-INVITE:4      CHAN-FREQ:20            PROVIDE-SG:NO
       DTMF-MODE:RFC2833       T38:YES                 CLIP-RULE:PRIVATE
       PLAY-DTMF:100           T38-G711:NO             RG-IN:DISABLE
       PLAY-SILENCE:100        T38-PACKING:1           CPO-RTP:NO
       DETECT-DTMF:40          T38-REDUND:REDUNDANCY   CPO-SIGNALLING:NO
       DETECT-SILENCE:40       T38-REDUND-PCK:1        RCC-DISABLE:NO
       DOMAIN:
       UA:AUTO (Abilis CPX - Ver. 8.8.1/STD - Build 4456.36 - Branch 8.8)
       wdir:C:\APP\SIP\

Meaning of the most important parameters:

LOG

Logging functionalities activation/deactivation.

ACT

Runtime CTISIP activation/deactivation [NO, YES].

mxps

UDP payload [1472..65507 byte].

sesnum

The maximum number of SIP sessions available for phone calls [1..255].

non-invite-sesnum

Number of SIP sessions/dialogs initiated by NON-INVITE methods: i.e. Register, Subscribe and Notify [30..100].

udp-locport

Local UDP port of SIP protocol [1..65535].

UDP-PORT-BASE

Base local UDP port usable for RTP/RTCP sessions [1024..65535]; this feature is required to assign high priority to RTP/RTCP packets.

UDP-PORT-RANGE

Range of permitted local UDP ports usable for RTP/RTCP sessions [50..1000]; this value must not be lower than (sesnum * 2 + 50).

SIP-TOS

Sets the TOS value for SIP protocol.

RTP-TOS

Sets the TOS value for RTP protocol.

SRCADD

Source IP address for outgoing connections [R-ID: the source IP address of the outgoing datagrams will be set to the current RouterID value; OUT-IP: the source IP address of the outgoing datagrams will be set on the base of the output IP interface; 1-126.x.x.x, 128-223.x.x.x: the source IP address of the outgoing datagrams will be set to the selected value; Ip-nnn: use the current IPADD of the specified IP resource].

EXTERNAL-IP

Abilis external IP address. [R-ID: the source IP address of the outgoing datagrams will be set to the current RouterID value; OUT-IP: the source IP address of the outgoing datagrams will be set on the base of the output IP interface; 1-126.x.x.x, 128-223.x.x.x: the source IP address of the outgoing datagrams will be set to the selected value]. When OUT-IP or R-ID are set, the address must be determined at the call start and must not change until call end.

DISPLAY-NAME

Selects how to fill Display Name in From, P-Asserted-Identity, Remote-Party-ID fields [NO: Do not add display name; CG: the value present in the CG field (calling number) provided by CTIR; SG: the value present in the SG field (subaddress calling) provided by CTIR; SG-CG: the value present in the SG field or CG field if SG field is missing; ADDRBOOK: field with the name of calling number from address book; ADDRBOOK-SG: field with calling number if the name of calling number is missing in address book].

[Note]Note

When SIP-TYPE:SERVER the CG is replaced by SIP-REM-USER value.

IPSRC

Incoming requests: accepted source IP address [*, 1-126.x.x.x, 127.0.0.1, 128-223.x.x.x]; a client is accepted if it also satisfies SIP-IP-PERMIT specified in User table.

IPSRCLIST

Incoming requests: list of further accepted source IP addresses [#, IP/IR/RU/MR listname]; a client is accepted if it also satisfies SIP-IP-PERMIT specified in User table.

SUB-LIFETIME

Expiration time of incoming subscriptions [60..3600 sec].

max-sub

Maximum number of subscriptions that CTISIP may handle independently from the event type, the subscriber and the monitored resource [0..1000]. If we are handling two SIP phones with BLF and one phone monitors 150 phones and the other monitors 50 phones then max-sub is 150+50=200. If we have 30 phones and each monitors 20 phones, then we have 600 subscriptions.

AUTH

Authentication types offered to autenticating/registering users (incoming calls/registrations) [PLAIN, DIGEST]. Values can be joined using ',' character.

REM-AUTH

Authentication types acceptable when authenticating/registering to a peer (outgoing calls/registrations).[PLAIN, DIGEST]. Values can be joined using ',' character.

LIFETIME

Default duration of incoming registration; users must register themselves before this time interval expires.

REM-LIFETIME

Default duration of outgoing registration [30..3600 sec]; Abilis must register before this time interval expires.

AUTH-TOUT

SIP NOT-INVITE authentication timeout for incoming/outgoing calls initiated by REGISTER method [2..255 sec].

AUTH-TOUT-INVITE

SIP INVITE authentication timeout for incoming/outgoing calls initiated by INVITE method [2..255 sec].

KEEPALIVE

Session keepalive time [90..600 sec]; when this session inactivity timer expires a RE-INVITE or UPDATE message is sent. The keepalive during a call is used to monitor if the connection is stil alive.

CTIP-TYPE

CTIP type assigned to CTISIP driver [USER, NET-PRIVATE, NET-PUBLIC].

NPOO-CT

Enable/disable Net-Public to Net-Public call transfer when both calls are outgoing (outgoing to outgoing) [NO: NP to NP disabled; YES: NP to NP enabled, except when both calls are outgoing, which is not allowed to avoid the “hang trunk” problem; SYS: NP to NP depends on NP-CT in CtiSys].

ROUTING

Routing management [PREFIX, EN-BLOC].

DIALT

Dialing timeout [1..15 sec]. When SIP resource is the destination and at least a number was already submitted the timeout between digits is 5 seconds (DIALT) but may be changed.

T302

Timeout for “empty” setup [15..120 sec].

ROUTE-BY-SD

It allows routing using subaddress called field (SD) [NO: the SD is completely ignored; YES: the user corresponding to SD is searched: if found the call is forwarded to that user, otherwise the standard search in CTISIP table is performed; USER: the user corresponding to SD is searched: if found and the user has parameter SIP-ROUTE-BY-SD:YES, the call is forwarded to that user, otherwise the standard search in CTISIP table is performed].

PROVIDE-SG

Allows insertion of SIP USER NAME in subaddress calling field [NO: disable insertion of USERNAME in calling subaddress; YES: enable insertion of USERNAME in calling subaddress; USER: insertion of USERNAME in calling subaddress depends on individual user configuration]. When it's enabled, either as result of value YES or because value is USER and the user corresponing to the subaddress content allows it, the call sent to CTIR will include in the subaddress calling field the SIP USER NAME of the caller.

DTMF-MODE

DTMF mode used by CTISIP in outgoing DTMF [INBAND: the outband DTMF received from CTIR is not dropped, only the audio stream is passed; INFO: the outband DTMF received from CTIR is sent using INFO message; RFC2833: the outband DTMF received from CTIR is sent using RFC2833 payload].

DISC-AUDIO

Enable/Disable the reproduction of the audio message present in DISCONNECT with in-band-info received from CTIR [NO, YES]. If set ot YES the duration of the SIP session in active state is increased until CTIR times-out (typically up to 30 sec), or the SIP agent closes the call.

PLAY-DTMF

Duration of a DTMF played from a DTMF FULL FRAME [40..1000 msec]. When CTISIP has to convert a DTMF FULL FRAME command to CTIR DTMF frame, it produces as many frames as needed to cover the period specified by this parameter. The actual interval must be rounded to the value immediately higher than configured one.

PLAY-SILENCE

Duration of a silence played after a PLAY-DTMF [50..1000 msec]. When CTISIP has to convert a DTMF FULL FRAME command to CTIR DTMF frame, it produces as many frames as needed to cover the perios specified by PLAY-DTMF parameter. Before a new DTMF can be played, a silence period must elapse, and this is controlled by this parameter.

DETECT-DTMF

Duration of a DTMF from CTIR in order to allow digit recognition [20..100 msec]. When CTISIP received DTMF frames from CTIR, and after it created the most accurate and monotonical timestamp, the DTMF length is measured and for a successful digit recognition it must be of at least the length specified here. If the configured value is not an exact multiple of the frame rate, it must be rounded to the next upper value multiple of frame rate.

DETECT-SILENCE

Duration of a silence after a DTMF from CTIR in order to recognise a digit [20..100 msec].When receiving DTMFs from CTIR to SIP this is the minimum duration of the silence after a tone to actually recognize the following tone and digit to be sent to SIP.

T1

SIP T1 time; Round Trip Time (RTT) estimate.

T2

SIP T2 time; maximum retransmission interval for NON-INVITE requests and INVITE responses.

T4

SIP T4 time; maximum duration that a message can remain in the network.

CHAN-FREQ

Desired channel frequency for bandwidth optimisation, to be rounded down to a codec frame length multiple [20, 30, 40, 50, 60, 70, 80, 90 msec]. It represents how many msec of voice are desired to be packed into a single UDP packet; it's a “desire” in the sense that the actual optimisation will depend on the frame length in msec of the coder in use, and the result will be an a approximation by defect.C

CPO-RTP

Enables/disables Call Path Optimization between two SIP users. It is used when SIP-CPO:SYS in user service, otherwise the value of SIP-CPO is used.

CPO-SIGNALLING

Call Path Optimization signalling [NO: never attempt a CPO of the signalling path; TRANSFER: attempt the CPO just in case of transferring; ALWAYS: always attempt the CPO between two SIP call legs]

DOMAIN

Domain for local users. From 0 up to 64 characters in the range ['0'..'9', 'a'..'z', '-', '.']. DN name is forced to lower case. If Abilis has clients in the public side you can also specify a FQDN.

CLIP-RULE

Specifies the threatment of the CG number for calls TO the SIP users (OUTGOING) [PRIVATE, PUBLIC]. If PRIVATE the CG is sent unmodified, if PUBLIC the CG is emptied when PI is set to RESTRICTED.

RG-IN

Enable/disable management of incoming redirecting [DISABLE, ENABLE].

T38

Enable/disable T.38 support [NO, YES].

T38-PACKING

Number of T.38 packets in UDP packet [1..4].

T38-REDUND

Error recovery method [NONE, REDUNDANCY: if the redundancy method is used it's possible to increase the redundancy packets].

T38-REDUND-PCK

Number of T.38 packets used for error recovery [1..4].

T38-G711

Enable/disable T.38 support with G.711 codec [NO, YES].

RCC-DISABLE

Enable/disable Runtime Codec Change (RCC) [NO, YES]. This feature permits the change of the coder once the call is already established. The purpose of this feature, which is perfectly SIP compliant, is to avoid transcoding all the times that it is possible by choosing a coder which is supported by both sides although not currently in use. This feature is very effective when call transfers takes place. A user may have two calls with two different parties that use two different codec, e.g. G.711 and G.729, when a call transfer is ordered the two parties will be directly connected but since one party was using G.711 and the other G.729 we were forced to make a transcoding even if both supports G.729. With the RCC feature the party running G.711 will be changed on the fly to G.729. The run time codec change allows to save voice quality and sw and hw resource in case of transcoding. Disable the RCC only if the SIP devices have troubles in handling the codec change.

UA

Local user agent. AUTO or from 1 up to 32 ASCII printable characters. Case is preserved. Spaces are allowed. Strings holding spaces must be written between quotation marks (E.g.: "my user agent"). Abilis may present itself as a different device, it's useful to avoid filters based on User Agent.

wdir

Working directory where persistent information is stored. It cannot be empty. Physical full path in DOS notation, i.e. starting with a drive letter in the range ['A'..'Z'] and ending with the '\' character. Max. 128 characters. Case is preserved. Spaces are allowed. Strings holding spaces must be written between quotation marks (E.g.: "C:\My dir\").

The following command allows the administrator to change the configuration of the resource:

s p ctisip parameter:value...

[Caution]Caution

To activate the changes made on the upper case parameters, execute the initialization command init res:ctisip; while to set act the changes made on the lowercase parameters a save conf and an Abilis restart are required (i.e. With warm start command).