ZDK
Public Member Functions | List of all members
ZDK::ISIPConfig Class Referenceabstract

SIP specific account configuration. More...

#include <ISIPConfig.h>

Inheritance diagram for ZDK::ISIPConfig:
ZDK::IZHandle

Public Member Functions

virtual ZDK::Shared::String Domain () const =0
 Gets the user domain. More...
 
virtual void Domain (ZDK::Shared::String value)=0
 Sets the user domain. More...
 
virtual bool UseOutboundProxy () const =0
 Gets the use of SIP Outbound as described in RFC 5626. More...
 
virtual void UseOutboundProxy (bool value)=0
 Configures the use of SIP Outbound as described in RFC 5626. More...
 
virtual ZDK::Shared::String OutboundProxy () const =0
 Gets the configured SIP Outbound Proxy to be used. More...
 
virtual void OutboundProxy (ZDK::Shared::String value)=0
 Sets the SIP Outbound Proxy to be used. More...
 
virtual ZDK::Shared::String SipInstance () const =0
 Gets the configured RFC2141 URN for SIP registrations. More...
 
virtual void SipInstance (ZDK::Shared::String value)=0
 Configures RFC2141 URN for SIP registrations. More...
 
virtual ZDK::TransportType Transport () const =0
 Gets the selected SIP transport. More...
 
virtual void Transport (ZDK::TransportType value)=0
 Selects the SIP transport to be used. More...
 
virtual ZDK::Shared::String AuthUsername () const =0
 Gets the user name used for SIP authentication. More...
 
virtual void AuthUsername (ZDK::Shared::String value)=0
 Changes the user name used for SIP authentication. More...
 
virtual ZDK::Shared::String CallerID () const =0
 Gets the Caller ID used as display name part in the address of record. More...
 
virtual void CallerID (ZDK::Shared::String value)=0
 Configures the Caller ID used as display name part in the address of record. More...
 
virtual ZDK::RPortType RPort () const =0
 Gets the use of rport for SIP users. More...
 
virtual void RPort (ZDK::RPortType value)=0
 Sets the use of rport for SIP users. More...
 
virtual bool EnableSRTP () const =0
 Gets the use of user's SRTP. More...
 
virtual void EnableSRTP (bool value)=0
 Sets the use of user's SRTP. More...
 
virtual ZDK::DTMFTypeSIP DTMF () const =0
 Gets the selected DTMF band for the user. More...
 
virtual void DTMF (ZDK::DTMFTypeSIP value)=0
 Selects the DTMF band for the user. More...
 
virtual bool EnablePushNotifications () const =0
 Gets the use of push notifications. More...
 
virtual void EnablePushNotifications (bool value)=0
 Sets the use of push notifications. More...
 
virtual bool EnablePushRtpMediaProxy () const =0
 Gets the use of the push notifications proxy also acting as media proxy. More...
 
virtual void EnablePushRtpMediaProxy (bool value)=0
 Sets the use of the push notifications proxy also acting as media proxy. More...
 
virtual ZDK::TransportType PushTransport () const =0
 Gets the selected transport being used to reach the push proxy. More...
 
virtual void PushTransport (ZDK::TransportType value)=0
 Selects the transport to be used to reach the push proxy. More...
 
virtual bool EnablePreconditions () const =0
 Gets the use of call's preconditions framework as described in RFC 3312. More...
 
virtual void EnablePreconditions (bool value)=0
 Sets the use of call's preconditions framework as described in RFC 3312. More...
 
virtual bool EnableVideoFMTP () const =0
 Gets video FMTP support. More...
 
virtual void EnableVideoFMTP (bool value)=0
 Sets video FMTP support. More...
 
virtual ZDK::RTCPFeedbackType RTCPFeedback () const =0
 Gets the RTCP Feedback support. More...
 
virtual void RTCPFeedback (ZDK::RTCPFeedbackType value)=0
 Sets the RTCP Feedback support. More...
 
virtual ZDK::Shared::StunConfig Stun ()=0
 Gets the STUN configuration. More...
 
