Страница 1 из 1

Проблема при переадресации на внешний номер

Добавлено: 12 ноя 2010, 12:00
droff
Всем хорошего настроения!
Прошу помощи в решении следующей ситуации.
У нас установлен Asterisk 1.4.21.2. Все телефоны внутри предприятия SIP. Внутренние номера абонентов четерехзначные. Для корректной передачи CallerID, при осуществлении внешнего вызова, используется следующая схема:
в sip.conf для каждого абонента устанавливается переменная "CID_OUT"

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

[3600]
type=friend
host=dynamic
context=main
username=3600
secret=secret
setvar=CID_OUT=8182424242
callerid=BANK <3600>
в extensions.conf в разделе обработки исходящих вызовов (в данном случае на мобильный) устанавливается CallerID из переменной "CID_OUT"

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

exten => _8XXXXXXXXXX,1,Set(CALLERID(num)=${CID_OUT})
exten => _8XXXXXXXXXX,n,Dial(ZAP/g1/${EXTEN},60,T)
exten => _8XXXXXXXXXX,n,Hangup
В чем проблема. При осуществлении ручной переадресации (абонент с помощью flash переводит звонок) CallerID передается корректно. Однако, если переадресация звонка осуществляется в автоматическом режиме (параметры переадресации установлены в телефонном апарате) CallerID не передается.

Подскажите, пожалуйста, как можно разрешить такую ситуацию?

Re: Проблема при переадресации на внешний номер

Добавлено: 12 ноя 2010, 12:57
SVoy
при ручной переадресации- работает АТС
при переадресации с телефона - он сам переводит звонок, независимо от АТС. Часто просто создая новую сессию вместо стандартного REFER.

Сначала нужно разобраться как осуществляется перевод в вашем случае, а затем уже и искать выход

Re: Проблема при переадресации на внешний номер

Добавлено: 12 ноя 2010, 13:40
droff
switch писал(а):он отдает SIP 302 moved temporarily и астер уже сам рулит.
Как я могу вмешаться в процесс?

Re: Проблема при переадресации на внешний номер

Добавлено: 12 ноя 2010, 15:32
droff
Есть ли возможность изменить или установить CallerID, который передает Asterisk, набирая номер после 302 moved temporarily?

Re: Проблема при переадресации на внешний номер

Добавлено: 15 ноя 2010, 14:17
droff
Есть лог, снятый именно в момент осуществления переадресации:

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

-- Got SIP response 302 "Moved Temporarily" back from 192.168.200.33
-- Now forwarding SIP/2999-0876c000 to 'Local/89021234567@context' (thanks to SIP/2950-08786000)
-- Executing [89021234567@context:1] Set("Local/89021234567@context-5f40,2", "CALLERID(num)=") in new stack
-- Executing [89021234567@context:2] Dial("Local/89021234567@context-5f40,2", "ZAP/g1/89021234567|60|T") in new stack

Re: Проблема при переадресации на внешний номер

Добавлено: 15 ноя 2010, 14:33
ded
Если "CALLERID(num)=", то не попишешь, нету его.

Вместо конструкции
exten => _8XXXXXXXXXX,1,Set(CALLERID(num)=${CID_OUT})
exten => _8XXXXXXXXXX,n,Dial(ZAP/g1/${EXTEN},60,T)
exten => _8XXXXXXXXXX,n,Hangup

напишите макрос
[macro-dial-cidout]
exten => s,1,Set(CALLERID(num)=${ARG1})
exten => s,n,Dial(ZAP/g1/${ARG2},60,T)
exten => s,n,Hangup

и делайте все вызовы через макрос. При вызове макроса
exten => _8XXXXXXXXXX,1,Macro(dial-cidout,${CID_OUT},${EXTEN})
значения переменных (${CID_OUT}) не будут терятся

Re: Проблема при переадресации на внешний номер

Добавлено: 15 ноя 2010, 16:11
droff
Переменная "CID_OUT", в моем случае, присваивается каждой учетной записи в sip.conf. Но при "Moved Temporarily" asterisk осуществляет звонок "от себя". Получается, установить "CID_OUT" для такого случая мне не удастся?

Re: Проблема при переадресации на внешний номер

Добавлено: 15 ноя 2010, 16:29
ded
Тогда надо нарисовать в контексте context-5f40 всякие проверки GotoIf для подстановки CLID.