While simulating a database failure (stopping the service), I noticed that OpenSER would also crash (see log below).  While I don’t mind the OpenSER crash since in our configuration its highly dependent upon the database, what I would like to do is send a 5xx series message to the client so that it would be forced to look at one of our other proxies to complete its call.  As the client continued to send the INVITE to the original server.

 

How can I send a 500 Server Internal Error message back to the client in the event of a database failure?

 

Dec  8 22:36:11 terra /usr/local/sbin/openser[8134]: PG[get_result]: 0x81af628 Warning: Probable invalid query

Dec  8 22:36:11 terra /usr/local/sbin/openser[8134]: PG[get_result]: 0x81af628 Warning: PGRES_FATAL_ERROR

Dec  8 22:36:11 terra /usr/local/sbin/openser[8134]: PG[get_result]: 0x81af628 Warning: server closed the connection unexpectedly       This probably means the server terminated abnormally     before or while processing the request.

Dec  8 22:36:11 terra /usr/local/sbin/openser[8147]: ERROR: receive_fd: EOF on 23

Dec  8 22:36:11 terra /usr/local/sbin/openser[8105]: child process 8134 exited by a signal 11

Dec  8 22:36:11 terra /usr/local/sbin/openser[8105]: core was not generated

Dec  8 22:36:11 terra /usr/local/sbin/openser[8105]: INFO: terminating due to SIGCHLD

Dec  8 22:36:11 terra /usr/local/sbin/openser[8147]: INFO: signal 15 received

Dec  8 22:36:11 terra /usr/local/sbin/openser[8140]: INFO: signal 15 received

Dec  8 22:36:11 terra /usr/local/sbin/openser[8137]: INFO: signal 15 received