AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Соединение с заданным CnID если CID звонящего неизвестен

Биллинг 35 сообщений 22.02.2009 14:22 - 06.01.2011 21:46
#1

И всё-таки - никаких проблем. 2 года - полёт нормальный.
_________________
https://github.com/nixonch/a2billing
#2

не хочу никого огорчать но получил сегодня от клиента одного такое:
Цитата:
И ещё, мне сообщили лично, что с какой то карточки звонят, при балансе 20 руб. деньги заканчиваются, заново набирает пин деньги остаются теже на счету

я ему после обсуждения тут сменил вызов с DeadAGI на AGI. до этого жалоб не было.
вобщем уже не знаю во что и верить...
у когонить есть идеи как такое вообще отлавливать (я уж не прошу фиксить), это впринципе возможно? я тут болею счас, голова не соображает нифига, мыслей никаких по этому поводу. но думаю надо всерьез озадачиться этой проблемой и наконецто покончить с ней, кто покажет направление?

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#3

короче наконецто пофиксили:
https://issues.asterisk.org/view.php?id=17954

не прошло и пяти лет какихто...

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#4

пропатчил * issue17954_v1.6.2.patch, выставил DeadAGI, пока баланс обновляется верно
наблюдаю дальше Rolling Eyes
#5

ну тепреь можно уже и AGI юзать, как я понял они теперь равноценны в этом плане
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#6

Evil or Very Mad
весь день было хорошо, но вечером ситуация повторилась - вывод консоли: баланс до звонка
Код:
a2billing.php,1: [CREDIT : 16.86454]

баланс после звонка
Код:
a2billing.php,1: [CREDIT : 16.172665]

но в базе данных все также светится 16.86454

Что еще остается? поставить AGI?

Added after 51 minutes:

Twisted Evil кажется, я понял в чем дело
это не баг астериска или а2биллинга, это моя собственная ошибка Embarassed
сейчас создам в точности такую же ситуацию, по результатам отпишусь

Added after 2 hours 2 minutes:

так оно и оказалось
ответ тут
#7 22.02.2009 14:22

Соединение с заданным CnID если CID звонящего неизвестен


Встал вопрос как реализовать средствами а2б следующее....
Есть GSM-гейт и те кто звонит на него с известным CID донабирают номер и получают нужное соединение, а неизвестным даётся отбой.
Теперь появилась потребность чтобы звонящие с неизвестным CID сразу попадали на заданный мной внутренний сип-номер, соединяясь с секретарём.
Помогите, может кто решал уже такую проблем?
#8 22.02.2009 14:41

exten => _X/123456789,1,Goto(donabor,1) ; позвонивший с CID 123456789 переключается на донабор
exten => _X,1,Goto(reception,123,1) : позвонивший с неизвестным CID уходит на секретаря, внутренний номер 123)
#9 22.02.2009 14:53

Re: Соединение с заданным CnID если CID звонящего неизвестен


nixon писал(а):
... средствами а2б...
т.к. разрешенные в системе CID могут меняться.
в принципе можно и через выборку из базы MySQL узнать список известных CID
если по такому варианту, то подскажите плиз как?
#10 22.02.2009 15:08

Непонятен фильтр - известный/неизвестный.
Создать дефолтный входящий маршрут Any CID который направить на секретаря.
#11 22.02.2009 15:14

В базе A2Billing задаются CallerID, которые в свою очередь привязаны к Account Number. Их я называю известными системе.
#12 22.02.2009 17:56

не знаю как насчет секретаря но там точно есть логика позволяющая разделять входящие звонки с cid и без (в конфиге включается кидать не опознанного по сиду звонящего в набор карты и пина вручную например)
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#13 22.02.2009 20:56

В том-то весь и смысл чтоб сразу на секретаря, никаких подсказок и донаборов, тем более пинов и кард.
#14 18.07.2009 21:18

вопрос всё ещё актуален
#15 19.07.2009 00:26

Код:

exten => s,1,Answer
exten => s,2,Wait(1)
exten => s,3,Set(CHANNEL(language)=ru)
exten => s,4,MYSQL(Connect connid localhost a2billinguser a2billing mya2billing)
exten => s,5,MYSQL(Query resultid ${connid} SELECT\ credit\, cc_card.username FROM\ cc_callerid LEFT\ JOIN\ cc_card ON\ cc_callerid.id_cc_card\ =\ cc_card.id\ WHERE\ cc_callerid.cid=\'${CALLERID(num)}\')
exten => s,6,MYSQL(Fetch fetchid ${resultid} cardCredit username) ; fetch row
exten => s,7,NoOp(cardCredit --> ${cardCredit} username --> ${username})
exten => s,8,GotoIf($["${username}" != ""]?9:13) ; leave loop if no row found
exten => s,9,NoOp(cardCredit --> ${cardCredit} username --> ${username})
exten => s,10,MYSQL(Clear ${resultid})
exten => s,11,MYSQL(Disconnect ${connid})
exten => s,12,Goto(Izvestny_nomer,s,1)

exten => s,13,MYSQL(Clear ${resultid})
exten => s,14,MYSQL(Disconnect ${connid})
exten => s,15,Goto(Sekretar_nomer,s,1)

примерно так запрос только возможно нужно подправить под стоящий у вас a2billing ну и подключение к базе
#16 24.08.2009 06:00

Вообще-то, проблема может быть решена на уровне AGI-приложения. Логика -
1. При запуске приложения из диалплана - тебе в стандартном потоке астериском выдается перечень переменных по данному звонку, в том числе и agi_callerid.
2. Это значение "ищется" в БД. Если найден, то астериску отправляется команда DIAL(...) по заданному экстеншену, если же не найдена запись, то команда DIAL() отправляется по экстеншену номера того же оператора или секретаря.
#17 13.11.2010 19:28

Получилось решить средствами диалплана самого * с использованием предварительного направления звонка в a2b на цифру быстрого набора, которая предусмотрена в средствах а2b и последующей обработки результата такого звонка. Таким образом ещё и дополнительный функционал получилcя в виде возможности жесткого перевода входящего вызова на заранее заданный номер для каждого известного системе callerid.
В а2б на нужного кастомера задаю на короткую "9"-ку внутренний номер для трансляции звонка, а в списке его CallerID сохраняю номера тех, чьи входящие звонки должны сразу попадать на этот внутренний номер. В extensions.conf создаю такой план:
exten => s,1,Set(CALLERID(dnid)=9) ;обозначаем звонок на короткий номер "9"
same => n,Agi(a2billing.php,2) ;передаём управление в a2b
same => n,GotoIf($["${DIALSTATUS}" != ""]?endcall) ; если а2б отработал по 9-ке, завершаем вызов, иначе - продолжаем
same => n,Set(CALLERID(dnid)=)
same => n,GotoIf($["${CALLERID(name)}" == ""]?a2bcontinue) ; если в а2б известен CallerID, то отправляемся в обработку звонка стандартными средствами a2b
same => n,Set(CALLERID(dnid)=${TransferFromCell}) ;тут можно задать внутренний номер секретаря например или закоментировать строчку целиком
same => n,Goto(secretar,${EXTEN},1) ;звонок поехал к секретарю в контекст
same => n(a2bcontinue),Answer()
same => n,Wait(1)
same => n,Agi(a2billing.php,1)
same => n(endcall),Hangup

Не забываем отключить answer_call в настройках для agi-conf2.

_________________
https://github.com/nixonch/a2billing
#18 13.11.2010 21:33

nixon писал(а):
same => n,Agi(a2billing.php,1)

вы на деньги еще не попадали? Wink
доподлинно известно что при использовании AGI в ситуации когда вызывающая сторона ложит трубу первой - билинг продолжает считать деньги! именно поэтому даже на сайте a2b сказано использовать DeadAGI. имейте ввиду.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#19 13.11.2010 21:52

в *1.6 это не проявлялось.
Возможно просто помогает
exten => h,1,Hangup

_________________
https://github.com/nixonch/a2billing
#20 14.11.2010 11:23

Не помогает. Может в 1.8 починили, но если честно то я так не думаю
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#21 05.12.2010 02:17

Значит Areski всех обманывает? Confused
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#23 06.12.2010 04:47

выходит не только один арески обманывает уже, вот еще у одного товарища такая же проблема:
Andrey053 писал(а):
а когда использую AGI, не тарифицирует звонок если звонящий через A2B первым положит трубку.

пруфлинк

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#25 06.12.2010 11:12

пока исправлений не вижу там, но хорошо уже что хоть открыли баг (наконецто, проблема известна уже лет пять как), спасибо за ссылку, будем надеяться...
ps: у вас не проявлялось видимо потому что не замечали и/или по счастливой случайности звонящий не ложил трубку первым. я у себя такого тоже не замечал пока, но читаю жалобы народа на разных форумах постоянно, вот уже несколько лет подряд.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#26 10.12.2010 14:14

Испугался, перевел всё на DeadAgi и эти самые проблемы начались! Вроде ж не 1 апреля!
Twisted Evil

_________________
https://github.com/nixonch/a2billing
#27 10.12.2010 22:51

"эти самые" это какие? подробности будут? кусочек лога например в доказательство?
_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#28 11.12.2010 01:06

Абонент1 позвонил Абоненту2. Через 38 мин от начала отвалился линк у Аб2.
Аб1 через минуту понял, что его уже никто не слышит и повесил трубку. Ещё через через 15 мин
Аб2 решил закончить разговор и позвонил Аб1 и за 21 мин разговор был доведен до логического конца.
Однако первому разговору была присвоена продолжительность 97 минут.

Подробных дебажных логов нет. А обычные логи ничего к сожалению для понимания ситуации не дадут Sad

_________________
https://github.com/nixonch/a2billing
#29 11.12.2010 02:23

а где доказательство что причина именно в DeadAGI? вы ведь именно его обвиняете в этих проблемах.
включите дебаг в конфиге a2b и снимите лог.
насколько мне известно - с AGI при подобной ситуации звонок вообще не попадет в статистику. тоесть вы даже не узнаете что он был. узнаете только если досконально с точностью до копейки будете считать покупку и продажу трафика.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#30 12.12.2010 16:14

Когда ищешь доказательства, то времени уходит много и безвозвратно. Надо идти вперёд.
После перевода с Agi на DeadAgi в течении суток возникла проблема. Вернул на Agi.
anest писал(а):
включите дебаг в конфиге a2b и снимите лог.

Моделирование не привело к повторению ситуации.
Цитата:
с AGI при подобной ситуации звонок вообще не попадет в статистику

В a2b попадёт, однозначно.
Глазами выловить расхождения в статистике действительно почти не реально. Но есть анализ биллинг
процессов, который в автоматическом режиме проанализировал и нашел обильное несоответствие
суточных статистик по одному из транков. Обычно несколько секунд, а тут десятки минут. Оставалось
найти только конкретный момент-разговор.

_________________
https://github.com/nixonch/a2billing
#31 13.12.2010 01:55

nixon писал(а):
Но есть анализ биллинг
процессов, который в автоматическом режиме

и что это за чудо, у него есть какоето имя? в ваших словах одна вода, никакой конкретики, вместо долказательств только чтото размытое типа "земля имеет форму куба, но доказывать я не собираюсь так как это много времени займет, но у меня есть мифический чудо калькулятор который это подсчитал". на сегодня как минимум 2 человека говорят о проблеме с AGI и ее отсутствии с DeadAGI, это сам автор билинга, который мало что в самой документации этот вопрос описал, так он еще и на форуме у себя неоднократно это повторяет (причем с подробным техническим описанием проблемы и разжовыванием причин и как лечить) но я так понимаю он для вас не авторитет. мне лично всеравно что вы исползуете, обидно будет если вы за собой по ложному пути еще когонить поведете... поэтому я и прошу привести хоть чтото конкретное в доказательство, помимо "я так чувствую но обьяснить не могу".

nixon писал(а):
Цитата:
с AGI при подобной ситуации звонок вообще не попадет в статистику

В a2b попадёт, однозначно.
тоесть Andrey053 бессовестно лжёт?

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#32 13.12.2010 22:17

Давайте без эпитетов, Anest. Анализ - это кусочек пхп кода, дописанный для сравнения статистики за сутки от оператора и учтённой у меня.
Andrey053 утверждает, что a2b всего-лишь "не тарифицирует звонок", но нигде не пишет, что он "вообще не попадает в статистику".
Нет никаких оснований не доверять чужому опыту, однако Бог его знает почему, но проблем с AGI у меня нет.
И если их у меня нет, то зачем мне пытаться их поиметь чтобы Вам что-то доказать. Ну поставьте Вы себя на моё место.

P.S. Ничего личного, только профессиональное.

_________________
https://github.com/nixonch/a2billing
#33 14.12.2010 10:00

"всего-лишь". Ну удачи... спорить ради спора желания нет, хотелось лишь найти истину, встречного желания не обнаружил, чтож тогда замнем.
ps: мой ник пишется с маленькой буквы

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#34 06.01.2011 20:31

продолжим оффтоп (появился повод) Cool
сегодня наконецто (не прошло и полгода) приняли к рассмотрению этот злополучный баг.
ситуация комична для меня тем что как выяснилось, раньше этот баг проявлялся в AGI (а в DeadAGI его не было), теперь его вроде как там нет но он вдруг неожиданно вынырнул в DeadAGI Shocked
напрашивается вывод сам собой - разработчики просто поменяли названия этим двум апликухам заменив друг на друга или мне это только так кажется? Laughing
ну просто смешно както видеть что этот баг перетаскивают туда-сюда такое долгое время. а ктото тем времени попадает на бабло... Crying or Very sad
ps: наболело просто. будем надеяться что на этот раз наконецто допишут нужный код и закроют эту тему.

_________________
«Choose a job you love, and you will never have to work a day in your life» — Confucius
#35 06.01.2011 21:46

anest писал(а):
разработчики просто поменяли названия этим двум апликухам заменив друг на друга или мне это только так кажется?
Подозреваю, что ты прав.
anest писал(а):
сегодня наконец-то (не прошло и полгода) приняли к рассмотрению этот злополучный баг.
Вроде наоборот - выкинули в SVN Sad : "1.6.2.15 =>"
И ответственных больше нет.

_________________
https://github.com/nixonch/a2billing