This application is intended to ring round a specified set of destinations and play custom voice prompt.
Call routing setup
WARNING! Both Section and Option values MUST be lowercase in the database. They are mixed case here for readability only.
|Campaign||SIPProxy||What SIP proxy to use for outgoing calls.||The value specified in -l command line option but with port 5061 or 127.0.0.1:5061|
|Campaign||ScanIntervalSec||Delay between scans for new campaign calls.||5 seconds|
The application uses tables campaigns and campaign_phones to find new campaigns and keep track of call attempts. Additionally the schedules and schedule_records tables can be used to schedule the campaign calls.
Short table overview campaigns
|i_campaign||The primary key.|
|name||Short name of the campaign.|
|description||Long description of the campaign.|
|i_ivr_prompt||The identifier of ivr_prompt to play.|
|paused||Whether the campaign is temporarily stopped.|
|username||Authentication name to use while calling out.|
|md5secret||Password to use with the username.|
|cli||Use this value as CLI when calling out. If not set the CLD value used as CLI.|
|max_concurrent_calls||The maximum number of concurrent calls per the campaign (default: 20)|
|max_attempts||The maximum number of attempts to call each destination (default: 3)|
|timeout_sec||How long to wait for destination to answer (default: 300 seconds)|
|backoff_sec||The delay after unsuccessful call before next attempt (default: 600 seconds)|
|threshold_msec||How long the prompt should have been playing to recognize the call as successful (default: 3000 milliseconds)|
|i_campaign_phone||The primary key.|
|i_campaign||Which campaign this phone belongs to.|
|finished||False when the record still in progress.|
|expires||It is NULL when the record has never been processed. The expiration date and time is contained here otherwise.|
|next_call||The instant when next call attempt will take place. May be NULL which means immediately.|
|call_count||Number of call attempts made.|
|status||One of the values: 'idle', 'trying', 'answer', 'failure', 'premature hangup' or 'success'. The value is updated in real time.|
|i_schedule||The primary key.|
|name||Short name of the schedule.|
|description||Long description of the schedule.|
|i_schedule_record||The primary key.|
|i_schedule||Which schedule this record belongs to.|
|start_wday||Weekday when to start the campaign (1-Monday,... 7-Sunday)|
|stop_wday||Weekday when to stop the campaign (1-Monday,... 7-Sunday)|
|start_time||Daytime to start the campaign|
|stop_time||Daytime to stop the campaign|
Note: The start and stop can be reversed. For example if the start_wday is Saturday and stop_wday is Tuesday then the campaign will take place on Saturday, Sunday, Monday and Tuesday. The same rule applies to start_time and stop_time.
Note: The time intervals are inclusive (see the previous example).
Note: If some interval contains NULL start or stop value then this interval matches any time value.