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

Реализация донабора. Прошу помощи

Newbies/FAQ Forum 15 сообщений 16.08.2010 15:48 - 25.08.2010 09:27
#1 16.08.2010 15:48

Реализация донабора. Прошу помощи


Здравствуйте!

Я совсем новичек и только начинаю изучение астериска.
Руководство поставило задачу суть которой в следующем:
требуется чтобы при звонке с городского (сотового) номера на астериск звонящему воспроизводилось меню вида:

1. если хотите позвонить в Красноярск нажмите 1
2. если хотите позвонить в Москву нажмите 2
и т.д.

после нажатия соответствующей кнопки астериск должен перенаправить абонента на соответствующий добавочный номер (код внутренней сети), и уже после этого звонящий набирает номер абонента того филиала в который он звонит.

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

заранее спасибо!
#2 16.08.2010 15:58

вам поможет книга Астериск - будущее телефонии, а точнее, ее 5 глава: Основы диалплана -> Создание интерактивного диалплана
Idea
http://asterisk.ru/store/files/Asterisk_RU_OReilly_DRAFT.pdf
#3 16.08.2010 16:39

5-ю главу прочитал, в описанной мною задаче непонятен в основном момент как получить после нажатия соответствующей кнопки (и набора астериском добавочного номера) следующее меню которое предложит звонящему набрать номер соответствующего филиала.



может это должно выглядеть так:

exten=>444444,1,Answer()
exten=>444444,n,Background(hello)
exten=>444444,n,WaitExten()

exten=>1,1,Dial(SIP/код филиалаZZZZ)
exten=>1,n,PlayBack(waiting)
exten=>1,n,Hangup()

извиняюсь если спрашиваю совсем уж простые вещи, но я действительно совсем недавно столкнулся с IP-телефонией.
#4 18.08.2010 18:37

У меня тоже вопрос по этой теме Exclamation
Для внутренних номеров, такая схема работает
Code:
exten => 999,1,Answer()
exten => 999,n,Background(demo-moreinfo)
exten => 999,n,WaitExten()
exten => 1,1,Playback(digits/1)
exten => 1,n,Dial(SIP/9999)

А если приходит звонок из мира, слышно background и все Sad Нажимаю 1 и ничего не происходит. Точнее, ноль реакции пока я не нажму на телефоне кнопку сброса, после чего начинает звонить этот же телефон (на него приходит вызов). Где-то зарыты грабли Wink
Code:
exten => хххххх,1,Answer()
exten => хххххх,n,Background(demo-moreinfo)
exten => хххххх,n,WaitExten()
exten => 1,1,Playback(digits/1)
exten => 1,n,Dial(SIP/999) ;звоним на внутренний номер

Может это из-за того, что городской и внутренний номер определены в разных контекстах? Хотя до звонка дело не доходит, так как цифру один не проигрывает

Iliya wrote:
извиняюсь если спрашиваю совсем уж простые вещи, но я действительно совсем недавно столкнулся с IP-телефонией.

Попробуйте приложение Goto() Idea
Goto() - Переход на указанный приоритет, екстеншен или контекст
#5 19.08.2010 08:18

kernelt wrote:

А если приходит звонок из мира, слышно background и все Sad Нажимаю 1 и ничего не происходит. Точнее, ноль реакции пока я не нажму на телефоне кнопку сброса, после чего начинает звонить этот же телефон (на него приходит вызов). Где-то зарыты грабли Wink

Смотри в сторону хождения DTMF...
#6 19.08.2010 09:06

kernelt wrote:
Может это из-за того, что городской и внутренний номер определены в разных контекстах? Хотя до звонка дело не доходит, так как цифру один не проигрывает
говорите в консоли asterisk'а
Code:
core set verbose 3
и смотрите, что происходит.
#7 22.08.2010 15:09

Code:

*CLI> core set verbose 3
Verbosity is at least 3
-- Executing [ххххххх@ХХХ:1] Answer("SIP/ХХХ-00000000", "") in new stack
-- Executing [ххххххх@ХХХ:2] BackGround("SIP/ХХХ-00000000", "demo-moreinfo") in new stack
-- Playing 'demo-moreinfo' (language 'en')
-- Executing [ххххххх@ХХХ:3] WaitExten("SIP/ХХХ-00000000", "") in new stack
[Aug 22 16:57:07] WARNING[19173]: pbx.c:5679 pbx_builtin_waitexten: Timeout but no rule 't' in context 'ХХХ'
== Spawn extension (ХХХ, ххххххх, 3) exited non-zero on 'SIP/ХХХ-00000000'

Кидает timeout, хотя цифру 1 я нажимал (конфиг приведен в сообщении этой темы от Ср Авг 18, 2010 19:37)
#8 22.08.2010 19:40

dtmfmode=?
#9 22.08.2010 20:16

auto. Пробывал и другие режимы, бесполезно.
#10 22.08.2010 20:34

в logger.conf включите dtmf в консоль или в full и смотрите

Added after 1 minutes:

кстати, какова схема входящего с тфоп вызова?
#11 23.08.2010 09:49

zlat wrote:
в logger.conf включите dtmf в консоль или в full и смотрите
Внутри сети работает
Code:

-- Executing [11001@office:1] Answer("SIP/11001-00000002", "") in new stack
-- Executing [11001@office:2] BackGround("SIP/11001-00000002", "demo-moreinfo") in new stack
-- Playing 'demo-moreinfo' (language 'en')
[Aug 23 11:39:42] DTMF[21038]: channel.c:2449 __ast_read: DTMF begin '1' received on SIP/11001-00000002
[Aug 23 11:39:42] DTMF[21038]: channel.c:2453 __ast_read: DTMF begin ignored '1' on SIP/11001-00000002
[Aug 23 11:39:42] DTMF[21038]: channel.c:2368 __ast_read: DTMF end '1' received on SIP/11001-00000002, duration 160 ms
[Aug 23 11:39:42] DTMF[21038]: channel.c:2434 __ast_read: DTMF end passthrough '1' on SIP/11001-00000002
== CDR updated on SIP/11001-00000002
-- Executing [1@office:1] Playback("SIP/11001-00000002", "digits/1") in new stack
-- Playing 'digits/1' (language 'en')
-- Executing [1@office:2] Dial("SIP/11001-00000002", "SIP/11001") in new stack
-- Called 11001
-- SIP/11001-00000003 is ringing
== Spawn extension (office, 1, 2) exited non-zero on 'SIP/11001-00000002'

А вот при звонке из вне ноль, реакции
Code:
-- Executing [xxxxxxx@XXX:1] Answer("SIP/XXX-00000000", "") in new stack
-- Executing [xxxxxxx@XXX:2] BackGround("SIP/XXX-00000000", "demo-moreinfo") in new stack
-- Playing 'demo-moreinfo' (language 'en')
-- Executing [xxxxxxx@XXX:3] WaitExten("SIP/XXX-00000000", "") in new stack
== Spawn extension (XXX, xxxxxxx, 3) exited non-zero on 'SIP/XXX-00000000'
#12 23.08.2010 10:07

zlat wrote:
кстати, какова схема входящего с тфоп вызова?
имелось ввиду через что город подключен?
#13 23.08.2010 10:10

через провайдера. Мы у них телефонный номер купили. А как у них там и что, мне не известно.
#14 23.08.2010 10:16

ну так узнайте у своего прова, какой режим дтмф у него стоит

Added after 1 minutes:

может проблема даже не в вашей стороне, а пров не пропускает
в крайнем случае пускай пров снимает дебаг на своей аппаратуре и смотрит что и как
#15 25.08.2010 09:27

саппорт провайдера сказал, про проблема может быть в adsl модеме, который не пропускает сигналы dtmf ((