forum.bitel.ru http://forum.bitel.ru/ |
|
Унивесальные карты http://forum.bitel.ru/viewtopic.php?f=8&t=677 |
Страница 1 из 1 |
Автор: | Igor [ 16 янв 2008, 15:52 ] |
Заголовок сообщения: | Унивесальные карты |
Хочу создать универсальную карту. Чтобы при активации подключались услуги из двух модулей, VoIP и dialup. В документации по модулю "карточки" есть такие строчки: Код: #код модуля
activate.login.service.1.mid=3 #список возможных тарифов, коды, через запятую activate.login.service.1.tariffs=1 Прокомментируйте пожалуйста. Я правильно понял? По одной карте можно завести договор только с одним модулем? Группу тарифов тоже нельзя установить? |
Автор: | Amir [ 16 янв 2008, 17:01 ] |
Заголовок сообщения: | |
Цитата: По одной карте можно завести договор только с одним модулем?
Да, однако возможно создание логина в другом модуле через скрипты. Группу тарифов можно указать в шаблоне договора. |
Автор: | Igor [ 05 апр 2008, 13:08 ] |
Заголовок сообщения: | |
Подскажите, пожалуйста, в какое место воткнуть скрипт и как указать шаблон договора? |
Автор: | Amir [ 05 апр 2008, 13:35 ] |
Заголовок сообщения: | |
Шаблон договора указывается при создании карты. В шаблоне необходимо указать скрипт(точнее набор скриптов). В этом наборе (уже в Автоматизация-Скрипты поведения), добавить скрипт с событием на создание договора. |
Автор: | Igor [ 07 апр 2008, 12:37 ] |
Заголовок сообщения: | |
Спасибо. Подскажите ещё, пожалуйста, каким классом и функциями пользоваться, чтобы добавить логин для Dialup. |
Автор: | Amir [ 07 апр 2008, 16:09 ] |
Заголовок сообщения: | |
Примерно так: Код: import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.List; import bitel.billing.server.call.bean.CardCallUtils; import bitel.billing.server.call.bean.LoginUtils; import bitel.billing.server.card.bean.Card; import bitel.billing.server.card.bean.CardManager; int voiceipMid = 1; int dialupMid = 2; // кол-во одновременных сессий int sessionCol = 1; PreparedStatement ps = con.prepareStatement( "SELECT id FROM card_data_5 WHERE cid=? AND status=?" ); ps.setInt( 1, cid ); ps.setInt( 2, Card.CARD_ACTIVATE_CONTRACT ); ResultSet rs = ps.executeQuery(); if( rs.next() ) { int cardId = rs.getInt( 1 ); CardManager cm = new CardManager( setup, mid ); List<Card> cards = cm.getCards( String.valueOf( cardId ) ); Card card = cards.get( 0 ); // если нет dialup логина LoginUtils lu = LoginUtils.getLoginUtils( "dialup", con, dialupMid, setup ); if( lu.getContractLogins( cid ).size() == 0 ) { int loginId = new CardCallUtils( con, dialupMid ).createLogin( cid, card, sessionCol ); } // если нет voiceip логина lu = LoginUtils.getLoginUtils( "voiceip", con, voiceipMid, setup ); if( lu.getContractLogins( cid ).size() == 0 ) { int loginId = new CardCallUtils( con, voiceipMid ).createLogin( cid, card, sessionCol ); } } Однако следует учитывать, что при звонке voip по протоколу максимум минут, в течение которых может длится звонок, отправляются в начале разговора. Т.е. во время разговора есть возможность потратить остаток по другой услуге, при этом звонок не прервется при достижении лимита. |
Автор: | Igor [ 07 апр 2008, 17:29 ] |
Заголовок сообщения: | |
ЗдОрово! только Код: Eval error: Sourced file: inline evaluation of: ``import java.sql.Connection; import java.sql.PreparedStatement; import ja
va.sql.R . . . '' : Undefined argument: cid cid уже должен быть определён? Я ставлю скрипт на событие "Договор создан" |
Автор: | Amir [ 07 апр 2008, 17:50 ] |
Заголовок сообщения: | |
int cid = event.getContractID(); или int cid = event.getContract().getID(); и в CardManager cm = new CardManager( setup, mid ); - mid код модуля карточек. |
Автор: | Igor [ 08 апр 2008, 15:17 ] |
Заголовок сообщения: | |
Спасибо, в рабочем варианте (может кому пригодится) получилось так: Код: import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.List; import bitel.billing.server.call.bean.CardCallUtils; import bitel.billing.server.call.bean.LoginUtils; import bitel.billing.server.card.bean.Card; import bitel.billing.server.card.bean.CardManager; int voiceipMid = 3; int dialupMid = 1; int cardMid = 11; String cardTable = "card_data_" + String.valueOf( cardMid ); int cid = event.getContractID(); // кол-во одновременных сессий int sessionCol = 1; PreparedStatement ps = con.prepareStatement( "SELECT id FROM " + cardTable + " WHERE cid=? AND status=?" ); ps.setInt( 1, cid ); ps.setInt( 2, Card.CARD_ACTIVATE_CONTRACT ); ResultSet rs = ps.executeQuery(); if( rs.next() ) { int cardId = rs.getInt( 1 ); CardManager cm = new CardManager( setup, cardMid ); //List<Card> cards = cm.getCards( String.valueOf( cardId ) ); List cards = cm.getCards( String.valueOf( cardId ) ); Card card = (Card)cards.get( 0 ); // если нет dialup логина LoginUtils lu = LoginUtils.getLoginUtils( "dialup", con, dialupMid, setup ); if( lu.getContractLogins( cid ).size() == 0 ) { int loginId = new CardCallUtils( con, dialupMid ).createLogin( cid, card, sessionCol ); } // если нет voiceip логина lu = LoginUtils.getLoginUtils( "voiceip", con, voiceipMid, setup ); if( lu.getContractLogins( cid ).size() == 0 ) { int loginId = new CardCallUtils( con, voiceipMid ).createLogin( cid, card, sessionCol ); } } |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |