review_sip_config
ActiveTool of Sipflow
[cost: free (pure CPU, no network) | read-only] Use this when the user asks 'review my config' or attaches a kamailio.cfg, sip.conf, pjsip.conf, FreeSWITCH XML profile, opensips.cfg, `res_fax.conf` / `udptl.conf` / `spandsp.conf` (fax-relay tuning), or a SIP-shaped source file from a repo. This tool: 1. Detects the vendor from filename + structural signatures (loadmodule, route blocks, [transport-*] sections, <profile name=>, KEMI calls). 2. Extracts a structured outline: loaded modules, modparams, listen lines, route blocks, profiles, gateways, dialplan extensions. 3. Surfaces risk flags - e.g. websocket loaded without TLS, nathelper without rtpengine, chan_sip used in modern Asterisk, AND the Kamailio/OpenSIPS lump-vs-subst race (`subst('/^From:.../...')` colliding with `KSR.hdr.append/remove` or `uac_replace_*` or `append_hf/remove_hf` on the same header - corrupts the buffer at serialization). 4. Returns a list of `suggestedQueries` for `search_sip_docs` so you can ground the actual review in vendor docs. Pair with: one or more `search_sip_docs` calls (cite returned `source_url` values verbatim instead of recalling vendor behavior from memory); `webrtc_sip_checklist` when the config is a WebRTC ↔ SIP bridge.
Parameters schema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"maxLength": 2000000,
"minLength": 1,
"description": "The full config blob (or a representative excerpt). UTF-8 plaintext."
},
"vendorHint": {
"enum": [
"asterisk",
"freeswitch",
"kamailio",
"opensips",
"freepbx",
"yate",
"cisco-cube",
"ribbon",
"oracle-acme",
"audiocodes",
"cisco-cucm",
"avaya",
"mitel",
"metaswitch",
"3cx",
"nec",
"twilio",
"telnyx",
"bandwidth",
"bandwidth-bxf",
"vonage",
"plivo",
"signalwire",
"aws-chime",
"didww",
"voxbone",
"genband",
"cisco-bts",
"teams",
"zoom-phone",
"ringcentral",
"webex-calling",
"eight-by-eight",
"polycom",
"yealink",
"cisco-phone",
"grandstream",
"snom",
"linphone",
"microsip",
"bria",
"zoiper",
"jssip",
"sip-js",
"stir-shaken"
],
"type": "string",
"description": "Skip auto-detection and force a specific vendor. Use when the heuristics return low confidence or the wrong vendor."
},
"filenameHint": {
"type": "string",
"maxLength": 200,
"description": "Optional filename or path (e.g. \"kamailio.cfg\", \"etc/asterisk/pjsip.conf\", \"sofia/external.xml\"). Strongly improves vendor detection."
}
},
"additionalProperties": false
}No endpoints wrapped at confidence ≥ 0.50.
Parent server
Sipflow
https://github.com/cmendes0101/sipflow-cursor-plugin
1/7 registries