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

FreeSwitch модификация Contact Header

Использование и настройка других открытых VoIP PBX

Модератор: april22

FreeSwitch модификация Contact Header

Сообщение lext55 » 19 ноя 2020, 20:06

Здравствуйте, коллеги.

Имеею: debian 10 , freeswitch 1.10.05 из репозитория. Стыки без регистраций по IP адресу.
Вызов приходит по одному стыку без регистрации, и уходит по другому стыку без регистрации.

Требуется изменить поле Contact. Таким образом, чтобы в User Part был CallerID (номер звонящего).
Т.е. изменить поле Contact на B-led в исходящих INVITE.

Т.е. от вида:
Код: выделить все
Contact: <sip:gw+gw-eltex@192.168.15.1:5060>


Привести к виду:
Код: выделить все
Contact: <sip:74955555555@192.168.15.1:5060>


Что уже делал: нагуглил переменные

sip_contact_params
sip_contact_user
sip_contact_port
sip_contact_uri
sip_contact_host


И пробовал менять их значение на B стороне (в диалплане) , например вот так:

Код: выделить все
<action application="export" data="nolocal:sip_contact_user=74955555555"/>


Либо так

Код: выделить все
<action application="bridge" data="{sip_contact_user=74955555555}sofia/gw-eltex/$1"/>


Без результатов. Точнее так: само значение переменной на B-стороне меняется (проверял uuid_dump) , но в исходящих INVITE ничего не происходит.

После 2 дней с WireShark-ом все-таки смог поменять значение user part в поле Contact, в gateway нужно добавить конфиг:

Код: выделить все
<param name="username" value="74955555555"/>
<param name="extension" value="74955555555"/>
<param name="extension-in-contact" value="true"/>


Проблема заключается в следующем: в данном месте конфига работают только глобальные переменные $${variable_name} , переменные из диалплана сюда не передаются ${variable_name}.

В общем как в User Part в поле Contact запихнуть значение переменной CallerID ?

У меня не получается манипулировать ни каким полем Contact в исходящих INVITE.

Также отдельно замечую поведение при назначении вот этой переменной на B-стороне
Код: выделить все
sip_outgoing_contact_uri

Чтобы я туда не записал, выходит ошибка что недопустимое значение переменной.


Также пробовал манипулировать вот этой переменной
Код: выделить все
sip_invite_contact_params

эта переменная дописывает параметры через точку с запятой к текущему полю Contact. По факту корректно работает только эта переменная. Но она позволяет только дописать extra params в поле Contact , поменять текущие значения user , host она не может .
lext55
 
Сообщений: 4
Зарегистрирован: 23 апр 2020, 20:58

Re: FreeSwitch модификация Contact Header

Сообщение a.bunakov » 05 авг 2022, 12:34

Я тоже долго мучался с данной проблемой, но решил частично, зайдя через задний проход)), делаю набор НЕ через sofia/gateway/<GW>/<Number>, а так:
action/bridge/{sip_contact_user=${effective_caller_id_number}}sofia/internal/$1@1.1.1.1:5060;transport=udp
тогда поле контакт содержит норм информацию, единственное теряется имя, но не критично, связка с Avaya SM там поменял на транкгруппе от SM Identity for Calling Party Display: на From, все заработало как надо, до этого стоял P-Asserted-Identity, причем генерил P-Asserted-Identity на FS до этого вызовы вообще не проходили с 404.
a.bunakov
 
Сообщений: 1
Зарегистрирован: 05 авг 2022, 12:18


Вернуться в FreeSwitch, SER, Yate и другие

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

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

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