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

Header pjsip проблемы

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

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

Header pjsip проблемы

Сообщение dedy » 28 апр 2022, 06:56

Добрый день

Прошу помочь с asterisk

После перехода с chan_sip на pjsip вижу две проблемы

1) Одному из провайдеров передавал эту строку

same => n, SipAddHeader(P-Asserted-Identity:<sip:564455@3.3.3.3\;user=phone\;cpc=ordinary>) .


Не могу найти решения для pjsip
same => n, SipAddHeader(P-Asserted-Identity:<sip:564455@3.3.3.3\;user=phone\;cpc=ordinary>) Так не подходит перепробовал кучу вариантов. В ендпоинт добавил такие строки

send_pai=yes

send_rpid=yes

rpid_immediate=yes

connected_line_method=update

2. Звонки пишутся в базу постгрес, нужно добавить поле Accountcode . В SIP делал так Set(CHANNEL(accountcode)=GSM

для pjsip не могу найти рабочего варианта

буду благодарен за помощь
dedy
 
Сообщений: 5
Зарегистрирован: 13 авг 2018, 16:44

Re: Header pjsip проблемы

Сообщение ded » 28 апр 2022, 12:39

1. SipAddHeader - это очень старый синтаксис. В новых версиях всё делается через единую функцию SET
Код: выделить все
*CLI> core show function SET

  -= Info about function 'SET' =-

[Synopsis]
SET assigns a value to a channel variable.

[Description]
Not available

[Syntax]
SET(varname[=value])


2) то же по второму пункту
Код: выделить все
Set(CDR(accountcode)=GSM)
Set(CEL(accountcode)=GSM)
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: Header pjsip проблемы

Сообщение Zavr2008 » 28 апр 2022, 14:45

Для chan_pjsip для объекта Endpoint есть:

user_eq_phone Determines whether a user=phone parameter is placed into the request URI if the user is determined to be a phone number

https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip

Относительно PAI - там тоже это всё есть штатно и не нужно изобретать костыли.

Для любителей костылей, они остаются в виде PJSIP_HEADER().
https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Function_PJSIP_HEADER
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2158
Зарегистрирован: 27 янв 2011, 01:35

Re: Header pjsip проблемы

Сообщение dedy » 28 апр 2022, 20:41

Спасибо. По второму пункту разобрался - заработало.

По первому пункту не могу понять что делаю не так.

Если делаю звонок то у меня уже есть поле P-Asserted-Identity но мне его нужно изменить , если пишу вот так

same => n, Set(PJSIP_HEADER(update,P-Asserted-Identity)=<sip:564455@3.3.3.3\;user=phone\;cpc=ordinary>)

то в логе ошибка что P-Asserted-Identity такого нету, если пишу add то оно мне два таких поля рисует одно верное а второе нет, типа такого P-Asserted-Identity: <sip:564455@3.3.3.3>

Что я делаю не так ?
dedy
 
Сообщений: 5
Зарегистрирован: 13 авг 2018, 16:44

Re: Header pjsip проблемы

Сообщение ded » 29 апр 2022, 13:44

https://community.freepbx.org/t/how-do- ... y/60665/19
(дочитать там до конца)
ded
 
Сообщений: 15801
Зарегистрирован: 26 авг 2010, 19:00

Re: Header pjsip проблемы

Сообщение Zavr2008 » 30 апр 2022, 02:23

В заметки..
Российские шлюзы E1 Alvis-GW. Модернизация УПАТС с E1, Установка FreePBX, Системы антифрод "в разрыв" потоков E1 PRI / SS#7 ISUP.
Аватар пользователя
Zavr2008
 
Сообщений: 2158
Зарегистрирован: 27 янв 2011, 01:35

Re: Header pjsip проблемы

Сообщение dedy » 30 апр 2022, 10:27

Что-то не получается совсем.

вот так в диалплане


same=>n(ks-6121), NoOp()
same=>n, Dial(PJSIP/${EXTEN}@sipprov-endpoint,,Ttb(dial_create_chan,s,1)))

[dial_create_chan]
exten => s,1,GoSub(func-set-sipheader,s,1(P-Asserted-Identity,sip:564455@3.3.3.3))
exten => s,n,exit()


Вижу в логе
Executing [032555555@from-mediatel:80] Dial("PJSIP/mediatel-endpoint-00000045", "PJSIP/032555555@sipprov-endpoint,,Ttb(dial_create_chan,s,1))") in new stack
-- PJSIP/sipprov-endpoint-00000046 Internal Gosub(dial_create_chan,s,1) start
-- Executing [s@dial_create_chan:1] Gosub("PJSIP/sipprov-endpoint-00000046", "func-set-sipheader,s,1(P-Asserted-Identity,sip:564455@3.3.3.3)") in new stack
[Apr 30 09:20:16] ERROR[1564][C-00000028]: app_stack.c:593 gosub_exec: Attempt to reach a non-existent destination for Gosub: (Context:func-set-sipheader, Extension:s, Priority:1)
== Spawn extension (dial_create_chan, s, 1) exited non-zero on 'PJSIP/sipprov-endpoint-00000046'
[Apr 30 09:20:16] NOTICE[1564][C-00000028]: app_stack.c:1081 gosub_run: PJSIP/sipprov-endpoint-00000046 Abnormal 'Gosub(dial_create_chan,s,1)' exit. Popping routine return locations.

Я пробовал добавлять абракадабру в тот хеадер но даже в wireshark не вижу его


Ребят готов даже оплатить помощь в рамках разумного.
dedy
 
Сообщений: 5
Зарегистрирован: 13 авг 2018, 16:44

Re: Header pjsip проблемы

Сообщение dedy » 30 апр 2022, 11:50

Завелось. Всем спасибо


same=>n(ks-6121), NoOp()
same=>n, Dial(PJSIP/${EXTEN}@sipprov-endpoint,,Ttb(dial_create_chan,s,1)))

[dial_create_chan]
exten => s,1,Set(PJSIP_HEADER(add,P-Asserted-Identity)=<sip:564455@3.3.3.3\;transport=udp>)
same => n,Return()
dedy
 
Сообщений: 5
Зарегистрирован: 13 авг 2018, 16:44


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

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

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

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