VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

Смена DID в CEL

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

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

ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Смена DID в CEL

Сообщение ded »

Код: Выделить всё

[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 в вэб-оболочке.

Всё остальное можно увидеть в консоли.
skynetyar
Сообщения: 439
Зарегистрирован: 18 авг 2016, 13:25

Re: Смена DID в CEL

Сообщение skynetyar »

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

Код: Выделить всё

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
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Смена DID в CEL

Сообщение ded »

То что зацикливаетя можно было проверить по инклюдам, кто куда вкладывается:

Код: Выделить всё

CLI> dialplan show from-trunk
[ Context 'from-trunk' created by 'pbx_config' ]
  Include =>        'from-pstn'     
Не видя всего кода диал-плана, маршрутов, ориентируясь по кускам, которые вы публикуете - трудно что-либо предложить ещё.
У вас уже достаточно опыта, чтобы а) не писать это в раздел Вопросы новичков, и б) самостоятельно решить вопрос.
murr
Сообщения: 127
Зарегистрирован: 04 июл 2013, 16:55

Re: Смена DID в CEL

Сообщение murr »

Как вариант.
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 ;
BorisTheBlade
Сообщения: 167
Зарегистрирован: 14 фев 2011, 14:24

Re: Смена DID в CEL

Сообщение BorisTheBlade »

Вероятнее всего модуль берет event CHAN_START ->а этот ивент генерится еще до всяческих изменений, так что как правильно заметил murr лучше всего использовать триггер в БД.
Если же модуль статистики подключается по AMI, тогда это не поможет-> в этом случае или преписывать модуль или попробовать воркэраунд:

Код: Выделить всё

[from-pstn-custom]
exten => 0007759777,1,Dial(Local/88007759777@from-trunk/n)
Аватара пользователя
Zavr2008
Сообщения: 2213
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: Смена DID в CEL

Сообщение Zavr2008 »

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

Re: Смена DID в CEL

Сообщение skynetyar »

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

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

По поводу тригера в бд очень хорошая мысль ,менять на нужное значение при наступлении события, но как заметил BorisTheBlade , модуль действительно используют AMI
Всё знают и всё понимают только дураки да шарлатаны.(с)А.П Чехов.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH