исходящие звонки call файлами
Откуда: Москва
Сообщений: 3421
|
Re: исходящие звонки call файлами
agassh
+1 за рецепт, я так еще не делал :-)
http://asteriskpbx.ru/wiki/howto-connect-to-ami-from-bash-script
|
Откуда: г. Хабаровск
Сообщений: 23
|
Re: исходящие звонки call файлами
Интересная штука, настроил уведомления от серверов по телефону :)
Для виндовских пришлось допилить напильником. Получилось так:
call.vbs:
set sh=WScript.CreateObject("WScript.Shell")
sh.run "Telnet 192.xxx.xxx.xxx 5038"
WScript.Sleep 2000
sh.SendKeys "Action: Login"&vbcr
sh.SendKeys "Username: Username"&vbcr
sh.SendKeys "Secret: Secret"&vbcr
sh.SendKeys ""&vbcr
WScript.Sleep 2000
sh.SendKeys "Action: Originate"&vbcr
sh.SendKeys "Channel: SIP/111"&vbcr
sh.SendKeys "Context: out"&vbcr
sh.SendKeys "Exten: 74212111111"&vbcr
sh.SendKeys "Priority: 1"&vbcr
sh.SendKeys "Callerid: AutoDial"&vbcr
sh.SendKeys ""&vbcr
sh.SendKeys ""&vbcr
Wscript.Sleep 10000
sh.SendKeys "Quit"&vbcr
Единственный минус не прерывает telnet сессию по Quit (и не закрывает окно шела), так что окошко болтается, но запускаться дальше продолжает и болтается уже не одно а n окошек :)
|
Сообщений: 4
|
Re: исходящие звонки call файлами
to Alek_D:
есть вариант в дельфаке ) и окошки не виснут )
только работает с хорошо пропатчеными телнет клиентом Indy 10 не ниже.
вот тут у меня возник вопрос:
В данном варианте звонит на 111 внутренний номер, а потом на 74212111111
непонятно как уведомления, и какого рода, да и кому, попадают в первую очередь?
Можно немного по подробнее, очень интересно!
to litnimax:
Польщен. ;)
Буду стараться)
|
Сообщений: 11
|
Re: исходящие звонки call файлами
simax
полностью согласен. AMI в астериске тормозит и даже теряет несколько орегинать запросы. Можешь опубликовать код функции что ты написал? Как сильно ты нагружаешь АМИ?
|
Откуда: г. Хабаровск
Сообщений: 23
|
Re: исходящие звонки call файлами
Для пример привел твой же скрипт только на vb, вот щас привел один к одному :)
set sh=WScript.CreateObject("WScript.Shell")
sh.run "Telnet ххх.xxx.xxx.xxx 5038"
WScript.Sleep 2000
sh.SendKeys "Action: Login"&vbcr
sh.SendKeys "Username: admin"&vbcr
sh.SendKeys "Secret: amp111"&vbcr
sh.SendKeys ""&vbcr
WScript.Sleep 2000
sh.SendKeys "Action: Originate"&vbcr
sh.SendKeys "Channel: SIP/101"&vbcr
sh.SendKeys "Context: outrt-001-9_outside"&vbcr
sh.SendKeys "Exten: 74951000000"&vbcr
sh.SendKeys "Priority: 1"&vbcr
sh.SendKeys "Callerid: 123000"&vbcr
sh.SendKeys ""&vbcr
sh.SendKeys ""&vbcr
Wscript.Sleep 10000
sh.SendKeys "Quit"&vbcr
|
Сообщений: 4
|
Re: исходящие звонки call файлами
to Alek_D:
ну, я думаю, что для уведомлений от серверов скрипт должен выглядить совершенно по другому.
вот тебе еще пример, который ты смело переведешь на вижалБасик ;)
#!/bin/sh
#
#run - user@host:$ ./call.sh | telnet
#
echo "open 127.0.0.1 5038"
sleep 2
echo "Action: Login"
echo "Username: admin"
echo "Secret: amp111"
echo
sleep 2
echo "Action: Originate"
echo "Channel: Local/74951000000@outrt-001-9_outside"
echo "Context: custom-alert" #распологается в extensions_custom.conf
echo "Exten: s"
echo "Priority: 1"
echo "Callerid: 123000"
echo
echo
sleep 10
[custom-alert]
exten => s,1,Wait(2)
exten => s,2,Playback(demo-congrats)
exten => s,3,Hangup
хотя уведомления от серверов круче слать смсками, 160 сиволов на полное расписание проблемы, но это уже без астериска, а занчит и для другого форума.
|
Откуда: г. Хабаровск
Сообщений: 23
|
Re: исходящие звонки call файлами
to agassh я и не использую приведеный выше скрипт для уведомлений с сервера, я просто переписал твой скрипт на vb, для иллюстрации твоей идеи под винду.
Для уведомлений я использую это:
#!/bin/sh
echo "open 127.0.0.1 5038"
sleep 2
echo "Action: Login"
echo "Username: admin"
echo "Secret: ******"
echo
sleep 2
echo "Action: Originate"
echo "Channel: SIP/мой_номер@sipnet"
echo "Context: out"
echo "Priority: 1"
echo "Callerid: Warning"
echo "Application: Playback"
echo "Data: bida_bida"
echo
echo
sleep 10
Не понимаю зачем в своем примере ты засоряешь extenshion.conf?
И то же самое на vb:
set sh=WScript.CreateObject("WScript.Shell")
sh.run "Telnet ххх.xxx.xxx.xxx 5038"
WScript.Sleep 2000
sh.SendKeys "Action: Login"&vbcr
sh.SendKeys "Username: admin"&vbcr
sh.SendKeys "Secret: ******"&vbcr
sh.SendKeys ""&vbcr
WScript.Sleep 2000
sh.SendKeys "Action: Originate"&vbcr
sh.SendKeys "Channel: SIP/мой_номер@sipnet"&vbcr
sh.SendKeys "Context: out"&vbcr
sh.SendKeys "Priority: 1"&vbcr
sh.SendKeys "Callerid: Warning"&vbcr
sh.SendKeys "Application: Playback"&vbcr
sh.SendKeys "Data: bida_bida"&vbcr
sh.SendKeys ""&vbcr
sh.SendKeys ""&vbcr
Wscript.Sleep 10000
sh.SendKeys "Quit"&vbcr
|
Сообщений: 4
|
Re: исходящие звонки call файлами
to Alek_D:
extenshion.conf его не трогаю совершенно (хотя иногда стоило бы),
а трогаю исключительно extensions_custom.conf по идеи он для этого и предназначен.
В данном случаи, что в лоб, что по лбу и разницы между нашими примерами особо невидно ).
Хотя я уверен, что можно сделать еще и третьим способом потому, что это астериск ).
За пример, спасибо попробую и его.
|
Сообщений: 188
|
третий способ php script :)
<?php
$local=$_REQUEST['local'];
$dest=$_REQUEST['dest'];
$res=0;
$errno=0;
$errstr=0;
$fp = fsockopen ("localhost", 5038, $errno, $errstr, 20);
if (!$fp) {
$res=3;
$resstr="PHPAGI error $errstr ($errno)";
}
else {
fputs ($fp, "Action: login\r\n");
fputs ($fp, "Username: admin\r\n");
fputs ($fp, "Secret: *******\r\n");
fputs ($fp, "Events: off\r\n\r\n");
sleep(1) ;
fputs ($fp, "MaxRetries: 2\r\n");
fputs ($fp, "RetryTime: 10\r\n");
fputs ($fp, "WaitTime: 30\r\n");
fputs ($fp, "Action: Originate\r\n");
fputs ($fp, "Channel: SIP/$local\r\n");
fputs ($fp, "Callerid: $local\r\n");
fputs ($fp, "Context: from-internal\r\n");
fputs ($fp, "Exten: $dest\r\n");
fputs ($fp, "Priority: 1\r\n\r\n");
sleep(1) ;
fclose ($fp);
$res=0;
$resstr='OK';
}
echo "$res: $resstr";
?>
к скрипту можно из браузера обращаться (у меня из адресной книги обращение) или
коннектимся telnet host 80
get /makecall.php?local=200&dest=1234567
сначала звонит внутренний 200, потом идет вызов на 1234567
|
|