PhoneSystem Class

PhoneSystem configuration

Definition

Namespace: TCX.Configuration
Assembly: 3cxpscomcpp2 (in 3cxpscomcpp2.dll) Version: 20.0.1
C#
public sealed class PhoneSystem : IPhoneSystem
Inheritance
Object    PhoneSystem
Implements
IPhoneSystem

Properties

ApplicationName unique ID of application connection on Configuration server
Build Build number of currently installed 3CX Phone System.
CallStorage Take CallCollector
CfgServerHost FQDN or IP of Configuration service
CfgServerPassword Authentication information
CfgServerPort port of configuration service CfgServerHost and CfgServerPort properties are the address of Configuration service
CfgServerUser Authentication information
CMConnected Determines whether the CallManager part of the data is available sub-system.
ConfigVersion The version of the configuration database installed in the 3CX Phone System.
Connected Determines whether the object model is connected to the Configuration server sub-system.
Database obsolete. not used
Obsolete.
DefaultProfiles Set of profiles mandatory for extension object
Host obsolete. not used
Obsolete.
Logger Logger
LogTransactionDetails adds more information about transaction flow (reordering of events, event handlers, additinal processing)
write only.
LogTransactionIds Reports all ids which are modified by transaction in the log write only.
Password obsolete. not used
Obsolete.
Port obsolete. not used
Obsolete.
Registrar Registrar cstorage inforamtion
Root singleton of PhoneSystem
[deprecated]: Applications must access to the object model using this property
[Updated in 4.0]:Object model should be initialized explicitrly using Reset(String, String, Int32, String, String, NotificationEventHandler, NotificationEventHandler, NotificationEventHandler) Application still can use this property to prevent access to phone system when connection with configuration server is broken
Application can track connection with configuration server using Updated/Inserted/Deleted events. ObjectModel delivers "CFGSERVER" event when configuration server connection is established (Inserted), chechged(Updated) or closed (Deleted). When configuration server becomes "Deleted" access to the data is limited.
Subset subset of data which will be handled by user has effect only before startup (first access to Root object)
Username obsolete. not used
Obsolete.
Version Version string of currently installed 3CX Phone System.

Methods

AttachConnectionData Allows to attach data to the existing connection. The data will be available using AttachedData and indexer of ActiveConnection Ignores all keys which are not started with "public_" prefix.
BargeinCall(Int32, String, Boolean) request to barge in to the call
Obsolete.
BargeinCall(String, ActiveConnection, PBXConnectionBargeInMode) request to barge in to the call
BargeinCall(String, ActiveConnection, PBXConnectionBargeInMode, String) request to barge in to the call
CleanUpVoiceMailBoxInformation Cleanup storage of VM box information Can be used only by manager of this information or restore procedure
CreateAnnouncement Creates new announcement object
CreateAudioFeed Creates new audio stream object
CreateBatch Creates transaction object.
CreateBlackListEntry Creates a new black list entry object. Use Save method will add it to configuration.
CreateCodec Creates a new instance of Codec.
CreateFromXML Serialization helper. This method is used to deserialize object as specified by OMMainInterfaceAttribute
CreateGateway Creates a new instance of Gateway.
CreateLookupTkey, Tobj Created lookup collection which allow to search for the specific key
CreateParameter Creates a new general parameter for the Phone System.
CreatePhoneModel Creates a new instance of PhoneModel
CreatePromptSet Creates a new instance of PromptSet
Obsolete.
CreatePromptSet(String, String, String, String) Creates initialized promptset object.
CreateStatistics(String) (obsolete) Creates realtime statistic storage or returns existing one in "statistics" realtime table
CreateStatistics(String, String) Creates realtime statistic storage in specified table of statistics. or returns existing one.
Custom statistics table MUST be defined in configuration manager.
table MUST be defined as:
[RTTABLES]
s_xxxxxxx=ID

and object name MUST be defined as:
[CLASSES] S_XXXXXXX=s_xxxxxxx

where xxxxxxx is lowercase string and XXXXXXX is uppercase version of the xxxxxxx
CreateVoipProvider Creates a new instance of VoipProvider.
DeinitializeStatistics This method removes subscription and cache for the statistics previously initialized using InitializeStatistics(String)
DeleteBlackListEntries Deletes specified array of BlackListEntry
DeleteParameter removes definition of specified parameter from configuration
DeleteParameters Deletes list of parameters.
Disconnect Shutdown of connection to configuration service.
DivertCall(ActiveConnection, String, Boolean) request to divert incoming call to new destination.
DivertCall(Int32, String, String, Boolean) request to divert ringing call to new destination. (replace current destination with new one)
DropCall(ActiveConnection) request to disconnect participant from a call.
DropCall(ActiveConnection, PhoneSystemDropRingingAction) request to disconnect participant from a call.
DropCall(Int32, String) request to disconnect participant from a call.
GenerateRandomString generator of random strings. Length of the string is defined by the call to Next(Int32, Int32) with minLen and minLen
GetActiveConnections Obsolete. returns empty array.
Obsolete.
GetActiveConnectionsByCallID Returns the set of current active connections grouped by CallID
GetAllT Get all objects of specific type.
GetAllAnnouncements returns array of all announcements
GetAllAudioFeeds returns array of all streams defined in the system
GetAllStatisticsRecords Allows to request all statistics records from Configuration server.
It is an expensive operation and should be used only for initialization purposes. More correct way is to subscribe to statistics upates using "InitializeStatistics" and then monitor it using PhoneSystem events
GetBlackListEntries Collection of black list entries currently used by the system.
GetByID(String, Int32) returns Statistics object from the storage previously initialized by InitializeStatistics(String)
GetByIDT(Int32) Allows to get Configuration object by persistent object hash code.
Supported objects are:
PhoneBookEntry
DN
Gateway
ActiveConnection
RegistrarRecord
OutboundRule
Group
GetCacheHealthReport For debugging purposes only. Returns "table cache" counters from Configuration server. Can be used to verify consistence of local cache.
GetCallParticipants(ActiveConnection) Returns all participants of the call where specified active connection participates.
GetCallParticipants(Int32) Returns all participants of the specific call
GetCodecByRFCName Finding Codec object defined iby Object model
GetCodecs Collection of codecs.
GetConferencePlaceExtensions The list of system-wide conference place extensions.
GetDetectedDevices Collections of SIP devices detected by PBX.
GetDN The list of system-wide DNs.
GetDNByNumber Returns an DN sub-class instance, as determined by its number, or if not found.
GetExtensionGroups The list of system-wide extension groups.
GetExtensions The list of system-wide extensions.
GetExternalLines The list of system-wide external lines.
GetFaxExtensions The list of system-wide Fax extensions.
GetGatewayParameterByName Returns a particular gateway parameter by its name, or if not found.
GetGatewayParameters Collection of possible gateway parameters.
GetGatewayParameterValueByName Returns a particular gateway parameter value by its name, or if nto found.
GetGatewayParameterValues Collection of possible gateway parameter values.
GetGateways Collection of PSTN Gateways and Voip Providers in this configuration.
GetGlobalParams Returns global parameters of PBX. like IP/ports/network interfaces etc.
MUST not be used by third party applications.
GetGroupByName Gets Group with the specified name, or null if group is not found
GetInternalHeapStat Not implemented.
GetInternalStat For debugging purposes.
GetIVRs The list of system-wide IVR extensions.
GetNetInterfaces Returns set of IPv4 network interfaces supported on the local machine.
Obsolete.
GetOnlyT Get all objects which are implementing specific object model interface.
GetOutboundRules The list of outbound rules.
GetOverrides actual description of the rights for the specific group role
GetParameterByName Returns a specific parameter by its name, or if not found.
GetParameters Collection of general parameters for the phone system.
GetParameterValue Take value of specific parameter
GetParkExtensions The list of system-wide park extensions.
GetPhoneBook Returns all phonebook entries on server (including company phonebook and personal phonebooks)
GetPhoneModels Collections of phone models supported by the PBX.
GetPromptSets Returns the collection of prompt sets.
GetPSTNs Collection of PSTN Gateways (excluding Voip Providers).
GetQueues The list of system-wide queues.
GetRights(GroupMember) actual description of the rigts of the specific group member
GetRights(Group, String) actual description of the rights for the specific group role
GetRingGroups The list of system-wide ring groups.
GetRoutePoints The array of RoutePoint objects defined in the installation.
GetRuleCallTypeByType Returns an instance of RuleCallType based on its unique ID.
GetRuleCallTypes Collection of rule call types (based on source of call) used in forwarding rules, sorted by their prioritized order.
GetRuleConditionByType Returns an instance of RuleCondition based on its unique ID.
GetRuleConditions Returns the rule types used in forwarding rules, sorted by their prioritized order.
GetRuleHourTypeByType Returns an instance of RuleHours based on its unique ID.
GetRuleHourTypes Returns the rule hours types (time based conditions) used in forwarding rules, sorted by their prioritized order.
GetSpecialMenus The list of system-wide special menu extensions.
GetSystemDNs collection of SystemDNs
GetTenant Gets default Tenant
GetTenants Returns the collection of tenants for the phone system.
Obsolete.
GetVoipProviders Collection of Voip Providers (excluding other gateways).
HandsFreeIntercomAnswer this method allows to simulate answer on the ringing device. Server regenerates requests to the destination device and adds autoanswer option. Destination device can answer to the call if it supports autoanswer feature.
InitializeStatistics (obsolete) Initialize notification about statistics and returns all available statistics.
InitializeStatistics(String) Initialize notification about realtime statistics stored in specific run-time table and returns all available records stored there.
Custom statistics table MUST be defined in configuration manager.
table MUST be defined as:
[RTTABLES]
s_xxxxxxx=ID

and object name MUST be defined as:
[CLASSES] S_XXXXXXX=s_xxxxxxx

where xxxxxxx is lowercase string and XXXXXXX is uppercase version of the xxxxxxx
InvokeCommand invokes PBX command
JoinCalls Last step of Attended transfer.
Device should have two connected calls. PBX leave only one call (pointed by ToReplace) where device connection is replaced with the party of other call (pointed by PartyOf) The call referenced by PartyOf will be terminated. ToReplace will be terminated as well and new ActiveConnection will be added to the call for the moved party.
Listen request to listen call
Obsolete.
MakeCall(RegistrarRecord, String) Initiates call from the specific device. Depending on the device capabilities call will be initiated uaCSTA connection, 3CXDirectCallControl (for 3CX clients) or using MakeCall service which will make a call to the device and then transfer call to requiested destination
MakeCall(String, DictionaryString, String) send request to system extension.
MakeCall(String, String) legacy form of the request to make call.
added only for backward compatibility with software which relies on the legacy behavior of MakeCall service.
NotifyParameterUpdate Allows to send update notification for the specific Parameter object with or without modification of database record.
PickupCall(RegistrarRecord, ActiveConnection) replace specified ActiveConnection with the new connection made with specified device.
PickupCall(String, String) request to pickup ringing call.
PickupCall(String, ActiveConnection) replace specified ActiveConnection with the new connection made to specified extension.
effectively, it is reroute request to the specified extension. All extension devices will be called
PushSBC invoke operation on SBC (works if SBC has active connection)
RecordCall request to start/stop recording of call
RefreshRegistration request to refresh registration of specific VoIP provider line or slave bridge connection.
ReportLogEvent(PhoneSystemLogEventEntryType, String, Int32, String, Boolean) Reports system event which is stored to instance database.
ReportLogEvent(PhoneSystemLogEventEntryType, String, Int32, String, String, Boolean) Reports system event which is stored to instance database.
ReportLogEvents Reports bunch of events
Reset This method resets(initializes) connection to Configuration server and provides Root object without exceptions. All handlers connected to the PhoneSystem.Root will receive "CFGSERVER" deleted and will be removed. new set of hanlders will be set and they will receive CFGSERVER Inserted/Updated according to status of new connection this method obsoletes initialization code like
C#
try
{
    PhoneSystem.ApplicationName = appname;
    PhoneSystem.CfgServerHost = cfghost;
    PhoneSystem.CfgServerPort = cfgport;
    PhoneSystem.CfgServerUser = cfguser;
    PhoneSystem.CfgServerPassword = cfgpassword;
    var root = PhoneSystem.Root;
    root.Inserted += insertHandler;
    root.Updated += updatHandler;
    root.Deleted += deleteHandler;
}
catch
{
    //we are here without subscription to the events and need to repeat code in try section
}
Now it should be coupled with WaitForConnect(TimeSpan):
C#
PhoneSystem ps = PhoneSystem.Reset(appname, cfghost, cfgport, cfguser, cfgpassword, insertedHandler, updatedHandler, deletedHandler)
while(!ps.WaitForConnection(Timespan.FromSeconds))
{
    //no connection handler
}
benefits of using Reset(String, String, Int32, String, String, NotificationEventHandler, NotificationEventHandler, NotificationEventHandler) method: 1. returned object can be used instead of Root 2. new handlers will receive CFGSERVER event which will allow to implement "OnConnect"/"OnDisconnect" handlers 3. automaticaly removes all subscriptions which were initialized for previous server.
ServiceCall Call to PBX service. It is generic method with allows to request service from system extensions such as conference extension, PlayFile, RecordFile etc.
SetGlobalParams Allows to set global instance parameters. Works only for single instance installations where configuration server has rights to modify them
SetParameter(String, String) Calls SetParameter(String, String, NullableParameterType, String, IOMTransaction) for instant modification
SetParameter(String, String, IOMTransaction) Adds parameter value update to the specified object using SetParameter(String, String, NullableParameterType, String, IOMTransaction)
SetParameter(String, String, NullableParameterType, String) Calls SetParameter(String, String, NullableParameterType, String, IOMTransaction) for instant modification
SetParameter(String, String, NullableParameterType, String, IOMTransaction) Updates existing custom parameter or adds new
Shutdown Shutdown of connection to configuration service. Call when no Root is available.
TransferCall(ActiveConnection, String) request to transfer established call. (replace participant of the call)
TransferCall(Int32, String, String) request to transfer established call. (replace participant of the call)
TransferCall(Int32, ActiveConnection, String) request to transfer established call. (replace participant of the call)
TryGetByIDT Allows to get Configuration object by persistent object hash code.
Supported objects are:
PhoneBookEntry
DN
Gateway
ActiveConnection
RegistrarRecord
OutboundRule
Group
UpdateBlackListEntries Adds or update specified array of BlackListEntry
WaitForCMConnect Waits for the call manager connection.
WaitForConnect Waits for the connected state.
WhisperTo request to listen the call and "whisper" to specified participant of the call
Obsolete.

Events

Deleted Occurs when the entity is removed
Inserted Occurs when a new entity added
Updated Occurs when the entity is updated

Fields

Extension Methods

Deserialize deserializes object and remenber repeatlist. object can be saved
(Defined by SerializationExtension)
GetRequiredParameterValue
(Defined by ParameterExtension)

See Also