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

Функция SIP_HEADER выдает ошибку

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

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

Ответить
youran
Сообщения: 28
Зарегистрирован: 02 дек 2011, 05:28

Функция SIP_HEADER выдает ошибку

Сообщение youran »

Пытаюсь просмотреть заголовок при помощи функции SIP_HEADER, следующим образом
exten => s,1,NoOp(${SIP_HEADER(To)})
на что Asterisk ругается chan_sip.c:23271 func_header_read: This function can only be used on SIP channels.

Версия 18.8.0
Аватара пользователя
Zavr2008
Сообщения: 2211
Зарегистрирован: 27 янв 2011, 00:35
Контактная информация:

Re: Функция SIP_HEADER выдает ошибку

Сообщение Zavr2008 »

Для PJSIP (а его похоже используете) нужно использовать PJSIP_HEADER()
https://asterisk-pbx.ru/wiki/asterisk/func/pjsip_header
Российские E1 шлюзы Alvis. Модернизация УПАТС с E1,Подключение к ИС "Антифрод" E1 PRI/SS#7 УВР Телестор, Грифин и др..
youran
Сообщения: 28
Зарегистрирован: 02 дек 2011, 05:28

Re: Функция SIP_HEADER выдает ошибку

Сообщение youran »

Нет использую cha_sip.so
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Функция SIP_HEADER выдает ошибку

Сообщение ded »

В вашем примере -
exten => s,1,NoOp(${SIP_HEADER(To)})
это чтение из переменной, а не функция.

Смотрите синтаксис, используя встроенный help.
Функция SIP_HEADER
*CLI> core show function SIP_HEADER
-= Info about function 'SIP_HEADER' =-

[Synopsis]
Gets the specified SIP header from an incoming INVITE message.

[Description]
Since there are several headers (such as Via) which can occur multiple times,
SIP_HEADER takes an optional second argument to specify which header with
that name to retrieve. Headers start at offset '1'.

[Syntax]
SIP_HEADER(name[,number])

[Arguments]
number
If not specified, defaults to '1'.
Примеры -
exten => 1,1,Set(TESTAT=${CUT(SIP_HEADER(From),@,2)})
exten => 1,n,GotoIf($["${TESTAT}" != ""]?hasat)
exten => 1,n,Set(FROM_IP=${CUT(CUT(SIP_HEADER(From),>,1),:,2)})
exten => 1,n,Goto(gotip)
exten => 1,20(hasat),Set(FROM_IP=${CUT(CUT(CUT(SIP_HEADER(From),@,2),>,1),:,1)})
exten => 1,n(gotip),NoOp(Gateway IP is ${FROM_IP})
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

Re: Функция SIP_HEADER выдает ошибку

Сообщение gosha »

это чтение из переменной, а не функция.
строка ниже кабы говорит что нормально там все с синтаксисом. )
на что Asterisk ругается chan_sip.c:23271 func_header_read: This function can only be used on SIP channels.
В какой нибудь Local chanel топик стартер не звонит ? ну либо и вправду pjsip
ded
Сообщения: 15625
Зарегистрирован: 26 авг 2010, 19:00

Re: Функция SIP_HEADER выдает ошибку

Сообщение ded »

Я бы проверил эту функцию именно на incoming INVITE message .

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

exten => 1,1,Set(TESTAT=${CUT(SIP_HEADER(To),@,1)})
exten => 1,n,NoOp(${TESTAT})
youran
Сообщения: 28
Зарегистрирован: 02 дек 2011, 05:28

Re: Функция SIP_HEADER выдает ошибку

Сообщение youran »

gosha писал(а):
это чтение из переменной, а не функция.
строка ниже кабы говорит что нормально там все с синтаксисом. )
на что Asterisk ругается chan_sip.c:23271 func_header_read: This function can only be used on SIP channels.
В какой нибудь Local chanel топик стартер не звонит ? ну либо и вправду pjsip
Да звонит именно в Local chanel
youran
Сообщения: 28
Зарегистрирован: 02 дек 2011, 05:28

Re: Функция SIP_HEADER выдает ошибку

Сообщение youran »

Может я неправильно задал вопрос мне надо что бы в ивайт поле было SIP_HEADER(REDIRECT_INFO) куда можно было передать значение
gosha
Сообщения: 375
Зарегистрирован: 06 сен 2010, 17:41
Контактная информация:

Re: Функция SIP_HEADER выдает ошибку

Сообщение gosha »

если у что то типа

exten => ...., blabla
exten => ...., Dial(Local/xxx@some-ext)


[some-ext]
...., SIP_HEADER(...)

то перед Dial вытаскивайте тот хидер в переменную и потом использзуйте ее

Set(__ORIG_TO=${SIP_HEADER(To)})

и потом уже в some-ext использовать ${ORIG_TO}
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH