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

asterisk2billing привязка по callerid

Биллинг 17 сообщений -
#1

ПРивет всем, вопрос такой вот у меня.

Имею шлюз voip-gsm, данный девайс умеет передавать определенный номер, при прозвоне из gsm сети сразу попадаем на меню карточек, как сделать авторизацию по определенному номеру ?????? Question

a2billing.php|1: [agi_callerid] => 999gate -- узер нэйм пира
a2billing.php|1: [agi_calleridname] => 0313158442 - тот самый номер по которому нужно сделать определение.

Буду очень благодарен тому кто поможет.
#2

Вопрос совершенно не раскрыт. Или я уже сонный и уставший.
А нельзя разве ловить этот номер до вызова биллинга?

Posted after 6 minutes 42 seconds:

Делаем два профиля a2b и рулим:

[config:1:5a9b751d05]
exten => s/0313158442,1,Goto(a2billing,1,1)
exten => s,1,Goto(a2billing,2,1)

[a2billing]
exten => 1,1,DeadAGI(a2billing.agi|1)
exten => 2,1,DeadAGI(a2billing.agi|2)
[/config:1:5a9b751d05]

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

a2billing.php|1: [agi_calleridname] =>0313158442 - данный номер не конкретный, просто есть клиенты которые не хотят набирать пин код.
#4

теперь прояснилось.

в конфиге биллинга все это настраивается... загляните в него.
насколько помню там вроде даже по умолчанию уже это включено!
тоесть биллинг сначала пытается авторизовать по CallerID, если такого номера нет в его базе - он просит ввести пин.

вам ведь именно это нужно?
встречный вопрос - биллинг уже стоит, настроен и работает? или ваш вопрос лишь о потенциальных возможностях a2b?

если же вам обязательно нужно чтобы авторизация по CallerID работала выборочно для некоторых клиентов а для других нет,
тогда вижу как минимум два способа:
1. сделать два входящих номера. один обычный только с запросом пина. второй только по CallerID. (имхо извращение какоето)
2. взять напильник в виде программера php и допилить, вставив в пользовательский GUI возможность юзеру самому выбирать тип авторизации. это не сложно, уверен любой программер это сделает за ~50$ и пару часов.

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

В частности я это делал вторым способом, когда стояла такая задача. Делается даже не за пару часов, а меньше.

Насчет штатной функции не помню, я делал вызываемым перед вызовом a2b скриптом, который из бызы получал данное соответствие callerid=>accountcode.

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
#6

anest писал(а):
теперь прояснилось.

в конфиге биллинга все это настраивается... загляните в него.
насколько помню там вроде даже по умолчанию уже это включено!
тоесть биллинг сначала пытается авторизовать по CallerID, если такого номера нет в его базе - он просит ввести пин.

вам ведь именно это нужно?
встречный вопрос - биллинг уже стоит, настроен и работает? или ваш вопрос лишь о потенциальных возможностях a2b?

если же вам обязательно нужно чтобы авторизация по CallerID работала выборочно для некоторых клиентов а для других нет,
тогда вижу как минимум два способа:
1. сделать два входящих номера. один обычный только с запросом пина. второй только по CallerID. (имхо извращение какоето)
2. взять напильник в виде программера php и допилить, вставив в пользовательский GUI возможность юзеру самому выбирать тип авторизации. это не сложно, уверен любой программер это сделает за ~50$ и пару часов.


Продолжим, я думаю наэтом и закончим эту тему, для начала отвечу на вышеуказанные вопросы, биллинг уже стоит, пользуюсь два месяца - все просто супер (лучшего и не надо под карточки), все решаеться даже на одном входящем номере Very Happy

в a2billing.conf обязательный параметр cid_enable=YES

а делее правим
меняем это
$callerid = $this->request['agi_callerid'];
./libs_a2billing/phpagi_2_14/phpagi.php
$this->CallerID = $agi->request['agi_callerid'];
./libs_a2billing/Class.A2Billing.php

на это
$callerid = $this->request['agi_calleridname'];
./libs_a2billing/phpagi_2_14/phpagi.php
$this->CallerID = $agi->request['agi_calleridname'];
./libs_a2billing/Class.A2Billing.php

В Customer в CALLERID добавляем определяемый номер, звоним с этого номера - говорит сразу баланс, если в CALLERID пусто или номер не соответствует - то спрашивает баланс - То что и нужно было мне!!!

P.S Хотя может это еденичный случай так как мой шлюз транслирует номер в caleridname а не в callerid.
#7

Maxim писал(а):
Хотя может это еденичный случай так как мой шлюз транслирует номер в caleridname а не в callerid.


Похоже на то.. Что за шлюз? Рискну предположить что дело не в шлюзе а в криворукости провайдера.

тогда вот вам вариант как можно было обойтись без правки кода a2b:

[config:1:091c306e65]
exten => _X.,1,Set(CALLERID(num))=$(CALLERID(name))
exten => _X.,2,DeadAGI(a2billing|1)
[/config:1:091c306e65]

Wink

ps: возможно я ошибся в синтаксисе, его слишком часто меняют, но идею, я думаю, вы поняли.

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