virtual void Stun (ZDK::Shared::StunConfig value)=0
 Sets the STUN configuration. More...
 
virtual ZDK::Shared::MSRPConfig MSRP ()=0
 Gets the MSRP configuration. More...
 
virtual void MSRP (ZDK::Shared::MSRPConfig value)=0
 Sets the MSRP configuration. More...
 
virtual ZDK::Shared::ZRTPConfig ZRTP ()=0
 Gets the ZRTP configuration. More...
 
virtual void ZRTP (ZDK::Shared::ZRTPConfig value)=0
 Sets the ZRTP configuration. More...
 
virtual bool EnablePrivacy () const =0
 Gets the use of Privacy mechanism as described in RFC 3323. More...
 
virtual void EnablePrivacy (bool value)=0
 Sets the use of Privacy mechanism as described in RFC 3323. More...
 
virtual int KeepAlive () const =0
 Gets the keepalive interval for SIP accounts. More...
 
virtual void KeepAlive (int value)=0
 Sets the keepalive interval for SIP accounts. More...
 
virtual bool IsEqual (ZDK::Shared::SIPConfig comp)=0
 Compares the current configuration with the given one. More...
 
- Public Member Functions inherited from ZDK::IZHandle
virtual ZDK::ZDKHandle Handle () const =0
 
virtual operator ZDK::ZDKHandle () const =0
 
virtual void Initialize ()=0
 
virtual void ReleaseReference ()=0
 

Detailed Description

SIP specific account configuration.

Member Function Documentation

◆ AuthUsername() [1/2]

virtual ZDK::Shared::String ZDK::ISIPConfig::AuthUsername ( ) const
pure virtual

Gets the user name used for SIP authentication.

The user name to be used when responding to a SIP authentication challenge.

The SIP user might be challenged on any SIP transaction (registration, call creation, etc). All authentication is handled automatically.

Returns
The user name to use for authentication

◆ AuthUsername() [2/2]

virtual void ZDK::ISIPConfig::AuthUsername ( ZDK::Shared::String  value)
pure virtual

Changes the user name used for SIP authentication.

Changes the user name to be used when responding to a SIP authentication challenge.

The SIP user might be challenged on any SIP transaction (registration, call creation, etc). All authentication is handled automatically.

Parameters
[in]valueThe new user name to use for authentication

◆ CallerID() [1/2]

virtual ZDK::Shared::String ZDK::ISIPConfig::CallerID ( ) const
pure virtual

Gets the Caller ID used as display name part in the address of record.

Returns
The configured CallerID

◆ CallerID() [2/2]

virtual void ZDK::ISIPConfig::CallerID ( ZDK::Shared::String  value)
pure virtual

Configures the Caller ID used as display name part in the address of record.

Parameters
[in]valueThe CallerID to be used

◆ Domain() [1/2]

virtual ZDK::Shared::String ZDK::ISIPConfig::Domain ( ) const
pure virtual

Gets the user domain.

This is the domain part of the address of record. It is a mandatory parameter and is used to construct the account's AoR and also used by the SIP stack to detect server settings (DNS SRV).

Returns
The used user's SIP Domain

◆ Domain() [2/2]

virtual void ZDK::ISIPConfig::Domain ( ZDK::Shared::String  value)
pure virtual

Sets the user domain.

This is the domain part of the address of record. It is a mandatory parameter and is used to construct the account's AoR and also used by the SIP stack to detect server settings (DNS SRV).

Parameters
[in]valueThe user's SIP Domain to be used

◆ DTMF() [1/2]

virtual ZDK::DTMFTypeSIP ZDK::ISIPConfig::DTMF ( ) const
pure virtual

Gets the selected DTMF band for the user.

Returns
The selected DTMF band
See also
DTMFTypeSIP

◆ DTMF() [2/2]

virtual void ZDK::ISIPConfig::DTMF ( ZDK::DTMFTypeSIP  value)
pure virtual

Selects the DTMF band for the user.

Parameters
[in]valueThe DTMF band to select
See also
DTMFTypeSIP

◆ EnablePreconditions() [1/2]

virtual bool ZDK::ISIPConfig::EnablePreconditions ( ) const
pure virtual

Gets the use of call's preconditions framework as described in RFC 3312.

The preconditions are used to negotiate network resources needed for a call before it starts ringing. The negotiation is internal to the library without the need of special handling by the API user.

Returns
  • 0 - disabled
  • 1 - enabled

◆ EnablePreconditions() [2/2]

virtual void ZDK::ISIPConfig::EnablePreconditions ( bool  value)
pure virtual

Sets the use of call's preconditions framework as described in RFC 3312.

The preconditions are used to negotiate network resources needed for a call before it starts ringing. The negotiation is internal to the library without the need of special handling by the API user.

Parameters
[in]value
  • 0 - disabled
  • 1 - enabled

◆ EnablePrivacy() [1/2]

virtual bool ZDK::ISIPConfig::EnablePrivacy ( ) const
pure virtual

Gets the use of Privacy mechanism as described in RFC 3323.

Whether the user's identity is revealed in the SIP URIs or anonymous one is used.

Returns
  • 0 - disabled
  • 1 - enabled

◆ EnablePrivacy() [2/2]

virtual void ZDK::ISIPConfig::EnablePrivacy ( bool  value)
pure virtual

Sets the use of Privacy mechanism as described in RFC 3323.

Set whether the user's identity to be revealed in the SIP URIs or anonymous one to be used.

Parameters
[in]value
  • 0 - disable
  • 1 - enable

◆ EnablePushNotifications() [1/2]

virtual bool ZDK::ISIPConfig::EnablePushNotifications ( ) const
pure virtual

Gets the use of push notifications.

Mobile platforms only (Android and iOS)!

Returns
  • 0 - disabled
  • 1 - enabled

◆ EnablePushNotifications() [2/2]

virtual void ZDK::ISIPConfig::EnablePushNotifications ( bool  value)
pure virtual

Sets the use of push notifications.

Mobile platforms only (Android and iOS)!

Parameters
[in]value
  • 0 - disabled
  • 1 - enabled

◆ EnablePushRtpMediaProxy() [1/2]

virtual bool ZDK::ISIPConfig::EnablePushRtpMediaProxy ( ) const
pure virtual

Gets the use of the push notifications proxy also acting as media proxy.

Mobile platforms only (Android and iOS)!

Returns
  • 0 - disabled
  • 1 - enabled

◆ EnablePushRtpMediaProxy() [2/2]

virtual void ZDK::ISIPConfig::EnablePushRtpMediaProxy ( bool  value)
pure virtual

Sets the use of the push notifications proxy also acting as media proxy.

Mobile platforms only (Android and iOS)!

Parameters
[in]value
  • 0 - disabled
  • 1 - enabled

◆ EnableSRTP() [1/2]

virtual bool ZDK::ISIPConfig::EnableSRTP ( ) const
pure virtual

Gets the use of user's SRTP.

Returns
  • 0 - disabled
  • 1 - enabled

◆ EnableSRTP() [2/2]

virtual void ZDK::ISIPConfig::EnableSRTP ( bool  value)
pure virtual

Sets the use of user's SRTP.

Parameters
[in]value
  • 0 - disabled
  • 1 - enabled

◆ EnableVideoFMTP() [1/2]

virtual bool ZDK::ISIPConfig::EnableVideoFMTP ( ) const
pure virtual

Gets video FMTP support.

Returns
  • 0 - disabled
  • 1 - enabled

◆ EnableVideoFMTP() [2/2]

virtual void ZDK::ISIPConfig::EnableVideoFMTP ( bool  value)
pure virtual

Sets video FMTP support.

This will take effect in calls created/received after the setting has changed. Current calls will not be affected.

Turned off by default.

Parameters
[in]value
  • 0 - disable
  • 1 - enable

◆ IsEqual()

virtual bool ZDK::ISIPConfig::IsEqual ( ZDK::Shared::SIPConfig  comp)
pure virtual

Compares the current configuration with the given one.

Parameters
[in]compSIP configuration to be compared
Returns
  • 0 - not equal
  • 1 - equal

◆ KeepAlive() [1/2]

virtual int ZDK::ISIPConfig::KeepAlive ( ) const
pure virtual

Gets the keepalive interval for SIP accounts.

The keepalive is a SIP packet sent over the signaling socket containing only a new line (CRLF). It is automatically enabled for UDP sockets to keep alive any possible NAT mappings. It has the same effect as enabling STUN for this socket but unlike STUN it will always keep the connection alive.

Returns
Keepalive set in seconds

◆ KeepAlive() [2/2]

virtual void ZDK::ISIPConfig::KeepAlive ( int  value)
pure virtual

Sets the keepalive interval for SIP accounts.

The keepalive is a SIP packet sent over the signaling socket containing only a new line (CRLF). It is automatically enabled for UDP sockets to keep alive any possible NAT mappings. It has the same effect as enabling STUN for this socket but unlike STUN it will always keep the connection alive.

Defaults (for -1) are 30 seconds for UDP and 180 seconds for TCP and TLS. This setting will be applied to all subsequent SIP requests. For best effects set this before registering.

Parameters
[in]valueKeepalive setting in seconds
  • -1 - Use the protocol's defaults
  • 0 - Disable any keepalives
  • > 0 - Set the keepalive interval to that many seconds

◆ MSRP() [1/2]

virtual ZDK::Shared::MSRPConfig ZDK::ISIPConfig::MSRP ( )
pure virtual

Gets the MSRP configuration.

Returns
MSRP configuration
See also
IMSRPConfig

◆ MSRP() [2/2]

virtual void ZDK::ISIPConfig::MSRP ( ZDK::Shared::MSRPConfig  value)
pure virtual

Sets the MSRP configuration.

Parameters
[in]valueMSRP configuration
See also
IMSRPConfig

◆ OutboundProxy() [1/2]

virtual ZDK::Shared::String ZDK::ISIPConfig::OutboundProxy ( ) const
pure virtual

Gets the configured SIP Outbound Proxy to be used.

The outbound proxy is a normal SIP proxy. You configure your client, the phone or software, to use the proxy for all SIP sessions, just like when you configure your Web browser to use a Web proxy for all Web transactions. In some cases, the outbound proxy is placed alongside the firewall and is the only way to let SIP traffic pass from the internal network to the Internet.

Returns
The configured SIP Outbound Proxy

◆ OutboundProxy() [2/2]

virtual void ZDK::ISIPConfig::OutboundProxy ( ZDK::Shared::String  value)
pure virtual

Sets the SIP Outbound Proxy to be used.

The outbound proxy is a normal SIP proxy. You configure your client, the phone or software, to use the proxy for all SIP sessions, just like when you configure your Web browser to use a Web proxy for all Web transactions. In some cases, the outbound proxy is placed alongside the firewall and is the only way to let SIP traffic pass from the internal network to the Internet.

Parameters
[in]valueThe SIP Outbound Proxy to be used

◆ PushTransport() [1/2]

virtual ZDK::TransportType ZDK::ISIPConfig::PushTransport ( ) const
pure virtual

Gets the selected transport being used to reach the push proxy.

Mobile platforms only (Android and iOS)!

Returns
The selected transport in use
See also
TransportType

◆ PushTransport() [2/2]

virtual void ZDK::ISIPConfig::PushTransport ( ZDK::TransportType  value)
pure virtual

Selects the transport to be used to reach the push proxy.

Mobile platforms only (Android and iOS)!

Parameters
[in]valueThe transport to be used
See also
TransportType

◆ RPort() [1/2]

virtual ZDK::RPortType ZDK::ISIPConfig::RPort ( ) const
pure virtual

Gets the use of rport for SIP users.

Used to discover the public address and port in case there is a NAT between the user and the server. It also helps for normal unfirewalled TCP and TLS connections (highly recommended for these two protocols).

If rport is enabled for UDP connects along with STUN, STUN will be preferred.

The default is to have rport disabled for UDP. A registration must be done to do a full discovery before making any calls if they are to benefit from rport.

Returns
  • No Do not use rport.
  • Signaling Enables usage of rport discovered public address for signaling negotiations.
  • SignalingAndMedia Enables usage of rport discovered public address for both signaling and media negotiations. This option is NOT recommended. Enable it only if you absolutely know what you're doing.
See also
RPortType

◆ RPort() [2/2]

virtual void ZDK::ISIPConfig::RPort ( ZDK::RPortType  value)
pure virtual

Sets the use of rport for SIP users.

Used to discover the public address and port in case there is a NAT between the user and the server. It also helps for normal unfirewalled TCP and TLS connections (highly recommended for these two protocols).

If rport is enabled for UDP connects along with STUN, STUN will be preferred.

The default is to have rport disabled for UDP. A registration must be done to do a full discovery before making any calls if they are to benefit from rport.

Parameters
[in]value
  • No Do not use rport.
  • Signaling Enables usage of rport discovered public address for signaling negotiations.
  • Media Enables usage of rport discovered public address for media negotiations - This option is NOT recommended. Enable it only if you absolutely know what you're doing.
  • SignalingAndMedia Enables usage of rport discovered public address for both signaling and media negotiations.
See also
RPortType

◆ RTCPFeedback() [1/2]

virtual ZDK::RTCPFeedbackType ZDK::ISIPConfig::RTCPFeedback ( ) const
pure virtual

Gets the RTCP Feedback support.

The purpose of RTCP Feedback is to provide quick inbound status reporting for media streams, error correction and resilience against packet losses.

Currently only handling of packet loss is implemented (recovery from lost video configuration frames, resulting into "black" time) - Full Intra Request (FIR) and Picture Loss Indication (PLI).

Returns
  • Off - Uses only AVP RTP Profile type - RTCP Feedbacks are OFF!
  • Compatibility - Use both AVP and AVPF RTP Profile types - RTCP Feedbacks are ON (media is duplicated in SDP)
  • On - Use only AVPF RTP Profile type - RTCP Feedbacks are ON (will establish media only if the remote peer also supports AVPF!)
See also
RTCPFeedbackType

◆ RTCPFeedback() [2/2]

virtual void ZDK::ISIPConfig::RTCPFeedback ( ZDK::RTCPFeedbackType  value)
pure virtual

Sets the RTCP Feedback support.

The purpose of RTCP Feedback is to provide quick inbound status reporting for media streams, error correction and resilience against packet losses.

Currently only handling of packet loss is implemented (recovery from lost video configuration frames, resulting into "black" time) - Full Intra Request (FIR) and Picture Loss Indication (PLI).

Parameters
[in]value
  • Off - Uses only AVP RTP Profile type - RTCP Feedbacks are OFF!
  • Compatibility - Use both AVP and AVPF RTP Profile types - RTCP Feedbacks are ON (media is duplicated in SDP)
  • On - Use only AVPF RTP Profile type - RTCP Feedbacks are ON (will establish media only if the remote peer also supports AVPF!)
See also
RTCPFeedbackType

◆ SipInstance() [1/2]

virtual ZDK::Shared::String ZDK::ISIPConfig::SipInstance ( ) const
pure virtual

Gets the configured RFC2141 URN for SIP registrations.

Gets the configures the SIP instance URN used for SIP outbound (RFC 5626). It MUST be a valid RFC 2141 URN and it SHOULD be a valid RFC 4122 UUID URN in the format "urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" where 'x' is a hexadecimal number. It can be optionally in angle brackets.

Other URN schemes can be used. The recommended one is urn:uuid but most servers will treat the string as a sequence of bytes and will not care if the scheme is different.

Use UserSipInstance() to create a random UUID. It will include the scheme prefix (urn:uuid:) and can be used directly in this function. Other ways of generating/obtaining a URN/UUID are allowed but the URN prefix is REQUIRED by the standard.

Global URN IS applied for all SIP accounts. SIP Outbound MUST still be enabled individually for each account.

The URN SHOULD be stored locally and re-used after restarts. The API user has the responsibility of using the same URN between restarts.

Returns
The RFC 2141 URN to be used in RFC 5626 (SIP outbound)
See also
UserSipInstance()

◆ SipInstance() [2/2]

virtual void ZDK::ISIPConfig::SipInstance ( ZDK::Shared::String  value)
pure virtual

Configures RFC2141 URN for SIP registrations.

Configures the SIP instance URN used for SIP outbound (RFC 5626). It MUST be a valid RFC 2141 URN and it SHOULD be a valid RFC 4122 UUID URN in the format "urn:uuid:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" where 'x' is a hexadecimal number. It can be optionally in angle brackets.

Other URN schemes can be used. The recommended one is urn:uuid but most servers will treat the string as a sequence of bytes and will not care if the scheme is different.

Use UserSipInstance() to create a random UUID. It will include the scheme prefix (urn:uuid:) and can be used directly in this function. Other ways of generating/obtaining a URN/UUID are allowed but the URN prefix is REQUIRED by the standard.

Global URN IS applied for all SIP accounts. SIP Outbound MUST still be enabled individually for each account.

The URN SHOULD be stored locally and re-used after restarts. The API user has the responsibility of using the same URN between restarts.

Parameters
[in]valueThe RFC 2141 URN to be used in RFC 5626 (SIP outbound)
See also
UserSipInstance()

◆ Stun() [1/2]

virtual ZDK::Shared::StunConfig ZDK::ISIPConfig::Stun ( )
pure virtual

Gets the STUN configuration.

Returns
STUN configuration
See also
IStunConfig

◆ Stun() [2/2]

virtual void ZDK::ISIPConfig::Stun ( ZDK::Shared::StunConfig  value)
pure virtual

Sets the STUN configuration.

Parameters
[in]valueSTUN configuration
See also
IStunConfig

◆ Transport() [1/2]

virtual ZDK::TransportType ZDK::ISIPConfig::Transport ( ) const
pure virtual

Gets the selected SIP transport.

Returns
The selected signalling protocol (UDP, TCP, TLS)
See also
TransportType

◆ Transport() [2/2]

virtual void ZDK::ISIPConfig::Transport ( ZDK::TransportType  value)
pure virtual

Selects the SIP transport to be used.

Parameters
[in]valueThe signalling protocol to select (UDP, TCP, TLS)
See also
TransportType

◆ UseOutboundProxy() [1/2]

virtual bool ZDK::ISIPConfig::UseOutboundProxy ( ) const
pure virtual

Gets the use of SIP Outbound as described in RFC 5626.

Enables or disables RFC 5626 for SIP users. The default setting for new SIP user account is "disabled".

The user MUST also have a configured Outbound Proxy.

Returns
  • 0 - disabled
  • 1 - enabled

◆ UseOutboundProxy() [2/2]

virtual void ZDK::ISIPConfig::UseOutboundProxy ( bool  value)
pure virtual

Configures the use of SIP Outbound as described in RFC 5626.

Enables or disables RFC 5626 for SIP users. The default setting for new SIP user account is "disabled".

The user MUST also have a configured Outbound Proxy.

Parameters
[in]value
  • 0 - disabled
  • 1 - enabled

◆ ZRTP() [1/2]

virtual ZDK::Shared::ZRTPConfig ZDK::ISIPConfig::ZRTP ( )
pure virtual

Gets the ZRTP configuration.

Returns
ZRTP configuration
See also
IZRTPConfig

◆ ZRTP() [2/2]

virtual void ZDK::ISIPConfig::ZRTP ( ZDK::Shared::ZRTPConfig  value)
pure virtual

Sets the ZRTP configuration.

Parameters
[in]valueZRTP configuration
See also
IZRTPConfig

The documentation for this class was generated from the following file: