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

FreePBX, в Dial() не передается имя канала.

Проблемы Asterisk без вэб-оболочек и их решения

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

tyua
Сообщения: 43
Зарегистрирован: 02 апр 2013, 16:57

FreePBX, в Dial() не передается имя канала.

Сообщение tyua »

FreePBX14, Asterisk 13.
После каких-то моих манипуляций с настройками, перестали работать исходящие звонки.
В какой бы исходящий маршрут и транк не попадал звонок, в Dial() не передается имя канала, только номер.

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

Dial("PJSIP/714-0000000a", "/0670000008,,b(func-apply-sipheaders^s^1)") 
Лог:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

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

[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:1] Set("PJSIP/714-0000000a", "DIAL_TRUNK=1") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:2] ExecIf("PJSIP/714-0000000a", "0?Set(DIAL_OPTIONS=)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:3] GosubIf("PJSIP/714-0000000a", "0?sub-pincheck,s,1()") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:4] ExecIf("PJSIP/714-0000000a", "0?Set(CALLERID(num)=714)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:5] GotoIf("PJSIP/714-0000000a", "0?disabletrunk,1") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:6] Set("PJSIP/714-0000000a", "DIAL_NUMBER=0670000008") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:7] Set("PJSIP/714-0000000a", "DIAL_TRUNK_OPTIONS=") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:8] Set("PJSIP/714-0000000a", "OUTBOUND_GROUP=OUT_1") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:9] Set("PJSIP/714-0000000a", "DIAL_TRUNK_OPTIONS=") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:10] GotoIf("PJSIP/714-0000000a", "1?nomax") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx_builtins.c: Goto (macro-dialout-trunk,s,12)
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:12] GotoIf("PJSIP/714-0000000a", "0?skipoutcid") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:13] Macro("PJSIP/714-0000000a", "outbound-callerid,1") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:1] NoOp("PJSIP/714-0000000a", "714") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:2] NoOp("PJSIP/714-0000000a", "") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:3] NoOp("PJSIP/714-0000000a", "") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:4] ExecIf("PJSIP/714-0000000a", "0?Set(CALLERPRES(name-pres)=)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:5] ExecIf("PJSIP/714-0000000a", "0?Set(CALLERPRES(num-pres)=)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:6] ExecIf("PJSIP/714-0000000a", "0?Set(REALCALLERIDNUM=714)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:7] ExecIf("PJSIP/714-0000000a", "0?Set(AMPUSER=714)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:8] GotoIf("PJSIP/714-0000000a", "1?normcid") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx_builtins.c: Goto (macro-outbound-callerid,s,12)
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:12] Set("PJSIP/714-0000000a", "USEROUTCID=") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:13] Set("PJSIP/714-0000000a", "EMERGENCYCID=") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:14] Set("PJSIP/714-0000000a", "TRUNKOUTCID=") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:15] GotoIf("PJSIP/714-0000000a", "1?trunkcid") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx_builtins.c: Goto (macro-outbound-callerid,s,20)
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:20] ExecIf("PJSIP/714-0000000a", "0?Set(CALLERID(all)=)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:21] ExecIf("PJSIP/714-0000000a", "0?Set(CALLERID(all)=)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:22] ExecIf("PJSIP/714-0000000a", "0?Set(CALLERID(all)=)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:23] ExecIf("PJSIP/714-0000000a", "0?Set(CALLERPRES(name-pres)=prohib_passed_screen)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:24] ExecIf("PJSIP/714-0000000a", "0?Set(CALLERPRES(num-pres)=prohib_passed_screen)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:25] Set("PJSIP/714-0000000a", "CDR(outbound_cnum)=714") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-outbound-callerid:26] Set("PJSIP/714-0000000a", "CDR(outbound_cnam)=Иванов") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:14] GosubIf("PJSIP/714-0000000a", "0?sub-flp-1,s,1()") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:15] Set("PJSIP/714-0000000a", "OUTNUM=0670000008") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:16] Set("PJSIP/714-0000000a", "custom=") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:17] ExecIf("PJSIP/714-0000000a", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default))") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:18] ExecIf("PJSIP/714-0000000a", "0?Set(DIAL_TRUNK_OPTIONS=M(confirm))") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:19] Macro("PJSIP/714-0000000a", "dialout-trunk-predial-hook,") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("PJSIP/714-0000000a", "") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:20] GotoIf("PJSIP/714-0000000a", "0?bypass,1") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:21] ExecIf("PJSIP/714-0000000a", "1?Set(CONNECTEDLINE(num,i)=0670000008)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:22] ExecIf("PJSIP/714-0000000a", "1?Set(CONNECTEDLINE(name,i)=CID:714)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:23] ExecIf("PJSIP/714-0000000a", "0?Set(CONNECTEDLINE(name,i)=CID:(Hidden)714)") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:24] GotoIf("PJSIP/714-0000000a", "0?customtrunk") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:25] Dial("PJSIP/714-0000000a", "/0670000008,,b(func-apply-sipheaders^s^1)") in new stack
В диалплане вижу, что должны заполнятся переменные ${OUT_${DIAL_TRUNK}}/${OUTNUM}${OUT_${DIAL_TRUNK}_SUFFIX}, у меня только ${OUTNUM} содержит номер, остальные пустые, я не могу найти где они записываются.

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

exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM}${OUT_${DIAL_TRUNK}_SUFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS}b(func-apply-sipheaders^s^1))
macro-dialout-trunk:
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

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

exten => s,1,Set(DIAL_TRUNK=${ARG1})
exten => s,n,ExecIf($["${DIRECTION}" = "INBOUND"]?Set(DIAL_OPTIONS=${STRREPLACE(DIAL_OPTIONS,T)}))
exten => s,n,GosubIf($[$["${ARG3}" != ""] & $["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]]?sub-pincheck,s,1())
exten => s,n,ExecIf($["${INTRACOMPANYROUTE}" = "YES" & ${DB_EXISTS(AMPUSER/${AMPUSER}/cidnum)} & "${AMPUSER}" != "${DB(AMPUSER/${AMPUSER}/cidnum)}"]?Set(CALLERID(num)=${DB(AMPUSER/${AMPUSER}/cidnum)}))
exten => s,n,GotoIf($["x${OUTDISABLE_${DIAL_TRUNK}}" = "xon"]?disabletrunk,1)
exten => s,n,Set(DIAL_NUMBER=${ARG2})
exten => s,n,Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS})
exten => s,n,Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK})
exten => s,n,Set(DIAL_TRUNK_OPTIONS=${IF($["${DB_EXISTS(TRUNK/${DIAL_TRUNK}/dialopts)}" = "1"]?${DB_RESULT}:${TRUNK_OPTIONS})})
exten => s,n,GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}" = ""]?nomax)
exten => s,n,GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull)
exten => s,n(nomax),GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid)
exten => s,n,Macro(outbound-callerid,${DIAL_TRUNK})
exten => s,n(skipoutcid),GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1())
exten => s,n,Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER})
exten => s,n,Set(custom=${CUT(OUT_${DIAL_TRUNK},:,1)})
exten => s,n,ExecIf($["${MOHCLASS}"!="default" & "${MOHCLASS}"!="" & "${FORCE_CONFIRM}"="" ]?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRUNK_OPTIONS}))
exten => s,n,ExecIf($["${FORCE_CONFIRM}"!="" ]?Set(DIAL_TRUNK_OPTIONS=${DIAL_TRUNK_OPTIONS}M(confirm)))
exten => s,n(gocall),Macro(dialout-trunk-predial-hook,)
exten => s,n,GotoIf($["${PREDIAL_HOOK_RET}" = "BYPASS"]?bypass,1)
exten => s,n,ExecIf($["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(CONNECTEDLINE(num,i)=${DIAL_NUMBER}))
exten => s,n,ExecIf($[$["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""] & $["${CALLERID(name)}"!="hidden"]]?Set(CONNECTEDLINE(name,i)=CID:${CALLERID(number)}))
exten => s,n,ExecIf($[$["${DB(AMPUSER/${AMPUSER}/cidname)}" != ""] & $["${CALLERID(name)}"="hidden"]]?Set(CONNECTEDLINE(name,i)=CID:(Hidden)${CALLERID(number)}))
exten => s,n,GotoIf($["${custom}" = "AMP"]?customtrunk)
exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM}${OUT_${DIAL_TRUNK}_SUFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS}b(func-apply-sipheaders^s^1))
exten => s,n,Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE})
exten => s,n,GotoIf($["${ARG4}" = "on"]?continue,1:s-${DIALSTATUS},1)
exten => s,n(customtrunk),Set(pre_num=${CUT(OUT_${DIAL_TRUNK},$,1)})
exten => s,n,Set(the_num=${CUT(OUT_${DIAL_TRUNK},$,2)})
exten => s,n,Set(post_num=${CUT(OUT_${DIAL_TRUNK},$,3)})
exten => s,n,GotoIf($["${the_num}" = "OUTNUM"]?outnum:skipoutnum)
exten => s,n(outnum),Set(the_num=${OUTNUM})
exten => s,n(skipoutnum),Dial(${pre_num:4}${the_num}${post_num},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS})
exten => s,n,Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE})
exten => s,n,GotoIf($["${ARG4}" = "on"]?continue,1:s-${DIALSTATUS},1)
exten => s,n(chanfull),Noop(max channels used up)
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: FreePBX, в Dial() не передается имя канала.

