Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Звонок на несуществующий номер (ошибки)

2

Здравствуйте, подскажите, как правильно можно обработать звонок на не существующий номер? Есть такой вот диалплан:

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

спросил Jul 22 '11

ss777 Gravatar ss777
78 6 1 6

Comments

странный диалплан, вообще все добавочные номера в системе объявляют явно. cvieri (Jul 22 '11)edit
да ну? даже если их 1000? meral (Jul 23 '11)edit
Честно говоря не понял к чему Ваш комментарий, добавочные номера естественно объявляются явно в users.conf, а диалплан по общей обработки этих номеров, должен использовать маски. ss777 (Jul 23 '11)edit

5 Ответов

3

итак, по вашему объяснению вы звоните на 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)
ссылка удалить спам редактировать

ответил Jul 23 '11

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил Jul 23 '11

Comments

Оффттоп конечно, но спасибо! Выручил

ubelousov (Nov 2 '11)edit
1
  1. Если он не существует то сообщение имеет вид

    Call from '1010' (10.10.1.225:5060) to extension '1058' rejected because extension not found in context 'test'.

  2. Если он не онлайн то в данном случае сообщение будет такое

    Auto fallthrough, channel 'SIP/1010-0000001a' status is 'CHANUNAVAIL'

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

ссылка удалить убрать флаг спам (1) редактировать

ответил Jul 23 '11

ss777 Gravatar ss777
78 6 1 6

Comments

не пишите чего не знаете. это справедливо только для 1.4-1.6.(начальных) для 1.8 будет себя вести как у вас описано. баг это или фича - бабка надвое сказала. 1.8.* так себя всегда вел. и собственно вы это уже поняли, так в чем проблема? измените диалплан как я написал ниже(на совместимость с 1.8). если вам хочеться подискутировать на эту тему- дискутируйте с диджиум. новое вам врядли чтото ктото скажет meral (Jul 24 '11)edit

meral, пора тэг поставить на это дело.. Вопрос часто ребята поднимают!!

Zavr2008 (Jan 1 '12)edit
0

Прежде чем звонить надо думать, т.е. проверять пир на:

  1. То, что он существует.
  2. То, что он онлайн
ссылка удалить спам редактировать

ответил Jul 23 '11

Aven Gravatar Aven flag of Russian Federation
343 1 13
http://it-need.ru/

Comments

1. Если не существует, в нормальной ситуации выдается сообщение ss777 (Jul 23 '11)edit
0
ссылка удалить спам редактировать

ответил Jan 1 '12

bolshoy_plohish Gravatar bolshoy_plohish
1388 25 20 38
-2
    -- 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

Это баг https://issues.asterisk.org/view.php?id=18514

ссылка удалить спам редактировать

ответил Jul 23 '11

ss777 Gravatar ss777
78 6 1 6

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: Jul 22 '11

Просмотрен: 10,982 раз

Обновлен: Jan 01 '12

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.