Страница 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
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()