Прехвърляне на повикване с помощта на скрипт в Asterisk

скрипт

Не толкова отдавна един от нашите клиенти имаше нужда да прехвърли повиквания (входящи и изходящи), като щракна от браузъра. Логиката е следната: група оператори на кол център получават и осъществяват повиквания и след разговор и изясняване на нуждите трябва да свържат клиента с един от клиентите или друг специалист в организацията.

В някои случаи подобна задача се решава по следния начин: при събитие в CRM номерът на оператора се въвежда в определена база данни и номерът, с който трябва да свържете събеседника му. След това операторът прехвърля повикването към номера на услугата, в контекста на прехвърлянето се отправя запитване към базата данни и повикването накрая се прехвърля на желания номер. Диалпланът за изходящи в този случай изглежда по следния начин:

[излизане от оператора]
exten => _X., 1, Noop (изходящо обаждане от $ до $)
exten => _X., n, Set (__ TRANSFER_CONTEXT = трансфер)
exten => _X., n, Dial (SIP/доставчик/$, 30, T)

[прехвърляне]
exten => 800,1, Set (num = ODBC_GETXFERNUM ($
exten => 800, n, Noop (прехвърляне в $)
exten => 800, n, Goto (някакъв контекст, $, 1)

С всички недостатъци този метод може да се използва, ако предварително се знае на кой номер може да се наложи прехвърлянето на повикването. Да предположим, че кол центърът работи за изходящи повиквания до клиенти на няколко клиенти. Повикване се генерира автоматично от CRM (използвайки файл с повиквания или чрез първоначално в AMI), където операторът щраква върху бутона "следващо повикване" и вижда скрипта на разговора с клиента. След това можете просто да добавите наследствена променлива с номер и да прехвърлите повикването към нея:

Добавете наследената променлива __num към callfile:

Канал: Local/101 @ от вътрешен
Калерид: 74950000000
MaxRetries: 2
RetryTime: 600
Време на изчакване: 30
Контекст: от вътрешен
Разширение: 74950000000
Приоритет: 1
Набор: __num = 79991112233

И контекстът на превода ще изглежда още по-опростен:

exten => 800,1, Noop (прехвърляне в $)
exten => 800, n, Goto (някакъв контекст, $, 1)

Въпреки това, в нашия случай, както беше споменато по-горе, е нежелателно да се използва такъв метод.

За щастие разработчиците на звездички се погрижиха за нас и чрез клипа можете да преведете определен канал в даден контекст: