A_R_S

Рейтинг
4
Регистрация
09.11.2014
SeVlad:
Аналоговая.. :(
Тогда через внешние голосовые модемы будет дешевле.

А мб такой вариант: у оператора организовать вирт. PBX и решить задачу через софтфоны.
Второй вариант много гибче и надёжней.

Цифровые - это IP-PBX?

АТС PBX знаю только что Panasonic.

Monecle_Supp:
вам нужен голосовой шлюз или воткнутый модем в компьютер, любой из девайсов цеплять телефонным кабелем

Спасибо за ответ.

Вы не подскажите модели голосовых шлюзов?

---------- Добавлено 10.03.2015 в 09:06 ----------

Monecle_Supp:
вам нужен голосовой шлюз или воткнутый модем в компьютер, любой из девайсов цеплять телефонным кабелем

У меня АТС обычная не VoIP. Девайсы надо подключать к АТС?

kxk:
A_R_S, Может запрос из С++ будет удобнее нежели издевательство над башем?

Может быть :-) Вы и правы, но C++ я не знаю.

---------- Добавлено 03.12.2014 в 22:52 ----------

kxk:
A_R_S, Может запрос из С++ будет удобнее нежели издевательство над башем?

Как это будет выглядеть на С++ ?

Для Билайна пробовал, но там все сложнее оказалось. Баланс формируется аяксом.


_WARN=`echo $_RESPONSE | grep "messages-error"`
if [ "$_WARN" == "" ];
then
_BALANCE=`echo $_RESPONSE | egrep -o "<span class=\"price[^\"]?\">[^<]+<span[^>]+>" | sed -e 's@<[^>]*>@@g' -e 's@\s*@ @' -e 's@\ @ @g' -e 's@^\s*@@'`

if [ "$_BALANCE" != "" ];
then
echo "$_BALANCE" | sed -e 's@\..*@.@' -e 's@,@.@'
else
echo "Error: balance not avaible"
fi
else
echo "Error: incorrect login or password"
fi

Выдает "Error: balance not avaible", потому что баланс пуст.

К примеру fiddler выдал мне такой запрос


javax.faces.partial.ajax=true&javax.faces.source=j_idt582%3Aj_idt584%3Aj_idt585&javax.faces.partial.execute=%40all&javax.faces.p...

Вот нашел такой код на странице показывающий баланс:


<form id="j_idt582:j_idt584" name="j_idt582:j_idt584" method="post" action="./Личный кабинет «Мой Билайн»_files/Личный кабинет «Мой Билайн».html" enctype="application/x-www-form-urlencoded" style="display: none">
<input type="hidden" name="j_idt582:j_idt584" value="j_idt582:j_idt584">
<script type="text/javascript">loadingBalance = function() {PrimeFaces.ab({source:'j_idt582:j_idt584:j_idt585',formId:'j_idt582:j_idt584',updateSelector:'@(.pre-balance-block, .payment-form)',async:true,onstart:function(cfg){loadingBalanceBlock.show();;},oncomplete:function(xhr,status,args){loadingBalanceBlock.hide(); try{ avaibleServices();}catch(e) {};},params:arguments[0]});};$(function() {loadingBalance();});</script><input type="hidden" name="javax.faces.ViewState" id="javax.faces.ViewState" value="747523851311306748:6362696473948308748" autocomplete="off">
</form>

Как его выполнить из BASH теперь?:)

---------- Добавлено 16.11.2014 в 11:55 ----------

Делал так:


curl -k -i --raw -o 0.dat -X POST -d "javax.faces.partial.ajax=true&javax.faces.source=j_idt582%%3Aj_idt724%%3Aj_idt752&javax.faces.partial.execute=%%40all&javax.faces.partial.render=j_idt582%%3Aj_idt724+headerBalance+&j_idt582%%3Aj_idt724%%3Aj_idt752=j_idt582%%3Aj_idt724%%3Aj_idt752&j_idt582%%3Aj_idt724=j_idt582%%3Aj_idt724&javax.faces.ViewState=-1028883408476721569%%3A6254645381703189495" "https://my.beeline.ru/c/pre/index.html" -H "Host: my.beeline.ru" -H "Connection: keep-alive" -H "Accept: application/xml, text/xml, */*; q=0.01" -H "Origin: https://my.beeline.ru" -H "X-Requested-With: XMLHttpRequest" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36" -H "Faces-Request: partial/ajax" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -H "Referer: https://my.beeline.ru/c/pre/index.html" -H "Accept-Encoding: gzip,deflate" -H "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4" -H "Cookie: GlobUserRegion=385; GlobUserRegionPath=mkl; GlobRegionAncestors=1%%7C384%%7C385; __utma=1.1726003945.1389105045.1389105045.1389105045.1; WT_FPC=id=ИП-418711440.30336735:lv=1389105046522:ss=1389105046522; usst=sjzUCw83FR; ui.language.current=ru_RU; SRV=WebNode26; WGID=mnWG2; _ym_visorc_20907550=b; _gat_UA-10061712-42=1; _gat_UA-10061712-32=1; _gat_UA-10061712-1=1; _ga=GA1.2.1726003945.1389105045; _gat_UA-10061712-37=1; JSESSIONID=g4O3l2qXNploAr0BvHLczPJLWBRluF8aCfkmcPLjQkGQok83EnzZ!-41650466; user_9674093113=9674093113; ticket=b5467ddcd44009ed5987a7fe626967e316bb0f9f; userType=B2C"

Результат нажатия кнопки обновить баланс в сервис гиде.

Может быть так запускать?

---------- Добавлено 16.11.2014 в 12:03 ----------

Файл 0.dat выглядит так:


HTTP/1.1 302 Moved Temporarily
Server: nginx/1.5.3
Date: Sun, 16 Nov 2014 08:01:57 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Location: http://my.beeline.ru/login.html
X-USS-SERVER-NAME: nWebNode16
X-Powered-By: Servlet/3.0 JSP/2.2
Set-Cookie: usst=JhY3XYexBd; domain=my.beeline.ru; path=/; secure; HttpOnly
Set-Cookie: SRV=WebNode16; path=/
Set-Cookie: WGID=mnWG1; path=/

103
<html><head><title>302 Moved Temporarily</title></head>
<body bgcolor="#FFFFFF">
<p>This document you requested has moved
temporarily.</p>
<p>It's now at <a href="http://my.beeline.ru/login.html">http://my.beeline.ru/login.html</a>.</p>
</body></html>

0


😡

rustelekom:
А я ничего не говорил о старых сессиях, я имел в виду актуальные. Обычно у них есть время жизни и в течении этого заданного времени они должны работать. Возможно, не только сессии используются, но и куки, тогда их тоже надо сохранять и использовать.

Это дело с куками юзаю так


wget \
--load-cookies "$COOKIE_FILE" \
--save-cookies "$COOKIE_FILE" \
--keep-session-cookies \
--user-agent="$UA" \
--quiet \

В файле куков такое, больше ничего


# HTTP cookie file.
# Generated by Wget on 2014-11-14 17:04:50.
# Edit at your own risk.

Вижу в fiddler такие куки, они должны ли попасть в файл cookies?


Request sent 42 bytes of Cookie data:

rid=dagestan; rtip=0; cross-numbers=%5B%5D



---------- Добавлено 14.11.2014 в 17:33 ----------

rustelekom:
А я ничего не говорил о старых сессиях, я имел в виду актуальные. Обычно у них есть время жизни и в течении этого заданного времени они должны работать. Возможно, не только сессии используются, но и куки, тогда их тоже надо сохранять и использовать.

Все таки я не могу понять откуда достать новые сессии? 😡

rustelekom:
сессии генерятся при авторизации. их надо сохранить куда-то и использовать в следующем запросе. в пхп и курле есть кажется изначально, насчет баша не уверен. сессия генерится же на сеанс, поэтому одного запроса на авторизацию не хватит.

Старые сессии не прокатывают. Пробовал вставлять ранее полученные сессии, увы. 😡

VGrey:
Можно и на php. Но на bash с сессиями можно работать ничуть не хуже, чем на php. Плюс, админу на bash должно быть привычнее :)

Вы это про curl и wget?

Или есть что-то еще для работы с сессиями?

12
Всего: 14