+38 063 731 76 76; +38 096 446 96 48 info@астериск.укр

Правильний call back для черги 0800 в Astrisk

У більшості реалізованих кіл бек системах дзвінок спочатку надходить тому хто дзвонив, а вже потім оператору, це і не вигідно, так як ми платимо за очікування користувача на лінії і не зручно, оскільки користувач змушений слухати музику.

Як це вирішити:

Всі наші транки, яким потрібна кількість бек повинні бути в контексті, наприклад “callback-to-to”

в ньому ми вітаємо користувача і говоримо про передзвон, по хенгапу виконуємо скрипт створення кол файлу, не чекаємо поки дослухає запис, так як можемо пропустити, а саме по хенгапу, див. нижче.

[callback-to-to]
exten => s,1,Playback(custom/hello)
exten => n,hangup
exten => h,1,System(/var/lib/asterisk/agi-bin/callback.sh ${CALLERID(num)})

Для операторів створили чергу 1001, куди і будемо надсилати дзвінок, Час очікування відповіді однієї спроби 900 секунд, спроб 10, а раптом …. Скрипт виглядає так:

####create астериск.укр ##########

#!/bin/sh

#Get number to call
number=$1
callfile=/tmp/$number.call
rm -Rf $callfile

#Create call file
touch $callfile
echo “Channel: Local/1001@from-queue” >> $callfile
echo “CallerID: $number ” >> $callfile
echo “MaxRetries: 10” >> $callfile
echo “RetryTime: 10” >> $callfile
echo “WaitTime: 900” >> $callfile
echo “Context: callback” >> $callfile
echo “Extension: s” >> $callfile
echo “Priority: 1” >> $callfile
echo “Set: BNUM=$number” >> $callfile
echo “Set: number_to=$numen_to” >> $callfile

#Move call file to asterisk directory
mv $callfile /var/spool/asterisk/outgoing/

exit 0

######END #########

Контекст для виконання вихідних “callback” він виконується після того, як оператор знімає трубку.

[callback]
exten => s,1,Answer()
same => n,Wait(4)
same => n,Dial(Local/${BNUM}@from-internal,220,r)
same => n,Hangup

В результаті ми отримали таку систему:

  1. Користувач дзвонить, і чує привіт ми Вам передзвонимо.
  2. Перший оператор, що звільнився, отримує вхідний дзвінок
  3. Після того, як оператор зняв трубку, користувач отримує вхідний дзвінок, і успішно розмовляє з оператором.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

82 + = 90