ВидеоКонф(ВКС)  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

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

Проблемы и их решения Asterisk как такового

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

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

Сообщение youran » 23 ноя 2021, 13:03

Пытаюсь просмотреть заголовок при помощи функции 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
youran
 
Сообщений: 28
Зарегистрирован: 02 дек 2011, 05:28

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

Сообщение Zavr2008 » 23 ноя 2021, 13:09

Для PJSIP (а его похоже используете) нужно использовать PJSIP_HEADER()
https://asterisk-pbx.ru/wiki/asterisk/func/pjsip_header
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2161
Зарегистрирован: 27 янв 2011, 01:35

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

Сообщение youran » 23 ноя 2021, 13:11

Нет использую cha_sip.so
youran
 
Сообщений: 28
Зарегистрирован: 02 дек 2011, 05:28

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

Сообщение ded » 23 ноя 2021, 13:13

В вашем примере -
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})
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение gosha » 23 ноя 2021, 15:50

это чтение из переменной, а не функция.


строка ниже кабы говорит что нормально там все с синтаксисом. )

на что Asterisk ругается chan_sip.c:23271 func_header_read: This function can only be used on SIP channels.


В какой нибудь Local chanel топик стартер не звонит ? ну либо и вправду pjsip
gosha
 
Сообщений: 370
Зарегистрирован: 06 сен 2010, 17:41

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

Сообщение ded » 23 ноя 2021, 16:40

Я бы проверил эту функцию именно на incoming INVITE message .
Код: выделить все
exten => 1,1,Set(TESTAT=${CUT(SIP_HEADER(To),@,1)})
exten => 1,n,NoOp(${TESTAT})
ded
 
Сообщений: 15803
Зарегистрирован: 26 авг 2010, 19:00

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

Сообщение youran » 23 ноя 2021, 17:21

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 » 23 ноя 2021, 17:24

Может я неправильно задал вопрос мне надо что бы в ивайт поле было SIP_HEADER(REDIRECT_INFO) куда можно было передать значение
youran
 
Сообщений: 28
Зарегистрирован: 02 дек 2011, 05:28

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

Сообщение gosha » 23 ноя 2021, 18:11

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

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


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

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

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

и потом уже в some-ext использовать ${ORIG_TO}
gosha
 
Сообщений: 370
Зарегистрирован: 06 сен 2010, 17:41


Вернуться в Конфигурация и настройка Asterisk

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17

© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH