Страница 1 из 1

Header pjsip проблемы

Добавлено: 28 апр 2022, 05:56
dedy
Добрый день

Прошу помочь с 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 не могу найти рабочего варианта

буду благодарен за помощь

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

Добавлено: 28 апр 2022, 11:39
ded
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)

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

Добавлено: 28 апр 2022, 13:45
Zavr2008
Для 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/ ... _res_pjsip

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

Для любителей костылей, они остаются в виде PJSIP_HEADER().
https://wiki.asterisk.org/wiki/display/ ... SIP_HEADER

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

Добавлено: 28 апр 2022, 19:41
dedy
Спасибо. По второму пункту разобрался - заработало.

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

Если делаю звонок то у меня уже есть поле 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>

Что я делаю не так ?

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

Добавлено: 29 апр 2022, 12:44
ded
https://community.freepbx.org/t/how-do- ... y/60665/19
(дочитать там до конца)

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

Добавлено: 30 апр 2022, 01:23
Zavr2008
В заметки..

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

Добавлено: 30 апр 2022, 09:27
dedy
Что-то не получается совсем.

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


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 не вижу его


Ребят готов даже оплатить помощь в рамках разумного.

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

Добавлено: 30 апр 2022, 10:50
dedy
Завелось. Всем спасибо


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()