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

Не могу создать доп набор

Newbies/FAQ Forum 7 сообщений 28.10.2010 10:00 - 09.11.2010 07:28
#1 28.10.2010 10:00

Не могу создать доп набор


Добрый день!

Есть задача: чтобы на одном номере было голосовое меню и в зависимости от доп номера вызов переходил на SIP/123 или SIP/124. Пока делаю так:

exten => 126,1,Answer()
exten => 126,n,Background()
exten => 126,n,WaitExten(20)
exten => 112,1,Playback(zdravstujte)
exten => 113,1,Playback(zdravstujte)
exten => t,1,Hangup()

Но проблема в том что после звонка добавочные номера не воспринимаются, ощущение что система их не слышит. Появлялось такое сообщение в дебаге, но только от одного хоста:
[Oct 28 15:35:27] NOTICE[3306]: rtp.c:788 process_rfc3389: Comfort noise support incomplete in Asterisk (RFC 3389). Please turn off on client if possible. Client IP: 192.168.0.253

SID и VAD отключены.
#2 28.10.2010 13:34

SlipKo
Что-то я не увидел у вас переадресацию на SIP/123 или SIP/124? Shocked
Code:

exten => 112,1,Playback(zdravstujte)
exten => 113,1,Playback(zdravstujte)

Это ведь не то, не так ли? Тут нет 123 и 124. Задайте также время ожидания между набором клавиш и общее время с помощью специальных переменных.
Поиграйте с параметром DTMF. А на комфортный шум астериск кричит, т.к это поступает от клиента и говорит "Please turn off on client if possible." Фактически на практике, лично у меня, ни на что не влияло.
#3 29.10.2010 07:16

А что это за специальные переменные?

Немного о схеме: провайдер VoIP который приземляет голос -> мой астериск -> 2 D-Link DH150-S (SIP/123 и SIP/124) и AddPac 100 (SIP/125). К AddPac подключен Panasonic KX-MB2020.
Вот с панасоника добавочные номера работают, а вот с dlink нет и дом телефона нет.

Конфиги:
sip.conf
Code:

[general]
bindaddr=0.0.0.0
;localnet=192.168.0.0/255.255.255.0
;externip=192.168.111.2
nat=never

[dlink](!)
type=friend
context=phones
secret=1122aa
canreinvite=yes
disallow=all
allow=alaw
allow=ulaw
allow=g729
nat=never

[123](dlink)
callerid=zzzzzz
host=192.168.0.230
[124](dlink)
callerid=yyyyyy
host=192.168.0.231

[125]
type=friend
context=phones
secret=1122aa
canreinvite=yes
disallow=all
allow=alaw
allow=ulaw
allow=g729
nat=never
callerid=yyyyyy
host=dynamic

[provider]
trunkname=provider
host=ххх.ххх.ххх.ххх
context=incoming
type=peer
disallow=all
allow=alaw
allow=ulaw
allow=g729
nat=never
dtmfmode=info
canreinvite=no


extensions.conf
Code:

[globals]

[general]
autofallthrough=yes

[outgoing_calls]
exten => _X.,1,NoOp()
exten => _X.,n,Dial(SIP/provider/${EXTEN})

[internal]
;exten => 123,1,Verbose(1|Extension 123)
exten => 123,1,Dial(SIP/123,30)
exten => 123,n,Hangup()

;exten => 124,1,Verbose(1|Extension 124)
exten => 124,1,Dial(SIP/124,30)
exten => 124,n,Hangup()

;exten => 125,1,Verbose(1|Extension 125)
exten => 125,1,Dial(SIP/125,30)
exten => 125,n,Hangup()

exten => 126,1,Answer()
exten => 126,n,Background(abonent)
exten => 126,n,WaitExten(20)
exten => 112,1,Playback(zdravstujte)
exten => 112,n,Dial(SIP/123,30)
exten => 113,1,Playback(zdravstujte)
exten => 113,n,Dial(SIP/124,30)
exten => t,1,Playback(zanjat)
exten => t,n,Hangup()

exten => 300,1,VoiceMailMain(323@escada)
exten => 301,1,VoiceMailMain(324@escada)

[phones]
include => internal
include => outgoing_calls

[incoming]
include => zzzzzz
include => yyyyyy

[zzzzzz]
;exten => zzzzzz,1,Answer()
;exten => zzzzzz,n,Playback(zdravstujte)

exten => zzzzzz,1,Dial(SIP/123,30)
exten => zzzzzz,n,Answer()
exten => zzzzzz,n,Playback(v-dannyj-moment)
exten => zzzzzz,n,Playback(abonent)
exten => zzzzzz,n,Playback(zanjat)
exten => zzzzzz,n,VoiceMail(323@escada)
exten => zzzzzz,n,Hungup()

;exten => zzzzzz,n,Background(zdravstujte)
;exten => zzzzzz,n,WaitExten(20)

;exten => 123,1,Dial(SIP/123,30)
;exten => 123,n,Hangup()
;exten => 124,1,Dial(SIP/124,30)
;exten => 124,n,Hangup()
;exten => 125,1,Dial(SIP/125,30)
;exten => 125,n,Hangup()
;exten => t,1,Playback(abonent)
;exten => t,n,Hangup()

[yyyyyy]
;exten => yyyyyy,1,Answer()
;exten => yyyyyy,n,Playback(zdravstujte)
exten => yyyyyy,1,Dial(SIP/124,30)
exten => yyyyyy,n,Answer()
exten => yyyyyy,n,Playback(v-dannyj-moment)
exten => yyyyyy,n,Playback(abonent)
exten => yyyyyy,n,Playback(zanjat)
exten => yyyyyy,n,VoiceMail(324@escada)
exten => yyyyyy,n,Hungup()

;[yyyyyy]
;exten => yyyyyy,1,Answer()
;exten => yyyyyy,n,Background(abonent)
;exten => yyyyyy,n,WaitExten(20)
;exten => 112,1,Playback(zdravstujte)
;exten => 112,n,Dial(SIP/123,30)
;exten => 113,1,Playback(zdravstujte)
;exten => 113,n,Dial(SIP/124,30)
;exten => t,1,Playback(zanjat)
;exten => t,n,Hangup()


Т.е. когда я звоню на 300 и 301 с dlinkов у меня не проговаривается голосовое меню для Voicemail.
#4 29.10.2010 10:47

Смотрите логи звонков в консоли. Что происходит. Т.е вы должны видеть/не видеть входящий Invite от устройства, затем реакцию астериска на это и его решение куда отправлять этот вызов. Т.е фактически вы увидите логику работы рингплана, который с виду вроде рабочий.
Quote:
А что это за специальные переменные?

Вот они:
Set(TIMEOUT(digit)=4)
Set(TIMEOUT(response)=5)
#5 29.10.2010 15:44

Астериск вообще доходит до WaitExten(20) и ожидает ввода номера от абонента??
Чтобы это отображалось в CLI, необходимо в logger.conf добавить dtmf
Code:
console => notice,warning,error,dtmf


У меня сначала тоже не работал dtmf, путем тыкания пальцем в небо, он заработал с опцией dtmfmode=inband в sip.conf
#6 31.10.2010 02:51

kernelt wrote:
У меня сначала тоже не работал dtmf, путем тыкания пальцем в небо, он заработал с опцией dtmfmode=inband в sip.conf

это ваш частный случай, не нужно возводить его в аксиому (в большинстве случаев эта настройка выглядит как =rfc2833). а вообще можно ставить dtmfmode=auto в таких случаях.

_________________
Успехов!
#7 09.11.2010 07:28

Добавил в logger.conf dtmf, но ничего волшебного не увидел. При звонке с D-Link на номер голосовой почты 300 выдает такую штуку:

Code:

* DTMF-relay event received: 5
[Nov 9 12:21:17] DTMF[21196]: channel.c:2133 __ast_read: DTMF end '5' received on SIP/192.168.0.1-08f39fc0, duration 90 ms
[Nov 9 12:21:17] DTMF[21196]: channel.c:2196 __ast_read: DTMF end passthrough '5' on SIP/192.168.0.1-08f39fc0
* DTMF-relay event received: 6
[Nov 9 12:21:17] DTMF[21196]: channel.c:2133 __ast_read: DTMF end '6' received on SIP/192.168.0.1-08f39fc0, duration 90 ms
[Nov 9 12:21:17] DTMF[21196]: channel.c:2196 __ast_read: DTMF end passthrough '6' on SIP/192.168.0.1-08f39fc0
* DTMF-relay event received: 7
[Nov 9 12:21:18] DTMF[21196]: channel.c:2133 __ast_read: DTMF end '7' received on SIP/192.168.0.1-08f39fc0, duration 90 ms
[Nov 9 12:21:18] DTMF[21196]: channel.c:2196 __ast_read: DTMF end passthrough '7' on SIP/192.168.0.1-08f39fc0
* DTMF-relay event received: 8
[Nov 9 12:21:18] DTMF[21196]: channel.c:2133 __ast_read: DTMF end '8' received on SIP/192.168.0.1-08f39fc0, duration 90 ms
[Nov 9 12:21:18] DTMF[21196]: channel.c:2196 __ast_read: DTMF end passthrough '8' on SIP/192.168.0.1-08f39fc0

Как я понимаю Asterisk то понял что ему хотел сказать D-Link. А вот голоса я так и не услышал в меню голоса.