forum.bitel.ru http://forum.bitel.ru/ |
|
Отключение абонентов на АТС М-200 из биллинга http://forum.bitel.ru/viewtopic.php?f=25&t=4158 |
Страница 1 из 1 |
Автор: | nolka4 [ 11 июн 2010, 12:55 ] |
Заголовок сообщения: | Отключение абонентов на АТС М-200 из биллинга |
Написано и работает в версии биллинга 4.6 На кого рассчитан этот скрипт На тех, кому не пофигу, кто администрирует АТС, на тех, у кого строго разграничены права доступа(кому куда можно, а кому нельзя), на тех, кто считает что доступ к интерфейсу управления АТС должны иметь только специалисты, умеющие администрировать АТС Инструкция Для начала нужно создать новый скрипт поведения, и обозвать его как ваешй душе угодно, сделать его обработчиком события "Изменение статуса договора". Привязать этот скрипт к желаемому договору, номерами которого хотите рулить из биллинга. Для работы этого скрипта не требуется tune, скрипт подклчюается сразу к scomm, и через него рулит АТС Нам нужно было отключать МГ, МН, зоновую связь при задолженности абонента. Если Вам нужны дополнительные функции - доработать скрипт не составит проблем. Код: // generated by xternalx at 10-11.06x2010 // visit http://xternalx.com // or icq: 444 121 808 import bitel.billing.server.contract.bean.*; import bitel.billing.server.util.*; import java.sql.*; import java.util.*; import java.lang.*; import java.util.regex.*; import java.util.regex.Pattern.*; import bitel.billing.server.contract.bean.*; import bitel.billing.server.phone.bean.*; import bitel.billing.server.util.telnet.*; public HashMap loadOptions(String opts) { options = new HashMap(); String[] lines = opts.replaceAll(",","").split("\n"); for(i=0; i < lines.length; i++) { if(!lines[i].equals("") && !lines[i].equals(" ")) if(!lines[i].substring(0,1).equals("#") || !lines[i].substring(0,1).equals(";")) { String[] kv = lines[i].split(" "); svc_type = new ArrayList(); for(j=1; j < kv.length; j++) { svc_type.add(kv[j]); //print(" "+kv[j]); } options.put(kv[0], svc_type); } } return options; } public void performAction(actionCode) { } public void onEvent( event, setup, con, conSlave ) { cid = event.getContractID(); contract = new ContractManager(con).getContractByID(cid); clStatus = event.getStatus().getStatus(); print("status changed for contract "+cid+" to state: "+clStatus ); //cintract,getStatus() == 3 - закрыт //contract.getStatus() == 2 - отключен //contract.getStatus() == 0 - подключен clItemManager = new ClientItemManager(con,1); clPointsInBill = clItemManager.getItemList(cid); for(i=0; i< clPointsInBill.size(); i++) { pointItem = clPointsInBill.get(i); portNumber = 10001; scommHost = "192.168.1.15"; pointNumber = pointItem.getClientNumbers().get(0); options = loadOptions(clPointsInBill.get(i).getComment()); haveVnums = false; // если номер в федеральном формате // приводим его к обычному 7ми значному виду if(pointNumber.length()==11) { pointNumber = pointNumber.substring(4); } //print(" getting options for point: "+pointNumber); // у абонента виртуальный номер? if(options.containsKey("vnum")) { haveVnums = true; print(pointNumber+" is alias for some virtual numbers"); //pointNumber = (String)options.get("vnum").get(0); } // на каком порту подключена АТС к SCOMM if(options.containsKey("port")) { print(pointNumber+" allocated to SCOMM port"+options.get("port").get(0)); portNumber = Integer.parseInt(options.get("port").get(0)); } t = new TelnetSession(scommHost, portNumber); t.connect(); switch(clStatus) { case 0: { if(options.get("svc_stopped") != null) { if(!haveVnums) { print(t.doCommand("settune "+pointNumber+" USE ON")); } else { for(j=0; j< options.get("svc_stopped").size(); j++) { for(x=0; x<options.get("vnum").size();x++) { print(" take point "+options.get("vnum").get(x)+" online"); print(t.doCommand("settune "+options.get("vnum").get(x)+" "+(String)options.get("svc_stopped").get(j)+" ON")); } } } } else { print("no options defined for point: "+pointNumber); } break; } case 2: { print(" take point "+pointNumber+" offline"); if(options.get("svc_stopped") != null) { if(!haveVnums) { print(t.doCommand("settune "+pointNumber+" USE OFF")); } else { for(j=0; j< options.get("svc_stopped").size(); j++) { for(x=0; x<options.get("vnum").size();x++) { print(" take point "+options.get("vnum").get(x)+" online"); print(t.doCommand("settune "+options.get("vnum").get(x)+" "+(String)options.get("svc_stopped").get(j)+" OFF")); } } } } else { print("no options defined for point: "+pointNumber); } break; } case 3: { print(" take point "+pointNumber+" down"); if(options.get("svc_closed") != null) { if(!haveVnums) { print(t.doCommand("settune "+pointNumber+" USE OFF")); } else { for(j=0; j< options.get("svc_closed").size(); j++) { for(x=0; x<options.get("vnum").size();x++) { print(" take point "+options.get("vnum").get(x)+" online"); print(t.doCommand("settune "+options.get("vnum").get(x)+" "+(String)options.get("svc_closed").get(j)+" OFF")); } } } } else { print("no options defined for point: "+pointNumber); } break; } } t.disconnect(); } } При добавлении нового поинта для договора в биллинге, в его поле "Комментарий" необходимо записать следующий текст: Код: port 10001 vnum 304 svc_stopped CMN_8xxx, CMN_10xxx, CMN_82xxx svc_closed USE Разберем подробнее. port - здесь указываем порт на котором висит АТС, подключенная к SCOMM. Возможные значения портов по географическому расположению абонентов можете узнать у администратора АТС vnum - необязательный параметр. Если абоненту был присвоен виртуальный номер, то его нужно указать здесь. Допустим, у нас в офисе номер телефона 2529050 является виртуальным. На АТС он записан под номером 304. *Если номер телефона реальный, этот параметр указывать не нужно* svc_stopped - указываются сервисы, которые необходимо отключать, или включать у абонента при изменении статуса его договора("Подключить" - включает сервисы, "Отключить" - отключает) svc_closed - указываются сервисы, которые необходимо выключать, когда договор закрывается(статус "Закрыт") В примере выше говорится что необходимо Список доступных параметров: CMN_TOME - тональный набор CMN_OUTCOME - исходящая связь CMN_INCOME - входящая связь CMN_EXTERNAL - внешние номера CMN_PAYSERVICE - платные службы CMN_8xxx - выход на 8 CMN_10xxx - выход на 810 CMN_AON - выдача АОНа CMN_82xxx - выход на 82 |
Автор: | vdd [ 11 июн 2010, 15:10 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
А у нас для М200 есть софтина, которая показывает звонки в реальном времени и позволяет подсвечивать звонки согласно шаблонам номеров и софтина, отдающая по snmp счетчики release cause. Подключаются к спайдеру. Работает с MP64. Надо кому? |
Автор: | nolka4 [ 15 июн 2010, 07:59 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
vdd писал(а): А у нас для М200 есть софтина, которая показывает звонки в реальном времени и позволяет подсвечивать звонки согласно шаблонам номеров и софтина, отдающая по snmp счетчики release cause. Подключаются к спайдеру. Работает с MP64. Надо кому? это одна из ваших самописных? ![]() ps:// мне тут разведка донесла, что на 1 реальный номер может быть привязано дофига виртуальных внутренних. Соответствующие изменения внесены в скрипт в первом посте. Скрипт ждет оптимизации ![]() |
Автор: | eugene_de [ 01 окт 2010, 11:34 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
Народ не подскажете как к определенному модулю подключиться? просто при таком подключении подрубается к 4 а нужно что бы к 12 |
Автор: | georgdts [ 07 окт 2010, 18:56 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
vdd, дайте посмотреть софтинку пожалуйста. |
Автор: | vdd [ 07 окт 2010, 19:11 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
Куда слать? И какую? Операторскую или snmp? |
Автор: | nolka4 [ 08 окт 2010, 09:28 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
eugene_de писал(а): Народ не подскажете как к определенному модулю подключиться? просто при таком подключении подрубается к 4 а нужно что бы к 12 так Вы в SCOMM смотрите у какой АТСки какой порт, и этот порт в комментарии договора указывайте. |
Автор: | ЛИС [ 16 апр 2011, 22:31 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
Это все детские игрушки! Мы уже как пару лет АТС "Протон" с биллингом через радиус скрестили! Да, да, классическая цифровую АТС умеет он-лайн тарификацию через радиус! Причем обсчитывает и абонентов и межоператорские расчеты! |
Автор: | skyb [ 17 апр 2011, 05:11 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
ЛИС писал(а): Это все детские игрушки! Мы уже как пару лет АТС "Протон" с биллингом через радиус скрестили! Да, да, классическая цифровую АТС умеет он-лайн тарификацию через радиус! Причем обсчитывает и абонентов и межоператорские расчеты! йа чет не понимаю, вы то про хоккей пишете, то про атс.... ну да ладно, скрестили, дайте посмотреть как... |
Автор: | georgdts [ 21 фев 2012, 14:20 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
Можно и мне посмотреть софтинку... А по поводу: Цитата: Да, да, классическая цифровую АТС умеет он-лайн тарификацию через радиус! Так М-200 тоже умеет скрещиваться через радиус...
|
Автор: | ldmitry [ 20 май 2013, 01:32 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
ЛИС писал(а): Это все детские игрушки! Мы уже как пару лет АТС "Протон" с биллингом через радиус скрестили! Да, да, классическая цифровую АТС умеет он-лайн тарификацию через радиус! Причем обсчитывает и абонентов и межоператорские расчеты! Тут в самом деле есть чем похвастаться! Мне сейчас потребовалось скрестить, я перечитал массу доки про Протон-Алмаз, пока не понял, как с ним скрещиваться. Вы хотите сказать, что сделали RADIUS клиентом весь Протон, а не только VoIP-шлюз? Как? Со стороны BG модуль VoiceIP? Можно с Вами связаться? |
Автор: | Phricker [ 20 май 2013, 09:48 ] |
Заголовок сообщения: | Re: Отключение абонентов на АТС М-200 из биллинга |
ldmitry писал(а): Можно с Вами связаться? Цитата: Последнее посещение: 06 окт 2011, 23:35 На вашем месте я бы посоветовал написать в ЛС. Есть маленький шанс, что ЛИСу придет сообщение на почту, о том, что ему пришло ЛС на форуме. |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |