Не могу создать доп набор
Есть задача: чтобы на одном номере было голосовое меню и в зависимости от доп номера вызов переходил на 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 отключены.
Что-то я не увидел у вас переадресацию на SIP/123 или SIP/124?
| Code: |
| exten => 112,1,Playback(zdravstujte) exten => 113,1,Playback(zdravstujte) |
Это ведь не то, не так ли? Тут нет 123 и 124. Задайте также время ожидания между набором клавиш и общее время с помощью специальных переменных.
Поиграйте с параметром DTMF. А на комфортный шум астериск кричит, т.к это поступает от клиента и говорит "Please turn off on client if possible." Фактически на практике, лично у меня, ни на что не влияло.
Немного о схеме: провайдер 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.
| Quote: |
| А что это за специальные переменные? |
Вот они:
Set(TIMEOUT(digit)=4)
Set(TIMEOUT(response)=5)
Чтобы это отображалось в CLI, необходимо в logger.conf добавить dtmf
| Code: |
| console => notice,warning,error,dtmf |
У меня сначала тоже не работал dtmf, путем тыкания пальцем в небо, он заработал с опцией dtmfmode=inband в sip.conf
| kernelt wrote: |
| У меня сначала тоже не работал dtmf, путем тыкания пальцем в небо, он заработал с опцией dtmfmode=inband в sip.conf |
это ваш частный случай, не нужно возводить его в аксиому (в большинстве случаев эта настройка выглядит как =rfc2833). а вообще можно ставить dtmfmode=auto в таких случаях.
_________________
Успехов!
| 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. А вот голоса я так и не услышал в меню голоса.