Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. + 7 499 704 2566 Skype Me™!

Звонок с сайта

Оцените материал
(2 голосов)

Звонок с сайта - это сервис, позволяющий на web-сайте в специальной форме заказать обычный телефонный звонок с заранее заданного номера телефона на произвольный номер телефона посетителя.

Звонок будет бесплатным для посетителя сайта, такой вариант оплаты разговоров называется "звонок за счёт вызываемой стороны" - еще одно приложение на базе IP АТС Asterisk, демонстрирующее возможности по интеграции с базами данных и приложениями в сети "интернет"..

 

  • ВСЕ ваши потенциальные клиенты будут звонить вам даже с мобильных телефонов или из других городов, когда это им нужно, ведь для них этот звонок ничего не стоит;
  • Вы не потеряете клиентов из-за того, что телефон занят или не отвечает;
  • Даже если клиент вам не дозвонился, вы все равно узнаете, что он звонил, и сможете связаться с ним при первой возможности;
  • Живое общение гораздо эффективнее и вызывает больше доверия, нежели несколько строк в ответном электронном письме.

Зарегистрировавшись на сайте www.sipring.ru - Вы сможете связаться с менеджером интернет магазина  с использованием данной технологии. (Демонстрационная версия для номеров Московского региона в коде 495-ХХХХХХХ.)

 

Звонок с сайта на Ваш номер(495XXXXXXX)

 

Работа данного приложения основана на AMI. Asterisk Manager Interface (AMI) – мощный программный интерфейс. Он позволяет внешним программам как управлять, так и контролировать систему Asterisk. Этот интерфейс часто используется для интеграции Asterisk с существующими бизнес-процессами и системами, программным обеспечением CRM (Customer Relationship Management – управление взаимоотношениями с клиентами). Он также может применяться для разнообразных приложений, таких как программы автоматического набора номера и системы click-to-call (звонок-по-щелчку), как в данном случае.

Чтобы использовать интерфейс Manager, необходимо задать учетную запись для пользователя web_call с ограниченными возможностями в файле /etc/asterisk/manager.conf. Этот файл будет выглядеть примерно так:

  • [general]
  • enabled = yes
  • port = 5038
  • bindaddr = 0.0.0.0

 

  • [web_call]
  • secret = secret
  • deny=0.0.0.0/0.0.0.0
  • read = call
  • write = call

Для пользователя задается имя пользователя в квадратных скобках ([ ]), за которым следует пароль этого пользователя (secret), все IP-адреса, которым вы желаете запретить (deny) доступ, все IP-адреса, которым вы хотите разрешить (permit) доступ, и права на чтение (read) и запись (write) для этого пользователя.

Команды в интерфейс Manager доставляются в пакетах, имеющих следующий синтаксис (строки завершаются CR+LF):

  • Действие: <тип действия>
  • Ключ 1:Значение 1
  • Ключ 2: Значение 2

и т. д. ...

  • Переменная: Значение
  • Переменная: Значение

и т. д. ...

Например, чтобы пройти аутентификацию в интерфейсе Manager (которая необходима для получения возможности любого взаимодейс- твия), необходимо передать следующее:

  • Action: login
  • Username: web_call
  • Secret: secret
  • CR+LF

Дополнительная CR+LF в пустой строке обеспечит передачу в интерфейс Manager пакета целиком. После успешной регистрации в системе AMI можно передавать команды в Asterisk, используя другие действия.


Нам интересно действие -Originate. Параметры действия:

Channel: Канал по которому будет производиться вызов

Context: Используемый контекст

Exten: Внутренний номер используемый для соединения

Priority: Приоритет

Timeout: Тайм аут (миллисекунд) для ожидания установления соединения (по умолчанию 30000 )

CallerID: CallerID используемый для совершения звонка

Variable: Переменная, может быть передана в оба канала (локальный и исходящий).

Account: Account код для звонка (для CDR)

Application: Приложение используемое для вызова

Data : Данные если используется параметр Application

Async: Асинхронные вызовы (без ожидания ответа)

ActionID: Идентификатор запроса

Таким образом пакет который необходимо передать в Asterisk, для осуществления звонка на номер 123-45-67 и соединения с внутренним номером 1001, выглядит следующим образом:

  • Action: Originate
  • Channel: SIP/3400/1234567
  • Timeout: 30000
  • Exten: 1001
  • Context: office
  • Priority: 1
  • Callerid: 1234567
Скрипт php, реализующий передачу данного пакета, без проверки введенного номера, без капчи :
<?php
$strExten=$_POST['number'];
if is_numeric($strExten)
{
$oSocket=fsockopen("IP Asterisk",5038,$errnum,$errdesc) or die("Connection to host failed");
fputs($oSocket, "Action: login\r\n");
fputs($oSocket, "Events: off\r\n");
fputs($oSocket, "Username: web_call\r\n");
fputs($oSocket, "Secret: secret\r\n\r\n");
fputs($oSocket, "Action: originate\r\n");
fputs($oSocket, "Channel: SIP/3400/$strExten\r\n");
fputs($oSocket, "WaitTime: 30000\r\n");
fputs($oSocket, "CallerId: 1234567\r\n");
fputs($oSocket, "Exten: 1001\r\n");
fputs($oSocket, "Context: office\r\n");
fputs($oSocket, "Priority: 1\r\n\r\n");
fputs($oSocket, "Action: Logoff\r\n\r\n");
fclose($oSocket);
?>
<p>
<table  border="1" bordercolor="#8CAAE6" cellpadding="3" cellspacing="1">
<tr><td>
<font size="2" face="verdana,georgia" color="#0066CC">Производится вызов ... Если телефон не позвонил в течении минуты попробуйте.<br><a href="/<?php echo $_SERVER['PHP_SELF'] ?>">Еще раз</a></font>
</td></tr>
</table>
</p>
<?php
}
else
{
?>
<p>
<table  border="1" bordercolor="#8CAAE6" cellpadding="3" cellspacing="1">
<tr><td>
<font size="2" face="verdana,arial,georgia" color="#0066CC">&nbsp;Звонок с сайта на Ваш номер(495XXXXXXX)</font>
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post" >
<input type="text" size="15" maxlength="10" name="number" style="vertical-align: bottom">&nbsp;
<input type="image" src="/tel.gif" width="22" height="24" align="bottom" value="Submit" alt="Позвонить!">
</form>
</td></tr>
</table>
</p>
<?php
}
?>
Зарегистрировавшись на сайте Вы можете позвонить с использованием данной технологии для заказа товара нашему оператору.