Здравствуйте, подскажите, как правильно можно обработать звонок на не существующий номер? Есть такой вот диалплан:
include => default
exten => _10XX,1,Verbose(1|Extension ${EXTEN})
exten => _10XX,n,NoOp(Call from ${CALLERID(num)})
exten => _10XX,n,Dial(SIP/${EXTEN},30)
exten => _10XX,n,NoOp(Dial Status: ${DIALSTATUS})
exten => _10XX,n,Hangup()
при звонке на существующие номера либо идет звонок, либо, если пользователь есть, но не зарегистрирован, получаю ответ
Dial Status: CHANUNAVAIL"
но при звонке на не существующий в системе номер, начинающейся на 10 (скажем (1045) получаю кучу ошибок
-- Executing [1045@r-in-PANAS:2] NoOp("OOH323/PANAS1-651", "Call from 1110") in new stack
-- Executing [1045@r-in-PANAS:3] Dial("OOH323/PANAS1-651", "SIP/1045,30") in new stack
== Using SIP RTP CoS mark 5
[Jul 23 03:29:15] WARNING[9213]: acl.c:708 ast_ouraddrfor: Cannot connect
[Jul 23 03:29:15] WARNING[9213]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x2aaacc010eb0 (len 822) to 0.0.4.21:5060 returned -1: Invalid argument
-- Called SIP/1045
[Jul 23 03:29:16] WARNING[3709]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x2aaacc010eb0 (len 822) to 0.0.4.21:5060 returned -1: Invalid argument
[Jul 23 03:29:17] WARNING[3709]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x2aaacc010eb0 (len 822) to 0.0.4.21:5060 returned -1: Invalid argument
== Spawn extension (r-in-PANAS, 1045, 3) exited non-zero on 'OOH323/PANAS1-651'
[Jul 23 03:29:19] WARNING[3709]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x2aaacc010eb0 (len 822) to 0.0.4.21:5060 returned -1: Invalid argument
[Jul 23 03:29:23] WARNING[3709]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x2aaacc010eb0 (len 822) to 0.0.4.21:5060 returned -1: Invalid argument
[Jul 23 03:29:31] WARNING[3709]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x2aaacc010eb0 (len 822) to 0.0.4.21:5060 returned -1: Invalid argument
[Jul 23 03:29:47] WARNING[3709]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x2aaacc010eb0 (len 822) to 0.0.4.21:5060 returned -1: Invalid argument
[Jul 23 03:29:47] WARNING[3709]: chan_sip.c:3622 retrans_pkt: Retransmission timeout reached on transmission 29d69ef04eeb3c1728d268196c7ab08c@127.0.0.1:5060 for seqno 102 (Critical Request) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
итак, по вашему объяснению вы звоните на sip/username и секции username НЕ существует.
а что вы ожидаете получить? все работает как положено. а именно * не может выяснить куда звонить и не звонит. если вы хотите получить FAILED cтатус, то сделайте так
exten => _10XX,n,Dial(SIP/${EXTEN},30,g)
или проверте, что пир есть
exten => _10XX,n,GotoIF($[ "${SIPPEER(status)}" == "" ]?no_user)
...
exten => _10XX,n(no_user),Playback(no-user-availible)
Если он не существует то сообщение имеет вид
Call from '1010' (10.10.1.225:5060) to extension '1058' rejected because extension not found in context 'test'.
Если он не онлайн то в данном случае сообщение будет такое
Auto fallthrough, channel 'SIP/1010-0000001a' status is 'CHANUNAVAIL'
А если его глючит то будет то о чем я уже писал. И давайте уже действительно думать, а не флудить, если нет желания вникать в суть проблемы (даже никто багрепорт не прочитал) лучше ничего не писать.
meral, пора тэг поставить на это дело.. Вопрос часто ребята поднимают!!
Zavr2008 ( 2012-01-01 13:56:38 +0400 )редактироватьПрежде чем звонить надо думать, т.е. проверять пир на:
-- Executing [1058@world:3] Dial("SIP/1010-0000000f", "SIP/1058,30,g") in new stack
== Using SIP RTP CoS mark 5
[Jul 23 23:17:39] WARNING[12136]: acl.c:708 ast_ouraddrfor: Cannot connect
[Jul 23 23:17:39] WARNING[12136]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x4d84c10 (len 824) to 0.0.4.34:5060 returned -1: Invalid argument
-- Called SIP/1058
[Jul 23 23:17:40] WARNING[11601]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x4d84c10 (len 824) to 0.0.4.34:5060 returned -1: Invalid argument
[Jul 23 23:17:41] WARNING[11601]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x4d84c10 (len 824) to 0.0.4.34:5060 returned -1: Invalid argument
== Spawn extension (world, 1058, 3) exited non-zero on 'SIP/1010-0000000f'
[Jul 23 23:17:43] WARNING[11601]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x4d84c10 (len 824) to 0.0.4.34:5060 returned -1: Invalid argument
[Jul 23 23:17:47] WARNING[11601]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x4d84c10 (len 824) to 0.0.4.34:5060 returned -1: Invalid argument
[Jul 23 23:17:55] WARNING[11601]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x4d84c10 (len 824) to 0.0.4.34:5060 returned -1: Invalid argument
[Jul 23 23:18:11] WARNING[11601]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0x4d84c10 (len 824) to 0.0.4.34:5060 returned -1: Invalid argument
[Jul 23 23:18:11] WARNING[11601]: chan_sip.c:3622 retrans_pkt: Retransmission timeout reached on transmission 68c5ce3467d78f9208a71a854b344925@127.0.0.1:5060 for seqno 102 (Critical Request) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
Packet timed out after 32000ms with no response
Задан: 2011-07-22 20:27:11 +0400
Просмотрен: 10,952 раз
Обновлен: Jan 01 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.