Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

webcallback соединение менеджера с клиентом

0

Доброго времени суток,коллеги! Появилась задача, соединить клиента, который находится на сайте и менеджера, который ждет звонка от клиентов. Т.е клиент вводит на сайте в форму свой номер телефона и идет соединение вначале с менеджером, а затем с клиентом, и происходит соединение их. некий бридж, конференция, не знаю как правильно обозвать. Есть скрипт на сайте, который реализует данную идею:

$strHost = "51.22.88.161";
$strUser = "webuser";
$strSecret = "HrEpK2elG";
$strChannel = " SIP/provider/380661256725";
$strContext = "provider-out";
$strWaitTime = "65";
$strPriority = "1";
$strMaxRetry = "1";
$strExten = $_POST['txtphonenumber'];
$strCallerId = "Web Call <$strExten>";
if ($length >= 7 && is_numeric($strExten))
{
$oSocket = fsockopen($strHost, 5038, $errnum, $errdesc) or die("Connection to host failed");
fputs($oSocket, "Action: login\r\n");
fputs($oSocket, "Events: off\r\n");
fputs($oSocket, "Username: $strUser\r\n");
fputs($oSocket, "Secret: $strSecret\r\n\r\n");
fputs($oSocket, "Action: originate\r\n");
fputs($oSocket, "Channel: $strChannel\r\n");
fputs($oSocket, "WaitTime: $strWaitTime\r\n");
fputs($oSocket, "CallerId: $strCallerId\r\n");
fputs($oSocket, "Exten: $strExten\r\n");
fputs($oSocket, "Context: $strContext\r\n");
fputs($oSocket, "Priority: $strPriority\r\n\r\n");
fputs($oSocket, "Action: Logoff\r\n\r\n");
sleep (1);
fclose($oSocket);
?>
<p>
<table width="300" border="1" bordercolor="#630000" cellpadding="3" cellspacing="0">
    <tr><td>
    <font size="2" face="verdana,georgia" color="#630000">Производится вызов. Подождите пока Ваш телефон зазвонит!<br>Если телефон не позвонил в течении минуты, попробуйте ещё раз.<br><a href="<? echo $_SERVER['PHP_SELF'] ?>">Ещё раз</a></font>
    </td></tr>
</table>
</p>
<?
}
else
{
?>
<p>
<table width="300" border="1" bordercolor="#630000" cellpadding="3" cellspacing="0">
    <tr><td>
    <font size="2" face="verdana,arial,georgia" color="#630000">Введите Ваш номер ( 380XXXXXXXXX ).</font>
    <form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">
        <input type="text" size="20" maxlength="12" name="txtphonenumber"><br>
        <input type="submit" value="Позвонить!">
    </form>
    </td></tr>
</table>
</p>
<?
}
?>

Но есть 3 проблемы на данный момент с которыми столкнулся:
1) Звонок не логгируется в Master.csv
2) Звонок не записывается.
3) Если менеджер(SIP/provider/380661256725) - выключен\отбивает, то звонок всё равно идет на клиента и разумеется ему говорить в таком случае не с кем.

Подскажите, как правильно реализовать данную затею.
удалить закрыть спам изменить тег редактировать

спросил 2014-09-29 22:46:16 +0400

kulibin Gravatar kulibin
69 5 5

Comments

1) Включите debug, смотрите в CLI

2) Вызовите mixmonitor в соответствующем контексте в диалплане.

3) Ну, а кто вам мешает сначала набрать манагера, если он доступен и ответил, то только после этого набирать клиента ? Правильно, никто не мешает.

virus_net ( 2014-09-30 09:11:06 +0400 )редактировать

1 Ответ

0

Не думаю, что показывать IP своих серверов и данные авторизации в интернетах хорошая идея, даже если на своей стороне огораживаешься по IP источника.

Я сейчас занимаюсь те же вопросом и как видно настраивал по той же статье.

http://www.asterisk-pbx.ru/wiki/doku.php/artikle/asteriskwebcallback

В моем случае нет ни одной из описанных проблем. Но я соединяю с локальным каналом SIP/XXX.

У тебя же идет через провайдера, наверное в этом проблема с тем, что не срабатывает отбой соединения.

ссылка удалить спам редактировать

ответил 2014-09-30 04:55:21 +0400

thunderamur Gravatar thunderamur
405 61 8 27

Comments

А я думаю, что выставлять AMI в Инет это вообще плохая идея.

virus_net ( 2014-09-30 09:12:21 +0400 )редактировать

Согласен с virus_net, мы эту функцию реализовали CALL файлам, через http запросы.

romariosar ( 2014-09-30 15:25:37 +0400 )редактировать

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

kulibin ( 2014-10-01 14:30:13 +0400 )редактировать

что значит "передать" ? пошлите ему СМС :)

virus_net ( 2014-10-31 22:27:26 +0400 )редактировать

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

kulibin ( 2014-11-03 23:59:56 +0400 )редактировать
1

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

А зачем клиенту знать номер менеджера ? Чтобы он смог сам перезвонить ? Для этого можно настроить во входящей маршрутизацию вызова по CID. После успешного совершения вызова на клиента делать запись, например самый простой вариаент это в astdb, пару "клиент-менеджер" и если клиент перезвонит, то направлять вызов не в стандартный IVR, а сразу менеджеру. Либо вам нужен SIP провайдер, который пропускет любой CID и вы сможете выставлять любой CID при совершении исходящего вызова на клиента.

virus_net ( 2014-11-04 09:57:02 +0400 )редактировать

понял, что нерешаемая ситуация, потому как найти провайдера, который сможет всегда передавать\подставлять правильный cid любого оператора наверное нереально. менеджеров как и организаций, которые они собственно и будут представлять будет много, поэтому единственный наверное правильный вариант, это подтверждать телефон менеджера у sip оператора и подставлять cid (менеджера) для связи самого менеджера и далее клиента. тогда клиент всегда будет видеть кто звонит, а менеджер сможет увидеть номер телефона клиента уже в "личном кабинете" или смс.

kulibin ( 2014-11-04 13:31:14 +0400 )редактировать

kulibin, конечно такой провайдер есть. Можете обратиться к нам, наша компания в частности специализируется на пропуске CID, заданного клиентом. CID задается через Set(CALLERID(num)=NUM)

tma ( 2014-11-05 09:40:34 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2014-09-29 22:46:16 +0400

Просмотрен: 345 раз

Обновлен: Sep 30 '14

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.