VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

sip_xmit of ... Invalid argument

Проблемы Asterisk без вэб-оболочек и их решения

Модераторы: april22, Zavr2008

SuMiSc
Сообщения: 37
Зарегистрирован: 31 янв 2012, 19:08

sip_xmit of ... Invalid argument

Сообщение SuMiSc »

Такое вот сообщение:

Код: Выделить всё

WARNING[7050]: chan_sip.c:3351 __sip_xmit: sip_xmit of 0xb740ab00 (len 770) to 0.0.9.197:5060 returned -1: Invalid argument
всегда было. Возникает при звонке на несуществующий номер, но по маске подходящий в экстеншн, где происходит Dial.
Например:

Код: Выделить всё

exten = _1XX,1,Dial(SIP/${EXTEN},30,tTm)
Если набрать 101, а такой пиры нет, то в консоли появляются множественные Invalid argument, а у вызывающего играет музыка до окончания таймаута.

Собственно вопрос.
Как обработать это событие, чтобы сказать пользователю о несуществующем номере?
jugatsu
Сообщения: 298
Зарегистрирован: 31 май 2011, 15:56

Re: sip_xmit of ... Invalid argument

Сообщение jugatsu »

Пушу по памяти, есть функция SIPPEER, кажется. Вот с помощью её и можно реализовать.
SuMiSc
Сообщения: 37
Зарегистрирован: 31 янв 2012, 19:08

Re: sip_xmit of ... Invalid argument

Сообщение SuMiSc »

Попробовал SIPPEER, норм получилось.
Сделал так

Код: Выделить всё

exten = _1XX,1,GotoIf($["${SIPPEER(${EXTEN},status)}"=""]?zombi:go)
same = n(zombi),Playback(izvinite)
same = n,Playback(abonent)
same = n,Playback(ne-podkljuchen)
same = n,Wait(1)
same = n,Goto(end)
same = n(go),Dial(SIP/${EXTEN},30,tTm)
same = n(end),Hangup
Спасибо!
Аватара пользователя
Aven
Сообщения: 798
Зарегистрирован: 28 янв 2011, 16:20

Re: sip_xmit of ... Invalid argument

Сообщение Aven »

У вас версия старая, обновитесь.
И проверка SIPPEER не поможет при существующем пире, который не подключен.
Решения телефонии на базе Asterisk || http://it-need.ru
SuMiSc
Сообщения: 37
Зарегистрирован: 31 янв 2012, 19:08

Re: sip_xmit of ... Invalid argument

Сообщение SuMiSc »

С обновлением сложно, проще с этой бедой смириться.

Насчет неподключенной пиры да, так и есть, SIPPEER одинаково одвечает если пира неподключена, или ее нет вообще.

Иные способы есть?
SuMiSc
Сообщения: 37
Зарегистрирован: 31 янв 2012, 19:08

Re: sip_xmit of ... Invalid argument

Сообщение SuMiSc »

Пиры имеется в виду пользователи. Их много.
jugatsu
Сообщения: 298
Зарегистрирован: 31 май 2011, 15:56

Re: sip_xmit of ... Invalid argument

Сообщение jugatsu »

SuMiSc писал(а):С обновлением сложно, проще с этой бедой смириться.

Насчет неподключенной пиры да, так и есть, SIPPEER одинаково одвечает если пира неподключена, или ее нет вообще.

Иные способы есть?
За код не ручаюсь, игрался давно

Код: Выделить всё

[intra-pbx]

exten => _1XX,1,Verbose(3, *** Making the call to to <${EXTEN}> extension *** )

      same => n,Set(ARRAY(Device,Technology)=${DB(device/endpoint/${EXTEN})},${DB(device/technology/${EXTEN})})
      same => n,Set(CALLERID(name)=${DB(cidname/${Device})})
      same => n(first_check),GotoIf($[${ISNULL(${Technology})} | ${ISNULL(${Device})}]?error,1)
      same => n,Set(added_to_conf=${SIPPEER(${device},status)})
      same => n(second_check),GotoIf($[${ISNULL(${added_to_conf})}]?not_yet_added,1)
      same => n,ChanIsAvail(${technology}/${device},s)
      same => n,NoOp(AVAILSTATUS : ${AVAILSTATUS}, AVAILORIGCHAN : ${AVAILORIGCHAN})
      same => n,GotoIf($["${AVAILSTATUS}" = "0" | "${AVAILSTATUS}" = "5"]?error,1)
      same => n(dial),Dial(${Technology}/${Device},${timeout},t)
      same => n,Playback(silence/1&tt-allbusy&silence/1)
      same => n,Hangup()

exten => error,1,Verbose(2, *** Unable to lookup device or technology for extension ***)

      same => n,Playback(silence/1&ss-noservice&silence/1)
      same => n,Hangup()

exten => not_yet_added,1,NoOp(We definitely forgot to add credentials to sip.conf!)

      same => n,Congestion()
SuMiSc
Сообщения: 37
Зарегистрирован: 31 янв 2012, 19:08

Re: sip_xmit of ... Invalid argument

Сообщение SuMiSc »

А что делает вот это?

Код: Выделить всё

same => n,ChanIsAvail(${technology}/${device},s)
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: sip_xmit of ... Invalid argument

Сообщение Vlad1983 »

ChanIsAvail так же как и ${SIPPEER(${device},status)} нормально работают только когда qualify=yes
ЛС: @rostel
SuMiSc
Сообщения: 37
Зарегистрирован: 31 янв 2012, 19:08

Re: sip_xmit of ... Invalid argument

Сообщение SuMiSc »

Vlad1983
Да, я про это уже прочитал, qualify=yes у всех.

Попробовал ChanIsAvail.
Получается, что в переменной ${AVAILSTATUS} в случае, если пиры нет, значение 0. В остальных случаях там цифра от 1 и дальше, судя по http://www.voip-info.org/wiki/view/Aste ... hanIsAvail
В теории то, что надо, попробую на практике.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH