+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. После того как оператор снял трубку пользователь получает входящий звонок, и успешно говорит с оператором.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

15 + = 19