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

Подмена внутреннего номера при выходе на определённый транк

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

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

Ответить
leonin
Сообщения: 2
Зарегистрирован: 30 ноя 2014, 14:53

Подмена внутреннего номера при выходе на определённый транк

Сообщение leonin »

Добрый день, прошу помочь с задачей: Есть Астериск, пользователь при наборе определённой комбинации попадает на sip trunk в сторону шлюза, и в этом случае его внутренний номер должен менять, а точнее к его внутреннему номер спереди должно добавиться 3 цифры.

Например: Внутренний абонент c номер 170 набирает номер 7XXXXX, звонок отправился на шлюз и на принимающий стороне должен определиться номер YYY170, но при звонке на другой внутренний номер должен оставаться 170.

На FreePBX это сделать можно - в настройках самого Extension можно прописать Outbound CID YYY170, тогда все гладко, при звонке на внутренний номер отображается как 170, при звонке на транк который ведет на шлюз отображается как YYY170, а если использовать транк провайдера с указанным fromuser - то берет значение отсюда.

А вот в Астериске так не получается сделать, пробовал в настройках пользователя прописывать callerid=YYY170 <170> - то он определяется как YYY170 и на внутренних номерах и на шлюзе. пробовал различные комбинации - не вышло.
Конфиг:
sip.conf
[Шлюз]
type=friend
host=x.x.x.x
qualify=yes
nat=no
disallow=all allow=alaw allow=ulaw allow=g729 dtmfmod=rfc2833
context=ael-in
permit=x.x.x.x

[170]
type=friend
host=dynamic
context=ael-out
qualify=yes
secret=*
pickupgroup=1
callgroup=1
callerid=730170 <170>


extension.ael

context ael-out {
_7XXXXXX => {
&record(${EXTEN},${UNIQUEID});
Dial(SIP/ШЛЮЗ/${EXTEN:1});
Set(CALLERID(name)=430);


};

Set(CALLERID(name)=430); тут тоже пробовал менять значение - ноль реакции на любые изменения.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Подмена внутреннего номера при выходе на определённый тр

Сообщение Vlad1983 »

Set всегда перед Dial
ЛС: @rostel
ded
Сообщения: 15628
Зарегистрирован: 26 авг 2010, 19:00

Re: Подмена внутреннего номера при выходе на определённый тр

Сообщение ded »

Ну, кроме того, наверное не
Set(CALLERID(name)=430)
а
Set(CALLERID(num)=430) ?
leonin
Сообщения: 2
Зарегистрирован: 30 ноя 2014, 14:53

Re: Подмена внутреннего номера при выходе на определённый тр

Сообщение leonin »

Спасибо за помощь! протупил, что set должен быть выше Dial
Правильное решение оказалось проще:
в sip.conf нечего прописывать не надо,
а extension.ael:
_7XXXXXX => {
&record(${EXTEN},${UNIQUEID});
Set(CALLERID(num)=YYY${CALLERID(num)});
Dial(SIP/ШЛЮЗ/${EXTEN:1});
};

Как раз перед внутренним номером добавляется нужный "префикс" (YYY) при звонке через этот транк
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH