Blog

CyburDial’s AI-Driven Predictive Dialer: Ensuring Compliance with FCC Regulations

Predictive dialer

CyburDial’s AI-Driven Predictive Dialer: Ensuring Compliance with FCC Regulations

In the dynamic landscape of telemarketing, compliance with Federal Communications Commission (FCC) regulations is paramount to the success and reputation of businesses. CyburDial’s cutting-edge AI-driven predictive dialer emerges as a crucial solution in maintaining compliance, particularly by addressing the drop rate limitations set forth by the FCC.

Understanding FCC Regulations on Drop Rates

The FCC places restrictions on the drop rates for outbound calls to ensure a positive and non-intrusive experience for consumers. A drop rate refers to the percentage of calls that are terminated before a live person answers. Exceeding the FCC’s acceptable drop rate can lead to penalties and reputational damage for businesses.

How CyburDial’s AI-Driven Predictive Dialer Ensures Compliance

CyburDial’s AI-driven predictive dialer goes beyond traditional dialing systems, incorporating intelligent algorithms that contribute significantly to compliance efforts.

1. Dynamic Call Analysis:

The AI-driven predictive dialer continuously analyzes real-time data to dynamically adjust dialing rates based on various factors, including agent availability and call answer times. This ensures that the drop rate remains within FCC-mandated limits.

2. Smart Call Scheduling:

By predicting the optimal times to place calls, CyburDial’s predictive dialer minimizes the likelihood of dropped calls. The system intelligently schedules calls during periods when agents are available, increasing the probability of connecting with live prospects.

3. Adaptive Dialing Algorithms:

CyburDial’s adaptive algorithms assess call metrics and adjust dialing rates to maintain an optimal balance between efficiency and compliance. This adaptability is crucial in preventing excessive dropped calls and ensuring a positive customer experience.

4. Real-time Monitoring and Analytics:

The platform provides real-time monitoring and analytics, allowing supervisors to track key performance indicators, including drop rates. This transparency empowers businesses to proactively address any issues, maintain compliance, and continually enhance their telemarketing strategies.

5. Customizable Compliance Settings:

CyburDial understands that each business may have unique compliance requirements. The AI-driven predictive dialer offers customizable settings, allowing businesses to tailor their dialing parameters in accordance with FCC regulations and industry standards.

Conclusion

In the ever-evolving landscape of telemarketing regulations, CyburDial’s AI-driven predictive dialer emerges as a strategic ally for businesses aiming to stay compliant with FCC guidelines. By harnessing the power of artificial intelligence, CyburDial not only enhances efficiency in outbound calling but also ensures that businesses operate within the bounds of regulatory frameworks. With features like dynamic call analysis, smart scheduling, and adaptive algorithms, CyburDial empowers businesses to strike the delicate balance between productivity and compliance, fostering positive customer relationships and sustained success.

Understanding Telemarketing Regulations and Compliance: A Comprehensive Guide

Compliance

Understanding Telemarketing Regulations and Compliance: A Comprehensive Guide

Telemarketing, a powerful tool for businesses to connect with potential customers, comes with its set of regulations and compliance standards. Understanding and adhering to these guidelines is essential for the success of any telemarketing campaign. In this article, we’ll delve into the key aspects of telemarketing regulations and how CyburDial is playing a pivotal role in helping call centers stay compliant.

The Regulatory Landscape

Telemarketing regulations are in place to protect consumers from unwanted and intrusive calls, ensuring fair business practices. Some of the key regulations include:

1. Do Not Call (DNC) Registry:

Consumers can register their phone numbers on the DNC registry to avoid unsolicited telemarketing calls. Telemarketers must regularly update their calling lists to exclude registered numbers.

2. Telemarketing Sales Rule (TSR):

Enforced by the Federal Trade Commission (FTC), the TSR sets rules for telemarketers, including disclosure requirements, restrictions on misrepresentations, and prohibitions against certain payment methods.

3. Telephone Consumer Protection Act (TCPA):

The TCPA restricts telemarketing calls, including the use of prerecorded messages and auto-dialing systems, and requires prior express consent for certain communications.

4. FCC Call Abandonment (Drop Percent)

In the United States, the Federal Communications Commission (FCC) has regulations related to call abandonment, which includes dropped call rates for telemarketing calls. These regulations aim to ensure that consumers are not subjected to excessive abandoned or dropped calls, contributing to a positive customer experience.

Staying Compliant with CyburDial

CyburDial, a leading provider of advanced call center solutions, recognizes the importance of compliance in the telemarketing landscape. Here’s how CyburDial aids call centers in staying compliant:

1. Automatic DNC Scrubbing:

CyburDial’s intelligent dialing system includes automatic Do Not Call (DNC) scrubbing, ensuring that numbers registered on the DNC registry are excluded from call lists. This feature helps call centers avoid unnecessary penalties and maintain a positive reputation.

2. TCPA-Compliant Dialing:

CyburDial’s platform is designed with TCPA regulations in mind. It enables call centers to adhere to TCPA requirements, including consent management for automated calls and text messages, reducing the risk of legal issues associated with non-compliance.

3. Customizable Compliance Settings:

Call centers using CyburDial have the flexibility to customize compliance settings based on specific regulations and industry standards. This adaptability ensures that the system aligns seamlessly with the unique compliance needs of each business.

4. Real-time Monitoring and Reporting:

CyburDial provides real-time monitoring and reporting features, allowing call centers to track and audit their activities continuously. This transparency not only ensures compliance but also helps in identifying and addressing potential issues promptly.

5. Regulatory Updates and Support:

CyburDial stays abreast of changes in telemarketing regulations and updates its system accordingly. The platform is supported by a team of compliance experts who provide guidance and support to call centers, helping them navigate the evolving regulatory landscape.

Conclusion

Navigating the intricate landscape of telemarketing regulations is crucial for the success and sustainability of call centers. CyburDial’s commitment to compliance, combined with its advanced features and customizable settings, empowers call centers to operate efficiently while ensuring adherence to industry regulations. By choosing CyburDial, call centers can focus on building meaningful connections with prospects while resting assured that their operations align with the highest standards of compliance.

Maximizing Call Center Efficiency: Popular CRM Integrations You Need to Know

CRM integrations

Maximizing Call Center Efficiency: Popular CRM Integrations You Need to Know

In the fast-paced world of call centers, efficiency is key to delivering exceptional customer service and driving successful outcomes. One powerful strategy for achieving this efficiency is through seamless integration with Customer Relationship Management (CRM) systems. In this article, we’ll explore some popular CRM integrations that are transforming call center operations and boosting overall productivity.

1. Salesforce: Elevating Customer Engagement

Salesforce is a giant in the CRM space, and its integration with call center operations brings a wealth of benefits. Agents can access customer information, track interactions, and manage leads within a unified platform. This integration not only streamlines processes but also enhances customer engagement by providing a 360-degree view of the customer journey.

2. HubSpot: Unifying Marketing and Sales Efforts

HubSpot’s CRM integration offers a holistic approach to managing customer interactions. By seamlessly connecting marketing and sales efforts, call center agents gain valuable insights into customer behavior and preferences. This integration empowers agents to deliver personalized interactions, ultimately driving conversions and fostering long-term customer relationships.

3. Zoho CRM: Enhancing Agent Productivity

Zoho CRM integration brings a user-friendly interface and robust features to call center agents. From lead management to automated workflows, Zoho CRM helps streamline processes, allowing agents to focus on what they do best – engaging with customers. The real-time synchronization ensures that agents have the latest information at their fingertips, optimizing their productivity.

4. Microsoft Dynamics 365: Integrating Business Applications

Microsoft Dynamics 365 seamlessly integrates with call center operations, providing a comprehensive solution for customer engagement. Agents can access customer data, track interactions, and leverage powerful analytics tools. The integration extends beyond traditional CRM, incorporating various business applications to create a unified and efficient call center ecosystem.

5. Zendesk: Elevating Customer Support

For call centers prioritizing exceptional customer support, Zendesk integration is a game-changer. This CRM platform focuses on optimizing customer interactions, enabling agents to provide timely and personalized assistance. With features like ticketing and knowledge base integration, Zendesk enhances the overall customer service experience.

6. SugarCRM: Customizable and Scalable Solutions

SugarCRM offers a highly customizable CRM integration for call centers, allowing businesses to tailor the system to their unique needs. This flexibility ensures that agents can work with a solution that aligns precisely with their workflow, promoting efficiency and adaptability.

Conclusion: Empowering Call Centers with CRM Integration

In a competitive landscape, call centers must leverage every advantage to deliver exceptional service and drive results. CRM integrations provide a strategic solution by centralizing customer information, streamlining workflows, and fostering a more personalized and efficient approach. As call centers continue to evolve, integrating with these popular CRM platforms becomes not just an option but a necessity for achieving peak efficiency and customer satisfaction.

HIPAA Compliance: A Must for Health Insurance Call Centers with CyburDial

HIPAA Compliance: A Must for Health Insurance Call Centers with CyburDial

In the dynamic landscape of health insurance call centers, the adherence to HIPAA (Health Insurance Portability and Accountability Act) compliance is not just a regulatory requirement; it’s a cornerstone of maintaining trust and security in handling sensitive patient information. Call centers operating in the healthcare domain face unique challenges, and ensuring HIPAA compliance is paramount. This article explores why HIPAA compliance is a must for health insurance call centers and how CyburDial not only supports compliance but also increases sales efficiency, addressing common pain points that other dialer software often falls short on.

Understanding the Importance of HIPAA Compliance

HIPAA sets the standard for protecting sensitive patient data. For health insurance call centers, which deal with personal health information (PHI) on a daily basis, compliance is not only legally mandated but also a fundamental ethical obligation. Ensuring the confidentiality, integrity, and availability of PHI is crucial to building and maintaining trust with policyholders.

CyburDial’s HIPAA-Compliant Solutions

CyburDial recognizes the criticality of HIPAA compliance in the healthcare sector and provides robust solutions to support health insurance call centers in meeting and exceeding these regulatory requirements. CyburDial’s HIPAA-compliant features include secure data transmission, encrypted storage, and strict access controls, ensuring that PHI remains safeguarded throughout the communication process.

Efficiency Boost with CyburDial

  1. Automated Workflows: CyburDial’s automation capabilities streamline repetitive tasks, reducing manual errors and increasing operational efficiency in health insurance call centers.
  2. Real-time Analytics: Gain valuable insights into call center performance with CyburDial’s real-time analytics, allowing for data-driven decision-making to optimize sales strategies.
  3. AI-Driven Solutions: CyburDial’s AI-powered features, such as answering machine detection (AMD), enhance connection rates by efficiently identifying live calls, allowing agents to focus on meaningful conversations.
  4. CRM Integration: Seamlessly integrate CyburDial with CRM systems commonly used in health insurance call centers, providing a unified platform for managing customer interactions and improving sales processes.

Addressing Common Pain Points

  1. Scalability: CyburDial’s cloud-based infrastructure ensures scalability, allowing health insurance call centers to adapt to changing call volumes and business demands without the need for extensive hardware investments.
  2. Quality Control: CyburDial’s quality control module, coupled with AI capabilities, enables real-time analysis of calls, identifying areas for improvement and ensuring compliance with quality standards.
  3. Cost Efficiency: Eliminate per-seat charges with CyburDial’s innovative pricing model, allowing health insurance call centers to manage costs effectively and allocate resources based on operational needs.

Conclusion: Elevating Health Insurance Call Centers with CyburDial

As health insurance call centers navigate the complex landscape of regulatory compliance, CyburDial emerges as a strategic ally, not only ensuring HIPAA compliance but also enhancing operational efficiency and addressing common pain points. The synergy of compliance and efficiency positions CyburDial as a valuable asset for health insurance call centers seeking to provide exceptional service while maintaining the highest standards of security and confidentiality. With CyburDial, health insurance call centers can elevate their operations, increase sales, and build lasting trust with policyholders in the ever-evolving healthcare landscape.

The Crucial Role of Stress Management in Ensuring Call Center Agent Well-Being

Stress management

The Crucial Role of Stress Management in Ensuring Call Center Agent Well-Being

In the high-paced realm of call center operations, stress is an inevitable companion for agents managing diverse and often demanding customer interactions. The impact of stress on the well-being of call center agents is profound, affecting both their mental health and overall performance. In this article, we explore the critical importance of stress management in ensuring the well-being of call center agents, and how a supportive environment is crucial for their success and productivity.

Understanding the Toll of Stress in Call Centers

Call center agents often encounter high-pressure situations, dealing with a myriad of customer concerns while aiming to meet performance targets. The cumulative effect of such demands leads to increased stress levels among agents. Prolonged stress not only affects their mental and physical health but also influences their work quality and job satisfaction.

The Impact on Agent Well-Being

Stress has a detrimental effect on call center agents’ well-being. It contributes to heightened levels of anxiety, fatigue, and burnout, impacting their overall job satisfaction and performance. High-stress levels can lead to decreased productivity, higher absenteeism, and increased turnover rates, affecting both the agents and the call center’s operational efficiency.

The Imperative of Stress Management Strategies

Implementing stress management strategies is vital to create a healthier work environment for call center agents. These strategies involve various approaches, such as providing robust support systems, introducing regular breaks, offering stress management workshops, and fostering a culture that prioritizes mental health and work-life balance.

Supporting Agents’ Mental Health and Resilience

By prioritizing stress management, call centers can enhance the mental health and resilience of their agents. Supportive measures, including open communication channels, access to counseling services, and proactive stress reduction techniques, equip agents with the tools to manage stress effectively, fostering a healthier and more productive workforce.

Embracing a Holistic Approach to Agent Well-Being

Call centers must adopt a holistic approach to agent well-being that encompasses stress management initiatives. Understanding the impact of stress on agents’ health and performance is the first step toward implementing effective strategies that prioritize their mental health and contribute to a positive work environment.

Conclusion: Fostering a Supportive Environment

In a call center setting, stress management is not just a supportive measure but a crucial component for ensuring the overall well-being and productivity of agents. By fostering a supportive and stress-aware culture, call centers can cultivate an environment where agents thrive, leading to higher job satisfaction, lower turnover rates, and ultimately, better customer service.

Prioritizing stress management is not only a commitment to the well-being of call center agents but a strategic investment in the success and resilience of the entire operation.

Unveiling the Evolution: AI’s Pivotal Role in Call Center Operations

Artificial intelligence

Unveiling the Evolution: AI’s Pivotal Role in Call Center Operations


Unveiling the Evolution: AI’s Pivotal Role in Call Center Operations

Call centers stand as the frontline of customer engagement, handling a myriad of interactions daily. With the advent of Artificial Intelligence (AI), this landscape has undergone a profound revolution, reshaping processes, improving efficiency, and enhancing customer experiences.

Enhanced Customer Service

AI-powered chatbots and virtual assistants have become integral components of call centers. These bots are adept at handling routine queries, providing immediate responses, and freeing up human agents to focus on more complex tasks. The result? Faster response times and increased customer satisfaction.

Data-Driven Insights

AI excels at sifting through colossal amounts of data in real-time, extracting patterns, trends, and actionable insights. This analytical prowess allows call centers to optimize operations, predict customer behavior, and tailor their services to individual preferences, fostering a more personalized customer experience.

Predictive Analytics and Forecasting

AI tools enable predictive analytics by analyzing historical data to forecast future trends and customer behavior. This capability empowers call centers to anticipate needs, allocate resources more efficiently, and proactively address potential issues before they escalate, significantly enhancing operational strategies.

Quality Assurance and Training

AI facilitates call monitoring and analysis, allowing for the evaluation of agent performance and call quality. It aids in identifying areas for improvement, leading to targeted training programs and ensuring consistent service quality across the board.

CyburDial: Revolutionizing Lead Generation

CyburDial, a cloud-based dialer company, has been leveraging AI in lead generation and call center functionalities. Its approach, akin to AirCall in some aspects, embraces AI to streamline dialing processes, improve call routing, and optimize customer engagement. CyburDial’s utilization of AI in customer segmentation and predictive dialing sets it apart, enhancing lead generation and conversion rates.

The Competitive Landscape

Comparatively, CyburDial’s focus on AI-driven lead generation sets it apart from competitors like Convoso, RingCentral, and Dialpad. While these companies have made strides in communication tools and call center solutions, CyburDial’s emphasis on AI’s role in lead generation gives it a unique edge.

In conclusion, the integration of AI in call center operations represents a transformative leap. It reshapes customer service, streamlines processes, and enhances productivity. CyburDial’s use of AI in lead generation exemplifies this shift, marking a unique approach in the competitive market.

AI continues to be the cornerstone of innovation in call center operations, constantly pushing the boundaries of what’s possible, and transforming the customer service landscape into a more efficient, proactive, and customer-centric domain.


Key Call Center Metrics You Should be Tracking

KPI's

Key Call Center Metrics You Should be Tracking

In the fast-paced world of call centers, tracking the right metrics is like having a compass to navigate through turbulent seas. It’s not just about measuring performance; it’s about optimizing it. If you’re aiming for a call center that operates like a well-oiled machine, you need to focus on the key metrics that matter. In this article, we’ll guide you through the essential call center metrics that you should be tracking to ensure your operation is sailing smoothly and efficiently.

1. First Call Resolution (FCR): Your Customers’ First Impression

“Why First Call Resolution Is the True Measure of Customer Satisfaction”

FCR is the gold standard of call center success. It measures the percentage of customer issues resolved on the first call. The higher your FCR, the happier your customers are. High FCR means reduced operational costs, fewer escalations, and satisfied clients.

2. Average Handle Time (AHT): Balancing Speed and Quality

“Optimizing Average Handle Time: How to Keep Customers Happy without Rushing Them”

AHT measures the average time an agent spends on a call, including talk time, hold time, and after-call work. Balancing efficiency with quality is the key. Lower AHT can increase agent productivity, but rushing through calls can harm customer experience.

3. Service Level: Setting the Bar for Responsiveness

“Service Level Goals: Why Your Call Center’s Response Time Matters”

Service level reflects your ability to respond to calls within a set time frame. It’s vital to set realistic service level goals to ensure you’re responsive without overloading agents.

4. Occupancy Rate: Efficient Use of Resources

“Occupancy Rate Optimization: Striking the Right Balance in Call Center Staffing”

Occupancy rate measures how busy agents are during their working hours. High occupancy rates can lead to agent burnout, while low rates result in underutilized resources. Finding the sweet spot is essential.

5. Customer Satisfaction (CSAT): The Ultimate Litmus Test

“The CSAT Challenge: How to Ensure Your Call Center Leaves Every Customer Satisfied”

CSAT is a direct measure of customer satisfaction. Monitoring this metric provides valuable insights into customer experience and helps you identify areas for improvement.

6. Abandonment Rate: Preventing Customer Frustration

“Reducing Abandonment Rates: A Recipe for Happy Customers and Productive Agents”

Abandonment rate measures the percentage of callers who hang up before speaking to an agent. A high abandonment rate can be frustrating for customers and detrimental to your call center’s efficiency.

7. Agent Turnover Rate: Retaining Top Talent

“The High Cost of Agent Turnover: Strategies to Keep Your Best Agents on Board”

Agent turnover rate is the percentage of agents who leave your call center within a specified time frame. High turnover is costly and disruptive, so tracking this metric is crucial.

8. Quality Assurance Score: Maintaining Excellence

“Why Quality Assurance Scores Are the Building Blocks of Call Center Success”

Quality assurance (QA) scores represent the quality of interactions with customers. By monitoring these scores, you can identify areas for improvement and maintain a high standard of service.

In the dynamic world of call centers, tracking and optimizing these key metrics are the linchpin to success. Each metric tells a story, and by understanding and acting on these insights, you can ensure your call center operates at peak efficiency while delivering exceptional customer experiences. So, what are you waiting for? It’s time to start tracking the metrics that truly matter and setting sail toward call center excellence.

A Real-World Transformation: How CyburDial Rescued a Health Insurance Call Center

Health insurance

A Real-World Transformation: How CyburDial Rescued a Health Insurance Call Center

In the heart of the bustling health insurance industry, a call center was grappling with a multitude of challenges. HIPAA compliance and data security were paramount concerns, ensuring the highest level of protection for sensitive patient information. Agents were struggling to connect with real customers amidst the barrage of answering machines. Callers flagged their numbers as “scam likely,” making it even harder to establish trust.

The CyburDial Solution:

1. Data Security and HIPAA Compliance: CyburDial stepped in with state-of-the-art data security measures, including encryption for data and recordings that surpassed industry standards. The call center could now rest assured that every piece of sensitive information was impenetrable.

2. Local Presence with AI-Driven DID Management: CyburDial’s AI-driven Direct Inward Dialing (DID) management system changed the game. It provided local presence and automatically replaced spam flagged numbers, boosting trust among customers. This, in turn, significantly increased the rate of answered calls.

3. AI AMD (Answering Machine Detection): With CyburDial’s AI AMD, the call center agents no longer wasted precious minutes on answering machines. The AI detected answering machines with an astonishing 95% accuracy, ensuring that agents could connect with more humans.

4. Automation for Documentation: CyburDial introduced automation into the call center’s processes. Automated emails were sent to customers with their policy documentation, streamlining the customer experience. Additionally, SMS messages were used for appointment confirmations, further enhancing customer engagement.

5. CRM Integration: Information flowed seamlessly into the CRM system, saving agents time and reducing errors. The CRM became a single source of truth for customer data.

The Outcome:

The call center transformed from a place of frustration to one of efficiency. HIPAA compliance was never a concern, and data security was at its peak. The local presence and AI-driven DID management boosted answered calls, while the AI AMD ensured agents’ time was used efficiently.

CyburDial’s automation saved time and money while enhancing the customer experience. The CRM integration simplified processes, allowing agents to focus on what they did best – providing excellent service. The call center had transitioned from a place of headaches to one of efficiency and, most importantly, superior customer service. CyburDial had truly saved the day.

How to – Use ViciDial’s AGI’s

AGI

How to – Use ViciDIal’s AGI’s


In the dynamic world of call centers, staying ahead of the curve requires constant innovation. One groundbreaking technology that’s been quietly shaping the industry is VICIdial AGI (Asterisk Gateway Interface). AGIs are the unsung heroes behind the scenes, making complex call center operations look seamless and effortless.
What is VICIdial AGI?
VICIdial, a popular open-source call center suite, employs AGI to interact with Asterisk, the underlying telephony platform. This interface empowers VICIdial to communicate with external systems and execute a wide range of tasks during live calls, offering call centers an unprecedented level of automation and customization.
The Power of Automation
VICIdial AGIs can automate repetitive and time-consuming tasks, such as call routing, data retrieval, and post-call actions. This automation significantly reduces the workload on agents, allowing them to focus on providing top-notch customer service.
Enhancing the Customer Experience
AGIs are the magic behind personalized customer experiences. They can pull up customer data in real-time, enabling agents to greet callers by name and access their history and preferences. This level of personalization can transform a routine call into a memorable interaction.
Unleashing Real-time Insights
VICIdial AGIs are adept at gathering and analyzing data during live calls. This real-time insight is invaluable for call center managers. It provides a window into agent performance, customer sentiment, and call outcomes, helping in immediate decision-making and performance optimization.
Customizing to Perfection
One of the greatest strengths of VICIdial AGIs is their ability to be tailored to meet the specific needs of a call center. From custom scripts to integration with external databases and applications, AGIs offer a world of possibilities.
Challenges and Expertise
While VICIdial AGIs offer immense potential, they do require a level of technical expertise to configure and maintain. Call centers often seek the support of experienced professionals who can harness the full power of AGIs.
The Future of VICIdial AGIs
As call centers continue to evolve, VICIdial AGIs are set to play an even more significant role. They are the driving force behind efficient, personalized, and data-driven customer interactions.
In conclusion, VICIdial AGIs are a true game-changer in the call center industry, providing automation, personalization, and real-time insights that redefine customer service. As businesses strive for excellence, AGIs are becoming a critical component in the pursuit of superior customer experiences.


In this article, I will just display some information from each AGI so there is a useful resource to see what each AGI’s function(s) are plus an example of how to use them. Keep in mind, these can all be changed within the source code to customize solutions you may be trying to accomplish. They can all be found here: /var/lib/asterisk/agi-bin/


agent-monitor.agi

# agent_monitor.agi      version 2.14
#
# NOTE! - To use this script you MUST have entries in the System Settings
#         "Custom Dialplan Entry" for this to work.
#         Read the AGENT_MONITOR.txt document for more information.
#
# This script is designed to allow managers to listen to agent sessions by
# dialing a phone exten number or user ID number. For this to work, the user ID
# or phone extension must be only digits. If you are using the phone extension,
# then all phone extensions on the system must be unique.
#
# user is prompted for a user ID or phone login then press #
# then the user is forwarded to monitor the active vicidial agent session
#
# ; settings for this script:
# ; 1. USER, PHONE, PLOGIN, REDIRECT or RANDOM, lookup by user id, phone extension or phone login (default is USER)
# ; 2. Y or N, log in api log (default is N)
# ; 3. BARGE or LISTEN, (default is LISTEN)
# ; 4. Prepopulated ID, for use in context by itself
# ; 5. Campaign limits, double-dash-delimited, i.e. "TEST--TEST2", (default is disabled)
# ; 6. Y or N, play user IDs to listen to (default is N)
#
# can be added as an AGI to a Call Menu, or just a direct extension transfer:
#
# ; call menu AGI with options:
#  agent_monitor.agi,USER---N---LISTEN------TEST--TEST2---N
#
# ; or as extension transfer to "up_monitor" context and "s" extension

agi-AGENT_dial_in.agi

# agi-AGENT_dial_in.agi      version 2.6
#
# This script is designed to allow agents the ability to dial in to an extension
# to establish the phone connection to their VICIDIAL session. The user login
# and password must be only digits and nothing but digits to use this utility.
#
# user is prompted for their user ID then press #
# user is prompted for their passcode then press #
# then the user is forwarded to the active vicidial agent session
#
# ; settings for this script:
# ; 1. allow user_id only login (disabled by default)
# ;     Y - allow user ID only with no password
# ;     CONTACTS - lookup the user ID as the 'office_num' field in the contact_information table
# ;     N or (blank) - require password (default)
# ; 2. forward to A or B within Call Menu instead of logging into an agent session
# ;     Y - forward to A option on valid user ID or B option on invalid user ID
# ;     N or (blank) - go to agent session (default)
#
# can be added as an AGI to a Call Menu, or as below:
# ;agent dial-in:
#exten => 2345,1,Answer         ; Answer the line
#exten => 2345,2,AGI(agi-AGENT_dial_in.agi)
#exten => 2345,3,Hangup
#
# ; call menu with options:
#       agi-AGENT_dial_in.agi,Y---Y

agi-AGENT_route.agi

# agi-AGENT_route.agi version 2.14
#
# for use with a Call Menu in the custom dialplan section or as an AGI route.
#
# ; settings for this script:
# ; 1. DID pattern to use for In-group initiation settings ('default' is default)
# ; 2. the agentdirect in-group to send the calls to ('AGENTDIRECT' is default)
# ; 3. transfer only to ACTIVE in the system agent or vicidial LOGGED_IN agent
# ;             ('ACTIVE' is default)
# ; 4. prompt for user ID, if this is filled in with a filename it will ask,
# ;             otherwise it will assume $extension is the user ID
# ; 5. number of digits required for user ID validation, X will allow anything,
# ;             this will only be enforced if "prompt for user ID" prompt is populated
# ; 6. audio filename for invalid selection, agent not available ('invalid' is default)
# ; 7. audio filename for invalid user id re-enter prompt, agent not available
# ; 8. number of retry attempts to enter a valid user ID
# ;             this will only be enforced if "prompt for user ID" prompt is populated
# ; 9. in-group to send the call to if there is no valid agent, if none is
# ;             defined, then the call will be directed to 's' exten
# ; 10. audio filename before sending call to no-agent route
# ; 11. audio filename before sending call to no-agent route if agent active but
# ;             not logged-in to vicidial
#
#; example in CallMenu AGI route with all options
# "agi-AGENT_route.agi,default---AGENTDIRECT---LOGGED_IN---if-u-know-ext-dial---X---invalid---please-try-again---3---TEST_IN3---pbxtransfer---outside-transf>
#; example with 4-digit agent IDs
# exten => _XXXX,1,AGI(agi-AGENT_route.agi,default---AGENTDIRECT---ACTIVE)

agi-CALLCARD_dial_in.agi

# agi-CALLCARD_dial_in.agi      version 2.6
#
# This script is designed to allow customers the ability to dial in to a DID and
# enter in a PIN number that would look up their account and send on to a
# specified in-group if pin is valid
#
# user is prompted for their PIN number only (no pound '#' required)
# then the user is forwarded to the active vicidial agent session
#
# can be added as an AGI to a Call Menu, or as below:
# Call Menu Entry: "agi-CALLCARD_dial_in.agi,en---3---callcard_pin_enter---callcard_pin_invalid---default"
# ;agent dial-in:
#exten => 2346,1,Answer         ; Answer the line
#exten => 2346,2,AGI(agi-CALLCARD_dial_in.agi,en---3---callcard_pin_enter---callcard_pin_invalid---default)
#exten => 2346,3,Hangup
#
# ; Below are the parameters needed for the script to be run properly
# ; 1. language
# ;     - en -                  English <default>
# ;     - es -                  Spanish
# ;     - fr -                  French, not fully supported
# ; 2. maximum attempts before hangup:
# ;     - 3        <default>
# ; 3. audio file enter pin number prompt:
# ;     - callcard_pin_enter        <default>
# ; 4. audio file invalid pin number prompt:
# ;     - callcard_pin_invalid      <default>
# ; 5. DID pattern to use for in-group forwarding settings:
# ;     - default      <default>
# ;         - USE-ORIGINATING-DID - this option will look up the DID the customer dialed in on and use those settings
#
# other audio files used:
# - pin-number-accepted
# - vm-youhave
# - callcard_minutes_left

agi-CANADA_PRI_CIDname.agi

# agi-CANADA_PRI_CIDname.agi version 0.1
#
# Runs after call goes through IAX loop to send out custom CallerIDname on
# Canadian PRIs that allow dynamic setting of CIDname with call initiation
#
# You need to have lines similar to those below in your extensions.conf file:
#
# ;outbound VICIDIAL calls:
#exten => _91NXXNXXXXXX,1,AGI(call_log.agi,${EXTEN})
#exten => _91NXXNXXXXXX,2,AGI(agi-CANADA_PRI_CIDname.agi,${EXTEN})
#exten => _91NXXNXXXXXX,3,Dial(${TRUNKX}/${EXTEN:1},55,tTo)
#exten => _91NXXNXXXXXX,4,Hangup

agi-DID_route.agi

# agi-DID_route.agi version 2.14
#
# runs when a call comes into an inbound context on a trunk. This script will
# send the calls to various places depending on the settings for each DID.
#
# You need to put a line similar to this below in your extensions.conf file in
# the context for where incoming calls go from your trunks (for example, the
# trunkinbound context which is present in the default dialplan):
#
#[trunkinbound]
# ;inbound DID catch-all:
#exten => _X.,1,AGI(agi-DID_route.agi)

agi-dtmf.agi

# agi-dtmf.agi - script for playing DTMF tones or signals received as the callerid field or in the command CLI
#
# DTMF sound files must be in /var/lib/asterisk/sounds for this to work
#
# Accepted values are: 1 2 3 4 5 6 7 8 9 0 # * ,
# comma means pause for 1 second (use 'S' for pause in CLI mode)
#
# exten => 8500998,1,Answer
# exten => 8500998,2,Playback(silence)
# exten => 8500998,3,AGI(agi-dtmf.agi)
#; exten => 8500998,3,AGI(agi-dtmf.agi,signalonly) ; optional signal only DTMF
# exten => 8500998,4,Hangup
#
# Can also be used in a Call Menu: agi-dtmf.agi,signalonly---12345   # optional signal only DTMF with CLI-defined DTMF values

agi-ingroup_survey.agi

# agi-ingroup_survey.agi version 2.14
#
# runs after a call gets transferred from an agent to ask a question, then
# optionally transfer to a call menu. Takes settings from an In-Group

agi-IVR_recording_verification.agi

# agi-IVR_recording_verification.agi      version 2.6
#
# This script is designed to function as a complete automated 3rd party
# verification IVR recording system. This script will work by optionally asking
# for a company ID and/or a customer phone number, then it will play through the
# listed prompts asking for a single digit press (i.e. 1 for a yes or a 3 for a
# no, hash/pound/star/zero/0 are not accepted only 1-9 is valid for these steps).
# All data for these calls will be logged to the vicidial_ivr table as well as
# optionally to a log file  in the standard astguiclient log file directory
# and/or STDERR output on the asterisk process. This script uses the
# /etc/astguiclient.conf file for database connection settings, logging data and
# for logfile path information only.
#
# With a modified VDAD agi transfer script, this script could also be used to do
# automated outbound surveys as well. Feature under development.
#
# ; 1. the DNIS or inbound number called
# ; 2. play the recording ID (Y|N) with prompt leading up to it
# ; 3. record this call(Y|N)
# ; 4. ask for a company code(Y|N) with the number of digits in that company code and the prompt
# ; 5. ask for a user code(Y|N) with the number of digits in that user code and the prompt
# ; 6. ask for the customer phone number(Y|N) with the number of digits in that phone number and the prompt (Y-10-85100001)
# ; 7. speak the current date (Y|N) with prompt announcing the date
# ; 8. a dash-delimited list of prompts that expect responses(85100002-85100003)
# ; 9. a "your recording ID is..." prompt (85100004)
# ; 10. logging/output (FILE|STDERR|BOTH|NONE)
#
# ;inbound IVR call:
#exten => 1234,1,Ringing        ; call ringing
#exten => 1234,2,Wait(1)        ; Wait 1 second for CID delivery from PRI
#exten => 1234,3,Answer         ; Answer the line
#exten => 1234,4,AGI(agi-IVR_recording_verification.agi,7274506620---Y-85100004---Y---Y-1-85100016---N---N---Y-85100007---85100009-600--85100012-30--8510001>
#exten => 1234,5,Hangup
#
# ;inbound IVR call from a VICIDIAL transfer:
#exten => _83002*.,1,Ringing            ; call ringing
#exten => _83002*.,2,Wait(1)            ; Wait 1 second for CID delivery
#exten => _83002*.,3,Answer             ; Answer the line
#exten => _83002*.,4,AGI(agi-IVR_recording_verification.agi,7275551234---N---Y---N---N---Y-10-85100001---N---85100002-85100003---85100004---BOTH)
#exten => _83002*.,5,Hangup

agi-LCR-Route.agi

# agi-LCR-Route.agi version 2.2.0
#
# This script looks up the NPANXX in the lcr table and sets
# the LCRTRUNK dialplan variable to the carrier string
# with the cheapest rate. If no carrier is found for this NPANXX
# the variable is unchanged so you should set it with the default
# previously.
#
# [globals]
# LCRTRUNK=SIP/provider1    ; default LCR trunk
#
# [default]
# ;outbound VICIDIAL calls:
# exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
# exten => _91NXXNXXXXXX,n,AGI(agi-LCR-Route.agi,${EXTEN:2:6})
# exten => _91NXXNXXXXXX,n,Dial(${LCRTRUNK}/${EXTEN:2},,To)
# exten => _91NXXNXXXXXX,n,Hangup
#
# Here is the SQL to create the lcr table:
#
# create table if not exists lcr (
#        npanxx mediumint not null,
#        rate varchar(10) not null,
#        carrier_string varchar(20) not null
# );
# alter table lcr add unique index (npanxx, rate, carrier_string);
#
# A typical npanxx from this table should look like:
#
# mysql> select npanxx,rate,carrier_string from lcr where npanxx='734223';
# +--------+--------+----------------+
# | npanxx | rate   | carrier_string |
# +--------+--------+----------------+
# | 734223 | 0.0064 | SIP/provider1  |
# | 734223 | 0.0076 | SIP/provider2  |
# +--------+--------+----------------+
#
# Unfortunately these rate sheets are not in a standard format.
# You will have to write a custom loading script to populate this table.
# An exampe loading script is provided in the extras directory of the
# astguiclient source code called lcr_loader_example.pl

agi-NVA_recording.agi

# agi-NVA_recording.agi version 2.12
#
# This script is designed to give recording ability to agents not the using
# ViciDial agent screen
#
# ; 1. logging output (NONE|STDERR|FILE|BOTH)
# ; 2. the ViciDial user ID, if empty it defaults to accountcode(usually phone extension) or vicidial_live_agents user who launched the call
# ; 3. log this call in user_call_log (Y|N) default N
# ; 4. log this call in call_log (Y|N) default N, ONLY NEEDED FOR INBOUND AND INTERSYSTEM CALLS!!!
# ; 5. audio record this call (Y|N) default N
# ; 6. double-log this call in call_log (Y|N) default N, ONLY NEEDED FOR INBOUND CALLMENU FORWARDED CALLS!!!
# ; 7. play the recording ID of this call before recording starts
# ; 8. include the recording ID in the filename
# ; 9. search vicidial_list for phone number dialed (Y|N) default N, assumes 10 digit phone numbers
# ; 10. if 9 is Y, this is search method (ALLLISTS|PHONE) default ALLLISTS, search all lists, use phone setting, CURRENTLY DOES NOTHING
# ; 11. error out and end call if phone number is not found (Y|N) default N
# ; 12. run the phone entry's NVA Call URL (Y|N) default N
# ; 13. if 9 is Y, and phone number is not found, insert into phone's NVA List ID (Y|N) default N
# ; 14. if 13 is Y, override phone's NVA List ID with this list ID when lead is inserted
# ; 15. if 13 is Y, override phone's NVA Phone Code with this phone code when lead is inserted
# ; 16. if 13 is Y, override phone's NVA Status with this status when lead is inserted
#
#
# ;custom dialplan entry example: (similar to the defaultlog Call Menu)
#exten => _X.,1,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y---N---N---N)
#exten => _X.,n,Goto(default,${EXTEN},1)
#exten => _X.,n,Hangup
#
# ;inbound to agent example:
#exten => 5678,1,AGI(agi-NVA_recording.agi,BOTH------Y---Y---Y---N---N---N)
#exten => 5678,n,Goto(vicidial-auto,5678,1)
#exten => 5678,n,Hangup
#
# ; example of dial prefix of 94 in System Settings Custom Dialplan to default log
#exten => _941NXXNXXXXXX,1,Goto(defaultlog,9${EXTEN:2},1)
#
# ; example of using as Call Menu prompt to record with playing of recording id
#agi-NVA_recording.agi,BOTH------Y---N---Y---N---Y---Y
#
# ; example of using as Call Menu prompt to record, search for phone number, run NVA call URL and error if not found
#agi-NVA_recording.agi,BOTH------Y---N---Y---N---N---N---Y---ALLLISTS---Y---Y
#
# ;custom dialplan entry example: (similar to the defaultlog Call Menu) with NVA options
#exten => _X.,1,AGI(agi-NVA_recording.agi,BOTH------Y---N---Y---N---N---N---Y---ALLLISTS---N---Y---Y)
#exten => _X.,n,Goto(default,${EXTEN},1)
#exten => _X.,n,Hangup

agi-NVA_recording_MIX.agi

# agi-NVA_recording_MIX.agi version 2.14
#
# This script is designed to give recording ability to agents not the using
# ViciDial agent screen. This version is designed for Asterisk 16 (MixMonitor)
#
# ; 1. logging output (NONE|STDERR|FILE|BOTH)
# ; 2. the ViciDial user ID, if empty it defaults to accountcode(usually phone extension) or vicidial_live_agents user who launched the call
# ; 3. log this call in user_call_log (Y|N) default N
# ; 4. log this call in call_log (Y|N) default N, ONLY NEEDED FOR INBOUND AND INTERSYSTEM CALLS!!!
# ; 5. audio record this call (Y|N) default N
# ; 6. double-log this call in call_log (Y|N) default N, ONLY NEEDED FOR INBOUND CALLMENU FORWARDED CALLS!!!
# ; 7. play the recording ID of this call before recording starts
# ; 8. include the recording ID in the filename
# ; 9. search vicidial_list for phone number dialed (Y|N) default N, assumes 10 digit phone numbers
# ; 10. if 9 is Y, this is search method (ALLLISTS|PHONE) default ALLLISTS, search all lists, use phone setting, CURRENTLY DOES NOTHING
# ; 11. error out and end call if phone number is not found (Y|N) default N
# ; 12. run the phone entry's NVA Call URL (Y|N) default N
# ; 13. if 9 is Y, and phone number is not found, insert into phone's NVA List ID (Y|N) default N
# ; 14. if 13 is Y, override phone's NVA List ID with this list ID when lead is inserted
# ; 15. if 13 is Y, override phone's NVA Phone Code with this phone code when lead is inserted
# ; 16. if 13 is Y, override phone's NVA Status with this status when lead is inserted
#
#
# ;custom dialplan entry example: (similar to the defaultlog Call Menu)
#exten => _X.,1,AGI(agi-NVA_recording_MIX.agi,BOTH------Y---N---Y---N---N---N)
#exten => _X.,n,Goto(default,${EXTEN},1)
#exten => _X.,n,Hangup
#
# ;inbound to agent example:
#exten => 5678,1,AGI(agi-NVA_recording_MIX.agi,BOTH------Y---Y---Y---N---N---N)
#exten => 5678,n,Goto(vicidial-auto,5678,1)
#exten => 5678,n,Hangup
#
# ; example of dial prefix of 94 in System Settings Custom Dialplan to default log
#exten => _941NXXNXXXXXX,1,Goto(defaultlog,9${EXTEN:2},1)
#
# ; example of using as Call Menu prompt to record with playing of recording id
#agi-NVA_recording_MIX.agi,BOTH------Y---N---Y---N---Y---Y
#
# ; example of using as Call Menu prompt to record, search for phone number, run NVA call URL and error if not found
#agi-NVA_recording_MIX.agi,BOTH------Y---N---Y---N---N---N---Y---ALLLISTS---Y---Y
#
# ;custom dialplan entry example: (similar to the defaultlog Call Menu) with NVA options
#exten => _X.,1,AGI(agi-NVA_recording_MIX.agi,BOTH------Y---N---Y---N---N---N---Y---ALLLISTS---N---Y---Y)
#exten => _X.,n,Goto(default,${EXTEN},1)
#exten => _X.,n,Hangup

agi-phone_monitor.agi

# agi-phone_monitor.agi      version 2.8
#
# NOTE! - To use this script you MUST have entries in the System Settings
#         "Custom Dialplan Entry" for this to work.
#         Read the AGENT_MONITOR.txt document for more information.
#
# This script is designed to allow managers to listen to agent sessions by
# dialing a phone exten number or user ID number. For this to work, the user ID
# or phone extension must be only digits. If you are using the phone extension,
# then all phone extensions on the system must be unique.
#
# user is prompted for a user ID or phone login then press #
# then the user is forwarded to monitor the active vicidial agent session
#
# ; settings for this script:
# ; 1. USER, PHONE or PLOGIN, lookup by user id, phone extension or phone login (default is USER)
# ; 2. Y or N, log in api log (default is N)
# ; 3. BARGE or LISTEN, (default is LISTEN)
# ; 4. Prepopulated ID, for use in context by itself
#
# can be added as an AGI to a Call Menu, or just a direct extension transfer:
#
# ; call menu AGI with options:
#  agi-phone_monitor.agi,USER---N---LISTEN---
#
# ; or as extension transfer to "up_monitor_exit" context and "s" extension

agi-record_prompts.agi

# agi-record_prompts.agi      version 2.12
#
# for recording prompts to GSM file over the phone
# Saves recordings with 8-digit filenames to be played when exten is dialed
#
#       ; prompts for recording AGI script, ID is 4321
#   ; first variable is format (gsm/wav)
#       ; second variable is timeout in milliseconds (default is 360000 [6 minutes])
#       exten => 8167,1,Answer
#       exten => 8167,2,AGI(agi-record_prompts.agi,wav-----360000)
#       exten => 8167,3,Hangup
#       exten => 8168,1,Answer
#       exten => 8168,2,AGI(agi-record_prompts.agi,gsm-----360000)
#       exten => 8168,3,Hangup
#
#       ; playback of recorded prompts
#       exten => _851XXXXX,1,Answer
#       exten => _851XXXXX,2,Playback(${EXTEN})
#       exten => _851XXXXX,3,Hangup
#
#       GSM Sound Files used:
#       - ld_welcome_pin_number
#       - ld_invalid_pin_number
#       - vm-rec-generic
#       - auth-thankyou
#       - vm-review
#       - vm-msgsaved
#       - vm-goodbye

agi-set_variables.agi

# agi-set_variables.agi version 2.14
#
# runs after a call_log before call is placed out the trunk and sets all
# vicidial_list fields as variables for the call
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
# exten => _91NXXNXXXXXX,1,AGI(agi://127.0.0.1:4577/call_log)
# exten => _91NXXNXXXXXX,n,AGI(agi-set_variables.agi,)
# exten => _91NXXNXXXXXX,n,Verbose("phone_code:${phone_code}, phone_number:${phone_number}, lead_id:${lead_id}")
# exten => _91NXXNXXXXXX,n,Dial(${TESTSIPTRUNK}/${EXTEN:2},,tTor)
# exten => _91NXXNXXXXXX,n,Hangup

agi-TILTX_SHAKEN.agi

# agi-TILTX_SHAKEN.agi version 2.14
#
# Runs before a call goes to a carrier for optional DNC/Disconnect check as well
# as CID check and STIR/SHAKEN SIP call Identity tagging through TILTX service
#
# You need to put lines similar to those below in your VICIdial carrier dialplan entry:
#
# exten => _91NXXNXXXXXX,n,AGI(/var/lib/asterisk/agi-bin/agi-TILTX_SHAKEN.agi,${EXTEN:-10}-----${CALLERID(num)}-----YES-----)
#
# CLI FLAG OPTIONS:
# 1. Phone number being called
# 2. CallerID number being sent with call
# 3. (YES/NO) whether to speak error messages or not, default 'NO'
# 4. Settings Container ID to use for TILTX API settings, default 'TILTX_SHAKEN_API_KEY'

agi-VDAD_ALL_inbound.agi

# agi-VDAD_ALL_inbound.agi version 2.14
#
# runs when a call comes in from an inbound call. This script will
# send the calls out to the closers that are logged in.
# ## THIS SCRIPT CONSOLIDATES THIRTEEN SEPARATE VDAD closer inbound SCRIPTS ##
#
#
# You need to put lines similar to those below in your extensions.conf file:
# ; Below are the parameters needed for the script to be run properly
# ; 1. the method of call handling for the script:
# ;     - CID -         CID received, add record with phone number
# ;     - CIDLOOKUP -   Lookup CID to find record in whole system
# ;     - CIDLOOKUPRL - Restrict lookup to one list
# ;     - CIDLOOKUPRC - Restrict lookup to one campaign's lists
# ;     - CIDLOOKUPALT -        Lookup CID to find record in whole system by phone number then alt_phone
# ;     - CIDLOOKUPRLALT -      Restrict lookup to one list by phone number then alt_phone
# ;     - CIDLOOKUPRCALT -      Restrict lookup to one campaign's lists by phone number then alt_phone
# ;     - CIDLOOKUPADDR3 -      Lookup CID to find record in whole system by phone number then address3
# ;     - CIDLOOKUPRLADDR3 -    Restrict lookup to one list by phone number then address3
# ;     - CIDLOOKUPRCADDR3 -    Restrict lookup to one campaign's lists by phone number then address3
# ;     - CIDLOOKUPALTADDR3 -   Lookup CID to find record in whole system by phone number then alt_phone then address3
# ;     - CIDLOOKUPRLALTADDR3 - Restrict lookup to one list by phone number then alt_phone then address3
# ;     - CIDLOOKUPRCALTADDR3 - Restrict lookup to one campaign's lists by phone number then alt_phone then address3
# ;     - CLOSER -      Closer calls from VICIDIAL fronters(and previous in-group calls)
# ;     - ANI -         ANI received, add record with phone number (based on RBS T1s)
# ;     - ANILOOKUP -   Lookup ANI to find record in whole system
# ;     - ANILOOKUPRL - Restrict lookup to one list
# ;     - ANILOOKUPRC - Restrict lookup to one campaign's lists
# ;     - VID -         Add record with Vendor Lead Code received as argument 12
# ;     - VIDLOOKUP -   Lookup Vendor Lead Code received as argument 12 to find record in whole system
# ;     - VIDLOOKUPRL - Restrict lookup to one list (argument 12)
# ;     - VIDLOOKUPRC - Restrict lookup to one campaign's lists (argument 12)
# ;     - VIDPROMPT -   Prompt Vendor Lead Code to User with IVR to add record with Vendor Lead Code
# ;     - VIDPROMPTLOOKUP -     Prompt Vendor Lead Code to User with IVR to find record in whole system
# ;     - VIDPROMPTLOOKUPRL -   Restrict lookup to one list
# ;     - VIDPROMPTLOOKUPRC -   Restrict lookup to one campaign's lists
# ;     - 3DIGITID -    Enter 3 digit code to go to agent
# ;     - 4DIGITID -    Enter 4 digit code to go to agent
# ;     - XDIGITID -    Enter X digit code to go to agent(variable, i.e. 9DIGITID, 12DIGITID, etc...)
# ; 2. the method of searching for an available agent:
# ;     - LO - Load Balance Overflow only (priority to home server)
# ;     - LB - <default> Load Balance total system
# ;     - SO - Home server only
# ; 3. the full name of the IN GROUP to be used in vicidial for the inbound call
# ; 4. the phone number that was called, for the log entry
# ; 5. the callerID or lead_id of the person that called(usually overridden)
# ; 6. the park extension audio file name if used
# ; 7. the status of the call initially(usually not used)
# ; 8. the list_id to insert the new lead under if it is new (and CID/ANI available)
# ; 9. the phone dialing code to insert with the new lead if new (and CID/ANI available)
# ; 10. the campaign_id to search within lists if CIDLOOKUPRC
# ; 11. the user to queue the call to for AGENTDIRECT in-group calls
# ; 12. vendor_lead_code if external mechanism like custom IVR is used to prompt user for ID
# ;              you can also set the vendor_lead_code variable instead if you are using VIDPROMPT
# ; 13. VID enter prompt filename to play if method is set to a VID* option
# ; 14. VID you-have-entered filename to play if method is set to a VID* option
# ; 15. VID confirm prompt filename to play if method is set to a VID* option
# ; 16. VID digit length validation to use if method is set to a VID* option, set to empty or X to disable
#
# ;inbound VICIDIAL calls:
#exten => 1234,1,Answer                  ; Answer the line
#exten => 1234,2,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----INB-----7274515134-----Closer-----park----------999-----1-----OUTB)
#exten => 1234,3,Hangup
#
# ;inbound with removal of first digit of callerID on all calls:
#exten => 1234,1,Answer                  ; Answer the line
#exten => 1234,n,set(CALLERID(num)=${CALLERID(num):1})
#exten => 1234,n,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----INB-----7274515134-----Closer-----park----------999-----1-----OUTB)
#exten => 1234,n,Hangup
#
#; inbound VICIDIAL transfer calls [can arrive through PRI T1 crossover, IAX or SIP channel]
#exten => _90009.,1,Answer                  ; Answer the line
#exten => _90009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
#exten => _90009.,3,Hangup
#exten => _990009.,1,Answer                  ; Answer the line
#exten => _990009.,2,AGI(agi-VDAD_ALL_inbound.agi,CLOSER-----LB-----CL_TESTCAMP-----7275551212-----Closer-----park----------999-----1)
#exten => _990009.,3,Hangup
#; DID forwarded calls
#exten => _99909*.,1,Answer
#exten => _99909*.,2,AGI(agi-VDAD_ALL_inbound.agi)
#exten => _99909*.,3,Hangup

agi-VDAD_ALL_outbound.agi

# agi-VDAD_ALL_outbound.agi version 2.14
#
# runs when an outbound call is answered. This script will
# send the calls out to the agents that are logged in.
# ## THIS SCRIPT CONSOLIDATES EIGHT SEPARATE VDAD outbound transfer SCRIPTS ##
#
#
# You need to put lines similar to those below in your extensions.conf file:
# ; Below are the parameters needed for the script to be run properly
# ; 1. the method of call handling for the script:
# ;     - NORMAL -              <default> Standard outbound routing to agent
# ;     - TEST -                For performance testing only
# ;     - BROADCAST -   For no-agent broadcast dialing
# ;     - SURVEY -              For survery question then on to agent
# ;     - SURVEYCAMP -  For survery question using campaign settings
# ;     - SURVEYCAMPCEP - Survery question, campaign settings, cepstral name
# ;     - REMINDER -    Reminder campaign
# ;     - REMINDX -             Reminder with transfer to agent
# ; 2. the method of searching for an available agent: (agent_search_method)
# ;     - LB - <default> Load Balance total system
# ;     - LO - Load Balance Overflow only (priority to home server)
# ;     - SO - Home server only
# ; 3. The Connected Line Name to solve CID Name change issues.
# ; 4. the sound file to play when doing a SURVEY, REMINDER, REMINDX campaign
# ; 5. the acceptible dtmf digits for a SURVEY
# ; 6. the out-opt digit for a SURVEY (must be in the digit map)
# ; 7. the sound file to play for a SURVEY when transfering to an agent
# ; 8. the sound file to play for a SURVEY when DNCing the call
# ; 9. OPTIN or OPTOUT: if OPTIN call is only sent to agent with button press
# ;     if OPTOUT call is sent to agent if no button press at all
# ; 10. the status that is use for a SURVEY when someone opts out
# ;     if the status is DNC it will also add them to the internal dnc table
#
#; VICIDIAL_auto_dialer transfer script Load Balanced:
#exten => 8368,1,AGI(agi://127.0.0.1:4577/call_log)
#exten => 8368,n,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB-----${CONNECTEDLINE(name)})
#exten => 8368,n,Hangup()
#
# ;outbound VICIDIAL SURVEY calls:
#exten => 8366,1,AGI(agi://127.0.0.1:4577/call_log)
#exten => 8366,2,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact----->
#exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact----->
#exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact----->
#exten => 8366,5,Hangup

agi-VDAD_ALL_outboundBETA2.agi

# agi-VDAD_ALL_outboundBETA2.agi version 2.14
#
# runs when an outbound call is answered. This script will
# send the calls out to the agents that are logged in.
# ## THIS SCRIPT CONSOLIDATES EIGHT SEPARATE VDAD outbound transfer SCRIPTS ##
#
#
# You need to put lines similar to those below in your extensions.conf file:
# ; Below are the parameters needed for the script to be run properly
# ; 1. the method of call handling for the script:
# ;     - NORMAL -              <default> Standard outbound routing to agent
# ;     - TEST -                For performance testing only
# ;     - BROADCAST -   For no-agent broadcast dialing
# ;     - SURVEY -              For survery question then on to agent
# ;     - SURVEYCAMP -  For survery question using campaign settings
# ;     - SURVEYCAMPCEP - Survery question, campaign settings, cepstral name
# ;     - REMINDER -    Reminder campaign
# ;     - REMINDX -             Reminder with transfer to agent
# ; 2. the method of searching for an available agent:
# ;     - LB - <default> Load Balance total system
# ;     - LO - Load Balance Overflow only (priority to home server)
# ;     - SO - Home server only
# ; 3. the sound file to play when doing a SURVEY, REMINDER, REMINDX campaign
# ; 4. the acceptible dtmf digits for a SURVEY
# ; 5. the out-opt digit for a SURVEY (must be in the digit map)
# ; 6. the sound file to play for a SURVEY when transfering to an agent
# ; 7. the sound file to play for a SURVEY when DNCing the call
# ; 8. OPTIN or OPTOUT: if OPTIN call is only sent to agent with button press
# ;     if OPTOUT call is sent to agent if no button press at all
# ; 9. the status that is used for a SURVEY when someone opts out
# ;     if the status is DNC it will also add them to the internal dnc table
#
# ;outbound VICIDIAL calls:
#exten => 8368,1,AGI(agi://127.0.0.1:4577/call_log)
#exten => 8368,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
#exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
#exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
#exten => 8368,5,Hangup
#
# ;outbound VICIDIAL SURVEY calls:
#exten => 8366,1,AGI(agi://127.0.0.1:4577/call_log)
#exten => 8366,2,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact----->
#exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact----->
#exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact----->
#exten => 8366,5,Hangup

agi-VDAD_ALL_outboundBETA.agi

# agi-VDAD_ALL_outboundBETA.agi version 2.14
#
# runs when an outbound call is answered. This script will
# send the calls out to the agents that are logged in.
# ## THIS SCRIPT CONSOLIDATES EIGHT SEPARATE VDAD outbound transfer SCRIPTS ##
#
#
# You need to put lines similar to those below in your extensions.conf file:
# ; Below are the parameters needed for the script to be run properly
# ; 1. the method of call handling for the script:
# ;     - NORMAL -              <default> Standard outbound routing to agent
# ;     - TEST -                For performance testing only
# ;     - BROADCAST -   For no-agent broadcast dialing
# ;     - SURVEY -              For survery question then on to agent
# ;     - SURVEYCAMP -  For survery question using campaign settings
# ;     - SURVEYCAMPCEP - Survery question, campaign settings, cepstral name
# ;     - REMINDER -    Reminder campaign
# ;     - REMINDX -             Reminder with transfer to agent
# ; 2. the method of searching for an available agent:
# ;     - LB - <default> Load Balance total system
# ;     - LO - Load Balance Overflow only (priority to home server)
# ;     - SO - Home server only
# ; 3. the sound file to play when doing a SURVEY, REMINDER, REMINDX campaign
# ; 4. the acceptible dtmf digits for a SURVEY
# ; 5. the out-opt digit for a SURVEY (must be in the digit map)
# ; 6. the sound file to play for a SURVEY when transfering to an agent
# ; 7. the sound file to play for a SURVEY when DNCing the call
# ; 8. OPTIN or OPTOUT: if OPTIN call is only sent to agent with button press
# ;     if OPTOUT call is sent to agent if no button press at all
# ; 9. the status that is used for a SURVEY when someone opts out
# ;     if the status is DNC it will also add them to the internal dnc table
#
# ;outbound VICIDIAL calls:
#exten => 8368,1,AGI(agi://127.0.0.1:4577/call_log)
#exten => 8368,2,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
#exten => 8368,3,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
#exten => 8368,4,AGI(agi-VDAD_ALL_outbound.agi,NORMAL-----LB)
#exten => 8368,5,Hangup
#
# ;outbound VICIDIAL SURVEY calls:
#exten => 8366,1,AGI(agi://127.0.0.1:4577/call_log)
#exten => 8366,2,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact----->
#exten => 8366,3,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact----->
#exten => 8366,4,AGI(agi-VDAD_ALL_outbound.agi,SURVEY-----LB-----US_pol_survey_hello-----1238-----8-----US_pol_survey_transfer-----US_thanks_no_contact----->
#exten => 8366,5,Hangup

agi-VDADautoREMINDER.agi

# agi-VDADautoREMINDER.agi      version 2.6
#
# runs when a call comes in from the VICIDIAL auto_dialer. This script will
# send the calls out to specified voicemail boxes in if called person presses key.
# The voicemail box is defined per-lead in the vicidial_list.security_phrase field
# This campaign does not send calls to live agents.
#
#   Call statuses from this script:
#       N- Call was picked up, didn't finish initial message
#       MP- Initial message was played
#       VM- call was sent to voicemail
#       CALLBK- customer selected to be called back
#
# It is recommended that you run this campaign at a dial level of 1.0
# It is recommended that you use remote_agents for activation of this script
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ;VICIDIAL_auto_dialer transfer script:
# exten => 8372,1,AGI(call_log.agi,${EXTEN})
# exten => 8372,2,AGI(agi-VDADautoREMINDER.agi,${EXTEN})


agi-VDADautoREMINDERxfer.agi

# agi-VDADautoREMINDERxfer.agi      version 2.6
#
# runs when a call comes in from the VICIDIAL auto_dialer. This script will
# send the calls out to specified voicemail boxes or specified extensions if
# called person presses specified key(1,2,3).
# The voicemail box is defined per-lead in the vicidial_list.security_phrase field
# The exten xfer number is defined per-lead in the vicidial_list.comments field
#
#   Call statuses from this script:
#       N- Call was picked up, didn't finish initial message
#       MP- Initial message was played
#       VM- call was sent to voicemail
#       XFER- call was sent to specified extension
#       CALLBK- customer selected to be called back
#
# It is recommended that you run this campaign at a dial level of 1.0
# It is recommended that you use remote_agents for activation of this script
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ;VICIDIAL_auto_dialer transfer script:
# exten => 8372,1,AGI(call_log.agi,${EXTEN})
# exten => 8372,2,AGI(agi-VDADautoREMINDERxfer.agi,${EXTEN})

agi-VDADfixCXFER.agi

# agi-VDADfixCXFER.agi      version 2.6
#
# runs when a Consultative transfer is released by the vicidial fronter as the
# call arrives on another channel so that the vicidial_live_agents record is
# updated to be accurate.
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ;VICIDIAL Consultative Xfer fix script:
# exten => _8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)
# exten => _010*010*010*015*8600XXX*.,1,AGI(agi-VDADfixCXFER.agi)

agi-VDAD_inbound_calltime_check.agi

# agi-VDAD_inbound_calltime_check.agi   version 2.14
#
# Runs when a call comes in from an inbound call. This script will check the
# settings of the defined calltime scheme in VICIDIAL and either send the call
# to the after-hours method for the defined IN-GROUP or exit to let the call
# continue. This script is also used by Call Menus.
#
# You need to put lines similar to those below in your extensions.conf file:
# ; Below are the parameters needed for the script to be run properly
# ; 1. the in-group to take settings from
# ; 2. whether to log the call into the vicidial_auto_calls table:
# ;             - YES - insert the call as status IVR
# ;             - NO  - do not insert call into vac table
# ; 3. note to put in the comment_b field when record inserted into the
# ;    live_inbound_log table, no spaces in this field, use underscore '_'
# ;    default if not populated is NONE
# ; 4. call time scheme override
# ; 5. call route after hours override
# ; 6. call route value after hours override
# ; 7. call route context after hours override
# ; 8. vicidial_list query qualification (YES/NO, default is NO)
# ;    * only works with lead_id-populated calleridname phone calls.
# ;    This option allows you to specify a SQL fragment used to do a count(*)
# ;    against the vicidial_list table for the lead and other field values
# ;    This feature will look for the qualify_sql in the call menu record
# ; 9. play sip-silence audio, YES/NO, default is YES
# ;
# ;inbound calls check calltime:
#exten => 1234,1,Answer                  ; Answer the line
#exten => 1234,2,AGI(agi-VDAD_inbound_calltime_check.agi,INBOUND-----YES-----START-----24hours-----EXTENSION-----101-----default-----NO-----YES)
#exten => 1234,3,Hangup

agi-VDADinbound_NI_DNC_CIDlookup.agi

# NOTE: IT IS RECOMMENDED THAT YOU USE cm_dnc.agi THROUGH A CALL MENU INSTEAD!
#
# agi-VDADinbound_NI_DNC_CIDlookup.agi version 2.0.5   *DBI-version*
#
# runs when a call comes in from an inbound call. This script will
# play a message and take input to automatically change customer lead to NI or DNC.
#  *** This version detects inbound callerID over PRI ***
#
# Flag Options:
# 1- default to insert into the vicidial_dnc table for DNC selections (Default=YES)
# 2- campaign to take dnc settings from(overrides option 1)
#
# ;inbound call from outbound CID callbacks from VICIDIAL calls:
#exten => 1234,1,Ringing                 ; call ringing
#exten => 1234,2,Wait(1)                 ; Wait 1 second for CID delivery from PRI
#exten => 1234,3,Answer                  ; Answer the line
#exten => 1234,4,AGI(agi-VDADinbound_NI_DNC_CIDlookup.agi,YES-----TESTCAMP)
#exten => 1234,5,Hangup

agi-VDADlisten_DTMF.agi

# agi-VDADlisten_DTMF.agi version 2.0.5   *DBI-version*
#
# To be initiated by an agent so during a call. Agent will click a PIN NUMBER
# link on a web form webpage that will Originate a new call to this script
#
# This script plays a beep and waits for entry of 4 digits then inserts record
#
# ***** THIS SCRIPT ONLY WORKS WITH A CROSSOVER T1 CABLE FROM ONE T1 PORT *****
# ***** TO ANOTHER T1 PORT WHETHER ON THE SAME SERVER OR DIFFERENT ONE    *****
#
# IN THE CAMPAIGN OR IN-GROUP NUMBER PRESET FIELD:
# AXFER83009
#
# ON THE SERVER ORIGINATING THE CALL:
#;outbound DTMF VICIDIAL calls:
#exten => _983009.,1,AGI(call_log.agi,${EXTEN})
#exten => _983009.,2,Dial(${TRUNKY}/${EXTEN:1},60)
#exten => _983009.,3,Hangup
#
# ON THE SERVER THAT HAS THIS SCRIPT:
#;inbound DTMF VICIDIAL calls:
#exten => _83009.,1,AGI(agi-VDADlisten_DTMF.agi,${EXTEN})
#exten => _83009.,2,Hangup

agi-VDAD_local_optimize.agi

# agi_VDAD_local_optimize.agi
#
# This script looks up the Local channel in the cid_channels_recent table
# and redirects the actual channel to the current extension with the first
# two digits stripped off. IE 138368 -> 8368. This is to overcome the change
# to Local channels in Asterisk 12 and later.

agi-VDAD_pin_IVR.agi

# agi-VDAD_pin_IVR.agi version 2.0.5   *DBI-version*
#
# At the end of a call, the agent transfers customer to this script
#
# This script plays a beep then plays the first portion of the message
# then logs the portion as listened to in the vicidial_list_pins table
# then plays second portion and hangs up.
#
# IN THE CAMPAIGN OR IN-GROUP NUMBER PRESET FIELD:
# AXFER83209
#
# ON THE SERVER ORIGINATING THE CALL:
#;outbound IVR play VICIDIAL calls:
#exten => _983209.,1,AGI(call_log.agi,${EXTEN})
#exten => _983209.,2,Dial(${TRUNKY}/${EXTEN:1},60)
#exten => _983209.,3,Hangup
#
# ON THE SERVER THAT HAS THIS SCRIPT:
#;inbound IVR play VICIDIAL calls:
#exten => _83209.,1,Answer
#exten => _83209.,2,AGI(agi-VDAD_pin_IVR.agi,${EXTEN})
#exten => _83209.,3,Hangup

agi-VDAD_RINGALL.agi

# agi-VDAD_RINGALL.agi version 2.8
#
# NOTE: this script is used for on-hook agents to be connected to customer calls
# when they answer their ringing phones
#
# In the default dialplan context, this is set to the following:
# ; these are used for the ring_all function in VICIDIAL
# exten => _8331*.,1,Playback(sip-silence)
# exten => _8331*.,n,AGI(agi-VDAD_RINGALL.agi,${EXTEN})
# exten => _8331*.,n,AGI(agi-VDAD_RINGALL.agi,${EXTEN})
# exten => _8331*.,n,Hangup

agi-VDADselective_CID.agi

# agi-VDADselective_CID.agi version 0.1   *NO DB Connection*
#
# Runs before a call is placed outbound to filter outgoing callerIDnumber
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ;outbound VICIDIAL calls:
#exten => _91NXXNXXXXXX,1,AGI(call_log.agi,${EXTEN})
#exten => _91NXXNXXXXXX,2,AGI(agi-VDADselective_CID.agi,${EXTEN})
#exten => _91NXXNXXXXXX,3,Dial(${TRUNKX}/${EXTEN:1},55,tTo)
#exten => _91NXXNXXXXXX,4,Hangup

agi-VDADselective_CID_hangup.agi

# agi-VDADselective_CID_hangup.agi      version 2.6
#
# Will hangup a call if it is not within the specified area codes
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ;outbound VICIDIAL calls:
#exten => 8352,1,AGI(agi-VDADselective_CID_hangup.agi,${EXTEN})
#exten => 8352,2,Playback(85100001)
#exten => 8352,3,Hangup

agi-VICIrecGateway.agi

# agi-VICIrecGateway.agi version 2.14
#
# Designed to work on a stand-alone Asterisk server and record calls in stereo
#
# You need to put a line similar to this below in your extensions.conf file in
# the context for where incoming calls go from your trunks (for example, the
# trunkinbound context which is present in the default dialplan):
#
#[handler]
#exten => addheader,1,Set(PJSIP_HEADER(add,X-VICIrecGatewayID)=${VICIrecGatewayID})
#exten => addheader,n,Return()
#
#[stereo-rec-inbound]
#exten => _X.,1,Progress()
#exten => _X.,n,Noop(${CALLERID(num)})
#exten => _X.,n,AGI(agi-VICIrecGateway.agi)
#exten => _X.,n,Noop(${CARRIER_FILENAME})
#exten => _X.,n,Noop(${DIALER_FILENAME})
#exten => _X.,n,MixMonitor(,r(${CARRIER_FILENAME})t(${DIALER_FILENAME})S)
#exten => _X.,n,Dial(PJSIP/${EXTEN}@pjdial147,,Tob(handler^addheader^1))
#
#[stereo-rec-outbound]
#exten => _X.,1,Progress()
#exten => _X.,n,Noop(${CALLERID(num)})
#exten => _X.,n,AGI(agi-VICIrecGateway.agi)
#exten => _X.,n,Noop(${CARRIER_FILENAME})
#exten => _X.,n,Noop(${DIALER_FILENAME})
#exten => _X.,n,MixMonitor(,t(${CARRIER_FILENAME})r(${DIALER_FILENAME})S)
#exten => _X.,n,Dial(PJSIP/${EXTEN}@pjsgw1,,To)

call_inbound.agi

# call_inbound.agi      version 2.6
#
# runs at the beginning and ending of every inbound call received
#
# You need to put lines similar to those below in your extensions.conf file:
#
# parameters for call_inbound.agi (7 fields separated by five dashes "-----"):
# 1. the extension of the phone to ring as defined in the asterisk.phones table
# 2. the phone number that was called, for the live_inbound/_log entry
# 3. a text description of the number that was called in
# 4-7. optional fields, they are also passed as fields in the GUI to web browser
#
# ;inbound calls:
#exten => _*NXXNXXXXXX*3429,3,AGI(call_inbound.agi,spa2000-----8005553429-----Inbound 800-----x-----y-----z-----w)

cepstral_generate.pl

# cepstral_generate.pl    version 2.2.0
#
# Text-To-Speech files will be cached for later use.
#
# Call this script like this:
# /var/lib/asterisk/agi-bin/cepstral_generate.pl --debug --voice=Allison-8kHz --dialog=Hello\ There

cm.agi

# cm.agi   version 2.14
#
# Used by Call Menus to log digit presses if enabled in the settings. You should
# not need to manually use this script, it is used by the dialplan builder.
#
# You need to put lines similar to those below in your extensions.conf file:
# ; Below are the parameters needed for the script to be run properly
# ; 1. the in-group to take settings from
# ; 2. digit pressed
# ; 3. field(in vicidial_list) to update with DTMF pressed (only if lead_id populated)
# ; 4. alt-log(enable alternate logging)
# ; 5. question number used if alt-logging is enabled
# ;
# ;inbound calls check calltime:
#exten => 1,1,AGI(cm.agi,INBOUND-----1-----province----------)
#exten => 1,2,...
#
# ;to allow for multi-digit entries, put similar entry in the Custom Dialplan Entry:
#exten => _XXXXX,1,AGI(cm.agi,INBOUND-----${EXTEN}-----postal_code)
#exten => _XXXXX,n,Goto(next_callmenu_here,s,1)

cm_areacode.agi

# cm_areacode.agi version 2.12
#
# Designed to work with Call Menus to allow searching of the areacode of the
# caller ID phone number the customer called in on, to be searched within the
# vicidial_phone_codes table to gather the state, then search the
# vicidial_inbound_dids table for that state in the did_carrier_description
# field and send the call on to the did that matches.
#
# If areacode is not found call will go to the 'D' option in the call menu
# If state DID is not found call will go to the 'C' option in the call menu
#
# Flag Options:
# 1- Country code to search the areacode within, default 1
# 2- Length of areacode in digits, default 3
# 3- DID prefix to filter by in searching for DIDs, default 999
#
# example of what to set in the Call Menu:
# Set the prompt to "sip-silence"
# Set the Timeout to 1 second
# Option: "Timeout" Route: "AGI" AGI: "cm_areacode.agi,1---3---999"

cm_cid_change.agi

# cm_cid_change.agi version 2.14
#
# Designed to allow you to change the CID of a call to either a fixed number or
# a combination of CUSTOMER, CLOSER just like the in-group Action Transfer CID
# feature. Script is designed to handle calls already assigned to leads, not
# new inbound calls that only have a phone number.
#
# Flag Options:
# 1- Fixed CID number, or CUSTOMER or CUSTOMERCLOSER
#
# example of what to put in the AGI entry for a Call Menu AGI route:
# cm_cid_change.agi,CUSTOMERCLOSER

cm_date.agi

# cm_date.agi   version 2.6
#
# Can be used in a call menu prompt to play a date string as defined by the settings below
#
# ; Below are the parameters needed for the script to be run properly
# ; the "SAY DATETIME" parameters for what to say separated by three dashes
# ; 1. offset from current epoch in seconds, positive or negative
# ;             1 hour is 3600
# ;             1 day is 86400
# ;             1 week is 604800
# ;             30 days is 2592000
# ;             1 year is 31536000
# ; 2. format of the date to say, i.e. "ABdY":
# ;     A: Day of the week
# ;     B: Month (Full Text)
# ;     m: Month (Numeric)
# ;     d: Day of the month
# ;     Y: Year
# ;     I: Hour (12-hour format)
# ;     H: Hour (24-hour format)
# ;     M: Minutes
# ;     P: AM/PM
# ;     Q: Shorthand for Today, Yesterday or ABdY
# ;     R: Shorthand for HM
# ;     S: Seconds
# ;     T: Timezone
#
# ;inbound calls check calltime:
# ;   (this example is for yesterday and says "Monday March 25th 2013")
# cm_date.agi,-86400---ABdY

cm_dnc.agi

# cm_dnc.agi version 2.14
#
# Designed to work with Cell Menus to allow setting of a number as DNC or NI
# This script is meant as a replacement for the agi-VDADinbound_NI_DNC_CIDlookup.agi
# script. It is designed to work easily in the Call Menu framework, it plays no
# audio itself, and it has more options.
#
# Flag Options:
# 1- run as DNC status or NI status (Default=NI)
# 2- default to insert into the vicidial_dnc table for DNC selections (Default=YES)
# 3- campaign to take dnc settings from(overrides option 2)
# 4- call menu option to send the call to after executing (Default=B)
# 5- if option 3 is used, search for lead in campaign lists or whole system(CAMP or SYS) (Default=SYS)
#
# example of what to put in the AGI entry for a Call Menu AGI route:
# cm_dnc.agi,DNC---YES---TESTCAMP---B---CAMP

cm_dnc_new.agi

# cm_dnc_new.agi version 2.12
#
# Designed to work with Cell Menus to allow setting of a number as DNC or NI
# This script is meant as a replacecment for the agi-VDADinbound_NI_DNC_CIDlookup.agi
# script. It is designed to work easily in the Call Menu framework, it plays no
# audio itself, and it has more options.
#
# Flag Options:
# 1- run as DNC status or ANY OTHER status (Default=NI)
# 2- default to insert into the vicidial_dnc table for DNC selections (Default=YES)
# 3- campaigns to take dnc settings from(overrides option 2) multiple campaigns separated by single dash
# 4- call menu option to send the call to after executing (Default=B)
# 5- if option 3 is used, search for lead in campaign lists or whole system(CAMP or SYS) (Default=SYS)
# 6- optional audio store file to play
#
# example of what to put in the AGI entry for a Call Menu AGI route:
# cm_dnc_new.agi,DNC---YES---TESTCAMP---B---CAMP---auth-thankyou

cm_fpg.agi

# cm_fpg.agi version 2.14
#
# Designed to work with Cell Menus to allow the entry of a CID number into a
# Filter Phone Group. It is designed to work easily in the Call Menu framework,
# it plays no audio itself, and it has more options.
#
# Flag Options:
# 1- Filter Phone Group ID to insert into
# 2- call menu option to send the call to after executing (Default=B)
# 3- (optional) number to enter instead of CIDnumber
#
# example of what to put in the AGI entry for a Call Menu AGI route(CID method):
# cm_fpg.agi,TEST_FPG---B
#
# example of what to put in the Custom Dialplan Entry of a Call Menu (caller entry of number method):
# exten => _XXXXXXXXXX,1,cm_fpg.agi,99test---C---${EXTEN}

cm_lookup.agi

# cm_lookup.agi version 2.6
#
# for use with a Call Menu in the custom dialplan section.
#
# ; settings for this script:
# ; 1. The vicidial_list field to do a lookup on ('vendor_lead_code' is default)
# ; 2. Type of lookup to do: (default is SYSTEM)
# ;     SYSTEM will search the entire system
# ;     CAMPAIGNLISTS will search inside all of the active lists within the campaign
# ;     CAMPLISTSALL will search inside all of the active and inactive lists within the campaign
# ;     LIST will search only within the specified List ID
# ; 3. If CAMPAIGN or LIST is used above, this is the campaign_id or list_id to be used
# ; 4. TTS confirmation of name (1 for yes, 2 for no) put in TTS prompt ID
# ; 5. Update the vicidial_list record phone number with the callerID of the caller:
# ;     Y - update the record with the phone number
# ;     N - Do nothing (default)
# ; 6. Update lead's address3 field to the uniqueid of the call
# ;     Y - update the record with the uniqueid
# ;     N - Do nothing (default)
# ; 7. Update the lead's record with the call's agent_user_id variable
# ;     Y - update the lead record's 'user' field with the agent_user_id variable
# ;     COMMENTS - update the lead record's 'comments' field with the agent_user_id variable
# ;     N - Do nothing (default)
# ; 8. Update the lead's record with the call's title variable
# ;     Y - update the lead record's 'title' field with the call's title variable
# ;     N - Do nothing (default)
#
# Found entries will send the call to the 'A' option in the source call menu
# Not-Found entries will send the call to the 'B' option in the source call menu
#
#; example with 8-digit vendor lead codes
# exten => _XXXXXXXX,1,AGI(cm_lookup.agi,vendor_lead_code---CAMPLISTSALL---TESTCAMP---lastname_oneyestwono---N---N---Y---N)
#
#; example with 8-digit vendor lead codes
# exten => _XXXXXXXX,1,AGI(cm_lookup.agi,vendor_lead_code---CAMPLISTSALL---TESTCAMP---lastname_oneyestwono---N---N---Y---N)

cm_phonesearch.agi

# cm_phonesearch.agi version 2.14
#
# Designed to work with Call Menus to allow searching of the caller ID phone
# number the customer called in with against the vicidial_list table, and
# finding the list of the most recent match, the campaign tied to that list and
# the default transfer in-group of that campaign, then transferring the call to
# that in-group
#
# If phone number is not found, call will go to the 'D' option in the call menu
# If default in-group is not found, call will go to the 'C' option in the call menu
# If default in-group is found, call will go to the 'B' option in the call menu
#    (NOTE: you MUST set the In-Group to DYNAMIC_INGROUP_VAR for 'B' option)
#
# Flag Options:
# 1- Country code to search the areacode within, default 1
# 2- Match lead order, default: "entry_newest"
#          entry_newest, entry_oldest, modify_newest, modify_oldest, call_newest, call_oldest, rank_highest, rank_lowest
# example of what to set in the Call Menu:
# Set the prompt to "sip-silence"
# Set the Timeout to 1 second
# Option: "Timeout" Route: "AGI" AGI: "cm_phonesearch.agi,1---entry_newest"
#    OR JUST
# Set the prompt to "sip-silence|cm_phonesearch.agi,1---entry_oldest"

cm_postal.agi

# cm_postal.agi version 2.12
#
# Designed to work with Cell Menus to allow searching of the number entered by
# the customer to be searched within the vicidial_postal_codes table to gather
# the state, then search the vicidial_inbound_dids table for that state in the
# did_carrier_description field and send the call on to the did that matches.
#
# If postal code is not found call will go to the 'D' option in the call menu
# If state DID is not found call will go to the 'C' option in the call menu
#
# Flag Options:
# 1- minimum number of digits allowed in postal code, default 5
# 2- DID prefix to filter by in searching for DIDs, default 999
#
# example of what to put in the Custom Dialplan entry for a Call Menu:
#exten => _XXXXX,1,AGI(cm_postal.agi,5---999)

cm_sc_areacode.agi

# cm_sc_areacode.agi version 2.14
#
# Designed to work with Call Menus to allow searching of the areacode of the
# caller ID phone number the customer called in with to be searched within the
# vicidial_phone_codes table to gather the state, or use the lead_id of the
# already-established call, then use the settings container ID to gather the
# state routing parameters to find the destination for that state
#
# If areacode is not found, call will go to the 'D' option in the call menu
# If destination is not found, call will go to the 'C' option in the call menu
#
# Flag Options:
# 1- Country code to search the areacode within, default 1
# 2- Length of areacode in digits, default 3
# 3- container_id for settings container with state and routing parameters
#
# example of what to set in the Call Menu:
# Set the prompt to "sip-silence"
# Set the Timeout to 1 second
# Option: "Timeout" Route: "AGI" AGI: "cm_sc_areacode.agi,1---3---east_west"
#
# example of what to put in settings container:
# NOTE: if you want any state non-matches to go to a destination, put that line FIRST
#<destination type>|<destination>|<states list separated by spaces>
#DID|9998881111|--NOMATCHES--
#DID|9998882222|FL TX NY CA
#EXTEN|919998887112|AL MS MO TN KY
#CALLMENU|test_menu|IL MN WI MI IA

cm_sc_ccc_lookup_insert.agi

# cm_sc_ccc_lookup_insert.agi version 2.14
#
# Designed to work with Call Menus to send a URL defined in a Settings Container
# for a call with a call_id associated with it for calls coming from an external
# VICIdial system on a private IAX trunk so that the lead information can be
# copied to this destination cluster.
#
# If container is not found, call will go to the 'C' option in the call menu
# If call_id is not defined, call will go to the 'D' option in the call menu
# If lead is not found on external system, call will go to the 'B' option in the call menu
# If lead is found on external system, call will go to the 'A' option in the call menu
#
# Flag Options:  (separated by triple-pipe: "---")
# 1- container_id for settings container with URL to send
# 2- local list_id to insert lead into(if not populated, will use external list_id)
#
# example of what to set in the Call Menu:
# Set the prompt to "wait-moment|cm_sc_ccc_lookup_insert.agi,ccc_test---8199"

cm_sc_send_url.agi

# cm_sc_send_url.agi version 2.14
#
# Designed to work with Call Menus to send a URL defined in a Settings Container
# for a call with a lead_id associated with it(use CUSTOMERCLOSER in the In-Group
# Action Transfer CID field!).
#
# If container is not found, call will go to the 'C' option in the call menu
# If lead_id is not defined, call will go to the 'D' option in the call menu
# After URL is sent, call will go to the 'B' option in the call menu
#
# Flag Options:
# 1- container_id for settings container with URL to send
#
# example of what to set in the Call Menu:
# Set the prompt to "sip-silence|cm_sc_send_url.agi,test_cm_url"
#
# The URL that you define in the Settings Container can use most of the
# variables you can use in the Dispo Call URL fields. The 'user' and 'status'
# fields as well as the talk_time, talk_time_min and ivr_time fields that are
# also available will all use the last vicidial_agent_log entry for it's values.

cm_sc_send_url_status.agi

# cm_sc_send_url_status.agi version 2.14
#
# Designed to work with Call Menus to send a URL defined in a Settings Container
# for a call with a lead_id associated with it(use CUSTOMERCLOSER in the In-Group
# Action Transfer CID field!).
#
# If container is not found, call will go to the 'C' option in the call menu
# If lead_id is not defined, call will go to the 'D' option in the call menu
# After URL is sent, call will go to the 'B' option in the call menu
#
# Flag Options: (separated by 3 dashes '---')
# 1- container_id for settings container with URL to send
# 2- GET or POST (send URL method, defaults to GET)
# 3- status to change lead to <optional>
#
# example of what to set in the Call Menu Prompt:
# Set the prompt to "sip-silence|cm_sc_send_url_status.agi,test_cm_url---POST---BGOOD"
#
# example of what to set in a Call Menu AGI option:
# Set the prompt to "cm_sc_send_url_status.agi,test_cm_url---POST---BGOOD"
#
# The URL that you define in the Settings Container can use most of the
# variables you can use in the Dispo Call URL fields. The 'user' and 'status'
# fields as well as the talk_time, talk_time_min and ivr_time fields that are
# also available, it will all use the last vicidial_agent_log entry for it's values.

cm_speak_var.agi

# cm_speak_var.agi version 2.14
#
# runs after a call has lead_id assigned to it, speaks letters/numbers
#
# You need to put lines similar to those below in your Custom Dialplan:
#
# exten => 8412,1,Answer
# exten => 8412,n,AGI(cm_speak_var.agi,say_digits---security_phrase---DB)
# exten => 8412,n,Hangup
#
# CLI FLAG OPTIONS:
# 1. function: (say_digits, say_number, say_alpha, say_datetime, say_phonetic, stream_file)
# 2. field: (any vicidial_list field)
# 3. variable type: DB(default) or DP(Asterisk Dialplan Variable)

cm_status_dial.agi

# cm_status_dial.agi   version 2.14
#
# Used as a Call Menu AGI option route to alter status of a lead before dialing.
# The lead is only updated if the call is tagged with a lead_id before this script.
#
# You need to put lines similar to those below in your extensions.conf file or
# a Custom Dialplan entry:
# ; Below are the parameters needed for the script to be run properly
# ; 1. the status to change the lead to
# ; 2. the phone number or extension to dial
# ; 3. the context to dial in
# ;
# ;inbound calls check calltime:
#cm_status_dial.agi,XFER-----917275551212-----default

cm_VID_SPECIAL.agi

# cm_VID_SPECIAL.agi version 2.14
#
# runs when a call comes from a Call Menu VIDPROMPTSPECIAL... INGROUP option.
# This script will send calls to various In-Groups or Call Menu options based
# on settings in a Settings Container and results of a lead search.
#
#
# You need to put lines similar to those below in your extensions.conf file:
# ; Below are the parameters needed for the script to be run properly
# ; 1. the method of call handling for the script:
# ;     - VIDPROMPTSPECIALLOOKUP -      Prompt Vendor Lead Code to User with IVR to find record in whole system
# ;     - VIDPROMPTSPECIALLOOKUPRL -    Restrict lookup to one list
# ;     - VIDPROMPTSPECIALLOOKUPRC -    Restrict lookup to one campaign's lists
# ; 2. the method of searching for an available agent:
# ;     - LO - Load Balance Overflow only (priority to home server)
# ;     - LB - <default> Load Balance total system
# ;     - SO - Home server only
# ; 3. the list_id to insert the new lead under if it is new (and CID/ANI available)
# ; 4. the phone dialing code to insert with the new lead if new (and CID/ANI available)
# ; 5. the campaign_id to search within lists if CIDLOOKUPRC
# ; 6. VID enter prompt filename to play if method is set to a VID* option
# ; 7. VID you-have-entered filename to play if method is set to a VID* option
# ; 8. VID confirm prompt filename to play if method is set to a VID* option
# ; 9. VID digit length validation to use if method is set to a VID* option, set to empty or X to disable
# ; 10. Settings Container to use for settings for this script, must be CM_VIDPROMPT_SPECIAL container type
#
# ;inbound VICIDIAL calls:
#exten => 1234,1,Answer                  ; Answer the line
#exten => 1234,2,AGI(cm_VID_SPECIAL.agi,VIDPROMPTSPECIALLOOKUP---LB---999---1---TESTCAMP---x---y---z---X---VID_special_test)
#exten => 1234,3,Hangup

cm_wait.agi

# cm_wait.agi version 2.14
#
# Designed to make a call wait for X milliseconds before exiting
#
# Flag Options:
# 1- milliseconds to wait, default 1000
#
# example of what to set in the Call Menu:
# Set the prompt to "cm_wait.agi,1000"

debug_speak.agi

# debug_speak.agi version 2.0.5
#
# runs during any extension and speaks the extension sent to it while
# printing the extension as well as lots of info about the call to STDERR
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ;inbound errors with speaking of extension:
#exten => _XXXX,1,AGI(debug_speak.agi,${EXTEN})
#exten => _XXXX,3,Hangup

getAGENTchannel.agi

# getAGENTchannel.agi by Omar Rodriguez  www.ItContinental.com
# Copyright (C) 2016  Matt Florell <vicidial@gmail.com>    LICENSE: AGPLv2
# This script is able to return the name of the channel that belongs to the agent,
# to allow administrators to whisper to the agents
# Has been made using Vicidial code as Base

invalid_speak.agi

# invalid_speak.agi version 2.0.5
#
# runs during an invalid extension and speaks the extension sent to it while printing to STDERR
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ;inbound errors with speaking of extension:
#exten => _XXXX,1,AGI(invalid_speak.agi,${EXTEN})
#exten => _XXXX,2,Playback(invalid)
#exten => _XXXX,3,Hangup
#
#exten => _*XXXXXXXXXX*XXXX,1,AGI(invalid_speak.agi,${EXTEN})
#exten => _*XXXXXXXXXX*XXXX,2,Playback(invalid)
#exten => _*XXXXXXXXXX*XXXX,3,Hangup
#
#exten => _*XXXXXXXXXX*XXXX*,1,AGI(invalid_speak.agi,${EXTEN})
#exten => _*XXXXXXXXXX*XXXX*,2,Playback(invalid)
#exten => _*XXXXXXXXXX*XXXX*,3,Hangup
#
#exten => _**XXXX,1,AGI(invalid_speak.agi,${EXTEN})
#exten => _**XXXX,2,Playback(invalid)
#exten => _**XXXX,3,Hangup
#
#exten => _**XXXX*,1,AGI(invalid_speak.agi,${EXTEN})
#exten => _**XXXX*,2,Playback(invalid)
#exten => _**XXXX*,3,Hangup

park_call_IVR_cf_collect.agi

# park_call_IVR_cf_collect.agi version 2.12
#
# NOTE: this script is to be used with the Park Call IVR feature in campaigns.
# The purpose of this script is to allow the agent to park a call on this IVR
# and have the customer enter in sensitive numbers. This script should not
# require any modification to work.
#
# Defined in the Park Call AGI IVR field of a campaign, this script will ask
# customer for their ID and then populate it in the custom fiels defined in the
# variable below and then send the call back to the agent. If the customer
# enters nothing X number of times then the call can be kicked out to a separate
# in-group
#
# Here is a list of the variables that you can set:
#  1.  Language - default: en (English), other options are es-Spanish, fr-French
#  2.  First prompt - default: please_enter_id_number
#  3.  You-Entered prompt - default: you-entered
#  4.  Confirmation prompt - default: confirm_id_number
#  5.  Thank you prompt - default: auth-thankyou
#  6.  Invalid prompt - default: buzz
#  7.  Attempts before kick-out - default: 2
#  8.  Kick-out prompt - default: outside-transfer
#  9.  Kick-out In-Group
#  10. Custom Field to populate
#
# Example Park Call AGI IVR field:
# park_call_IVR_cf_collect.agi,en---please_enter_id_number---you-entered---confirm_id_number---auth-thankyou---buzz---2---outside-transfer---TEST_IN---test2

park_call_IVR_example.agi

# park_call_IVR_example.agi version 2.4
#
# NOTE: this script is an example of how you can use a custom AGI script with
# the new Park Call IVR feature in campaigns. You will most likely need to
# significantly alter this script to suit your specific needs
#
# Defined in the Park Call AGI IVR field of a campaign, this script will ask
# customer for their ID and then populate it in the vicidial_list table and then
# send the call back to the agent. If the customer enters nothing X number of
# times then the call can be kicked out to a separate in-group
#
# Here is a list of the variables that you can set:
#  1.  Language - default: en (English), other options are es-Spanish, fr-French
#  2.  First prompt - default: please_enter_id_number
#  3.  You-Entered prompt - default: you-entered
#  4.  Confirmation prompt - default: confirm_id_number
#  5.  Thank you prompt - default: auth-thankyou
#  6.  Invalid prompt - default: buzz
#  7.  Attempts before kick-out - default: 2
#  8.  Kick-out prompt - default: outside-transfer
#  9.  Kick-out In-Group
#
# Example Park Call AGI IVR field:
# park_call_IVR_example.agi|en---please_enter_id_number---you-entered---confirm_id_number---auth-thankyou---buzz---2---outside-transfer---TEST_IN
#
# NOTE: For Asterisk 1.8 and higher, use a comma instead of a pipe in the Park Call AGI IVR field

park_CID.agi

# park_CID.agi version 2.14
#
# runs before the park extension to populate the parked_channels entry with the channel's callerid
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ;outbound dialing:
# exten => 8301,1,Answer
# exten => 8301,2,AGI(park_CID.agi)
# exten => 8301,3,Playback(park)
# exten => 8301,4,Hangup

phone_alt_CID.agi

# phone_alt_CID.agi
#
# Changes the CID number on calls that pass through it to the Alternate defined
# in the 'phones' record for the phone that placed the call
#
# You need to have lines similar to those below in your Custom Dialplan:
#
#;use alternate CID, if defined:
#exten => _91NXXNXXXXXX,1,AGI(phone_alt_CID.agi,${EXTEN})
#exten => _91NXXNXXXXXX,n,Goto(default,${EXTEN},1)
#
# The easiest way to set this up for a phone is to create a new Call Menu and
# then put the above Custom Dialplan into it, then set the Phone's
# 'phone context' to the call menu ID that you just created.

timer_rebeep.agi

# timer_rebeep.agi
#
# This script is designed to be launched from the in-group/campaign timer
# setting to set another trigger event for the next X seconds. Often used for
# calls that need to have a periodic beep signifying that the call is being
# recorded
#
# Just add the following to the System Settings Custom Dialplan Entry
# and set rebuild conf=Y
# exten => 8399,1,Answer
# exten => 8399,n,Wait(1)
# exten => 8399,n,Playback(beep)
# exten => 8399,n,AGI(timer_rebeep.agi,20---D1_DIAL_QUIET)
# exten => 8399,n,Hangup
#
# ; Below are the parameters needed for the script to be run properly
# ; 1. seconds delay before next trigger goes
# ; 2. timer action to launch
#
# Then set the in-groups/campaigns that you want to have this enabled
#   "Timer Action" = D1_DIAL_QUIET
#   "Timer Action Seconds" = 20
#   "Transfer Conf Number 1" = 8399

VD_amd.agi

# VD_amd.agi version 2.14
#
# runs after a call goes through AMD in extensions.conf to send the call on to
# it's proper destination, or when agent sends to VM message
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
# exten => 8369,1,AGI(call_log.agi,${EXTEN})
# exten => 8369,2,(AMD),AMD
# exten => 8369,3,AGI(VD_amd.agi,${EXTEN}-----NO)
# exten => 8369,4,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
# exten => 8369,5,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
# exten => 8369,6,AGI(agi-VDAD_LB_transfer.agi,${EXTEN})
# exten => 8369,7,Hangup
#
# exten => 8320,1,AGI(VD_amd.agi,${EXTEN}-----YES)
# exten => 8320,2,Hangup
# exten => _8320*.,1,AGI(VD_amd.agi,${EXTEN}-----YES)
# exten => _8320*.,2,Hangup

VD_auto_post_VERIFY.agi

# VD_auto_post_VERIFY.agi version 2.0.5   *DBI-version*
#
# NOTE: This script is only used with auto-message campaigns with dynamic data
#
# runs after a call is answered
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
#exten => 8320,1,WaitForSilence(2000,2) ; wait for 2 seconds of silence
#exten => 8320,2,AGI(VD_auto_post_VERIFY.agi,${EXTEN})
#exten => 8320,3,Hangup

VDL_CID_lookup.agi

# VDL_CID_lookup.agi      version 2.6
#
# runs after a call goes through AMD in extensions.conf to send the call on to
# it's proper destination
#
# You need to put lines similar to those below in your extensions.conf file:
#
# ; VICIDIAL_auto_dialer transfer script AMD with Load Balanced:
# exten => 8369,1,Ringing
# exten => 8369,2,Wait(1)
# exten => 8369,3,Answer
# exten => 8369,4,AGI(VDL_CID_lookup.agi)
# exten => 8369,5,AGI(agi-VDAD_ALL_inbound.agi,CID-----LB-----IN_TEST-----7275551212-----Closer-----park----------999-----1)
# exten => 8369,6,Hangup
# exten => 8369,7,AGI(call_logCID.agi,${EXTEN}-----${CALLERID}-----${CALLERIDNUM}-----${CALLERIDNAME})
# exten => 8369,8,AGI(agi-VDADinbound_NI_DNC_CIDlookup.agi)
# exten => 8369,9,Hangup