Excellent! This could maybe be extended to an analysis of message types too?! Would be great to be able to see:
INVITE - Main | - ROUTE_RPC (method=="XMLRPC") | | | - ROUTE_ERROR_REPLY (!handle_rpc()) | - ROUTE_PROXYINIT (uri=~"sip:something") | |
And so on, where each condition for entering a route is picked from the if's. Multiple ifs must be handled some way though, maybe:
INVITE - Main | (some if found in script) | - ROUTE_RPC (method=="XMLRPC") | | | | | - ROUTE_ERROR_REPLY (!handle_rpc()) | - ROUTE_PROXYINIT (uri=~"sip:something") | |
And of course, the dream would also be to be able to see the "decision path" for a specific SIP message... However, this means that data must be collected from an actual execution and a special debug mode must be created where each call to if and routes etc are traced in a stack and printed to the debug log when break or end is reached...
Dangerous to add cool stuff, you get too many suggestions!! ;-) g-)
Nils Ohlmeier wrote:
Hello,
in case you are not following the CVS commit log messages: I just checked in a small python script which should be able to print a dependency graph in ASCII of the route blocks of a SER config file.
When you try to understand more complex configuration files this tool might be helpfull. But be warned: this is still alpha code! It will not eat your config file, but the output might not meet your expectations :-)
If you run it with the default configuration file the output will look like this:
./route_graph.py ../../etc/ser.cfg
Main | - 1 | - 1 | - 1 | - 1
A more complex scenario (from a config with named routes) could look like this:
./route_graph.py ./ser.cfg
Main | - ROUTE_RPC | | | - ROUTE_ERROR_REPLY | - ROUTE_PROXYINIT | | | - ROUTE_ERROR_REPLY | - ROUTE_INDIALOG | | | - ROUTE_ERROR_REPLY | | | - ROUTE_ST | | | - ROUTE_FORWARD | | | | | - ROUTE_LI | | | | | - ROUTE_RTPPROXY | | | | | - ROUTE_RR | - ROUTE_DOMAINPOLICY | | | - ROUTE_ERROR_REPLY | - ROUTE_REGISTRAR | | | - ROUTE_ERROR_REPLY | - ROUTE_AUTHENTICATION | |
[... omitted bigger parts...]
Send routes
onsend
Failure routes
FAILURE_ROUTE | - ROUTE_RTPPROXY | - ROUTE_VOICEMAIL | | | - ROUTE_SEMS | | | | | - ROUTE_LI | | | | | - ROUTE_RR | | | - ROUTE_ERROR_REPLY |
[... omitted bigger parts...]
Onreply routes
REPLY_ROUTE
Feedback is welcome. Patches even more! :-)
Greetings Nils _______________________________________________ Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers