Страница 1 из 2

web callback

Добавлено: 19 фев 2012, 17:41
telef
решил на сайте сделать web callback
нашел скрипт:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: код скрипта callback
<?

#------------------------------------------------------------------------------------------
#edit the below variable values to reflect your system/information
#------------------------------------------------------------------------------------------

#specify the name/ip address of your asterisk box
#if your are hosting this page on your asterisk box, then you can use
#127.0.0.1 as the host IP. Otherwise, you will need to edit the following
#line in manager.conf, under the Admin user section:
#permit=127.0.0.1/255.255.255.0
#change to:
#permit=127.0.0.1/255.255.255.0,xxx.xxx.xxx.xxx ;(the ip address of the server this page is running on)
$strHost = "Asterisk IP Address";

#specify the username you want to login with (these users are defined in /etc/asterisk/manager.conf)
#this user is the default AAH AMP user; you shouldn't need to change, if you're using AAH.
$strUser = "your_name";

#specify the password for the above user
$strSecret = "your_secret";

#specify the channel (extension) you want to receive the call requests with
#e.g. SIP/XXX, IAX2/XXXX, ZAP/XXXX, etc
$strChannel = "SIP/107";

#specify the context to make the outgoing call from. By default, AAH uses from-internal
#Using from-internal will make you outgoing dialing rules apply
$strContext = "from-internal";

#specify the amount of time you want to try calling the specified channel before hangin up
$strWaitTime = "30";

#specify the priority you wish to place on making this call
$strPriority = "1";

#specify the maximum amount of retries
$strMaxRetry = "2";

#--------------------------------------------------------------------------------------------
#Shouldn't need to edit anything below this point to make this script work
#--------------------------------------------------------------------------------------------
#get the phone number from the posted form
$strExten = $_POST['txtphonenumber'];

#specify the caller id for the call
$strCallerId = "Web Call <$strExten>";

$length = strlen($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");
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">Введите Ваш номер ( 812XXXXXXX ).</font>
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">
<input type="text" size="20" maxlength="10" name="txtphonenumber"><br>
<input type="submit" value="Позвонить!">
</form>
</td></tr>
</table>
</p>
<?
}
?>
скопировал, на сайт www.ipotekatyt.ru/call.php
прописал свои параметры,
пробросил 5038 порт.
но при запуске скрипта астериск никак не реагирует
может скрипт не рабочий,
кто настраивал посоветуйте?

Re: web callback

Добавлено: 24 окт 2012, 10:35
mousesport
:?: та же беда, нашел этот скрипт и так запустить не получилось . даже ни разу не увидел ни ссылку ни текст "Еще" и "Производится вызов. Подождите пока Ваш телефон зазвонит" . Если кто сталкивался - HELP!

Re: web callback

Добавлено: 24 окт 2012, 11:26
mousesport
причем сами команды

Код: Выделить всё

Action: login
Username: user_name
Secret: pass

Action: originate
Channel: SIP/510
WaitTime: 30
CallerId: callweb
Exten: 89290000000
Context: from-internal
Priority: 1

Action: Logoff
астериска через telnet отрабатывает нормально. видимо косяк в скрипте.

Re: web callback

Добавлено: 24 окт 2012, 18:35
mousesport
все со всем разобрался, не правильно задал длину номера, и скрипт не успевал отрабатывать пришлось вставлять паузы.

Re: web callback

Добавлено: 05 сен 2016, 16:04
fooks
Подскажи, пожалуйста, где и как паузу сделал?

Re: web callback

Добавлено: 06 сен 2016, 10:19
fooks
Вставил перед закрытием сокета, вроде помогло:

...
sleep(1);
fclose($oSocket);
...

Re: web callback

Добавлено: 28 сен 2016, 09:56
fooks
Никак не могу найти, где указывается время сессии скрипта, т.е. человек, нажатием кнопки на сайте активирует скрипт, который в свою очередь создает соединение с астериском и передает параметры, это соединение длится 30 сек. В течение 30 сек. астер звонит на внутренний номер, после скрипт разрывает соединение...

Как увеличить это время, чтобы дозвон (уже на самом сервере) мог длится дольше.

Re: web callback

Добавлено: 29 сен 2016, 08:24
virus_net
fooks писал(а):после скрипт разрывает соединение...
Скрипт ничего не разрывает, т.к. он генерит сам вызов и завершает свою работу.
http://asterisk.ru/knowledgebase/Asteri ... +Originate
http://www.voip-info.org/wiki/view/Aste ... +Originate

Re: web callback

Добавлено: 29 сен 2016, 11:50
ugine_od
/etc/php5/apache2/php.ini :

; Maximum execution time of each script, in seconds
; http://php.net/max-execution-time
; Note: This directive is hardcoded to 0 for the CLI SAPI
max_execution_time = 30

оно?

Re: web callback

Добавлено: 29 сен 2016, 13:53
virus_net
ппц... :shock: