Surf&Call
Сообщений: 1530
|
Surf&Call
Здравствуйте!
Кто-нибудь использует звонки с WEB-сайта?
Провайдеры, предоставляющие такую услугу меня не интересуют!
Ищется именно сам плагин (на java/ActivX/etc), позволяющий без установки на компьютер клиента, осуществлять звонки на некий фиксированный SIP-номер, к примеру менеджеру или в техподдержку, с сайта конторы (ткнул на ссылочку и уже гудки слушаешь ;)).
Ищу бесплатные и платные реализации.
Заранее спасибо!
|
Сообщений: 569
|
Re: Surf&Call
глючить это всё будет по-страшному... уж лучше в формочку на сайте просить пользователя свой номер ввести и самим перезванивать клиенту
|
Откуда: Санкт-Петербург
Сообщений: 541
|
Re: Surf&Call
2 tma: на том же voip-info.org есть ссылки на апплеты.
Даже если распишешь инструкцию что где включить/отключить для java/activex - все равно читать не будут.
|
Сообщений: 1530
|
Re: Surf&Call
Спасибо за ответы и за ссылки.
Все-таки хочу попробовать все варианты.
Вариант с формочкой не удобен, т.к. люди у нас ленивые и что-либо вводить их не заставишь. Еще подумают -- "а зачем это им понадобился мой телефон"... ;)
|
Откуда: Санкт-Петербург
Сообщений: 541
|
Re: Surf&Call
Если там написано "введите номер телефона, по которому вам перезвонить", то даже и не знаю что там думать еще.
За пару месяцев одной формочки соотношение .ru/не.ru - 2/1
это, imho, несколько удобнее, чем web-based soft-client ;)
у вызывающей стороны нет проблем с установкой чего-попало на свой компьютер и, может одно из главных, с fw/nat/proxy/etc.
Попробуй сделать sip/iax activex/java-applet и формочку - соберешь
статистику ;)
|
Сообщений: 4
|
Re: Surf&Call
Поставил вот себе попробовать Skype звонки, на один из сайтов http://auto-prava.ru знакомые конечно протестили, скайпится нормально. Но клиентов пока не слышал, очень интересно. А вообще рассчитываю завести Skype в Asterisk и принимать звонки с сайта непосредственно на внутренние номера сотрудников. Насколько это просто или сложно, я будучи чайником, разумеется, не ведаю, но думаю что не решаемых вопросов не существует.
|
Сообщений: 1530
|
Re: Surf&Call
Skype испольщзует свой собственный закрытый протокол сигнализации.
Я бы не советовал на него ориентироваться.
Не слышал, чтобы кто-нибудь сделал нормальный гейт skype <-> SIP.
Для себя я сделал через Callback -- оставил номер на сайте и идет отзвонка по нему.
Правда что делать с добавочными я не знаю. ;(
|
Сообщений: 14
|
Re: Surf&Call
2tma:
Привет!
Я вот тож захотел сделать кнопку на сайти "позвоните нам". У тебя что-нить получилось? Поделись, если не сложно, как и что? или куда глянуть.
заранее спасибо.
|
Сообщений: 1530
|
Re: Surf&Call
Получилось. Сделал так:
1. Клиент вводит номер телефона и нажимает Ok;
2. По Ok формируется специальный промежуточный файл, содержащий введенный номер;
3. По cron'у пускается скрипт, который читает этот файл и формирует call-файл для asterisk'а.
4. asterisk звонит, проигрывает на IP-телефон сообщение "примите входящий звонок" и начинает звонить по введенному номеру;
5. Дозвонившись, происходит объединение каналов.
Усложнено из-за безопасности. ;)
asterisk работает из-под пользователя asterisk, а apache -- из-под пользователя apache.
Взаимная запись исключена, поэтому промежуточный скрипт (в форме все остальные знаки отфильтровываются!) формирует call-файл с нужной датой (asterisk смотрит на дату -- файл из будущего он обработает в будущем!).
Можно все упростить с возможной потерей безопасности или же если Ваш дистрибутив позволяет небезопасные варианты. ;)
|
Сообщений: 188
|
Re: Surf&Call
Вот php скрипт для этих целей. Сделан он не мной, я его только немного переделал и исправил одну ошибку.
<?php
// (c) Copyright Ward Mundy, 2005. All rights reserved.
// This script will only work with Asterisk@Home ver. 1.3 or higher
$num=$_REQUEST['num'];
$errno=0 ;
$errstr=0 ;
$fp = fsockopen ("localhost", 5038, &$errno, &$errstr, 20);
if (!$fp) { echo "$errstr ($errno)<br>\n"; }
else {
fputs ($fp, "Action: login\r\n");
fputs ($fp, "Username: phpagi\r\n");
fputs ($fp, "Secret: phpagi\r\n");
fputs ($fp, "Events: off\r\n\r\n");
sleep(1) ;
fputs ($fp, "WaitTime: 30\r\n");
fputs ($fp, "Action: Originate\r\n");
fputs ($fp, "Channel: SIP/XXXX/YYYYYYYYY\r\n");
fputs ($fp, "Callerid: 9999\r\n");
fputs ($fp, "Context: custom-callback\r\n");
fputs ($fp, "Exten: $num\r\n");
fputs ($fp, "Priority: 1\r\n\r\n");
sleep(1) ;
fclose ($fp);
echo "Num=$num" ;
}
?>
Channel это номер экстеншена (например SIP/201) или номер внешнего телефона (SIP/trunk/74951122334), на который вы хотите принимать звонок
Callerid отображаемый при звонке через callback номер. Если я вижу "9999" то понимаю, что это callback. Но можно вместо 9999 вписать $num и тогда будет отображаться номер, с которым будет произведено соединение.
В контексте [custom-callback] можно написать include => outbound-routes (ну или как оно у вас называется) и звонок будет произведен согласно настроенным исходящим рутам, потому что переменная ${EXTEN} содержит вызываемый номер.
Вызов скрипта
http://asterisk.domain.com/callback.php?num=74951234567
через num передается номер куда делается callback
|
|