Имеею: 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 она не может .