forum.bitel.ru http://forum.bitel.ru/ |
|
Отправка SMS http://forum.bitel.ru/viewtopic.php?f=22&t=5605 |
Страница 1 из 1 |
Автор: | vdd [ 15 июн 2011, 16:50 ] |
Заголовок сообщения: | Отправка SMS |
Заканчиваем разработку процедур отправки смсок. Отправляем через слегка подкрученный http://wiki.bgbilling.ru/index.php/SMS_%D1%80%D0%B0%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B0_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_SMPP. Данные для отправки формируются БГБ скриптом. Интересно кому? |
Автор: | skyb [ 15 июн 2011, 17:03 ] |
Заголовок сообщения: | Re: Отправка SMS |
а я делал через сам биллинг и протокол smpp, осталось протестировать, но вот закончить работу так и не удалось ![]() |
Автор: | dimOn [ 15 июн 2011, 17:26 ] |
Заголовок сообщения: | Re: Отправка SMS |
в новом модуле рассылок будут смс |
Автор: | vdd [ 15 июн 2011, 17:26 ] |
Заголовок сообщения: | Re: Отправка SMS |
Поделились бы с народом, а то дублируем друг-дружку. У нас это пока выглядит так (Строка для разовой оправки задается параметром на специальном договоре. Там же будут строки-шаблоны для рассылки баланса и пускач разовой рассылки): Код: import bitel.billing.server.contract.bean.*;
import bitel.billing.server.util.*; import java.util.*; import java.sql.*; final public int controlCid=441; final public int oneTimeMsgId=47; final public long contractsMask=7; final public int phoneParamId=1; final public int phoneMobIdx=3; final public String emptyPhone="_"; public void main( setup, con, conSlave ) { ContractUtils cu=new ContractUtils(con); ContractManager cm=new ContractManager(con); ContractParameterManager cpm=new ContractParameterManager(con); String oneTimeMsg=cpm.getStringParam(controlCid,oneTimeMsgId); contracts=cm.getContracts(cu.getCids(contractsMask)); // prepareContractsSMS(con,contracts,processor(con,cpm,"Тест")); preparePhonesSMS(con,getMobilePhones(con,contractsMask),oneTimeMsg); } getMobilePhones(con, mask){ String query = "SELECT distinct phone FROM contract_parameter_type_phone_item where pid=? and n=? and cid in (select id from contract where (gr&?)>0 and (date2 is null or date2>NOW()))"; PreparedStatement ps = con.prepareStatement( query ); ps.setInt( 1, phoneParamId); ps.setInt( 2, phoneMobIdx); ps.setLong( 3, mask); List l=new ArrayList(); ResultSet rs = ps.executeQuery(); phone=emptyPhone; while( rs.next() ) l.add(rs.getString(1)); ps.close(); rs.close(); return l; } String getMobilePhone(con,cid){ final String query = "SELECT phone FROM contract_parameter_type_phone_item where cid=? and pid=? and n=?"; PreparedStatement ps = con.prepareStatement( query ); ps.setInt( 1,cid); ps.setInt( 2, phoneParamId); ps.setInt( 3, phoneMobIdx); ResultSet rs = ps.executeQuery(); phone=emptyPhone; if( rs.next() ) phone=rs.getString(1); ps.close(); rs.close(); return phone; } processor(con,cpm,txt) { getText(c) { return txt; } getPhone(c) { // print( cpm.getPhoneParam(c.getId(),phoneParamId).getPhoneItem(phoneMobIdx).getPhone()); phone=getMobilePhone(con,c.getId()); return phone; } return this; } public void prepareContractsSMS(con,contracts, p){ for(Contract c :contracts){ String q = "insert into sms_informer (phone_number,message_text,source_addr,create_dt) values(?,?,'SYSTEM_ID',NOW())"; PreparedStatement ps = con.prepareStatement( q ); phone=p.getPhone(c); if(phone.equals(emptyPhone) || phone.length()<11) continue; ps.setString(1,"7"+phone.substring(1)); ps.setString(2,p.getText(c)); ps.executeUpdate(); ps.close(); } } public void preparePhonesSMS(con,phones,txt){ for(String phone :phones){ String q = "insert into sms_informer (phone_number,message_text,source_addr,create_dt) values(?,?,'SYSTEM_ID',NOW())"; PreparedStatement ps = con.prepareStatement( q ); if(phone.equals(emptyPhone) || phone.length()<11) continue; ps.setString(1,"7"+phone.substring(1)); ps.setString(2,txt); ps.executeUpdate(); ps.close(); } } |
Автор: | vdd [ 15 июн 2011, 17:27 ] |
Заголовок сообщения: | Re: Отправка SMS |
dimOn писал(а): в новом модуле рассылок будут смс А когда он будет? |
Автор: | dimOn [ 15 июн 2011, 17:34 ] |
Заголовок сообщения: | Re: Отправка SMS |
Так уже есть, в 5.2 ![]() |
Автор: | vdd [ 15 июн 2011, 17:54 ] |
Заголовок сообщения: | Re: Отправка SMS |
dimOn писал(а): Так уже есть, в 5.2 ![]() Судя по документации, прямой поддержки SMS нет. Так что мы все равно не зря потратили время - код все равно пригодится. И еще вопрос: модуль учитывает, что один и тот же контакт (email, или номер мобильного) может быть указан на нескольких договорах и при рассылке сообщений, не привязанных к договору не очень правильно присылать три одинаковых сообщения? |
Автор: | skyb [ 16 июн 2011, 03:25 ] |
Заголовок сообщения: | Re: Отправка SMS |
dimOn писал(а): Так уже есть, в 5.2 ![]() оппа...заценим. |
Автор: | skyb [ 19 июл 2011, 12:52 ] |
Заголовок сообщения: | Re: Отправка SMS |
dimOn писал(а): в новом модуле рассылок будут смс эм...уже готово? поюзать мона? вопрос в чем - через что отправляется смс? |
Автор: | vdd [ 19 июл 2011, 12:57 ] |
Заголовок сообщения: | Re: Отправка SMS |
skyb писал(а): dimOn писал(а): в новом модуле рассылок будут смс эм...уже готово? поюзать мона? вопрос в чем - через что отправляется смс? Согласно документации на 5.2 - через что сделаете, через то и будет. |
Автор: | skyb [ 19 июл 2011, 13:00 ] |
Заголовок сообщения: | Re: Отправка SMS |
http://www.bgbilling.ru/v5.2/doc/ch29s03s03.html тоесть просто опять же пишешь свой класс и шлешь куда нада. в 5.2 будет модуль отправки смс, в 5.2 будет моду...ыыы....у меня тада и в 5.0 был бы....мдэ dimOn писал(а): Так уже есть, в 5.2 ![]() или я что то не то смотрю? |
Автор: | skyb [ 19 июл 2011, 15:30 ] |
Заголовок сообщения: | Re: Отправка SMS |
ап |
Автор: | skyb [ 20 июл 2011, 03:23 ] |
Заголовок сообщения: | Re: Отправка SMS |
ап Разработчики, ну подтвердите или отвергните предположение. |
Автор: | snark [ 20 июл 2011, 16:56 ] |
Заголовок сообщения: | Re: Отправка SMS |
Я чет не понял, ты хотел чтобы бителовцы поддержали всех существующих SMS операторов и реализация того как слать выглядела бы просто как выбор оператора в списке и вбитие логина/пароля? Они дали возможность слать при помощи классов: Цитата: Для реализации этой возможности необходимо воспользоваться механизмом динамически загружаемых Java-классов. Необходимо создать динамический класс, реализующий интерфейс ru.bitel.bgbilling.plugins.dispatch.server.sender.Sender, а затем создать метод отправки нажатием на кнопку Добавить в панели инструментов, указав этот класс в выпадающем списке. и теперь что в классе будет - так и будет работать. |
Автор: | Phricker [ 20 июл 2011, 16:57 ] |
Заголовок сообщения: | Re: Отправка SMS |
Цитата: реализация того как слать выглядела бы просто как выбор оператора в списке и вбитие логина/пароля? ЮЗЕР ФРИЕНДЛИ ![]() |
Автор: | skyb [ 20 июл 2011, 16:59 ] |
Заголовок сообщения: | Re: Отправка SMS |
snark писал(а): Я чет не понял, ты хотел чтобы бителовцы поддержали всех существующих SMS операторов и реализация того как слать выглядела бы просто как выбор оператора в списке и вбитие логина/пароля? Они дали возможность слать при помощи классов: Цитата: Для реализации этой возможности необходимо воспользоваться механизмом динамически загружаемых Java-классов. Необходимо создать динамический класс, реализующий интерфейс ru.bitel.bgbilling.plugins.dispatch.server.sender.Sender, а затем создать метод отправки нажатием на кнопку Добавить в панели инструментов, указав этот класс в выпадающем списке. и теперь что в классе будет - так и будет работать. ээээ...не, просто говорилось что есть модуль рассылок смс, а получается что модуль рассылок, а рассылки смс я и так прикручивал в 5.0 разница то в чем? |
Автор: | dimOn [ 20 июл 2011, 16:59 ] |
Заголовок сообщения: | Re: Отправка SMS |
в том, что надо прикрутить то же самое в 5.2, но в заранее отведённое место |
Автор: | skyb [ 20 июл 2011, 17:02 ] |
Заголовок сообщения: | Re: Отправка SMS |
dimOn писал(а): в том, что надо прикрутить то же самое в 5.2, но в заранее отведённое место по нагородили, по нагородили:-D сиди теперь правь ![]() |
Автор: | vdd [ 20 июл 2011, 17:02 ] |
Заголовок сообщения: | Re: Отправка SMS |
snark писал(а): Я чет не понял, ты хотел чтобы бителовцы поддержали всех существующих SMS операторов и реализация того как слать выглядела бы просто как выбор оператора в списке и вбитие логина/пароля? Например, могли реализовать SMPP. Он у всех одинаков. А вот процедура проверки отправилось/неотправилось - муторная. |
Автор: | skyb [ 20 июл 2011, 17:05 ] |
Заголовок сообщения: | Re: Отправка SMS |
vdd писал(а): snark писал(а): Я чет не понял, ты хотел чтобы бителовцы поддержали всех существующих SMS операторов и реализация того как слать выглядела бы просто как выбор оператора в списке и вбитие логина/пароля? Например, могли реализовать SMPP. Он у всех одинаков. А вот процедура проверки отправилось/неотправилось - муторная. + |
Автор: | snark [ 20 июл 2011, 17:14 ] |
Заголовок сообщения: | Re: Отправка SMS |
vdd писал(а): Например, могли реализовать SMPP. Он у всех одинаков. А вот процедура проверки отправилось/неотправилось - муторная. Дык вообще _всю_ реализацию отдали на откуп юзерам - как хочешь - так и шли. |
Автор: | skyb [ 20 июл 2011, 17:15 ] |
Заголовок сообщения: | Re: Отправка SMS |
snark писал(а): vdd писал(а): Например, могли реализовать SMPP. Он у всех одинаков. А вот процедура проверки отправилось/неотправилось - муторная. Дык вообще _всю_ реализацию отдали на откуп юзерам - как хочешь - так и шли. а вот этот откуп можно было сделать и скриптами, а дефолтово реализовать протокол smpp я ж грю, в 5.0 я реализовал отправку ... |
Автор: | vdd [ 20 июл 2011, 17:22 ] |
Заголовок сообщения: | Re: Отправка SMS |
snark писал(а): vdd писал(а): Например, могли реализовать SMPP. Он у всех одинаков. А вот процедура проверки отправилось/неотправилось - муторная. Дык вообще _всю_ реализацию отдали на откуп юзерам - как хочешь - так и шли. Одно дело, когда юзеру дают реализовать что-то свое, другое дело, когда стандартное, да еще и муторное, что не каждому юзеру по силам. |
Автор: | snark [ 20 июл 2011, 19:22 ] |
Заголовок сообщения: | Re: Отправка SMS |
Я думаю что разработчики прежде всего исходили из того что всем не угодишь, т.к. кому-то надо слать SMS, а кому-то мессаги в вконтакты/однок Хотя я с вами согласен, конечно, некую поддержку основных протоколов, будь то SMPP или НТТР POST могли бы и реализовать, но думаю что тут надо чтобы кто-то |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |