sipcapture / homer

HOMER - 100% Open-Source SIP, VoIP, RTC Packet Capture & Monitoring
https://sipcapture.org
GNU Affero General Public License v3.0
1.58k stars 239 forks source link

Diversion standard SIP header in form and result #632

Closed sraimondeau closed 4 months ago

sraimondeau commented 4 months ago

Hello,

Homer version 7.10.34

I'd like to add the standard SIP header Diversion in the search form. As specified by @lmangani here https://github.com/sipcapture/homer/issues/589 , as it is standard header, it is already parsed and I just have to add it in the mapping objects.

In Admin settings, I go to Mapping and edit settings for profile CALL, HEP Alias SIP as shown below:

image

After that, I add the Diversion in the CALL SIP search widget but even if I got calls with Diversion (as it is not present for each call), a search with a simple %tel% in the Diversion input does not bring the calls.

example of a call containing the Diversion header (unavailable with a search %+33% in diversion input): image

Can you help ?

sraimondeau commented 4 months ago

A precision, I have also looked in the PostgreSQL database, table hep_proto_1_call_20240311_xxxx and "diversion": "" is not present in the data_header column for this example. (It is present in the raw column)

sraimondeau commented 4 months ago

Ok, I found the way ;-) I had to look in the go source of Heplify-server to understand. In the config file /etc/heplify-server.toml if the line SIPHeader is empty (= [ ]), the default values are:"ruri_user","ruri_domain","from_user","from_tag","to_user","callid","cseq","method","user_agent"]

You need to add the standard SIP header you want if it is not in the default list otherwise it is not recorded in the Postgre database (column data_header in calls database) For me, it was "diversion", but it could be "privacy" etc... as the issue of @solarmon #589

Then, do the mappings thing and you can search with the header.

lmangani commented 4 months ago

@sraimondeau glad you solved this before we could reply and suggest the same approach! We should document this better, PRs to the Wiki are welcome!