ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Смена DID в CEL

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Re: Смена DID в CEL

Сообщение ded » 24 дек 2020, 15:49

Код: выделить все
[from-pstn-custom]
exten => 0007557777,1,Set(CALLERID(DNID)=88007557777)
exten => 0007557777,1,Set(__FROM_DID=88007557777)
exten => 0007557777,n,Goto(from-trunk,${EXTEN},1)

Для таой конструкции должен быть входящий маршрут с DID = 88007557777 в вэб-оболочке.

Всё остальное можно увидеть в консоли.
ded
 
Сообщений: 15821
Зарегистрирован: 26 авг 2010, 19:00

Re: Смена DID в CEL

Сообщение skynetyar » 25 дек 2020, 18:39

Спасибо! С таким кодом происходит зацикливание

Код: выделить все
Goto (from-trunk,0007557777,1)
    -- Executing [0007557777@from-trunk:1] Set("SIP/88007550777-00004e84", "CALLERID(DNID)=88007557777") in new stack
    -- Executing [00075577773@from-trunk:2] Goto("SIP/88007550777-00004e84", "from-trunk,0007557777,1") in new stack
    -- Goto (from-trunk,0007557777,1)
    -- Executing [0007557777@from-trunk:1] Set("SIP/88007550777-00004e84", "CALLERID(DNID)=88007557777") in new stack
    -- Executing [0007557777@from-trunk:2] Goto("SIP/88007550777-00004e84", "from-trunk,0007557777,1") in new stack
    -- Goto (from-trunk,0007557777,1)
    -- Executing [0007557777@from-trunk:1] Set("SIP/88007550777-00004e84", "CALLERID(DNID)=88007557777") in new stack
    -- Executing [0007557777@from-trunk:2] Goto("SIP/88007550777-00004e84", "from-trunk,0007557777,1") in new stack
    -- Goto (from-trunk,0007557777,1)


Сделал так
Код: выделить все
exten => 0007557777,1,Set(CALLERID(DNID)=88007557777)
exten => 0007557777,1,Set(__FROM_DID=88007557777)
exten => 0007557777,n,Goto(from-trunk,${EXTEN},1)


Но ${EXTEN} все равно равен 0007557777, тогда сделал явное указание номера так

Код: выделить все
exten => 0007557777,1,Set(CALLERID(DNID)=88007557777)
exten => 0007557777,1,Set(__FROM_DID=88007557777)
exten => 0007557777,n,Goto(from-trunk,88007557777,1)


Все стало заруливаться туда куда нужно, но что самая беда ради которой все это делается в CEL пишеться все равно ${EXTEN} равный 0007557777
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
skynetyar
 
Сообщений: 432
Зарегистрирован: 18 авг 2016, 14:25

Re: Смена DID в CEL

Сообщение ded » 25 дек 2020, 19:03

То что зацикливаетя можно было проверить по инклюдам, кто куда вкладывается:
Код: выделить все
CLI> dialplan show from-trunk
[ Context 'from-trunk' created by 'pbx_config' ]
  Include =>        'from-pstn'     
Не видя всего кода диал-плана, маршрутов, ориентируясь по кускам, которые вы публикуете - трудно что-либо предложить ещё.
У вас уже достаточно опыта, чтобы а) не писать это в раздел Вопросы новичков, и б) самостоятельно решить вопрос.
ded
 
Сообщений: 15821
Зарегистрирован: 26 авг 2010, 19:00

Re: Смена DID в CEL

Сообщение murr » 27 дек 2020, 22:39

Как вариант.

DELIMITER $$
CREATE TRIGGER `cel_before_insert` BEFORE INSERT ON `cel` FOR EACH ROW BEGIN
IF (NEW.cid_dnid= '45633') THEN SET NEW.cid_dnid= '88008008800';
END IF;
END$$
delimiter ;
murr
 
Сообщений: 127
Зарегистрирован: 04 июл 2013, 16:55

Re: Смена DID в CEL

Сообщение BorisTheBlade » 28 дек 2020, 14:30

Вероятнее всего модуль берет event CHAN_START ->а этот ивент генерится еще до всяческих изменений, так что как правильно заметил murr лучше всего использовать триггер в БД.
Если же модуль статистики подключается по AMI, тогда это не поможет-> в этом случае или преписывать модуль или попробовать воркэраунд:
Код: выделить все
[from-pstn-custom]
exten => 0007759777,1,Dial(Local/88007759777@from-trunk/n)
BorisTheBlade
 
Сообщений: 167
Зарегистрирован: 14 фев 2011, 15:24

Re: Смена DID в CEL

Сообщение Zavr2008 » 28 дек 2020, 15:23

Если это bx24asterisk то самое простое - перетрубации все с номерами делать на промежуточном астере, благо у всех на виртуалках всё в наше время и нарезать одну еще не проблема.
На основном где коннектор установлен уже подавать всё как им нужно.
В противном случае решение только одна - самому генерировать события CEL - либо CELGenUserEvent, либо прямо в соответствующую таблицу MySQL.
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1,Подключение к ИС "Антифрод" E1 PRI/SS#7 УВР Телестор, Грифин и др..
Аватар пользователя
Zavr2008
 
Сообщений: 2170
Зарегистрирован: 27 янв 2011, 01:35

Re: Смена DID в CEL

Сообщение skynetyar » 28 дек 2020, 18:32

Да,совершенно верно!
Он берет asteriskcdrdb из cel ,где eventtype первый CHAN_START и его значение exten
Как раз таки туда первее всех модификаций пишется этот exten , если на транках с регистрацией это можно обойти впсав в конце нужный номер и то не во всех случаях, то на транках без регистрации этого сделать не получиться..

Да, это модуль bx24asterisk, я считаю что все можно и нужно делать через их модуль с помощью кастомизаций, но раскрывать они этого не хотят, сказали что есть решение вопроса именно модифицировать транк на Asterisk , но естественно как это сделать не раскрывают...

По поводу тригера в бд очень хорошая мысль ,менять на нужное значение при наступлении события, но как заметил BorisTheBlade , модуль действительно используют AMI
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
skynetyar
 
Сообщений: 432
Зарегистрирован: 18 авг 2016, 14:25

Пред.

Вернуться в Вопросы новичков

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 29

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH