Files
callback/CALLBACK-CONFIG.md
2026-09-12 00:19:44 +03:30

5.0 KiB
Raw Permalink Blame History

راهنمای تنظیمات Callback AGI

تمام تنظیمات اجرای برنامه در فایل src/main/resources/application.properties قرار دارد. این AGI به هیچ پارامتر خط فرمانی نیاز ندارد.

تنظیمات اصلی برنامه

پارامتر توضیح
spring.application.name نام برنامه Spring است.
spring.main.web-application-type برنامه را در حالت غیر وب اجرا می‌کند، چون این پروژه یک AGI برای Asterisk است.
debug حالت debug مربوط به Spring Boot را فعال یا غیرفعال می‌کند.

تنظیمات لاگ

پارامتر توضیح
logging.level.root سطح پیش‌فرض لاگ‌های برنامه.
logging.level.org.springframework سطح لاگ Spring Framework و Spring Boot.
logging.level.org.hibernate سطح لاگ Hibernate و JPA.
logging.level.com.zaxxer.hikari سطح لاگ connection pool مربوط به HikariCP.

تنظیمات دیتابیس و JPA

پارامتر توضیح
spring.datasource.url آدرس اتصال JDBC به PostgreSQL.
spring.datasource.username نام کاربری PostgreSQL.
spring.datasource.password رمز عبور PostgreSQL.
spring.datasource.hikari.maximum-pool-size حداکثر تعداد connectionهای موجود در pool.
spring.datasource.hikari.connection-timeout حداکثر زمان انتظار برای گرفتن connection از pool، برحسب میلی‌ثانیه.
spring.jpa.hibernate.ddl-auto نحوه مدیریت schema دیتابیس. مقدار none مانع تغییر schema موجود توسط Hibernate می‌شود.
spring.jpa.open-in-view باز نگه داشتن EntityManager در لایه وب. برای این پروژه غیرفعال است، چون برنامه وب نیست.
spring.jpa.properties.hibernate.jdbc.time_zone منطقه زمانی مورد استفاده JDBC و Hibernate برای timestampها.

تنظیمات Asterisk و IVR

پارامتر توضیح
callback.agi.dial-prefix پیشوند کانال برای تماس با داخلی کارمند؛ مانند PJSIP/ یا SIP/.
callback.agi.dial-timeout-seconds مدت زمان زنگ خوردن داخلی برحسب ثانیه.
callback.agi.ivr-context نام context مربوط به IVR اصلی در dialplan.
callback.agi.ivr-extension extension مقصد در context مربوط به IVR. برای تماس ورودی معمولاً s است.
callback.agi.ivr-priority priorityای که اجرای IVR از آن شروع می‌شود.

در شرایط زیر تماس به IVR منتقل می‌شود:

  • قابلیت callback غیرفعال باشد.
  • callback مناسبی برای مشتری پیدا نشود.
  • داخلی پاسخ ندهد.
  • در جست‌وجو یا اتصال به دیتابیس خطایی رخ دهد.

مقصد IVR از ترکیب سه مقدار زیر ساخته می‌شود:

callback.agi.ivr-context,callback.agi.ivr-extension,callback.agi.ivr-priority

با تنظیمات فعلی، مقصد تماس این است:

from-trunk,s,1

اگر context شما مثلاً company-ivr است، مقدار زیر را تغییر دهید:

callback.agi.ivr-context=company-ivr

تنظیمات رفتار Callback

پارامتر توضیح
callback.agi.enabled فعال یا غیرفعال بودن callback. اگر false باشد، همه تماس‌ها مستقیماً به IVR می‌روند و جدول tbl_cdr بررسی یا تغییر داده نمی‌شود.
callback.agi.lookback-minutes بازه جست‌وجوی تماس‌های خروجی ناموفق برحسب دقیقه. مقدار 60 یعنی یک ساعت.
callback.agi.claim-value مقدار موقت ستون tbl_cdr.target هنگام شروع callback. این مقدار برای قفل هم‌زمانی استفاده می‌شود.
callback.agi.done-value مقدار نهایی ستون tbl_cdr.target بعد از پاسخ داخلی. پس از آن، تماس بعدی همان مشتری به IVR می‌رود.

نمونه تنظیمات

فعال بودن Callback برای یک ساعت گذشته

callback.agi.enabled=true
callback.agi.lookback-minutes=60

غیرفعال کردن کامل Callback

callback.agi.enabled=false

در این حالت تمام تماس‌ها بدون جست‌وجوی callback به IVR می‌روند.

استفاده از IVR متفاوت

callback.agi.ivr-context=my-ivr
callback.agi.ivr-extension=s
callback.agi.ivr-priority=1

تغییر بازه جست‌وجو به ۳۰ دقیقه

callback.agi.lookback-minutes=30