Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

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

0

Добрый день, прошу помочь с задачей: Есть Астериск, пользователь при наборе определённой комбинации попадает на 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); тут тоже пробовал менять значение - ноль реакции на любые изменения.

удалить закрыть спам изменить тег редактировать

спросил 2014-11-30 15:48:24 +0400

leonin Gravatar leonin
1 1 1 2

обновил 2014-11-30 16:51:28 +0400

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

Comments

Set(CALLERID(name)=430); нужно выставлять до Dial . И не name , а num . Set(CALLERID(num)=430);

zzuz ( 2014-11-30 16:52:22 +0400 )редактировать

2 Ответа

0

Спасибо за помощь! протупил, что set должен быть выше Dial Правильное решение оказалось проще: в sip.conf нечего прописывать не надо,

а extension.ael:

_7XXXXXX => {

&record(${EXTEN},${UNIQUEID});

    Set(CALLERID(num)=YYY${CALLERID(num)});

    Dial(SIP/ШЛЮЗ/${EXTEN:1});
    };

Как раз перед внутренним номером добавляется нужный "префикс" (YYY) при звонке через этот транк

ссылка удалить спам редактировать

ответил 2014-12-01 09:18:20 +0400

leonin Gravatar leonin
1 1 1 2

обновил 2014-12-01 09:20:50 +0400

Comments

ну я написал как сделать так, чтоб были РАЗНЫЕ callerid. а так конечно проще. но человек который наткнется поиском может так не считать. порчитайте faq на этом сайте.

meral ( 2014-12-01 15:03:32 +0400 )редактировать
0

Очевидно вам прийдется сделать как в freepbx

а именно, сначала выставить cid потом звонить на транк

в sip.conf добавляете

setvar: outbound_cid=1234567

в каждую секцию

потом

context ael-out {

_7XXXXXX => {
    &record(${EXTEN},${UNIQUEID});
    Set(CALLERID(num)=${outbound_cid})
    Dial(SIP/ШЛЮЗ/${EXTEN:1});
    };
ссылка удалить спам редактировать

ответил 2014-12-01 06:32:42 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил 2014-12-01 06:33:03 +0400

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2014-11-30 15:48:24 +0400

Просмотрен: 3,202 раз

Обновлен: Dec 01 '14

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.