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

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

В большенстве реализованых кол бек системах звонок сначала поступает тому кто звонил, а уж потом оператору, это и не выгодно, так как мы платим за ожидания пользователя на линии и не удобно, так как пользователь вынужден слушать музыку.

Как это решить:

Все наши транки, которым нужен кол бек должны быть в контексте, например “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 адреса не оприлюднюватиметься. Обов’язкові поля позначені *

+ 8 = 13