Jump to: navigation, search
Line 11: Line 11:
 
  OSX =
 
  OSX =
 
<div class="cloud-wrapper">
 
<div class="cloud-wrapper">
<h2>Overview</h2>
 
 
<div class="cloud-left">
 
<div class="cloud-left">
 
The following methods are defined in GSEndpoint protocol:
 
The following methods are defined in GSEndpoint protocol:
Line 38: Line 37:
 
.NET=
 
.NET=
 
<div class="cloud-wrapper">
 
<div class="cloud-wrapper">
<h2> Overview</h2>
 
 
<div class="cloud-left">
 
<div class="cloud-left">
 
The following methods are defined in IExtendedService interface:
 
The following methods are defined in IExtendedService interface:
Line 52: Line 50:
 
  </tabber>
 
  </tabber>
  
{{Editgrn_open}}Need more information{{Editgrn_close}}
+
==Detailed Description==
 +
The "key" value (for both configuration methods) should be in either one of these forms:
 +
 
 +
# for reference to Connectivity parameters in "Basic" container -- "name : N ", where
 +
#* name is attribute name, one of "user", "server", "protocol", "transport" (synonym for "protocol").
 +
#* N refer to Connectivity line index, starting from 0, i.e. setting "user:0" refer to 'user' parameter in the first Connectivity line, and "user:1" refer to the second line.
 +
# for reference to all setting in "Genesys" container -- "domain . section .[subsection .]setting", where
 +
#* domain is the XML domain element, must be one of "policy", "codecs", "proxies" or "system"
 +
#* section and setting refer to corresponding XML schema elements
 +
#* subsection is optional section name, as used currently for NAT options
 +
 
 +
{{NoteFormat| Historically SDK for .NET and OS X used different delimiters in option keys. For backward compatibility, in current SDK version, dot and colon in the "key" value may be used interchangeably.}}
 +
 
 +
===When changes take effect===
 +
While any configuration setting may be changed at any time, not all changes take effect immediately. Particularly, for most cases:
 +
* Connectivity parameters and settings in proxies domain take effect when connection is activated,
 +
* settings in policy.endpoint section, and codecs and system domains take affect after Endpoint restart,
 +
* settings in policy.session section take effect for the next session created,
 +
* settings in policy.device section take effect next time device is going to be selected (TODO: what method to use to force that selection?)
 +
 
 +
====Exceptions====
 +
 
 +
* settings in policy.endpoint section that take effect for the next session (without Endpoint restart):
 +
** include_os_version_in_user_agent_header
 +
** include_sdk_version_in_user_agent_header
 +
** answer_sdp_priority
 +
** refer_to_proxy
 +
** vq_report_publish
 +
** vq_alarm_threshold
 +
* setting policy.session.dtmf_method requires Endpoint restart, if changed to / from "rfc2833" value (since that change affect the enabled codec list)
 +
 
 +
 
 +
== Code Samples ==
 +
 
 +
<div class="cloud-tabberlive-wrapper">
 +
<tabber>
 +
OSX =
 +
<div class="cloud-wrapper">
 +
<h2>Overview</h2>
 +
<div class="cloud-left">
 +
 
 +
<pre>
 +
 
 +
</pre>
 +
</div>
 +
</div>
 +
 +
|-|
 +
.NET=
 +
<div class="cloud-wrapper">
 +
<h2> Overview</h2>
 +
<div class="cloud-left">
 +
 
 +
<pre>
 +
 
 +
</pre>
 +
</div>
 +
</div>
 +
</tabber>
  
 
[[Category:V:SESDK:9.0.0OSXDRAFT]]
 
[[Category:V:SESDK:9.0.0OSXDRAFT]]

Revision as of 16:55, December 6, 2018

Support for Dynamic Reconfiguration

Important
This feature was introduced as part of the 9.0.006.10 release.

This feature provides additional options to support regex matching and specify codec priorities.

This page describes the API and rules for dynamic reconfiguration of SIP Endpoint SDK from an application. Implementation provides two methods: one to get access to current configuration and another to change that configuration dynamically.

The following methods are defined in GSEndpoint protocol:

  @protocol GSEndpoint <NSObject>
  /**
   Get endpoint configuration setting
   @param key
   @returns string value of the requested key string
   @returns empty string if key-value pair does not exists
   @returns empty string if key nill or empty
   */
  - (NSString*) getConfigSettingForKey:(NSString*) key;
  /**
   Set endpoint configuration setting
   @param value
   @param key
   @returns result of the operation
   */
  - (GSResult) setConfigSettingValue:(NSString*) value forKey:(NSString*) key;

The following methods are defined in IExtendedService interface:

  public interface class IExtendedService
  {
    void SetConfigStringSetting(String^ key, String^ value);
    String^ GetConfigStringSetting(String^ key);
  }

Detailed Description

The "key" value (for both configuration methods) should be in either one of these forms:

  1. for reference to Connectivity parameters in "Basic" container -- "name : N ", where
    • name is attribute name, one of "user", "server", "protocol", "transport" (synonym for "protocol").
    • N refer to Connectivity line index, starting from 0, i.e. setting "user:0" refer to 'user' parameter in the first Connectivity line, and "user:1" refer to the second line.
  2. for reference to all setting in "Genesys" container -- "domain . section .[subsection .]setting", where
    • domain is the XML domain element, must be one of "policy", "codecs", "proxies" or "system"
    • section and setting refer to corresponding XML schema elements
    • subsection is optional section name, as used currently for NAT options
Important
Historically SDK for .NET and OS X used different delimiters in option keys. For backward compatibility, in current SDK version, dot and colon in the "key" value may be used interchangeably.

When changes take effect

While any configuration setting may be changed at any time, not all changes take effect immediately. Particularly, for most cases:

  • Connectivity parameters and settings in proxies domain take effect when connection is activated,
  • settings in policy.endpoint section, and codecs and system domains take affect after Endpoint restart,
  • settings in policy.session section take effect for the next session created,
  • settings in policy.device section take effect next time device is going to be selected (TODO: what method to use to force that selection?)

Exceptions

  • settings in policy.endpoint section that take effect for the next session (without Endpoint restart):
    • include_os_version_in_user_agent_header
    • include_sdk_version_in_user_agent_header
    • answer_sdp_priority
    • refer_to_proxy
    • vq_report_publish
    • vq_alarm_threshold
  • setting policy.session.dtmf_method requires Endpoint restart, if changed to / from "rfc2833" value (since that change affect the enabled codec list)


Code Samples

Overview


Overview


Comments or questions about this documentation? Contact us for support!