Всем доброго времени суток!
Потребовалось реализовать схему для дозвона через GoIP-1 в Asterisk + попасть в DISA, в которой прописан один транк для приема входящих звонков со шлюза с последующим донабором внешнего номера.
В принципе, ничего военного. Обычно я делаю подобные вещи для того, чтобы народ мог дозвониться на номер шлюза с мобилки и попасть к себе во внутреннюю сеть через DISA. Схема простая. Шлюз прописан транком на Астериске, входящие из GSM-а звонки перебрасываются на некий внутренний номер, который соответствует транку шлюза и описан в правилах входящей маршрутизации. Получается, что абонент А звонит на номер Б ( наружный GSM-номер шлюза). Далее звонок попадает в требуемую опцию DISA, где после ввода пароля абонент А может донабрать номер С.
Но в данном случае требуется помимо организации дозвона еще и тарифицировать звонки, которые будут совершаться из DISA далее. И тут у меня возникла проблема, которую я ранее просто никогда не замечал. Дело в том, что когда абонент A, дозвонившийся через шлюз с номером Б и попавший в DISA, получает доступ ко внешнему транку и устанавливает соединение с номером С, первое соединение между абонентами А и Б завершается с некоей неинформативной длительностью разговора, а второе соединение, которое на самом деле и есть целью всего этого процесса, продолжается, пока абонент А или абонент С не захотят закончить общение. Проблема состоит в том, что в CDR-ах после этих манипуляций возникают две записи, по которым корректно посчитать длительность состоявшегося разговора не представляется возможным. Я почему-то думаю, что не мне первому пришлось с такой проблемой столкнуться, и решение давно уже есть. Потому буду признателен, если мне подскажут верное направление движения.
Задан: 2013-11-12 19:21:34 +0400
Просмотрен: 203 раз
Обновлен: Nov 12 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.