Сообщение ded »

Вам не надо исследовать macro-dial-one, macro-dialout-trunk, и конструкции типа
exten => s,n,Dial(${OUT_${DIAL_TRUNK}}....

Всё делалось ведь через вэб интерфейс? Вот там в разделе Подключения => Транки, имя транков стёрли.

На командном уровне можно увидеть
*CLI> dialplan show outbound-allroutes

*CLI> dialplan show outrt-1

и т.д.

Для справки - в макрос macro-dialout-trunk не передался у вас аргумент
Set(DIAL_TRUNK=${ARG1})
поэтому такие строки пошли.
tyua
Сообщения: 43
Зарегистрирован: 02 апр 2013, 16:57

Re: FreePBX, в Dial() не передается имя канала.

Сообщение tyua »

Что касается транков, все через веб делалось.
В extensions_override_freepbx.conf немного модифицировал [macro-hangupcall] и [macro-dial-one].

В разделе Подключения => Транки, имя транка заполнено, картинка ниже.

В pbx*CLI> dialplan show outrt-1, я имени транка действительно не вижу, где оно должно быть?
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

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

pbx*CLI> dialplan show outrt-1
[ Context 'outrt-1' created by 'pbx_config' ]
  '_+380[345679]XXXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,)       [pbx_config]
                    2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
                    3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
                    4. Set(_NODEST=)                              [pbx_config]
                    5. Macro(dialout-trunk,1,${EXTEN:3},,off)     [pbx_config]
                    6. Macro(outisbusy,)                          [pbx_config]
  '_0[345679]XXXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,)       [pbx_config]
                    2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
                    3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
                    4. Set(_NODEST=)                              [pbx_config]
                    5. Macro(dialout-trunk,1,${EXTEN},,off)       [pbx_config]
                    6. Macro(outisbusy,)                          [pbx_config]
  '_380[345679]XXXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,)       [pbx_config]
                    2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
                    3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
                    4. Set(_NODEST=)                              [pbx_config]
                    5. Macro(dialout-trunk,1,${EXTEN:2},,off)     [pbx_config]
                    6. Macro(outisbusy,)                          [pbx_config]
  '_80[345679]XXXXXXXX' => 1. Macro(user-callerid,LIMIT,EXTERNAL,)       [pbx_config]
                    2. Gosub(sub-record-check,s,1(out,${EXTEN},dontcare)) [pbx_config]
                    3. Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})}) [pbx_config]
                    4. Set(_NODEST=)                              [pbx_config]
                    5. Macro(dialout-trunk,1,${EXTEN:1},,off)     [pbx_config]
                    6. Macro(outisbusy,)                          [pbx_config]
  Include =>        'outrt-1-custom'                              [pbx_config]

-= 4 extensions (24 priorities) in 1 context. =-
Для справки - в макрос macro-dialout-trunk не передался у вас аргумент
Set(DIAL_TRUNK=${ARG1})
По логу вижу, что в ${ARG1} передается 1.

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

[2018-10-04 10:09:22] VERBOSE[3174][C-0000000c] pbx.c: Executing [0674081308@from-internal:5] Macro("PJSIP/714-0000000c", "dialout-trunk,1,0670000008,,off") in new stack
[2018-10-04 10:09:22] VERBOSE[3174][C-0000000c] pbx.c: Executing [s@macro-dialout-trunk:1] Set("PJSIP/714-0000000c", "DIAL_TRUNK=1") in new stack
Вложения
trunks.PNG
trunks.PNG (20.81 КБ) 6022 просмотра
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: FreePBX, в Dial() не передается имя канала.

Сообщение ded »

Поправка: не исполняется 11-й шаг макроса macro-dialout-trunk

>>>> Macro(outbound-callerid,${DIAL_TRUNK}) там не заполнилась переменная ${DIAL_TRUNK}

Смотрите свой лог внимательно - 10-й шаг, а потом сразу 12-й.

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

[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:10] GotoIf("PJSIP/714-0000000a", "1?nomax") in new stack
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx_builtins.c: Goto (macro-dialout-trunk,s,12)
[2018-10-04 08:55:56] VERBOSE[28512][C-0000000a] pbx.c: Executing [s@macro-dialout-trunk:12] GotoIf("PJSIP/714-0000000a", "0?skipoutcid") in new stack
Откуда там такое -
Goto (macro-dialout-trunk,s,12) ?? Это что-то изменённое в оригинале.
tyua
Сообщения: 43
Зарегистрирован: 02 апр 2013, 16:57

Re: FreePBX, в Dial() не передается имя канала.

Сообщение tyua »

шаги 10,11,12 из extensions_additional.conf

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

exten => s,n,GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}" = ""]?nomax)
exten => s,n,GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull)
exten => s,n(nomax),GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid)
как я понимаю, если не установлено макс. количество каналов на транке (${OUTMAXCHANS_${DIAL_TRUNK}}), идет на шаг 12.

Я не понимаю, где устанавливаются переменные

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

${OUTMAXCHANS_${DIAL_TRUNK}}
${OUT_${DIAL_TRUNK}}
${OUT_${DIAL_TRUNK}_SUFFIX}
и т.д.
tyua
Сообщения: 43
Зарегистрирован: 02 апр 2013, 16:57

Re: FreePBX, в Dial() не передается имя канала.

Сообщение tyua »

В macro-outbound-callerid опять же вижу, что у меня ничего нет в переменных
${OUTKEEPCID_${ARG1}}
${OUTCID_${ARG1}}
И других
macro-outbound-callerid – лог
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

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

[s@macro-outbound-callerid:1] NoOp("PJSIP/714-0000000c", "714") in new stack
[s@macro-outbound-callerid:2] NoOp("PJSIP/714-0000000c", "") in new stack
[s@macro-outbound-callerid:3] NoOp("PJSIP/714-0000000c", "") in new stack
[s@macro-outbound-callerid:4] ExecIf("PJSIP/714-0000000c", "0?Set(CALLERPRES(name-pres)=)") in new stack
[s@macro-outbound-callerid:5] ExecIf("PJSIP/714-0000000c", "0?Set(CALLERPRES(num-pres)=)") in new stack
[s@macro-outbound-callerid:6] ExecIf("PJSIP/714-0000000c", "0?Set(REALCALLERIDNUM=714)") in new stack
[s@macro-outbound-callerid:7] ExecIf("PJSIP/714-0000000c", "0?Set(AMPUSER=714)") in new stack
[s@macro-outbound-callerid:8] GotoIf("PJSIP/714-0000000c", "1?normcid") in new stack
pbx_builtins.c: Goto (macro-outbound-callerid,s,12)
[s@macro-outbound-callerid:12] Set("PJSIP/714-0000000c", "USEROUTCID=") in new stack
[s@macro-outbound-callerid:13] Set("PJSIP/714-0000000c", "EMERGENCYCID=") in new stack
[s@macro-outbound-callerid:14] Set("PJSIP/714-0000000c", "TRUNKOUTCID=") in new stack
[s@macro-outbound-callerid:15] GotoIf("PJSIP/714-0000000c", "1?trunkcid") in new stack
pbx_builtins.c: Goto (macro-outbound-callerid,s,20)
[s@macro-outbound-callerid:20] ExecIf("PJSIP/714-0000000c", "0?Set(CALLERID(all)=)") in new stack
[s@macro-outbound-callerid:21] ExecIf("PJSIP/714-0000000c", "0?Set(CALLERID(all)=)") in new stack
[s@macro-outbound-callerid:22] ExecIf("PJSIP/714-0000000c", "0?Set(CALLERID(all)=)") in new stack
[s@macro-outbound-callerid:23] ExecIf("PJSIP/714-0000000c", "0?Set(CALLERPRES(name-pres)=prohib_passed_screen)") in new stack
[s@macro-outbound-callerid:24] ExecIf("PJSIP/714-0000000c", "0?Set(CALLERPRES(num-pres)=prohib_passed_screen)") in new stack
[s@macro-outbound-callerid:25] Set("PJSIP/714-0000000c", "CDR(outbound_cnum)=714") in new stack
[s@macro-outbound-callerid:26] Set("PJSIP/714-0000000c", "CDR(outbound_cnam)=Иванов") in new stack
macro-outbound-callerid – конфиг
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER:

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

[macro-outbound-callerid]
include => macro-outbound-callerid-custom
exten => s,1,Noop(${REALCALLERIDNUM})
exten => s,n,Noop(${KEEPCID})
exten => s,n,Noop(${OUTKEEPCID_${ARG1}})
exten => s,n,ExecIf($["${CALLINGNAMEPRES_SV}" != ""]?Set(CALLERPRES(name-pres)=${CALLINGNAMEPRES_SV}))
exten => s,n,ExecIf($["${CALLINGNUMPRES_SV}" != ""]?Set(CALLERPRES(num-pres)=${CALLINGNUMPRES_SV}))
exten => s,n,ExecIf($["${REALCALLERIDNUM:1:2}" = ""]?Set(REALCALLERIDNUM=${CALLERID(number)}))
exten => s,n,ExecIf($[$["${CIDMASQUERADING}" = "TRUE"] & $[$["${AMPUSER}" = ""] | $["${AMPUSER}" = "${DB(AMPUSER/${FROMEXTEN}/cidnum)}"]]]?Set(AMPUSER=${FROMEXTEN}))
exten => s,n(start),GotoIf($[ $["${REALCALLERIDNUM}" = ""] | $["${KEEPCID}" != "TRUE"] | $["${OUTKEEPCID_${ARG1}}" = "on"] ]?normcid)
exten => s,n,Set(USEROUTCID=${REALCALLERIDNUM})
exten => s,n,GotoIf($["${CIDMASQUERADING}" = "TRUE"]?normcid)
exten => s,n,GotoIf($["${DB(AMPUSER/${REALCALLERIDNUM}/device)}" = "" & "${DB(DEVICE/${REALCALLERIDNUM}/user)}" = ""]?bypass)
exten => s,n(normcid),Set(USEROUTCID=${DB(AMPUSER/${AMPUSER}/outboundcid)})
exten => s,n(bypass),Set(EMERGENCYCID=${DB(DEVICE/${REALCALLERIDNUM}/emergency_cid)})
exten => s,n,Set(TRUNKOUTCID=${OUTCID_${ARG1}})
exten => s,n,GotoIf($["${EMERGENCYROUTE:1:2}" = "" | "${EMERGENCYCID:1:2}" = ""]?trunkcid)
exten => s,n,Set(CALLERID(all)=${EMERGENCYCID})
exten => s,n,Set(CDR(outbound_cnum)=${CALLERID(num)})
exten => s,n,Set(CDR(outbound_cnam)=${CALLERID(name)})
exten => s,n(exit),MacroExit()
exten => s,n(trunkcid),ExecIf($[${LEN(${TRUNKOUTCID})} != 0]?Set(CALLERID(all)=${TRUNKOUTCID}))
exten => s,n(usercid),ExecIf($[${LEN(${USEROUTCID})} != 0]?Set(CALLERID(all)=${USEROUTCID}))
exten => s,n,ExecIf($[${LEN(${TRUNKCIDOVERRIDE})} != 0 | ${LEN(${FORCEDOUTCID_${ARG1}})} != 0]?Set(CALLERID(all)=${IF($[${LEN(${FORCEDOUTCID_${ARG1}})}=0]?${TRUNKCIDOVERRIDE}:${FORCEDOUTCID_${ARG1}})}))
exten => s,n(hidecid),ExecIf($["${CALLERID(name)}"="hidden"]?Set(CALLERPRES(name-pres)=prohib_passed_screen))
exten => s,n,ExecIf($["${CALLERID(name)}"="hidden"]?Set(CALLERPRES(num-pres)=prohib_passed_screen))
exten => s,n,Set(CDR(outbound_cnum)=${CALLERID(num)})
exten => s,n,Set(CDR(outbound_cnam)=${CALLERID(name)})
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: FreePBX, в Dial() не передается имя канала.

Сообщение ded »

У вас 11-й шаг макроса
exten => s,n,GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull)

а выполняется совсем другое -
VERBOSE[28512][C-0000000a] pbx_builtins.c: Goto (macro-dialout-trunk,s,12)

Ключевая строка -
Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM}${OUT_${DIAL_TRUNK}_SUFFIX},${TRUNK_RING_TIMER},${DIAL_TRUNK_OPTIONS})
${DIAL_TRUNK} мы видим, что выставляется в 1, значит будет переменная там ${OUT_1}

Трудно вам будет. Вставляйте в нём везде, хоть через одну строку

exten => s,n,NoOp( ::::::::::::::::::::::::::::: ${OUT_1} :::::::::::::::::::::::::::::::)
и dialplan reload.
И тогда будет видно наглядно, где он пропадает.
tyua
Сообщения: 43
Зарегистрирован: 02 апр 2013, 16:57

Re: FreePBX, в Dial() не передается имя канала.

Сообщение tyua »

ded писал(а):У вас 11-й шаг макроса
exten => s,n,GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull)
а выполняется совсем другое -
VERBOSE[28512][C-0000000a] pbx_builtins.c: Goto (macro-dialout-trunk,s,12)
macro-dialout-trunk я вручную не изменял.
Насколько вижу, у меня 11 шаг не выполняется, поскольку на 10м срабатывает

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

exten => s,n,GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}" = ""]?nomax)
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: FreePBX, в Dial() не передается имя канала.

Сообщение ded »

Поправился (выше) -

exten => s,n,NoOp( ::::::::::::::::::::::::::::: ${OUT_1} :::::::::::::::::::::::::::::::)
и dialplan reload.

Если бы на 10-м срабатывал
exten => s,n,GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}" = ""]?nomax)
то переходило бы на метку nomax:
GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid)
tyua
Сообщения: 43
Зарегистрирован: 02 апр 2013, 16:57

Re: FreePBX, в Dial() не передается имя канала.

Сообщение tyua »

Ничего нет у меня в ${OUT_1}

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

[s@macro-dialout-trunk:1] Set("PJSIP/714-0000000e", "DIAL_TRUNK=1") in new stack
[s@macro-dialout-trunk:2] NoOp("PJSIP/714-0000000e", " ::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::") in new stack
........
[s@macro-dialout-trunk:11] NoOp("PJSIP/714-0000000e", " ::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::") in new stack
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH