AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

IVR-мгновенный переход после нажатия на кнопку

Newbies/FAQ Forum 38 сообщений -
#1

Здравствуйте, пожалуйста посоветуйте - где настраивается чтобы я мог не дождавшись пока IVR меню прогирается полностья переходил по нажатии кнопки.
например: можно нажать 1, 2, 3. не дождавшись пока предложать нажать 3, я нажав 2 сразу оказался в меню под кнопкой 2.
у меня сейчас не так, приходится ждать пока все проиграется.
спасибо заранее,
#2

Использовать приложение BackGround при проигрывании файлов
#3

это можно в вэбморде настроить?
#4

да
#5

пожалуйста, посоветуйте, как это сделать в вэбке
#6

Для начала включить трассировку в CLI (asterisk -vvvr) и увидеть как и что из приложений у вас стартует. Вы говорите о СТАНДАРТНОМ поведение Background, которое у вас и так стартует, если чего-то доп. не нагородили. Например весь IVR идет не одним, а несколькими разными файлами.
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#7

ivr идет несколькими контекстами, вернее на каждый "под-IVR" свой контекст, и все это в файле extensions_additional.conf
у меня вопрос, если я IVR строил не в одном контексте и по вэбке, в какой файл это записывается.
наверняка прежде чем записаться в extensions_additional.conf, куда-то записывается на постоянно....

Added after 1 hours 8 minutes:

сейчас нашел что можно добавлять custom context в вэбке, попробую там....
#8

смог добится что после нажатия на 8 из IVR, переходит на контекст из файла extensions_custom.conf.

вот сырой контекст:

[afterpressing8_tabrik]
exten=>8,1,Set(home="/var/lib/asterisk/sounds/custom")
exten=>8,n,Answer()
exten=>8,n,Wait(1)
exten=>8,n,Background(${home}/ivr_tabrik5)
exten=>8,n,Read(digits, ,12)
exten=>8,n,Wait(1)
exten=>8,n,Set(CHANNEL(language)=ru)
exten=>8,n,Background(${home}/ivr_tabrik6)
exten=>8,n,Saydigits(${digits})
exten=>8,n,Read(digit, ,1)
exten=>8,n,Gotoif($[${digit=1}?10:20])
exten=>8,10,Dial()
сейчас переход есть по 8, но диалплан пока полностью не рабочий.
хочется на данном моменте реализовать чтобы после" введите номер телефона в конце с решеткой". насколько я понял нужно использовать команду read().

но, после предложения ввести номер телефона с решеткой в конце, у меня проигрывается начало ivr. если не набирать номер то проигрывается то что после команды read(), т.е. exten=>8,n,Background(${home}/ivr_tabrik6)

прошу совета,
с премногим благодарством,
#9

Почитайте КАК составляется IVR!!!!

exten => s,1,Answer
exten => s,n,Background(hello)
exten => s,n,Waitexten(5)

exten => 1,1,Goto(......)
exten => 2,1,Goto(.....)

exten => t,1,Goto(.....)
exten => i,1,Goto(.....)

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#10

я читаю, пытаюсь найти ответ, спасибо что вы подсказываете.
значит ли что мне нужно использовать waitexten() перед read()?
#11

READ = чтение DTMF-ввода, а WaitExten - ожидание ввода предопределенных комбинаций
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#12

да, спасибо, я и в книге прочитал что read() ждет DTMF c решеткой, поэтому и в контексте использовал это приложение. у меня проблема, не могу найти.
хотя потихоньку продвигаюсь, в начале ддаже не переходило на custom context по нажатии на 8. но сечас это срабатывает, но как видно в моем контексте, я хочу дальше продвинуться - чтобы срабатывало read() и saydigits()
#13

А вы СНАЧАЛА подумайте что же хотите.
Откуда-то по цифре 8 влетели в НЕКИЙ контекст, в котором начинаем что-то делать (тот же read)

[some-ivr]

exten => 8,1,Goto(some-read,s,1)

[some-read]
exten => s,1,NoOp( test)
exten => s,n(repeat),READ()
exten => s,n,Playback(...)
exten => s,n,Goto(repeat)

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#14

да мне трудновато в начале, хорошо что есть вы, помогаете.
я не могу догнать, где прописан контекст моего IVR который я создавал по вэб, если бы я знал где этот файл, наверное туда и добавлял кастомный контекст или дописывал в контекст IVR который сделан по вэбке.

честно говоря я в тупике, не знаю пока что предпринять.
попробую весь ivr сделать в одном файле extensions_custom.conf
#15

Ответ ПРОСТ: 1. лезете в CLI и смотрите трассировку вызова. Там и увидите ваш вэб-нарисованный IVR.
2. ВНИМАТЕЛЬНО читаем что и куда можно и нельзя добавлять т.к. при будет перезатерно.
3. Пишет что хотим в кастомные файлы.

Ну и в догонку: почесть Библию по Астеру, прочесть "Эластикс без слез", желательно взять несколько уроков по программированию-логике по какому либо языку (php/perl/basic)

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#16

Для связности, вторая "ветка": IVR соединение входящего звонка с внешним номером

Added after 1 minutes:

virus_net @ Пт Окт 10, 2014 08:39 писал(а):
Для связности, вторая "ветка": IVR соединение входящего звонка с внешним номером


kamilchik, нахрапом астериск не познать. Чтобы познать придется почитать литературу.
#17

Цитата:
kamilchik



Зарегистрирован:
07.02.2011
Сообщения: 22


Вот ЭТО то меня смущает больше

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#18

Wapo, всецело согласен. За три то года можно было найти время на чтение "библии", но как видно kamilchik ну очень занятой человек.
#19

в 2011 году зарегистрировался, тогда я впервые столкнулся с Астериск, была задача интегрировать обычный АТС с Астериском. Могу сказать тогда я очень даже и справился с задачой, причем без помощи этого форума. потом, я перешел на другую работу.
в этом году, у нового работодателя, задача создать IVR - развлекательный портал. Так, как есть опыт(минимальный, но есть) с Астериском, я решил попробовать на нем
#20

kamilchik, без обид, но знаете сколько я уже таких перевидал, которые не читали соответствующую лит-ру, при этом считали, что "успешно справились с задачей", а потом оплачивали километровые счета за звонки в "Зимбабве".
И зачастую причина, таких вот дыр проста, в непонимании. Т.к. ковыряние шло нахрапом и как только "о заработало!" ковыряние останавливалось и далее никто уже ни о чем не думает, кто, что, зачем...
Например, одна из самых частых (после паролей 123 и прочего), в непонимании основ dialplan`а, когда допускают caller в кач-ве добавочного номера может набрать не только внутренний номер, но и ЛЮБОЙ внешний номер и тем самым транзитить звонок.
Судя по вашим сообщениям в вашем случае так же есть непонимание работы dialplan, которые вполне внятно описаны в "библии" и множественной документации в Инете.
#21

есть новость, хорошая для меня - попробовал такой вот диалплан, после чего мой IVR умеет предложить ввести номер, сохранить в переменной и произнести:

Код:
[afterpressing8_tabrik]
exten=>8,1,Set(home="/var/lib/asterisk/sounds/custom")
same=>n,Answer()
same=>n,Wait(1)
same=>n,Read(digits,${home}/ivr_tabrik5)
same=>n,Wait(3)
same=>n,Set(CHANNEL(language)=ru)
same=>n,Background(${home}/ivr_tabrik6)
same=>n,Saydigits(${digits})
same=>n,Background(${home}/ivr_tabrik7)
same=>n,Waitexten(3)


посоветуйте плиз, можно ли язык произношения цифр сменить на узбекский? может подменить своими звуковыми файлами? где содержаться эти файлы?
спасибо,
#22

а есть узбекский перевод цифр ?

тогда делаете папку в sound с названием (не используемой озвучкой - например uz)
и бросаете туда файлы по аналогии как en и ru (те же папки с те же названия)
ну и меняете с дефолтной language - en на uz

не прокатит с uz (просто нет такой раскладки) - воспользуйтесь de

_________________
платный суппорт по мере возможностей
#23

т.е. заменить файлы в de? так? de мне не нужен...
папка var/lib/asterisk/sounds? там есть ru, en, es, fr со вложенными папками и файлами
#24

заменяйте испанский - es
сносите все из папки es - и лейте туда узбекский
ну и меняете language на es

_________________
платный суппорт по мере возможностей
#25

решил не использовать en и залил туда звуки в формате wav(0.av, 1.wav ....).
переключил на en, но произносит на рус.
вот трассировка:

-
Код:
- Playing '/var/lib/asterisk/sounds/custom/ivr_tabrik6.slin' (language 'en')
-- Executing [8@afterpressing8_tabrik:8] SayDigits("SIP/sip-in-00000082", "99890807339") in new stack
-- Playing 'digits/9.alaw' (language 'en')
-- Playing 'digits/9.alaw' (language 'en')
-- Playing 'digits/8.alaw' (language 'en')
-- Playing 'digits/9.alaw' (language 'en')
-- Playing 'digits/0.alaw' (language 'en')
-- Playing 'digits/8.alaw' (language 'en')
-- Playing 'digits/0.alaw' (language 'en')
-- Playing 'digits/7.alaw' (language 'en')
-- Playing 'digits/3.alaw' (language 'en')
-- Playing 'digits/3.alaw' (language 'en')
-- Playing 'digits/9.alaw' (language 'en')
#26

а всё потому что кто то читает между строк

defaultlanguage = ?

_________________
платный суппорт по мере возможностей
#27

Так же можно и не менять defaultlanguage на всем астере, можно менять язык только для конкретного вызова установив CHANNEL(language)
Пример:
Код:
exten => _XXX,1,Set(CHANNEL(language)=ru)
#28

virus_net @ Fri Oct 17, 2014 05:26 писал(а):
Так же можно и не менять defaultlanguage на всем астере, можно менять язык только для конкретного вызова установив CHANNEL(language)
Пример:
Код:
exten => _XXX,1,Set(CHANNEL(language)=ru)

я как раз и менял только для канала:
[afterpressing8_tabrik]
exten=>8,1,Set(home="/var/lib/asterisk/sounds/custom")
same=>n,Answer()
same=>n,Wait(1)
same=>n,Read(digits,${home}/ivr_tabrik5)
same=>n,Wait(3)
same=>n,Set(CHANNEL(language)=ru)
same=>n,Background(${home}/ivr_tabrik6)
same=>n,Saydigits(${digits})
same=>n,Background(${home}/ivr_tabrik7)
same=>n,Waitexten(3)

вопрос: same=>n,Set(CHANNEL(language)=ru) можно в любом месте контекста прописывать и не затирается ли это следующими строками?

Added after 28 minutes:

прошел данный этап, в папке es создал папку digits и поместил туда "узбекские цифры".

следующий этап, организовать звонок на данныйе цифры.

можно использовать один и тот же транк для входящей и исходящией связи?

как видно по "dialplan"у есть переменная "digits", если использовать приложение Dial() используя эту переменную...

также я создал outbound route в вэбморде, разрешающий исходящий звонок по паттерну 9989XXXXXXXX

подскажите плиз...
#29

Из опыта: даже если вы в начале вызова ставите СВОЙ вариант голоса - в процессе обработки периодически (в зависимости от используемого приложения) голос могет браться из default. Именно поэтому я просто весь "русский" слил в en так как международка мне без надобности.
_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#30

Wapo @ Fri Oct 17, 2014 07:22 писал(а):
Из опыта: даже если вы в начале вызова ставите СВОЙ вариант голоса - в процессе обработки периодически (в зависимости от используемого приложения) голос могет браться из default. Именно поэтому я просто весь "русский" слил в en так как международка мне без надобности.


спасибо за шаринг опытом, я тоже вначале отказался от en. мне он не нужен, но не сработало. es пустой была полностью, создал там папку digits и слил туда нужный файлы в формате wav.

позвольте также обратится к вашему опыту по поводу пременной в одном контексте. вот приложение Read() записывает DTMF наборы и присваевает переменной, она доступна прложению Saydigits().
доступна ли она приложению Dial()?
#31

Ох и почитать то вам БИБЛИЮ в конце концов. !!!!

Переменная существует в рамках своего канал пока тот существует. Для передачи этой переменной в другой канал используется символ нижнего подчеркивания типа: __VARIANT.

Ну и для развития: http://wapo-spb.livejournal.com/25223.html

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#33

Wapo @ Fri Oct 17, 2014 08:54 писал(а):
Ох и почитать то вам БИБЛИЮ в конце концов. !!!!

Переменная существует в рамках своего канал пока тот существует. Для передачи этой переменной в другой канал используется символ нижнего подчеркивания типа: __VARIANT.

Ну и для развития: http://wapo-spb.livejournal.com/25223.html


спасибо, читаю библию, благодаря ей и вашим советам уже получается более или менее.

насчет переменной тоже понятно, но нужно как говорится практиковать тоже.
сейчас стоит вопрос - не звонит на внешнку. Экстеншн на экстеншн звонит но экстеншн на внешний номер не звонит.
SIP транк один, входящая с внешки есть.

в sip.conf есть context=from-internal на каждый добавочный номер.

outbound rule прописал по паттерну _9989XXXXXXXX

в книге написано что from-internal можно добавить в файл extension_custom.conf, добавил.

но с экстеншн так и незвонит по паттерну.

может я не правильно понимаю архитектуру...
#34

сегодня добился того что заработало приложение Dial() внутри моего IVR.

по этому вот, диалплану:

[afterpressing8_tabrik]
exten=>8,1,Set(home="/var/lib/asterisk/sounds/custom")
same=>n,Answer()
same=>n,Wait(1)
same=>n,Read(__digits,${home}/ivr_tabrik5)
same=>n,Wait(1)
same=>n,Set(CHANNEL(language)=es)
same=>n,Background(${home}/ivr_tabrik6)
same=>n,Saydigits(${digits})
same=>n,Wait(1)
same=>n,Background(${home}/ivr_tabrik7)
same=>n,Waitexten(3)
exten=>1,1,Dial(SIP/${digits})
exten=>1,n,NoOp(${digits})

проверил что работает поставив номер добавочный вместо $digits в Dial():

exten=>1,1,Dial(SIP/110)

но в случае с $digits, канал показывается как недоступный, трассировка ниже.

Значит ли то что один транк не будет работать одновременно для вход/исходящих соединений?

Код:
-- Executing [s@ivr-19:12] WaitExten("SIP/sip-in-00000202", "2,") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [1501164@from-trunk-sip-sip-in:1] Set("SIP/sip-in-00000204", "GROUP()=OUT_1") in new stack
-- Executing [1501164@from-trunk-sip-sip-in:2] Goto("SIP/sip-in-00000204", "from-trunk,1501164,1") in new stack
-- Goto (from-trunk,1501164,1)
-- Executing [1501164@from-trunk:1] NoOp("SIP/sip-in-00000204", "Catch-All DID Match - Found 1501164 - You probably want a DID for this.") in new stack
-- Executing [1501164@from-trunk:2] Goto("SIP/sip-in-00000204", "ext-did,s,1") in new stack
-- Goto (ext-did,s,1)
-- Executing [s@ext-did:1] ExecIf("SIP/sip-in-00000204", "1?Set(__FROM_DID=s)") in new stack
-- Executing [s@ext-did:2] Gosub("SIP/sip-in-00000204", "app-blacklist-check,s,1()") in new stack
-- Executing [s@app-blacklist-check:1] GotoIf("SIP/sip-in-00000204", "0?blacklisted") in new stack
-- Executing [s@app-blacklist-check:2] Set("SIP/sip-in-00000204", "CALLED_BLACKLIST=1") in new stack
-- Executing [s@app-blacklist-check:3] Return("SIP/sip-in-00000204", "") in new stack
-- Executing [s@ext-did:3] Set("SIP/sip-in-00000204", "CDR(did)=s") in new stack
-- Executing [s@ext-did:4] ExecIf("SIP/sip-in-00000204", "1 ?Set(CALLERID(name)=711409727)") in new stack
-- Executing [s@ext-did:5] Set("SIP/sip-in-00000204", "__CALLINGPRES_SV=allowed_not_screened") in new stack
-- Executing [s@ext-did:6] Set("SIP/sip-in-00000204", "CALLERPRES()=allowed_not_screened") in new stack
-- Executing [s@ext-did:7] Goto("SIP/sip-in-00000204", "ivr-12,s,1") in new stack
-- Goto (ivr-12,s,1)
-- Executing [s@ivr-12:1] Set("SIP/sip-in-00000204", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-12:2] Set("SIP/sip-in-00000204", "_IVR_CONTEXT_ivr-12=") in new stack
-- Executing [s@ivr-12:3] Set("SIP/sip-in-00000204", "_IVR_CONTEXT=ivr-12") in new stack
-- Executing [s@ivr-12:4] Set("SIP/sip-in-00000204", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-12:5] GotoIf("SIP/sip-in-00000204", "0?skip") in new stack
-- Executing [s@ivr-12:6] Answer("SIP/sip-in-00000204", "") in new stack
-- Executing [s@ivr-12:7] Wait("SIP/sip-in-00000204", "1") in new stack
-- Executing [s@ivr-12:8] Set("SIP/sip-in-00000204", "IVR_MSG=custom/ivr_intro") in new stack
-- Executing [s@ivr-12:9] Set("SIP/sip-in-00000204", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-12:10] ExecIf("SIP/sip-in-00000204", "1?Background(custom/ivr_intro)") in new stack
-- Playing 'custom/ivr_intro.slin' (language 'en')
-- Timeout on SIP/sip-in-00000202, going to 't'
-- Executing [t@ivr-19:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=1") in new stack
-- Executing [t@ivr-19:2] GotoIf("SIP/sip-in-00000202", "0?final") in new stack
-- Executing [t@ivr-19:3] Set("SIP/sip-in-00000202", "IVR_MSG=custom/ivr_tabrik3") in new stack
-- Executing [t@ivr-19:4] Goto("SIP/sip-in-00000202", "s,start") in new stack
-- Goto (ivr-19,s,10)
-- Executing [s@ivr-19:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-19:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/ivr_tabrik3)") in new stack
-- Playing 'custom/ivr_tabrik3.slin' (language 'en')
-- Executing [3@ivr-19:1] Goto("SIP/sip-in-00000202", "ivr-20,s,1") in new stack
-- Goto (ivr-20,s,1)
-- Executing [s@ivr-20:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-20:2] Set("SIP/sip-in-00000202", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-20:3] Set("SIP/sip-in-00000202", "_IVR_CONTEXT_ivr-20=ivr-19") in new stack
-- Executing [s@ivr-20:4] Set("SIP/sip-in-00000202", "_IVR_CONTEXT=ivr-20") in new stack
-- Executing [s@ivr-20:5] Set("SIP/sip-in-00000202", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-20:6] GotoIf("SIP/sip-in-00000202", "1?skip") in new stack
-- Goto (ivr-20,s,9)
-- Executing [s@ivr-20:9] Set("SIP/sip-in-00000202", "IVR_MSG=custom/pozdrav04") in new stack
-- Executing [s@ivr-20:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-20:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/pozdrav04)") in new stack
-- Playing 'custom/pozdrav04.slin' (language 'en')
-- Executing [s@ivr-12:11] WaitExten("SIP/sip-in-00000204", "2,") in new stack
-- Timeout on SIP/sip-in-00000204, going to 't'
-- Executing [t@ivr-12:1] Playback("SIP/sip-in-00000204", "custom/ivr_menu") in new stack
-- Playing 'custom/ivr_menu.slin' (language 'en')
-- Registered IAX2 '111' (AUTHENTICATED) at 217.12.84.58:4569
-- Executing [s@ivr-20:12] WaitExten("SIP/sip-in-00000202", "3,") in new stack
-- Timeout on SIP/sip-in-00000202, going to 't'
-- Executing [t@ivr-20:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=1") in new stack
-- Executing [t@ivr-20:2] GotoIf("SIP/sip-in-00000202", "0?final") in new stack
-- Executing [t@ivr-20:3] Set("SIP/sip-in-00000202", "IVR_MSG=custom/ivr_tabrik3") in new stack
-- Executing [t@ivr-20:4] Goto("SIP/sip-in-00000202", "s,start") in new stack
-- Goto (ivr-20,s,10)
-- Executing [s@ivr-20:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-20:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/ivr_tabrik3)") in new stack
-- Playing 'custom/ivr_tabrik3.slin' (language 'en')
-- Executing [3@ivr-20:1] Goto("SIP/sip-in-00000202", "ivr-21,s,1") in new stack
-- Goto (ivr-21,s,1)
-- Executing [s@ivr-21:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-21:2] Set("SIP/sip-in-00000202", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-21:3] Set("SIP/sip-in-00000202", "_IVR_CONTEXT_ivr-21=ivr-20") in new stack
-- Executing [s@ivr-21:4] Set("SIP/sip-in-00000202", "_IVR_CONTEXT=ivr-21") in new stack
-- Executing [s@ivr-21:5] Set("SIP/sip-in-00000202", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-21:6] GotoIf("SIP/sip-in-00000202", "1?skip") in new stack
-- Goto (ivr-21,s,9)
-- Executing [s@ivr-21:9] Set("SIP/sip-in-00000202", "IVR_MSG=custom/pozdrav05") in new stack
-- Executing [s@ivr-21:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-21:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/pozdrav05)") in new stack
-- Playing 'custom/pozdrav05.slin' (language 'en')
-- Executing [t@ivr-12:2] Goto("SIP/sip-in-00000204", "ivr-16,s,1") in new stack
-- Goto (ivr-16,s,1)
-- Executing [s@ivr-16:1] Set("SIP/sip-in-00000204", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-16:2] Set("SIP/sip-in-00000204", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-16:3] Set("SIP/sip-in-00000204", "_IVR_CONTEXT_ivr-16=ivr-12") in new stack
-- Executing [s@ivr-16:4] Set("SIP/sip-in-00000204", "_IVR_CONTEXT=ivr-16") in new stack
-- Executing [s@ivr-16:5] Set("SIP/sip-in-00000204", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-16:6] GotoIf("SIP/sip-in-00000204", "1?skip") in new stack
-- Goto (ivr-16,s,9)
-- Executing [s@ivr-16:9] Set("SIP/sip-in-00000204", "IVR_MSG=custom/ivr_menu") in new stack
-- Executing [s@ivr-16:10] Set("SIP/sip-in-00000204", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-16:11] ExecIf("SIP/sip-in-00000204", "1?Background(custom/ivr_menu)") in new stack
-- Playing 'custom/ivr_menu.slin' (language 'en')
-- Executing [1@ivr-16:1] Goto("SIP/sip-in-00000204", "ivr-13,s,1") in new stack
-- Goto (ivr-13,s,1)
-- Executing [s@ivr-13:1] Set("SIP/sip-in-00000204", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-13:2] Set("SIP/sip-in-00000204", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-13:3] Set("SIP/sip-in-00000204", "_IVR_CONTEXT_ivr-13=ivr-16") in new stack
-- Executing [s@ivr-13:4] Set("SIP/sip-in-00000204", "_IVR_CONTEXT=ivr-13") in new stack
-- Executing [s@ivr-13:5] Set("SIP/sip-in-00000204", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-13:6] GotoIf("SIP/sip-in-00000204", "1?skip") in new stack
-- Goto (ivr-13,s,9)
-- Executing [s@ivr-13:9] Set("SIP/sip-in-00000204", "IVR_MSG=custom/ivr_tabrik1") in new stack
-- Executing [s@ivr-13:10] Set("SIP/sip-in-00000204", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-13:11] ExecIf("SIP/sip-in-00000204", "1?Background(custom/ivr_tabrik1)") in new stack
-- Playing 'custom/ivr_tabrik1.slin' (language 'en')
-- Executing [2@ivr-21:1] Goto("SIP/sip-in-00000202", "ivr-20,s,1") in new stack
-- Goto (ivr-20,s,1)
-- Executing [s@ivr-20:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-20:2] Set("SIP/sip-in-00000202", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-20:3] Set("SIP/sip-in-00000202", "_IVR_CONTEXT_ivr-20=ivr-21") in new stack
-- Executing [s@ivr-20:4] Set("SIP/sip-in-00000202", "_IVR_CONTEXT=ivr-20") in new stack
-- Executing [s@ivr-20:5] Set("SIP/sip-in-00000202", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-20:6] GotoIf("SIP/sip-in-00000202", "1?skip") in new stack
-- Goto (ivr-20,s,9)
-- Executing [s@ivr-20:9] Set("SIP/sip-in-00000202", "IVR_MSG=custom/pozdrav04") in new stack
-- Executing [s@ivr-20:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-20:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/pozdrav04)") in new stack
-- Playing 'custom/pozdrav04.slin' (language 'en')
-- Executing [s@ivr-13:12] WaitExten("SIP/sip-in-00000204", "1,") in new stack
-- Timeout on SIP/sip-in-00000204, going to 't'
-- Executing [t@ivr-13:1] Set("SIP/sip-in-00000204", "TIMEOUT_LOOPCOUNT=1") in new stack
-- Executing [t@ivr-13:2] GotoIf("SIP/sip-in-00000204", "0?final") in new stack
-- Executing [t@ivr-13:3] Set("SIP/sip-in-00000204", "IVR_MSG=custom/ivr_tabrik2") in new stack
-- Executing [t@ivr-13:4] Goto("SIP/sip-in-00000204", "s,start") in new stack
-- Goto (ivr-13,s,10)
-- Executing [s@ivr-13:10] Set("SIP/sip-in-00000204", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-13:11] ExecIf("SIP/sip-in-00000204", "1?Background(custom/ivr_tabrik2)") in new stack
-- Playing 'custom/ivr_tabrik2.slin' (language 'en')
-- Executing [s@ivr-20:12] WaitExten("SIP/sip-in-00000202", "3,") in new stack
-- Timeout on SIP/sip-in-00000202, going to 't'
-- Executing [t@ivr-20:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=1") in new stack
-- Executing [t@ivr-20:2] GotoIf("SIP/sip-in-00000202", "0?final") in new stack
-- Executing [t@ivr-20:3] Set("SIP/sip-in-00000202", "IVR_MSG=custom/ivr_tabrik3") in new stack
-- Executing [t@ivr-20:4] Goto("SIP/sip-in-00000202", "s,start") in new stack
-- Goto (ivr-20,s,10)
-- Executing [s@ivr-20:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-20:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/ivr_tabrik3)") in new stack
-- Playing 'custom/ivr_tabrik3.slin' (language 'en')
-- Executing [s@ivr-13:12] WaitExten("SIP/sip-in-00000204", "1,") in new stack
== CDR updated on SIP/sip-in-00000204
-- Executing [1@ivr-13:1] Goto("SIP/sip-in-00000204", "ivr-17,s,1") in new stack
-- Goto (ivr-17,s,1)
-- Executing [s@ivr-17:1] Set("SIP/sip-in-00000204", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-17:2] Set("SIP/sip-in-00000204", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-17:3] Set("SIP/sip-in-00000204", "_IVR_CONTEXT_ivr-17=ivr-13") in new stack
-- Executing [s@ivr-17:4] Set("SIP/sip-in-00000204", "_IVR_CONTEXT=ivr-17") in new stack
-- Executing [s@ivr-17:5] Set("SIP/sip-in-00000204", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-17:6] GotoIf("SIP/sip-in-00000204", "1?skip") in new stack
-- Goto (ivr-17,s,9)
-- Executing [s@ivr-17:9] Set("SIP/sip-in-00000204", "IVR_MSG=custom/pozdrav01") in new stack
-- Executing [s@ivr-17:10] Set("SIP/sip-in-00000204", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-17:11] ExecIf("SIP/sip-in-00000204", "1?Background(custom/pozdrav01)") in new stack
-- Playing 'custom/pozdrav01.slin' (language 'en')
-- Executing [3@ivr-20:1] Goto("SIP/sip-in-00000202", "ivr-21,s,1") in new stack
-- Goto (ivr-21,s,1)
-- Executing [s@ivr-21:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-21:2] Set("SIP/sip-in-00000202", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-21:3] Set("SIP/sip-in-00000202", "_IVR_CONTEXT_ivr-21=ivr-20") in new stack
-- Executing [s@ivr-21:4] Set("SIP/sip-in-00000202", "_IVR_CONTEXT=ivr-21") in new stack
-- Executing [s@ivr-21:5] Set("SIP/sip-in-00000202", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-21:6] GotoIf("SIP/sip-in-00000202", "1?skip") in new stack
-- Goto (ivr-21,s,9)
-- Executing [s@ivr-21:9] Set("SIP/sip-in-00000202", "IVR_MSG=custom/pozdrav05") in new stack
-- Executing [s@ivr-21:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-21:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/pozdrav05)") in new stack
-- Playing 'custom/pozdrav05.slin' (language 'en')
-- Registered IAX2 '111' (AUTHENTICATED) at 37.110.214.101:50919
-- Executing [s@ivr-17:12] WaitExten("SIP/sip-in-00000204", "3,") in new stack
-- Timeout on SIP/sip-in-00000204, going to 't'
-- Executing [t@ivr-17:1] Set("SIP/sip-in-00000204", "TIMEOUT_LOOPCOUNT=1") in new stack
-- Executing [t@ivr-17:2] GotoIf("SIP/sip-in-00000204", "0?final") in new stack
-- Executing [t@ivr-17:3] Set("SIP/sip-in-00000204", "IVR_MSG=custom/ivr_tabrik3") in new stack
-- Executing [t@ivr-17:4] Goto("SIP/sip-in-00000204", "s,start") in new stack
-- Goto (ivr-17,s,10)
-- Executing [s@ivr-17:10] Set("SIP/sip-in-00000204", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-17:11] ExecIf("SIP/sip-in-00000204", "1?Background(custom/ivr_tabrik3)") in new stack
-- Playing 'custom/ivr_tabrik3.slin' (language 'en')
-- Executing [8@ivr-17:1] Goto("SIP/sip-in-00000204", "afterpressing8_tabrik,8,1") in new stack
-- Goto (afterpressing8_tabrik,8,1)
-- Executing [8@afterpressing8_tabrik:1] Set("SIP/sip-in-00000204", "home="/var/lib/asterisk/sounds/custom"") in new stack
-- Executing [8@afterpressing8_tabrik:2] Answer("SIP/sip-in-00000204", "") in new stack
-- Executing [8@afterpressing8_tabrik:3] Wait("SIP/sip-in-00000204", "1") in new stack
-- Executing [8@afterpressing8_tabrik:4] Read("SIP/sip-in-00000204", "__digits,"/var/lib/asterisk/sounds/custom"/ivr_tabrik5") in new stack
-- Playing '/var/lib/asterisk/sounds/custom/ivr_tabrik5.slin' (language 'en')
-- Executing [s@ivr-21:12] WaitExten("SIP/sip-in-00000202", "2,") in new stack
-- Timeout on SIP/sip-in-00000202, going to 't'
-- Executing [t@ivr-21:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=1") in new stack
-- Executing [t@ivr-21:2] GotoIf("SIP/sip-in-00000202", "0?final") in new stack
-- Executing [t@ivr-21:3] Set("SIP/sip-in-00000202", "IVR_MSG=custom/ivr_tabrik3") in new stack
-- Executing [t@ivr-21:4] Goto("SIP/sip-in-00000202", "s,start") in new stack
-- Goto (ivr-21,s,10)
-- Executing [s@ivr-21:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-21:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/ivr_tabrik3)") in new stack
-- Playing 'custom/ivr_tabrik3.slin' (language 'en')
-- Registered IAX2 '111' (AUTHENTICATED) at 217.12.84.58:4569
-- Registered IAX2 '111' (AUTHENTICATED) at 37.110.214.101:50919
-- Executing [3@ivr-21:1] Goto("SIP/sip-in-00000202", "ivr-20,s,1") in new stack
-- Goto (ivr-20,s,1)
-- Executing [s@ivr-20:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-20:2] Set("SIP/sip-in-00000202", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-20:3] Set("SIP/sip-in-00000202", "_IVR_CONTEXT_ivr-20=ivr-21") in new stack
-- Executing [s@ivr-20:4] Set("SIP/sip-in-00000202", "_IVR_CONTEXT=ivr-20") in new stack
-- Executing [s@ivr-20:5] Set("SIP/sip-in-00000202", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-20:6] GotoIf("SIP/sip-in-00000202", "1?skip") in new stack
-- Goto (ivr-20,s,9)
-- Executing [s@ivr-20:9] Set("SIP/sip-in-00000202", "IVR_MSG=custom/pozdrav04") in new stack
-- Executing [s@ivr-20:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-20:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/pozdrav04)") in new stack
-- Playing 'custom/pozdrav04.slin' (language 'en')
-- User entered '998908087339'
-- Executing [8@afterpressing8_tabrik:5] Wait("SIP/sip-in-00000204", "1") in new stack
-- Executing [8@afterpressing8_tabrik:6] Set("SIP/sip-in-00000204", "CHANNEL(language)=es") in new stack
-- Executing [8@afterpressing8_tabrik:7] BackGround("SIP/sip-in-00000204", ""/var/lib/asterisk/sounds/custom"/ivr_tabrik6") in new stack
-- Playing '/var/lib/asterisk/sounds/custom/ivr_tabrik6.slin' (language 'es')
-- Executing [8@afterpressing8_tabrik:8] SayDigits("SIP/sip-in-00000204", "998908087339") in new stack
-- Playing 'digits/9.slin' (language 'es')
-- Playing 'digits/9.slin' (language 'es')
-- Playing 'digits/8.slin' (language 'es')
-- Playing 'digits/9.slin' (language 'es')
-- Playing 'digits/0.slin' (language 'es')
-- Playing 'digits/8.slin' (language 'es')
-- Playing 'digits/0.slin' (language 'es')
-- Playing 'digits/8.slin' (language 'es')
-- Playing 'digits/7.slin' (language 'es')
-- Playing 'digits/3.slin' (language 'es')
-- Playing 'digits/3.slin' (language 'es')
-- Playing 'digits/9.slin' (language 'es')
-- Executing [8@afterpressing8_tabrik:9] Wait("SIP/sip-in-00000204", "1") in new stack
-- Executing [8@afterpressing8_tabrik:10] BackGround("SIP/sip-in-00000204", ""/var/lib/asterisk/sounds/custom"/ivr_tabrik7") in new stack
-- Playing '/var/lib/asterisk/sounds/custom/ivr_tabrik7.slin' (language 'es')
-- Executing [s@ivr-20:12] WaitExten("SIP/sip-in-00000202", "3,") in new stack
-- Timeout on SIP/sip-in-00000202, going to 't'
-- Executing [t@ivr-20:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=1") in new stack
-- Executing [t@ivr-20:2] GotoIf("SIP/sip-in-00000202", "0?final") in new stack
-- Executing [t@ivr-20:3] Set("SIP/sip-in-00000202", "IVR_MSG=custom/ivr_tabrik3") in new stack
-- Executing [t@ivr-20:4] Goto("SIP/sip-in-00000202", "s,start") in new stack
-- Goto (ivr-20,s,10)
-- Executing [s@ivr-20:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-20:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/ivr_tabrik3)") in new stack
-- Playing 'custom/ivr_tabrik3.slin' (language 'en')
-- Executing [3@ivr-20:1] Goto("SIP/sip-in-00000202", "ivr-21,s,1") in new stack
-- Goto (ivr-21,s,1)
-- Executing [s@ivr-21:1] Set("SIP/sip-in-00000202", "TIMEOUT_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-21:2] Set("SIP/sip-in-00000202", "INVALID_LOOPCOUNT=0") in new stack
-- Executing [s@ivr-21:3] Set("SIP/sip-in-00000202", "_IVR_CONTEXT_ivr-21=ivr-20") in new stack
-- Executing [s@ivr-21:4] Set("SIP/sip-in-00000202", "_IVR_CONTEXT=ivr-21") in new stack
-- Executing [s@ivr-21:5] Set("SIP/sip-in-00000202", "__IVR_RETVM=") in new stack
-- Executing [s@ivr-21:6] GotoIf("SIP/sip-in-00000202", "1?skip") in new stack
-- Goto (ivr-21,s,9)
-- Executing [s@ivr-21:9] Set("SIP/sip-in-00000202", "IVR_MSG=custom/pozdrav05") in new stack
-- Executing [s@ivr-21:10] Set("SIP/sip-in-00000202", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3.000
-- Executing [s@ivr-21:11] ExecIf("SIP/sip-in-00000202", "1?Background(custom/pozdrav05)") in new stack
-- Playing 'custom/pozdrav05.slin' (language 'en')
== CDR updated on SIP/sip-in-00000204
-- Executing [1@afterpressing8_tabrik:1] Dial("SIP/sip-in-00000204", "SIP/998908087339") in new stack
== Everyone is busy/congested at this time (1:0/0/1)
[size=12] -- Executing [1@afterpressing8_tabrik:2] NoOp("SIP/sip-in-00000204", "998908087339") in new stack
-- Auto fallthrough, channel 'SIP/sip-in-00000204' status is 'CHANUNAVAIL'[/size]
-- Executing [h@afterpressing8_tabrik:1] Macro("SIP/sip-in-00000204", "XMPPSend,") in new stack
-- Executing [h@afterpressing8_tabrik:2] Macro("SIP/sip-in-00000204", "hangupcall,") in new stack
-- Executing [s@macro-hangupcall:1] GotoIf("SIP/sip-in-00000204", "1?theend") in new stack
-- Goto (macro-hangupcall,s,3)
-- Executing [s@macro-hangupcall:3] ExecIf("SIP/sip-in-00000204", "0?Set(CDR(recordingfile)=)") in new stack
-- Executing [s@macro-hangupcall:4] Hangup("SIP/sip-in-00000204", "") in new stack
== Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/sip-in-00000204' in macro 'hangupcall'
== Spawn extension (afterpressing8_tabrik, h, 2) exited non-zero on 'SIP/sip-in-00000204'
#35

Каждое соединение (вызов) это занятый канал (линия) и не важно какое это соединение входящее или исходящее. Потому есть одноканальные номера и многоканальные. У вас какой номер ? В зависимости от ответа на этот вопрос вы сможете ответить на свой изначальный.
Так же покажите в каком месте, по вашему мнению вы набирали номер через транк.
kamilchik писал(а):
-- Executing [1@afterpressing8_tabrik:1] Dial("SIP/sip-in-00000204", "SIP/998908087339") in new stack

Это ? Тут нет набора через транк. Тут прямой набор SIP пира с номером 998908087339, который у вас явно отсутствует.
#36

я смог решить этот шаг добавив fromuser в транке.
сейчас нужно чтобы callerid канала(именно канала а не общее) присваивалось.
делаю следующим образом:
exten=>1,n,Set(CALLERID(num)=1111)

но при исходящих звонках, на конечном телефоне куда звонок идет, показывает номер SIP транка.
или это надо обращаться к провайдеру SIP транка, чтобы они настроили так чтобы при входящем звонке на любой телефон от моего FreePBX видно было что от 1111?
#37

Цитата:
но при исходящих звонках, на конечном телефоне куда звонок идет, показывает номер SIP транка.
или это надо обращаться к провайдеру SIP транка, чтобы они настроили так чтобы при входящем звонке на любой телефон от моего FreePBX видно было что от 1111?


Не желаете законы о связи почитать? Ваш пров вам ТАКОЕ не имеет право сделать. Хотите подмену - используйте какого-нить англицкого прова - там либеральнее законы.

_________________
P4 3.0 + 1Gb CentOS 5.8 Aster 1.8.16
Не люблю gui-сборки: натуральный продукт вкуснее.
И еще: я ПРОФИ так как НЕ ЛЕНЮСЬ читать литературу.
#38

Wapo @ Tue Oct 21, 2014 09:32 писал(а):
Цитата:
но при исходящих звонках, на конечном телефоне куда звонок идет, показывает номер SIP транка.
или это надо обращаться к провайдеру SIP транка, чтобы они настроили так чтобы при входящем звонке на любой телефон от моего FreePBX видно было что от 1111?


Не желаете законы о связи почитать? Ваш пров вам ТАКОЕ не имеет право сделать. Хотите подмену - используйте какого-нить англицкого прова - там либеральнее законы.
позвонил в провайдер, так и есть, вы правы.

могу ли я ловить callerid водящего звонка?
тем же CALLERID