olorunfemidavis / 3CXCallControlAPI_v16

3CXCallControlAPI_v16
21 stars 15 forks source link
3cx call-controller

3CXObjectModel.3.0.0.0_v16.chm - help file for Configuration and Call Control API V16 OMSamples - project for .NET core 2.1 If you cannot open the chm, right click > properties > and press Unblock button.

#####################

Prerequisites:

  1. Stanalone host.
  2. User should have administrative rights.
  3. .NET core 2.1 environment
  4. Test installaion of 3CX Phone System version 16 alpha(orLater) WARNING: DO NOT RUN SAMPLES ON PRODUCTION (LIVE) enviroment
  5. Copy 3CXPhoneSystem.ini from C:\Program Files\3CX Phone System\Bin to the same folder where Visual Studio will output the binary files.
  6. Reference to 3cxpscomcpp2.dll should be adjuested according to the location of PBX binaries

Usage: dotnet OMSamplesCore.dll [/?]|[SampleName arg1 arg2 ...] List of samples:

SampleName: connection Implemented in OMSamples.Samples.ActiveConnections WARNING: Parameters: arg1 - dnregs |answer|ondn |all|drop |pickup |divertvm|divert |bargein |listen |whisper|record |transfer|join |makecall|callservice |attacheddata arg2 - numstartswith or [all]|achash|dnnum| |achash|achash |achash |achash |achash |achash |achash |achash |achash |achash |reghash |servicename |achach arg3 - additional-keys | | | | |destnum| |destnum|reghash |reghash|reghash|RecordingAction|destnum |achash2|destnum |list of key=value|empty or [list of key=value]

Description: shows how to work with ActiveConnection objects

SampleName: add_phone_model Implemented in OMSamples.Samples.AddPhoneModelSample Description: Creates PhoneModel object which describes capability for specific user agent

SampleName: playlists Implemented in OMSamples.Samples.PlayListsSample Parameters: arg1 - list|create|delete|update. no parameters - checks all audio streams arg2...argN - [name=AudioFeed.Name] [source=AudioFeed.Source] [autogain|no-audiogain] [shuffle|sorted] [volume=0..100] [no-stopempty|stopempty]

Description: prints, updates, creates, deletes playlists definitions. name source is the selector in update|delete. create - source is autogenerated if not specified. autogain set to false shuffle=false

SampleName: blacklist_monitor Implemented in OMSamples.Samples.BlackListMonitor Description: Sample of IP Black List manager

SampleName: calls Implemented in OMSamples.Samples.CallStateMonitor WARNING: Parameters: arg1 - show | monitor arg2 - callid or 'all' | new or all or callid

Description: Shows how to use CallMonitor

SampleName: change_parkcodes Implemented in OMSamples.Samples.ChangeParkCodesSample WARNING: This sample changes global settings of PBX. Parameters: arg1 - dial code to park call from the Parking Orbit arg2 - dial code to unpark call from the Parking Orbit

Description: Shows how to change dial codes of Parking Orbit

SampleName: change_vmbox_info Implemented in OMSamples.Samples.ChangeVMBoxInfoSample Parameters: arg1 - extension number

Description: Sets voicemail box information for the specified extension. Number of messages is hardcoded and set to 1 new message and 2 messages in total.

SampleName: conference Implemented in OMSamples.Samples.Conferences WARNING: Parameters: arg1 - active|startadhoc|scheduled|joinaudio |removeschedule|dropall | destroy |add | hold |resume |mute |unmute |drop |resetbridge arg2 - [id] |pin |[id] |schedule_id |schedule_id |active_id|active_id|active_id |active_id|active_id|active_id|active_id|active_id| arg3 - |number | | | | | |call_to_number|member_id|member_id|member_id|member_id|member_id|

Description: Commands: active - list of active audio conferences (including joined) startadhoc - (not supported) starts adhoc conference. number - add number initial member. pin - if specified as * - private conference of will call the in addition to the specified number scheduled - all scheduled meetings joinaudio - (not supported) replaces video only schedule with joined conference where viseo and audio conferences can communicate to each other. removeschedule - deleted schedule of conference. Active conference will continue as ad-hoc audio conference. dropall - drop all calls in active audio conference. Scheduled conference will be left available until end of schedule. ad-hoc will be terminated destroy - terminate all calls, delete schedule (if defined). Active conference will become inavailable add - adds call to specified number to the active conference hold - put member call on hold resume - resume member's call mute - mute incoming stream from member unmute - remove mute from incoming stream of member drop - disconenct member of audio conference resetbridge - reset parameters of the web meeting bridge

SampleName: create_delete_stat Implemented in OMSamples.Samples.CreateDeleteStatSample Description: This sample shows how to delete and create Statistics object. Statistics 'MYSTAT' should be initialized before runing this sample. (use update_stat sample)

SampleName: create_prompt_set Implemented in OMSamples.Samples.CreatePromptSetSample Description: Synthetic sample. It shows how to configure PromptSet object.

SampleName: create_shared_parking Implemented in OMSamples.Samples.CreateSharedParkingSample Parameters: arg1 - name of shared parking place

Description: This sample adds Shared parking place. The name MUST start with 'SP'.

SampleName: parameter Implemented in OMSamples.Samples.CustomParameters Parameters: arg1 - show | set | delete | arg2 - [partialname] | name | name | arg3 - | value | |

Description: Updates or sets parameter value

SampleName: display Implemented in OMSamples.Samples.DisplayAllSample Description: Shows information about all Parameters, Codecs, predefined conditions of the rules, IVRs and Extensions.

SampleName: dn_monitor Implemented in OMSamples.Samples.DNmonitorSample Description: Shows how to listen for DN updates

SampleName: extension Implemented in OMSamples.Samples.ExtensionSample Parameters: arg1 - show | create | delete | update |lookupemail arg2 - [extnumber]| extnumber| extnumber | extnumber |email arg3 - | list_of_parameters | list_of_parameters|

Description: Working with Extension. Partial configuration list_of_parameters is sequence of space separated strings (taken in quotes if required): FIRST_NAME= - first name LAST_NAME= - last name EMAIL= - email MOBILE= - mobile number OUTBOUND_CALLER_ID= - mobile number profile.=AV(NA:.[].[],[+|-]NAI:.[].[],BUSY:.[].[],[+|-]BUSYI:.[].[]) profile.=AW(IALL:.[].[],[+|-]IOOO:.[].[],EALL:.[].[],[+|-]EOOO:.[].[]) CURRENT_STATUS= - name of the current profile prop.= - set DN property with name to the OVERRIDE_STATUS=, BINDTOMS=true|false REINVITES=true|false REPLACES=true|false RECORDCALLS=true|false SRTP=true|false Extension.= AGENTLOGIN= AGENTLOGOUT=

SampleName: ext_line_rule_update Implemented in OMSamples.Samples.ExternalLineRuleUpdateSample WARNING: This sample will modify destination of existing rules. Line should be recreated after this test Parameters: arg1 - Virtual extension number of the line

Description: This sample shows how to change destination of ExternalLineRule

SampleName: fax Implemented in OMSamples.Samples.FaxExtensionSample Parameters: arg1 - show |create | update |delete
arg2 - [dnnumber]|dnnumber | dnnumber |dnnumber arg3 - |parameters| parameters|
arg4...argN - parameters: AUTHID= - AUTHPASS= - alfanumeric string OUTBOUND_CALLER_ID= - outbound called if for calls originated by the device prop.= - set DN property with naem to the

Description: Shows how to work with FaxExtension object

SampleName: invoke Implemented in OMSamples.Samples.InvokeSample Parameters: arg1 - command which should be invoked arg2, arg3 and so on - additional parameters for Invoke method - each additional parameter should be set as parameter_name=parameter_value

Description: Shows how to use PhoneSystem.Invoke() method

SampleName: ivr Implemented in OMSamples.Samples.IVRSample Parameters: arg1 - show | create | delete | update
arg2 - [ivr number]| ivrnumber | ivrnumber | ivrnumber
arg3 - | list_of_parameters| | list_of_parameters

Description: Working with IVR. list_of_parameters is sequence of space separated strings (taken in quotes if required): PROMPT=filename|EXT - file which is placed in directory specified by IVRPROMPTPATH parameter or extnumber where from to record new fine with random name O=.[] - assign specific type of destination to option . is from enum IVRForwardType - local number must be proper for specific number TO= - number of seconds TODEST=.[] - timeout action - same as for options NAME= - name of ivr prop.= - set DN property with naem to the

SampleName: notifications Implemented in OMSamples.Samples.NotificationsMonitorSample Parameters: arg1 - Object type name

Description: Shows update notifications of specified data class. All notifications will be shown if arg1 is not specified

SampleName: omlookup Implemented in OMSamples.Samples.OMLookup Description: Shows how to use OMLookup to make own lookup collection of objects. sample is for Extension.EmailAddress

SampleName: outboundrule Implemented in OMSamples.Samples.OutboundRuleSample Parameters: arg1 - show | create | update | delete | gateways arg2 - [name] | parameters | id | id | arg3 - | | parameters|

Description: Working with OurboundRule. list_of_parameters is sequence of space separated strings (taken in quotes if required): NAME=. checked for uniqueness PREFIX= PRIORITY= - no check. NUMBERLENGTH= DNRANGES= GROUPS= ROUTE=..


SampleName: park_orbit_monitor Implemented in OMSamples.Samples.ParkOrbitMonitorSample Description: Monitors activity on Parking Orbit

SampleName: phonebook Implemented in OMSamples.Samples.PhoneBookSample Parameters: arg1 - show |lookup | create | update | delete arg2 - 'all'|'company'|dnnumber |'company'|dnnumber]| ['company'|dnnumber]| ID | ID
arg3...agrN - |lookup_parameters | content_parameters | content_parameters|

Description: Working with PhoneBook Where: lookup_parameters: content_parameters: [PhoneBookEntry property name]= - contact first name

SampleName: queue Implemented in OMSamples.Samples.QueueSample Parameters: arg1 - show | create | update | delete
arg2 - [qnumber]| qnumber | qnumber | qnumber arg3 - | parameters | parameters|

Description: Working with Queues. parameters is sequence of space separated strings (taken in quotes if required): NAME= - name of the queue PSTRATEGY= - polling strategy as named in Queue.PollingStrategyType POLLINGTIME= - ringing time for polling callss INTRO=filename - intro prompt of the queue - the file which is loacted in the directory specified by IVRPROMPTPATH parameter. MOH=filename - Music On Hold for calls which are waiting in the queue AGENTS=[,] - list of queue agents MANAGERS=[,] - list of queue managers MAXWAIT= - maximal time of waiting in the queue. NOANSWERDEST=.[].[] - timeout action - same as for options LOGIN=[,] - Agents to login into the queue LOGOUT=[,] - Agents to logout from the queue prop.= - set DN property with naem to the

SampleName: qlogin Implemented in OMSamples.Samples.QueueLogin WARNING: changes login status of the agent in queues Parameters: arg1 - login_all|logout_all|login_current|logout_current|login_only_to|logout_only_from|show_status arg2 - agent_extension_number arg3...argN - specified list of the queues where action specified by arg1 should be applied

Description: shows how to change status of the agent in the queue.

SampleName: refresh_line_registration Implemented in OMSamples.Samples.RefreshLineRegistrationSample Parameters: arg1 - Virtual extension number of External Line

Description: Shows how to refresh registration on VoIP provider Line

SampleName: resetconnection Implemented in OMSamples.Samples.ResetConnection no description

SampleName: ringgroup Implemented in OMSamples.Samples.RingGroupSampel Parameters: arg1 - show | create | update | delete
arg2 - [rgnumber]| rgrnumber | rgnumber | rgnumber arg3 - | parameters | parameters|

Description: Working with RingGroup. list_of_parameters is sequence of space separated strings (taken in quotes if required): NAME= - name of the queue STRATEGY= - polling strategy as named in Queue.PollingStrategyType AGENTS=[,] - list of riggroup RINGTIME= - ring timeout. NOANSWERDEST=.[].[] - timeout action - same as for options prop.= - set DN property with naem to the

NOTE: RingGroup with Paging strategy can be configured to use multicast transport instead of making calls to each of members.
      To set/reset usage of multicast, set/reset following DN properties of the Paging ringgroup:
        MULTICASTADDR=<muilticatIP>
        MULTICASTPORT=<multocastport>
        MULTICASTCODEC=<multicastcodec>
        MULTICASTPTIME=<codecptime>

SampleName: serialization Implemented in OMSamples.Samples.Serialization WARNING: Deserialization modifies configuration (adds or modify objects) Parameters: arg1 - serialize | deserialize
arg2 - xmlfile | xmlfile
arg3 - |

Description: Shows how to use serialization subsystem of Object model

SampleName: musiconhold Implemented in OMSamples.Samples.MusicOnHold WARNING: modifies configuration. Parameters: arg1...argN - music on hold source in form ENTITY=source where ENTITY is PARAMETER name where source is stored (see array of names in code) or DN.Number of the queue. if no parametest provided - shows full list of configured objects and checks validity of the source

Description: shows how to change music on hold settings

SampleName: officehours Implemented in OMSamples.Samples.SetOfficeHoursSample WARNING: This sample can modify office hours/breaktime of objects. Parameters: arg1 - show | setofficetime | setbreaktime |setholiday |removeholiday arg2 - [holidays|office|dn] | "office" or dnnumber| "office" or dnnumber|nameofholiday |nameofholiday arg3 - [dnnumber or name of holiday]| RuleHoursType | RuleHoursType |yyyy-MM-dd=[hh\:mm]]| arg4...agrN - | [list_of_ranges] |[list_of_ranges] |yyyy-MM-dd=[hh\:mm]]|

Description: Shows how to work with Schedule object and holidays. list_of_ranges is sequence of the strings. Modifications are applied only for specified days. to clear schedule of specific DayOfWeek set it empty{} DayOfWeek=[start-end][,start-end]...


SampleName: statmonitor Implemented in OMSamples.Samples.StatisticsMonitorSample Parameters: arg1..agrN - Statistics

Description: Shows notificatins for specific statistics object.

SampleName: update_stat Implemented in OMSamples.Samples.UpdateStatSample Description: This sample creates and continuously update Statistic object named 'MYSTAT'. After running this sample statistics 'MYSTAT' will be available for create_delete_stat sample